Sketch (hwx.common)¶
Creates 2D parametric sketch geometry.
It is used to add items (points, lines, circles…) and constraints to them. Also contains sketch editing operations such as trim, fillet etc.
These APIs only work in GUI mode! Batch mode will be supported in a future release.
Public Methods¶
addArc3Points (self, start, end, third)
addArcCenter2Points (self, center, point1, point2, ccw=True)
addArcTangentTo (self, tangentTo, start, end, bInvertTangent=False)
addBoundedEllipse (self, center, majorAxisPoint, minorAxisPoint, start, end, bCounterClockWise=False)
addCircle2Points (self, point1, point2)
addCircle3Points (self, point1, point2, point3)
addCircleCenterPoint (self, center, point)
addCircleCenterRadius (self, center, radius)
addConstraint (self, constraint, item1=None, item2=None)
addDimension (self, dimension, value=None, item1=None, item2=None)
addEllipse (self, center, verticalAxis, majorRadius, minorRadius)
addLine (self, point, direction)
addLineSegment (self, point1, point2)
addParallelogram (self, lowerLeft, lowerRight, upperRight)
addPoint (self, x, y)
addPolyline (self, points)
addRectangle2Vertex (self, vertex1, vertex2)
addRectangle3Vertex (self, lowerLeft, lowerRight, upperRight)
addRectangleCenter2Points (self, center, lengthPoint, widthPoint)
addRectangleCenterVertex (self, center, vertex)
addRegularPolygon (self, center, point, numSides, beMidPoint=False)
addSpline (self, points, degree=3, periodic=False, interpolated=False)
deleteItem (self, item)
evaluate (self)
extend (self, curvePoint, limitPoint)
fillet (self, vertices, radius=0)
findCircle (self, uid)
findConstraint (self, uid)
findEllipse (self, uid)
findItem (self, uid)
findLine (self, uid)
findPoint (self, uid)
findSpline (self, uid)
getCircleCenter (self, circle)
getCircleRadius (self, circle)
getDimensionVariableName (self, dimension)
getEndPoints (self, item)
getItemStatus (self, item)
getLineDirection (self, line)
getLinePosition (self, line)
getPointPosition (self, point)
hasCircle (self, uid)
hasConstraint (self, uid)
hasEllipse (self, uid)
hasItem (self, uid)
hasLine (self, uid)
hasPoint (self, uid)
hasSpline (self, uid)
isBounded (self, item)
mirror (self, curves, mirrorLine)
offset (self, point, distance)
parameterManager (self)
polylineAddArcTo (self, polyline, arcTo, direction)
polylineAddLineTo (self, polyline, pointTo)
polylineEnd (self, polyline)
polylineStart (self, x, y)
populate (self)
setDimensionVariable (self, dimension, varName)
setParameterManager (self, pm)
setPointPosition (self, point, position)
split (self, curvePoint, breakPoint)
trim (self, x, y)
update (self)
Method Details¶
- addArc3Points(self, start, end, third)¶
 
Adds an arc by defining three points.
- param start
 The start point of the arc.
- type start
 Point | tuple[float, float]
- param end
 The end point of the arc.
- type end
 Point | tuple[float, float]
- param third
 An another point of the arc.
- type third
 Point | tuple[float, float]
- returns
 The new arc.
- rtype
 Circle
- addArcCenter2Points(self, center, point1, point2, ccw=True)¶
 
Adds an Arc defined by its center and its endpoints.
- param center
 The center of the arc.
- type center
 Point | tuple[float, float]
- param point1
 The point of the circle.
- type point1
 Point | tuple[float, float]
- param point2
 The point of the circle.
- type point2
 Point | tuple[float, float]
- param ccw
 Determines whether to use counter clockwise direction from point1 to point2 or not.
- type ccw
 bool
- returns
 The new arc.
- rtype
 Circle
- addArcTangentTo(self, tangentTo, start, end, bInvertTangent=False)¶
 
Adds an arc, starting tangent to a curve on a start point and ending on a defined point.
- param tangentTo
 The item to be tangent to.
- type tangentTo
 InterfaceItem
- param start
 The point where the arc starts.
- type start
 Point | tuple[float, float]
- param end
 The end point of the arc.
- type end
 Point | tuple[float, float]
- param bInvertTangent
 Determines whether to construct the arc with inverted tangent.
- type bInvertTangent
 bool
- returns
 The new arc.
- rtype
 Circle
- addBoundedEllipse(self, center, majorAxisPoint, minorAxisPoint, start, end, bCounterClockWise=False)¶
 
Adds an ellipse defined by center, two points that define an axis and start and end points.
- param center
 The center of the ellipse.
- type center
 tuple[float, float]
- param majorAxisPoint
 The start point defining the major axis.
- type majorAxisPoint
 tuple[float, float]
- param minorAxisPoint
 The end point defining the major axis.
- type minorAxisPoint
 tuple[float, float]
- param start
 The start point of the ellipse.
- type start
 tuple[float, float]
- param end
 The end point of the ellipse.
- type end
 tuple[float, float]
- param bCounterClockWise
 Determines whether to use counter clockwise direction from start to end or not.
- type bCounterClockWise
 bool
- returns
 The new ellipse.
- rtype
 Ellipse
- addCircle2Points(self, point1, point2)¶
 
Adds a circle defined by the 2 endpoints of a diameter.
- param point1
 The endpoint of the diameter.
- type point1
 Point | tuple[float, float]
- param point2
 The endpoint of the diameter.
- type point2
 Point | tuple[float, float]
- returns
 The new circle.
- rtype
 Circle
- addCircle3Points(self, point1, point2, point3)¶
 
Adds a circle defined by three points.
- param point1
 The point of the circle.
- type point1
 Point | tuple[float, float]
- param point2
 The point of the circle.
- type point2
 Point | tuple[float, float]
- param point3
 The point of the circle.
- type point3
 Point | tuple[float, float]
- returns
 The new circle.
- rtype
 Circle
- addCircleCenterPoint(self, center, point)¶
 
Adds a circle defined by its center and one point.
- param center
 The center of the circle.
- type center
 Point | tuple[float, float]
- param point
 The point of the circle.
- type point
 Point | tuple[float, float]
- returns
 The new circle.
- rtype
 Circle
- addCircleCenterRadius(self, center, radius)¶
 
Adds a circle defined by its center and radius.
- param center
 The center of the circle.
- type center
 Point | tuple[float, float]
- param radius
 The radius of the circle.
- type radius
 float
- returns
 The new circle.
- rtype
 Circle
- addConstraint(self, constraint, item1=None, item2=None)¶
 
Adds a constraint for one or two items.
- param constraint
 The constraint.
- type constraint
 enum
- param item1
 The item to hold the constraint.
- type item1
 InterfaceItem
- param item2
 The item to hold the constraint.
- type item2
 InterfaceItem
- returns
 The new constraint.
- rtype
 Constraint
- addDimension(self, dimension, value=None, item1=None, item2=None)¶
 
Defines constrain the dimensions of a sketch.
- param dimension
 The type of dimension.
- type dimension
 enum
- param value
 The value of the dimension.
- param item1
 The item to hold the constraint.
- type item1
 InterfaceItem
- param item2
 The item to hold the constraint.
- type item2
 InterfaceItem
- returns
 The new dimension.
- rtype
 Dimension
- addEllipse(self, center, verticalAxis, majorRadius, minorRadius)¶
 
Adds an ellipse defined by center, vertical axis and radius.
- param center
 The center of the ellipse.
- type center
 Point | tuple[float, float]
- param verticalAxis
 The verical axis of the ellipse.
- type verticalAxis
 Point | tuple[float, float]
- param majorRadius
 The major radius of the ellipse.
- type majorRadius
 float
- param minorRadius
 The minor radius of the ellipse.
- type minorRadius
 float
- returns
 The new ellipse.
- rtype
 Ellipse
- addLine(self, point, direction)¶
 
Adds a line with the specified direction, that goes through a point.
- param point
 The point of the line.
- type point
 Point | tuple[float, float]
- param direction
 The direction of the line.
- type direction
 tuple[float, float]
- returns
 The new line.
- rtype
 Line
- addLineSegment(self, point1, point2)¶
 
Adds a line segment defined by two endpoints.
- param point1
 The endpoint of the line.
- type point1
 Point | tuple[float, float]
- param point2
 The endpoint of the line.
- type point2
 Point | tuple[float, float]
- returns
 The new line segment.
- rtype
 Line
- addParallelogram(self, lowerLeft, lowerRight, upperRight)¶
 
Adds a parallelogram defined 3 vertex.
- param lowerLeft
 The lower left point of of the parallelogram.
- type lowerLeft
 tuple[float, float]
- param lowerRight
 The lower right point of of the parallelogram.
- type lowerRight
 tuple[float, float]
- param upperRight
 The lower right point of of the parallelogram.
- type upperRight
 tuple[float, float]
- returns
 The points and lines of the parallelogram.
- rtype
 tuple[list[Points], list[Lines]]
- addPoint(self, x, y)¶
 
Adds a Point to the Sketch at defined position.
- param x
 The x coordinate of the point.
- type x
 float
- param y
 The y coordinate of the point.
- type y
 float
- returns
 The new Point.
- rtype
 Point
- addPolyline(self, points)¶
 
Adds a Polyline of line segments that go through the specified points.
- param points (list[tuple[float
 The points of the polyline.
- param float]]
 The points of the polyline.
- returns
 The new created polyline.
- rtype
 Polyline
- addRectangle2Vertex(self, vertex1, vertex2)¶
 
Adds a rectangle aligned with sketch axis defined by two vertex.
- param vertex1
 A vertex of the rectangle.
- type vertex1
 tuple[float, float]
- param vertex2
 A vertex of the rectangle.
- type vertex2
 tuple[float, float]
- returns
 The points and lines of the rectangle.
- rtype
 tuple[list[Points], list[Lines]]
- addRectangle3Vertex(self, lowerLeft, lowerRight, upperRight)¶
 
Adds a rectangle defined by three vertex.
- param lowerLeft
 The lower left point of the rectangle.
- type lowerLeft
 tuple[float, float]
- param lowerRight
 The lower right point of the rectangle.
- type lowerRight
 tuple[float, float]
- param upperRight
 The upper right point of the rectangle.
- type upperRight
 tuple[float, float]
- returns
 The points and lines of the rectangle.
- rtype
 tuple[list[Points], list[Lines]]
- addRectangleCenter2Points(self, center, lengthPoint, widthPoint)¶
 
Adds a rectangle defined by center and two vertex.
- param center
 The center of the rectangle.
- type center
 tuple[float, float]
- param lengthPoint
 A vertex of the rectangle.
- type lengthPoint
 tuple[float, float]
- param widthPoint
 A vertex of the rectangle.
- type widthPoint
 tuple[float, float]
- returns
 The points and lines of the rectangle.
- rtype
 tuple[list[Points], list[Lines]]
- addRectangleCenterVertex(self, center, vertex)¶
 
Adds a rectangle aligned with sketch axis defined by center and one vertex.
- param center
 The center of the rectangle.
- type center
 tuple[float, float]
- param vertex
 A vertex of the rectangle.
- type vertex
 tuple[float, float]
- returns
 The points and lines of the rectangle.
- rtype
 tuple[list[Points], list[Lines]]
- addRegularPolygon(self, center, point, numSides, beMidPoint=False)¶
 
Adds a regular polygon defined by center, one vertex and the number of sides.
- param center
 The center of the regular polygon.
- type center
 tuple[float, float]
- param point
 A vertex of the regular polygon.
- type point
 tuple[float, float]
- param numSides
 The number of sides.
- type numSides
 int
- param beMidPoint
 - type beMidPoint
 bool
- returns
 The points and lines of the rectangle.
- rtype
 tuple[list[Points], list[Lines]]
- addSpline(self, points, degree=3, periodic=False, interpolated=False)¶
 
Adds a spline based on a list of points.
- param points
 The points of the spline.
- type points
 list[tuple[float, float]]| list[Point]
- param degree
 The degree.
- type degree
 int
- param periodic
 Determines whether it is periodic.
- type periodic
 bool
- param interpolated
 Determines whether it should get interpolated.
- type interpolated
 bool
- returns
 The new spline.
- rtype
 Spline
- deleteItem(self, item)¶
 
Removes an item from the sketch.
- param item
 The item to be removed.
- type item
 InterfaceItem
- returns
 True if the item has been successfully removed, False otherwise.
- rtype
 bool
- evaluate(self)¶
 
Recalculates sketch items according to constraints.
- extend(self, curvePoint, limitPoint)¶
 
Extend or shorten an entity of a sketch curve.
- param curvePoint
 The point of the curve to extend.
- type curvePoint
 tuple[float, float]
- param limitPoint
 The point of the limit curve.
- type limitPoint
 tuple[float, float]
- returns
 True on success, False otherwise.
- rtype
 bool
- fillet(self, vertices, radius=0)¶
 
Fillet a list of vertices with the specified radius.
- param vertices
 The vertices to be filleted.
- type vertices
 list[Points],
- param radius
 The fillet radius.
- type radius
 float
- returns
 True on success, False otherwise.
- rtype
 bool
- findCircle(self, uid)¶
 
Returns the Circle with the specified id.
- findConstraint(self, uid)¶
 
Returns the Constraint with the specified id.
- findEllipse(self, uid)¶
 
Returns the Ellipse with the specified id.
- findItem(self, uid)¶
 
Returns the InterfaceItem with the specified id.
- findLine(self, uid)¶
 
Returns the Line with the specified id.
- findPoint(self, uid)¶
 
Returns the Point with the specified id.
- findSpline(self, uid)¶
 
Returns the Spline with the specified id.
- getCircleCenter(self, circle)¶
 
Returns the circle center.
- getCircleRadius(self, circle)¶
 
Returns the circle radius.
- getDimensionVariableName(self, dimension)¶
 
Gets the variable of a dimension.
- param dimension
 The dimension.
- type dimension
 Constraint
- returns
 The name of the variable.
- rtype
 str
- getEndPoints(self, item)¶
 
Returns the item endpoints as a PointVector.
- getItemStatus(self, item)¶
 
Returns the status of item according the ITEM_STATUS enum.
- getLineDirection(self, line)¶
 
Returns the line direction.
- getLinePosition(self, line)¶
 
Returns the line position.
- getPointPosition(self, point)¶
 
Returns the point position.
- hasCircle(self, uid)¶
 
Returns True if sketch contains a Point with the specified id, False otherwise.
- hasConstraint(self, uid)¶
 
Returns True if sketch contains a Point with the specified id, False otherwise.
- hasEllipse(self, uid)¶
 
Returns True if sketch contains a Point with the specified id.
- hasItem(self, uid)¶
 
Returns True if sketch contains a Point with the specified id, False otherwise.
- hasLine(self, uid)¶
 
Returns True if sketch contains a Point with the specified id, False otherwise.
- hasPoint(self, uid)¶
 
Returns True if sketch contains a Point with the specified id, False otherwise.
- hasSpline(self, uid)¶
 
Returns True if sketch contains a Point with the specified id, False otherwise.
- isBounded(self, item)¶
 
Returns True if the item is bounded, False otherwise.
- mirror(self, curves, mirrorLine)¶
 
Creates symmetric copies of selected sketch curves across a selected centerline.
By default, there is a parent-child relationship between source curves and their symmetric copies.
- param vertices
 The curves to be mirrored.
- type vertices
 list[InterfaceItem]
- param mirrorLine
 The mirror line.
- type mirrorLine
 Line
- returns
 True if all items have been mirrored, False otherwise.
- rtype
 bool
- offset(self, point, distance)¶
 
Creates a copy of a sketch curve at a specified distance from the source curve.
- param point
 - type point
 tuple[float, float]
- param distance
 - type distance
 float
- returns
 True on success, False otherwise.
- rtype
 bool
- parameterManager(self)¶
 
Return the Parameter Manager for this sketch
- polylineAddArcTo(self, polyline, arcTo, direction)¶
 
Adds an arc from the polyline last point to the specified Point.
- param polyline
 The polyline that is being constructed.
- type polyline
 Polyline
- param arcTo
 The position of the endpoint of the new arc.
- type arcTo
 tuple[float, float]
- param direction
 The initial direction of the arc.
- type direction
 enum
- returns
 True if the arc was successfully added to the polyline, False otherwise.
- rtype
 bool
- polylineAddLineTo(self, polyline, pointTo)¶
 
Adds a line segment from the polyline last point to the specified Point.
- param polyline
 The polyline that is being constructed.
- type polyline
 Polyline
- param pointTo
 The position of the endpoint of the new line.
- type pointTo
 tuple[float, float]
- returns
 True if the arc was successfully added to the polyline, False otherwise.
- rtype
 bool
- polylineEnd(self, polyline)¶
 
Finishs the construction of the polyline.
- param polyline
 The polyline that is being constructed.
- type polyline
 Polyline
- returns
 The points and lines of the polyline.
- rtype
 tuple[list[Points], list[Lines]]
- polylineStart(self, x, y)¶
 
Starts the creation of a polyline on a specified Point.
- param x
 The x coordinate of the first point.
- type x
 float
- param y
 The y coordinate of the first point.
- type y
 float
- returns
 The new created polyline.
- rtype
 Polyline
- populate(self)¶
 
Redraws the sketch if required.
- setDimensionVariable(self, dimension, varName)¶
 
Sets a variable as value for a dimension.
- param dimension
 The dimension.
- type dimension
 Constraint
- param varName
 The name of the variable.
- type varName
 str
- setParameterManager(self, pm)¶
 
Set the Parameter Manager to use for this sketch
- setPointPosition(self, point, position)¶
 
Set a Point position.
- param point
 The point.
- type point
 Point
- param position
 The new position of the point.
- type position
 tuple[float, float]
- returns
 True if the new position was successfully set, False otherwise.
- rtype
 bool
- split(self, curvePoint, breakPoint)¶
 
Split a curve in two at a defined break point.
- param curvePoint
 The point of the curve to be splitted.
- type curvePoint
 tuple[float, float]
- param breakPoint
 The point of break.
- type breakPoint
 tuple[float, float]
- returns
 True on success, False otherwise.
- rtype
 bool
- trim(self, x, y)¶
 
Removes one or more geometric entities below the (x, y) coordinates of the sketch curve.
- param x
 The x coordinate.
- type x
 float
- param y
 The y coordinate.
- type y
 float
- returns
 True if a geometric entity was trimmed, False otherwise.
- rtype
 bool
- update(self)¶
 
Evaluates and populates the sketch.