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