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 structure Line3d représente une ligne non bornée dans l'espace 3D, définie par un point et un vecteur de direction. Contrairement à la classe d'entité Line, Line3d s'étend à l'infini dans les deux directions.
Namespace
Autodesk.AutoCAD.Geometry
Propriétés Clés
Propriété
Type
Description
Point
Point3d
Obtient un point sur la ligne
Direction
Vector3d
Obtient le vecteur de direction de la ligne
Constructeurs
Constructeur
Description
Line3d(Point3d, Vector3d)
Crée une ligne depuis un point et une direction
Line3d(Point3d, Point3d)
Crée une ligne passant par deux points
Méthodes Clés
Méthode
Type de Retour
Description
GetClosestPointTo(Point3d)
Point3d
Obtient le point le plus proche sur la ligne vers un point donné
GetClosestPointTo(Line3d)
Point3d
Obtient le point le plus proche vers une autre ligne
DistanceTo(Point3d)
double
Obtient la distance d'un point à la ligne
DistanceTo(Line3d)
double
Obtient la distance entre deux lignes
IsOn(Point3d)
bool
Vérifie si un point est sur la ligne
IsParallelTo(Line3d)
bool
Vérifie si parallèle à une autre ligne
IsPerpendicularTo(Line3d)
bool
Vérifie si perpendiculaire à une autre ligne
IsColinearTo(Line3d)
bool
Vérifie si colinéaire avec une autre ligne
IntersectWith(Line3d)
Point3d
Obtient le point d'intersection avec une autre ligne
IntersectWith(Plane)
Point3d
Obtient le point d'intersection avec un plan
Exemples de Code
Exemple 1: Créer des Lignes
// Depuis un point et une directionPoint3dpt=newPoint3d(0,0,0);Vector3ddir=newVector3d(1,1,0).GetNormal();Line3dline1=newLine3d(pt,dir);// Depuis deux pointsPoint3dpt1=newPoint3d(0,0,0);Point3dpt2=newPoint3d(10,10,0);Line3dline2=newLine3d(pt1,pt2);ed.WriteMessage($"\nDirection de la ligne : {line2.Direction}");
Exemple 2: Distance Point-Ligne
Line3dline=newLine3d(newPoint3d(0,0,0),newPoint3d(10,0,0));Point3dtestPoint=newPoint3d(5,5,0);doubledistance=line.DistanceTo(testPoint);Point3dclosestPoint=line.GetClosestPointTo(testPoint);ed.WriteMessage($"\nDistance à la ligne : {distance:F2}");ed.WriteMessage($"\nPoint le plus proche : {closestPoint}");
Exemple 3: Intersection de Lignes
// Deux lignes qui se croisentLine3dline1=newLine3d(newPoint3d(0,0,0),newPoint3d(10,0,0));Line3dline2=newLine3d(newPoint3d(5,-5,0),newPoint3d(5,5,0));try{Point3dintersection=line1.IntersectWith(line2);ed.WriteMessage($"\nIntersection à : {intersection}");}catch{ed.WriteMessage("\nLes lignes ne se croisent pas");}
Exemple 4: Intersection Ligne-Plan
Line3dline=newLine3d(newPoint3d(0,0,-10),newPoint3d(0,0,10));Planeplane=newPlane(Point3d.Origin,Vector3d.ZAxis);try{Point3dintersection=line.IntersectWith(plane);ed.WriteMessage($"\nLa ligne croise le plan à : {intersection}");}catch{ed.WriteMessage("\nLa ligne ne croise pas le plan");}