VBA- AUTOCAD

Signaler
Messages postés
1
Date d'inscription
jeudi 18 mars 2004
Statut
Membre
Dernière intervention
5 mars 2005
-
Messages postés
4
Date d'inscription
mercredi 23 août 2006
Statut
Membre
Dernière intervention
29 novembre 2007
-
J'utilise un programme en vba excel pour remplir des folios de nomenclature avec Autocad. Ce programme est utilisée sur des postes avec autocad 2002 et autocad 2004. Comment faire pour ne pas avoir "bibliotheque autocad 200*" manquante si l'on passe d'un poste Autocad 2002 à Autocad 2004. Peut on charger les bibliotheques depuis le programme sans passer par les barres de menus.

Merci

nimois30

2 réponses

Messages postés
261
Date d'inscription
jeudi 13 janvier 2005
Statut
Membre
Dernière intervention
18 mai 2009
2
Si les barres de menu dont tu parles sont dans Excel, allors utilise l'enregistreur de macro pour voir ce qu'il code

en esperant te mettre sur une bonne voie
Messages postés
4
Date d'inscription
mercredi 23 août 2006
Statut
Membre
Dernière intervention
29 novembre 2007

je voudrais récuperer dans un fichier texte les lignes d'un fchier autocad avec ses caractéristiques ( coordonnées point de départ et point d'arrivée)


j'ai fait le code suivant ca ne marche pas. lobjectif est de génerer le fichier d'échande du logiciel EPANET. En considérant les noeuds comme des blocs c'est ok mais le problème qui persiste concerne les lignes .


de l'aide SVP.


Private Sub CommandButton1_Click()



Dim NomFichierText As String<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>





Dim NomFichier As String





Dim FichAccess As String




FichAccess = ThisDrawing.FullName



    ' Pour être sûr que ce n'est pas un dessin sans nom



    If FichAccess <> "" Then



      ' on retire l'extension dwg à la fin du nom



      FichAccess = Left$(FichAccess, Len(FichAccess) - 4)



      ' on ajoute l'extension pour Access



    
 



    Else



      FichAccess = "SansNom"    ' si le dessin n'a pas encore de nom



   
End If





'FichAccess = Left$(FichAccess, Len(FichAccess) - 4)




NomFichier = FichAccess


NomFichierText = NomFichier & ".txt"



Open NomFichierText For Output As #1






    'Unload Me





'============================================





Dim TL(1 To 100000, 1 To 12) As Variant





Dim k As Long





k = 1





Dim NombreTL As Long





Dim CompteurTL As Long






 






Dim objElem2 As AcadEntity






 






For Each objElem2 In ThisDrawing.ModelSpace






     
' si l'élément est un bloc



     
If objElem2.EntityType = acdbLine Then






                        If k <9 Then ComplementNom "N00"






                        If k >= 10 And k <= 99 Then ComplementNom = "N0"






                  
     If k > 100 And j <999 Then ComplementNom "N"






                        If k > 1000 Then ComplementNom = "N"






     








      








      objElem2.Highlight (True)






      TL(k, 1) = k






      TL(k, 2) = objElem2.ObjectName






      TL(k, 3) = objElem2.Angle






      TL(k, 4) = objElem2.Layer






      TL(k, 5) = objElem2.StartPoint(0)






      TL(k, 6) = objElem2.StartPoint(1)






      TL(k, 7) = objElem2.StartPoint(2)






      TL(k, 8) = objElem2.EndPoint(0)






      TL(k, 9) = objElem2.EndPoint(1)






      TL(k, 10) = objElem2.EndPoint(2)






      TL(k, 11) = objElem2.Length






      TL(k, 12) = objElem2.ObjectName & ComplementNom & k






      TL(k, 13) = objElem2.Delta






      TL(k, 14) = objElem2.Length






      TL(k, 15) = objElem2.TrueColor






     








      Print #1, TL(k, 1), TL(k, 2), TL(k, 3), TL(k, 4), TL(k, 5), TL(k, 6), TL(k, 7), TL(k, 8), TL(k, 9), TL(k, 10), TL(k, 11), TL(k, 12), TL(k, 12), TL(k, 13), TL(k, 14)






      Print #1, ""






       k = 1 + k






      entry.Highlight (False)






      End If






     








           








    








 Next objElem2






 








 NombreTL = k






 







Close #1




End Sub