sindy1986
Messages postés6Date d'inscriptionlundi 3 mars 2008StatutMembreDernière intervention10 avril 2008
-
9 avril 2008 à 17:26
pile_poil
Messages postés682Date d'inscriptionvendredi 6 avril 2007StatutMembreDernière intervention 4 août 2012
-
10 avril 2008 à 11:03
Bonjours,
Je rencontre actuellement un probléme avec vba, j'arrive à ouvrir autocad a partir de ce dernier et a ouvrir un fichier précis (que je dois compléter) ainsi qu a créer un script, mais je n'arrive pas à exécuter mon script directement sans devoir passer pas autocad
quelqu un aurait la commande???
pile_poil
Messages postés682Date d'inscriptionvendredi 6 avril 2007StatutMembreDernière intervention 4 août 20126 10 avril 2008 à 08:41
bonjour
qu'entends tu par script ?
l'éxécution d'un lisp ????
ci c'est bien cela oublie tout de suite !!!!
autocad ayant depuis la version 2000 un vba intégré tu peux lui faire faire ce que tu veux sans changer de langage (à quelques détails près)
quand à la façon de faire bosser autocad par automation il suffit d'aller se balader dans l'aide vba d'autocad qui te propose presque à toutes les pages un lien (en haut à droite) pour l'explication concernant l'éxécution d'une fonction depuis une autre application
pile_poil
Messages postés682Date d'inscriptionvendredi 6 avril 2007StatutMembreDernière intervention 4 août 20126 10 avril 2008 à 10:49
pas besoin d'APi pour piloter autocad à partir de VB6 puisque autocad integre VBA qio est très très proche de VB6
pour initialiser une cession autocad depuis VB6 il faut créer l'objet
Set acadApp = GetObject(, "AutoCAD.Application.17") 'j'utilise autocad2008 d'où le 17 pour autocad 2004 c'était 16
If Err Then
Err.Clear
Set acadApp = CreateObject("AutoCAD.Application.17")
end if
Set Acaddoc = acadApp.Documents
Acaddoc.Open (chemin complet du fichier *.dwg à ouvrir)
acadApp.Visible = True
ensuite tu copie ta macro autocad (si tu en as une qui fait déja ce que tu veux) et tu utilise AcadDoc à la place de ThisDrawing
avec ce bout de code tu n'as pas besoin d'ouvrir manuellement autocad il s'en charge pour toi
Vous n’avez pas trouvé la réponse que vous recherchez ?
pile_poil
Messages postés682Date d'inscriptionvendredi 6 avril 2007StatutMembreDernière intervention 4 août 20126 10 avril 2008 à 10:57
bien sûr quand tu as fini il faut penser à refermer l'objet avec
set AcadDoc = nothing
set AcadApp = nothing
mais éventuellement tu pourrais aussi fermer autocad juste avant et dans ce cas tu feras
If Acaddoc.count > 0 Then 'boucle pour fermer ,en les sauvegardant , tous les .dwg ouverts
Set Acaddoc = acadApp.ActiveDocument
Acaddoc.Save
Do Until Acaddoc.Saved = True
Loop
AcadDoc.close
End If
acadApp.Quit
set AcadDoc = nothing
set AcadApp = nothing
pile_poil
Messages postés682Date d'inscriptionvendredi 6 avril 2007StatutMembreDernière intervention 4 août 20126 10 avril 2008 à 11:03
oups ! j'ai oublié une boucle dans le dernier bout de code
If Acaddoc.count > 0 Then
For I = Acaddoc.count To 1 Step -1
Set docu = Acaddoc(I - 1)
docu.Activate
docu.Save
Do Until docu.Saved = True
Loop
docu.Close
Next I
end if
acadApp.Quit
set docu = nothing
set AcadDoc = nothing
set AcadApp = nothing