You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
La classe Polyline3d représente une entité polyligne 3D dans AutoCAD. Similaire à Polyline2d, c'est un objet conteneur qui possède une collection d'objets PolylineVertex3d. Chaque sommet peut avoir une position 3D unique, ce qui la rend adaptée à la représentation de chemins 3D, de pipelines et de courbes spatiales.
Obtient/définit le type de polyligne (SimplePoly, QuadSplinePoly, CubicSplinePoly)
Closed
bool
Obtient/définit si la polyligne est fermée
Length
double
Obtient la longueur totale de la polyligne
StartPoint
Point3d
Obtient le point de départ de la polyligne
EndPoint
Point3d
Obtient le point de fin de la polyligne
Méthodes Clés
Méthode
Type de Retour
Description
GetEnumerator()
IEnumerator
Obtient un énumérateur pour les sommets
AppendVertex(PolylineVertex3d)
void
Ajoute un sommet à la polyligne
InsertVertexAt(int, PolylineVertex3d)
void
Insère un sommet à l'index spécifié
OpenVertex(PolylineVertex3d, OpenMode)
PolylineVertex3d
Ouvre un sommet en lecture ou écriture
ConvertToPolylineType(Poly3dType)
void
Convertit la polyligne en un type différent
Straighten()
void
Supprime tout lissage de courbe
SplineFit()
void
Applique un lissage spline
Exemples de Code
Exemple 1: Créer une Polyligne 3D
using(Transactiontr=db.TransactionManager.StartTransaction()){BlockTablebt=tr.GetObject(db.BlockTableId,OpenMode.ForRead)asBlockTable;BlockTableRecordbtr=tr.GetObject(bt[BlockTableRecord.ModelSpace],OpenMode.ForWrite)asBlockTableRecord;// Créer le conteneur de polyligne 3DPolyline3dpoly=newPolyline3d();poly.SetDatabaseDefaults();// Ajouter la polyligne au dessinObjectIdpolyId=btr.AppendEntity(poly);tr.AddNewlyCreatedDBObject(poly,true);// Créer les sommets 3DPoint3d[]points=newPoint3d[]{newPoint3d(0,0,0),newPoint3d(10,0,5),newPoint3d(10,10,10),newPoint3d(0,10,15),newPoint3d(0,0,20)};foreach(Point3dptinpoints){PolylineVertex3dvertex=newPolylineVertex3d(pt);poly.AppendVertex(vertex);tr.AddNewlyCreatedDBObject(vertex,true);}tr.Commit();}
Exemple 2: Lire les Sommets de Polyligne 3D
using(Transactiontr=db.TransactionManager.StartTransaction()){Polyline3dpoly=tr.GetObject(polylineId,OpenMode.ForRead)asPolyline3d;ed.WriteMessage($"\n=== Information Polyline3d ===");ed.WriteMessage($"\nType : {poly.PolyType}");ed.WriteMessage($"\nFermée : {poly.Closed}");ed.WriteMessage($"\nLongueur : {poly.Length:F3}");ed.WriteMessage($"\nPoint de Départ : {poly.StartPoint}");ed.WriteMessage($"\nPoint de Fin : {poly.EndPoint}");ed.WriteMessage("\n\nSommets :");intindex=0;foreach(ObjectIdvertexIdinpoly){PolylineVertex3dvertex=tr.GetObject(vertexId,OpenMode.ForRead)asPolylineVertex3d;Point3dpos=vertex.Position;ed.WriteMessage($"\n Sommet {index} : ({pos.X:F2}, {pos.Y:F2}, {pos.Z:F2})");ed.WriteMessage($"\n Type Sommet : {vertex.VertexType}");index++;}tr.Commit();}
Types de Polyligne 3D
Type
Description
SimplePoly
Polyligne 3D standard avec segments droits
QuadSplinePoly
B-spline quadratique passant par les sommets
CubicSplinePoly
B-spline cubique passant par les sommets
Propriétés PolylineVertex3d
Propriété
Type
Description
Position
Point3d
Emplacement du sommet 3D
VertexType
Vertex3dType
Type de sommet (simple, contrôle spline, lissage spline)
Polyline3d vs Polyline
Fonctionnalité
Polyline (Légère)
Polyline3d
Dimensions
2D seulement
3D complète
Objets Base de Données
Objet unique
Conteneur + objets sommet
Support Largeur
Oui (par segment)
Non
Courbure/Arcs
Oui
Non
Lissage Spline
Non
Oui
Cas d'Utilisation
Dessins 2D
Chemins 3D, tuyaux, câbles
Meilleures Pratiques
Chemins 3D : Utilisez Polyline3d pour les vrais chemins spatiaux 3D
Gestion de Transaction : Ajoutez à la fois la polyligne et tous les sommets à la transaction
Propriété des Sommets : Les sommets appartiennent à la polyligne et sont supprimés avec elle
Performance : Pour de nombreux sommets, envisagez d'utiliser une spline 3D à la place
Polylignes Fermées : Définissez Closed = true pour connecter les extrémités
Lissage Spline : Utilisez pour des courbes douces à travers les points de contrôle
Coordonnées Z : Chaque sommet peut avoir une valeur Z unique
Visualisation : Définissez la couleur et le type de ligne appropriés pour la visibilité 3D