Bonjour à tous,
Je suis en train de faire une macro vba sur excel pour modéliser des lignes dans un dessin Civil 3D, puis exporter au format ifc (2x3 ou 4x3).
Pour l'instant, je peux générer des polylignes dans un dessin Civil 3D, mais le format ifc ne prend pas en compte les polylignes.
J'ai commencé à regarder pour balayer un cercle le long des lignes mais ça ne fonctionne pas. J'ai essayé plusieurs fonctions, ajouté plusieurs références différentes et j'ai aussi essayé de faire juste une extrusion (ce qui fait planter le logiciel...).
Voici le code :
Sub CreerBalayage()
Dim acadApp As Object
Dim acadDoc As Object
Dim acadModelSpace As Object
Dim basePoint(2) As Double
Dim ligneStart(2) As Double
Dim ligneEnd(2) As Double
Dim cercleObj As Object
Dim ligneObj As Object
Dim regionArray As Variant
Dim regionObj As Object
Dim solideObj As Object
Dim rayon As Double
' Initialisation
Set acadApp = GetObject(, "AutoCAD.Application")
Set acadDoc = acadApp.ActiveDocument
Set acadModelSpace = acadDoc.modelSpace
' Coordonnées et paramètres
basePoint(0) = 0: basePoint(1) = 0: basePoint(2) = 0 ' Centre du cercle
ligneStart(0) = 0: ligneStart(1) = 0: ligneStart(2) = 0 ' Début de la ligne
ligneEnd(0) = 0: ligneEnd(1) = 0: ligneEnd(2) = 50 ' Fin de la ligne
rayon = 1 ' Rayon du cercle
Set cercleObj = acadModelSpace.AddCircle(basePoint, rayon)
Set ligneObj = acadModelSpace.AddLine(ligneStart, ligneEnd)
' Méthode 1 : Balayer le long de la ligne
Set solideObj = cercleObj.Sweep(ligneObj)
' Méthode 2 : Balayer via l'invite de commandes
acadDoc.SendCommand "_SWEEP " & vbCr
acadDoc.SendCommand "_PICKFIRST [" & cercleObj.ObjectName & "] " & vbCr
acadDoc.SendCommand "_PICKFIRST [" & ligneObj.ObjectName & "] " & vbCr
End Sub
---
Merci à ceux qui prennent le temps d'y jeter un oeil.
Je cherche aussi en parallèle une méthode pour pour que l'ifc exporte les polylignes 3D.
Merci d'avance. ![]()
Résolu ! Accéder à la solution.
Résolu par O_Eckmann. Accéder à la solution.
Bonjour @oscar_dls,
La liste des entités supportées pour l'export en IFC 4x3 dans Civil 3D est disponible ici : Autodesk Civil 3D Help | Supported Geometry for Export | Autodesk
Pour vos objets, utiliser les Lignes Caractéristiques de Civil 3D (Feature Lines en anglais) est peut-être la méthode la plus simple.
Deux questions :
1) Avez-vous testé d'effectuer les opérations manuellement avant de les coder ?
2) Pourquoi VBA plutôt que .NET ou Dynamo ?
Merci
Bonjour @oscar_dls ,
Ca date un peu, mais c'est toujours d'actualité. La transfo 3D est incluse dans un overrule, mais la création de l'objet 3D fonctionne de manière identique en C#.
Sous forme de surface extrudée : https://www.keanw.com/2009/03/customizing-the-display-of-standard-autocad-objects-using-f.html
Sous forme de solide 3D : https://www.keanw.com/2009/04/optimized-overruling-in-autocad-2010-using-net.html
Olivier Eckmann
Vous n'avez pas trouvé ce que vous recherchiez ? Posez une question à la communauté ou partagez vos connaissances.