Polyline

Back to Classes | Documentation Home | Methods Index | Properties Index

  • Namespace: AlibreScript.API
  • Kind: Class

Methods

Polyline

Creates a new 2D polyline that can be later added to a 2D sketch

def Polyline(points):
"""
Creates a new 2D polyline that can be later added to a 2D sketch
 
Args:
points (list): List of points in the polyline [X1, Y1, X2, Y2, ...]
 
"""

AddArc

Adds an arc to the polyline. The arc is approcimated with straight line segments

def AddArc(center, start, end, minimum_segments):
"""
Adds an arc to the polyline. The arc is approcimated with straight line segments
 
Args:
center (PolylinePoint): Point defining center of arc
start (PolylinePoint): Point defining start of arc
end (PolylinePoint): Point defining end of arc
minimum_segments (int): Minimum number of line segments to use to form arc
 
"""

AddCircle

Adds a circle to the line

def AddCircle(center_x, center_y, diameter, sides):
"""
Adds a circle to the line
 
Args:
center_x (float): X coordinate of circle center
center_y (float): Y coordinate of circle center
diameter (float): Diameter of circle
sides (int): Number of sides to use to approximate circle
 
"""

AddPoint

Adds a new point to the polyline

def AddPoint(point):
"""
Adds a new point to the polyline
 
Args:
point (PolylinePoint): Point to add
 
"""

AddPolyline

Appends a line to the current line

def AddPolyline(append_line):
"""
Appends a line to the current line
 
Args:
append_line (Polyline): Line to append
 
"""

Clone

Creates an exact copy of a section of the line

def Clone(start_index, end_index):
"""
Creates an exact copy of a section of the line
 
Args:
start_index (int): 0-based index of first point to include in copy
end_index (int): 0-based index of last point to include in copy
 
Returns:
Copied line
 
"""

FindIntersection

Finds the first intersection point between two lines

Overload 1:

def FindIntersection(l1, l2):
"""
Finds the first intersection point between two lines
 
Args:
l1 (Polyline): First line
l2 (Polyline): Second line
 
Returns:
First intersection point or null if none found
 
"""

Overload 2:

def FindIntersection(a1, a2, b1, b2):
"""
Gets the intersection between the line segments A1A2 and B1B2
 
Args:
a1 (PolylinePoint): First segment start point
a2 (PolylinePoint): First segment end point
b1 (PolylinePoint): Second segment start point
b2 (PolylinePoint): Second segment end point
 
Returns:
Intersection point or null if not found
 
"""

FindIntersectionWithCircle

Finds first intersection of line with a circle

def FindIntersectionWithCircle(l1, circle_x, circle_y, radius):
"""
Finds first intersection of line with a circle
 
Args:
l1 (Polyline): Line to check
circle_x (float): X-coordinate of circle center
circle_y (float): Y-coordinate of circle center
radius (float): Radius of circle
 
Returns:
Intersection point or null if not found
 
"""

InsertPoint

Inserts a point at a specific location

def InsertPoint(index, point):
"""
Inserts a point at a specific location
 
Args:
index (int): 0-based index of location to insert
point (PolylinePoint): Point to insert
 
"""

IsPointOnLine

Determines if a point is on a line segment

def IsPointOnLine(a1, a2, point, tolerance):
"""
Determines if a point is on a line segment
 
Args:
a1 (PolylinePoint): First point of line segment
a2 (PolylinePoint): Last point of line segment
point (PolylinePoint): Point to check
tolerance (float): Fudge factor
 
Returns:
True if point is on line
 
"""

Join

Joins a line onto the end of the current line and returns the new line

def Join(append_line):
"""
Joins a line onto the end of the current line and returns the new line
 
Args:
append_line (Polyline): The line to join to the current line
 
Returns:
The new line created from this line plus the appended line
 
"""

Offset

Applies an offset to all points on the line

def Offset(offset_x, offset_y):
"""
Applies an offset to all points on the line
 
Args:
offset_x (float): X offset to apply
offset_y (float): Y offset to apply
 
"""

RotateZ

Rotates the polyline around the Z axis

def RotateZ(center_x, center_y, angle):
"""
Rotates the polyline around the Z axis
 
Args:
center_x (float): X coordinate of center of rotation
center_y (float): Y coordinate of center of rotation
angle (float): Number of degrees to rotate
 
"""

SplitAtPoint

Splits a polyline at a point, creating two polylines

def SplitAtPoint(split_point, tolerence):
"""
Splits a polyline at a point, creating two polylines
 
Args:
split_point (PolylinePoint): Point to split at
tolerence (float): Tolerance to determine if point is on/near line
 
Returns:
List of polylines [A, B]
 
"""

⬆ Back to Top