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.