Communauté
Civil 3D et InfraWorks - Français
Partagez vos connaissances, posez des questions, collaborez sur des idées, et explorez les sujets Civil 3D populaires.
annuler
Affichage des résultats de 
Afficher  uniquement  | Rechercher plutôt 
Vouliez-vous dire : 

Civil 3D 2025 : Modéliser via une macro VBA

4 RÉPONSES 4
RÉSOLU
Répondre
Message 1 sur 5
oscar_dls
114 Visites, 4 Réponses

Civil 3D 2025 : Modéliser via une macro VBA

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. :visage_souriant_légèrement:

Balises (5)
Étiquettes (1)
4 RÉPONSES 4
Message 2 sur 5
Guillaume_Berson
en réponse à: oscar_dls

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

Guillaume Berson
Autodesk
Message 3 sur 5
oscar_dls
en réponse à: Guillaume_Berson

Bonjour @Guillaume_Berson,

Merci de votre réponse, je vais essayer d'utiliser les feature lines.

Les fonctions extrusion et balayage fonctionnent bien manuellement, le problème doit sûrement venir de la fonction ou des éléments utilisés.

Le choix du VBA est simplement pour harmoniser l'ensemble des macros existantes, nous n'utilisions que VBA et C#. J'ai pris VBA parce que je suis plus à l'aide avec ce langage bien que le C# a l'air plus adapté..
Message 4 sur 5
O_Eckmann
en réponse à: oscar_dls

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

EESignature

Message 5 sur 5
oscar_dls
en réponse à: O_Eckmann

Bonjour,

Merci pour l'aide, je vais regarder ces macros.

Vous n'avez pas trouvé ce que vous recherchiez ? Posez une question à la communauté ou partagez vos connaissances.

Publier dans les forums  

Autodesk Design & Make Report