VBA & AUTOCAD ? - VB/VBA/VBS - Programmation
Marsh Posté le 30-08-2004 à 08:28:48
elle est où ta question? 
Marsh Posté le 30-08-2004 à 09:19:26
| skeye a écrit : elle est où ta question?  | 
 
 
La voila ma question. 
 
comment déplacer mon dessin dwg a partir de mon programme VBA ?
Marsh Posté le 30-08-2004 à 17:21:13
Est ce qu'elqu'un utilisant le lisp peut me dire si il ne serait pas plus facile de résoudre mon probleme q'avec le VBA ?? 
 
thank's
Marsh Posté le 30-08-2004 à 17:27:37
en ADA il doit y avoir moyen d'arriver à quelque chose. mais en LISP je sais pas
Marsh Posté le 31-08-2004 à 00:34:37
| Citation : si quelqu'un peu m'aider ça serrait super car la, je suis bloqué et je découvre que la programation ça s'improvise pas très bien.  | 
 
 
bin ouai, en même temps si y'a des formations pour  
 
 
pour ton problème de dessin, tout dépends des objets visibles en VBA, dans le sens programmtion: as-tu des objets permettant de contrôller l'interface, générer des opérations/transformations ? 
Marsh Posté le 31-08-2004 à 10:11:47
salut merci de ton aide 
 
en fait je saisi pas très bien ta question. j'arrive à insérer une feuille de calul excel dans autocad. mon soucis c'est quand j'en inserre plusieurs, car elles ce superposent..
Marsh Posté le 31-08-2004 à 23:04:19
arf je sais pas trop (moi je pensais que tu voulais déplaçer un dessin vectoriel via le VBA)
Marsh Posté le 01-09-2004 à 11:10:28
en fait c'est ça que je veut faire. 
 
Je réalide une graphique en nuage de point représentant une hélice. j'ai donc une colonne X & Y. Grace à un module VBA j'obtien mon hélice sur autocad en dwg. 
 
mon problème c'est que l'orsque j'inserre plusieurs dessin dans autocad, ils ce superposent et je voudrais avoir une variable de déplacement dans mon module VBA. 
 
si tu as une info 
d'avance merci 
Marsh Posté le 01-09-2004 à 14:07:11
ché pas regarde ça: 
http://www.mindspring.com/~tflynn/excelvba.html 
ou ce qui traine d'autre dans google. 
il suffirait juste de faire une addition pour déplacer ton dessin...
Marsh Posté le 01-09-2004 à 15:25:45
Je te remercie pour ton aide.  
tu peu regarder c'est la partie qui est censé décaler mon dessin et qui en fait ne décale qu'un trait... 
 
par contre je suis nul en anglais, mais ça à l'air pas mal ton lien.. 
 
 
Set Obj = MyXl.Worksheets("VBA-5" ) 
 
    Dim Point1(0 To 2) As Double 
    Dim Point2(0 To 2) As Double 
    Point1(0) = 100: Point1(1) = 0: Point1(2) = 0 
    Point2(0) = 0: Point2(1) = 0: Point2(2) = 0 
     
     
  lineObj.move Point1, Point2 
  lineObj.Update 
 
manix
Marsh Posté le 01-09-2004 à 15:29:32
bah voilà une belle fonction de translation. 
 
si ça ne décale qu'un trait, c'est parceque tu travailles sur l'objet "lineObj" qui est je suppose une ligne (trait). 
 
soit tu débrouilles pour faire ça sur un ton dessin en entier dans le sens objet du terme: avoir un "xxxxObj" qui permette de manipuler l'ensemble du dessin. 
 
soit tu itéres ligne par ligne, ou vertex par vertex. (méthode plus lente)
Marsh Posté le 01-09-2004 à 15:34:52
Ok 
mais faut il que reprenne tous mon programme en polylineObjet ou juste la partie que je t'ai envoyé ?
Marsh Posté le 01-09-2004 à 16:43:27
je vien de récrire mon mdule en polyline. mais j'ai une ligne qui bug 
et mon niveau est plus que limiter. 
j'utilise l'aide pour travaillé et je ne voi pas mon erreur. 
 
si tu as une idée 
 
d'avance merci 
 
Sub test() 
 
 
' 
'Attention le fichier xls doit être ouvert 
' 
 
Dim MyXl As Object 
Dim Polylineobj As AcadLWPolyline 
Dim VerticesList(0 To 2) As Double 
Dim RetVal(0 To 2) As Double 
 
'remplacer "c:\toto.xls" par le nom du fichier 
Set MyXl = GetObject("C:\Toto.xls" ) 
 
'remplacer "Feuil1" par le nom de la feuille 
Set Obj = MyXl.Worksheets("VBA-5" ) 
 
i = 1 
While IsEmpty(Obj.Cells(1, i).Value) = False 
 j = 2 
 While IsEmpty(Obj.Cells(j, i).Value) = False 
    VerticesList(0) = Obj.Cells(j, i).Value 
    VerticesList(1) = Obj.Cells(j, i + 1).Value 
    VerticesList(2) = 0# 
  j = j + 1 
    RetVal(0) = Obj.Cells(j, i).Value 
    RetVal(1) = Obj.Cells(j, i + 1).Value 
    RetVal(2) = 0# 
    If IsEmpty(Obj.Cells(j, i).Value) = False Then 
Set AcadLWPolyline = ModelSpace.AddPolyline(VerticesList, RetVal 
    End If 
 Wend 
i = i + 2 
Wend 
 
Set Obj = MyXl.Worksheets("VBA-5" ) 
 
    Dim Point1(0 To 2) As Double 
    Dim Point2(0 To 2) As Double 
    Point1(0) = 100: Point1(1) = 0: Point1(2) = 0 
    Point2(0) = 0: Point2(1) = 0: Point2(2) = 0 
     
     
  Polylineobj.move Point1, Point2 
  Polylineobj.Update 
 
  
   
  ZoomAll 
End Sub
Marsh Posté le 02-09-2004 à 11:59:40
salut je vien de lir qu'il faut marquer [résolu] pour ne pas laisser trainer de fausse questions, mais je suis en attente de réponse , il faudrait aussi créer un [EN ATTENTE] 
 
A+
Marsh Posté le 02-09-2004 à 14:13:57
non, il faut upper toutes les 5 minutes jusqu'à ce qu'un modo ferme le topic
Marsh Posté le 02-09-2004 à 16:10:03
bin je sais pas, là il faudrait que je sois devant avec la doc d'autocad.
Marsh Posté le 02-09-2004 à 17:44:29
te prend pas la tête, je vais mettre le temps mais je vais y arriver tu m'a deja bien aidé. 
 
merci 
manix "qui s"en sortira"
Marsh Posté le 03-09-2004 à 00:48:10
oki, mais essayes de regarder si tu as pas un objet qui permet de manipuler tout ton dessin. 
ou un système de notion de groupe.
Marsh Posté le 06-09-2004 à 11:13:01
bonjour 
 
j'ai réussi à résoudre mon probleme de déplacement de dessin. 
 
PtDecal(0) = 300#  ' Nouvelle coordonnee en X du decalage 
 
je voudrais savoir si ma valeur "300" peut etre une variable excel qui ce metrai à jour si ma valeur sous excel changeait. 
 
merci
Marsh Posté le 06-09-2004 à 11:52:33
en fait je voudrais sélectionner une case excel à partir de mon programme vba
Marsh Posté le 06-09-2004 à 14:05:50
Mais je ne sais pas comment indiquer une case précise sous excel....
Marsh Posté le 30-08-2004 à 08:27:55
Salut à tous!
je découvre le VBA et je trouve ça assez puissant, j'ai vraiment du mal. Si quelqu'un travail sur autocad et utilise le VBA, j'aurais plusieur petite questions sur la programation.
si quelqu'un peu m'aider ça serrait super car la, je suis bloqué et je découvre que la programation ça s'improvise pas très bien.
merci