| |
|
|
| from __future__ import annotations |
|
|
| from Base.Metadata import export, constmethod, no_args |
| from Base.Quantity import Quantity |
| from Base.Vector import Vector |
| from Base.Axis import Axis |
| from Part.App.Part2DObject import Part2DObject |
| from Part.App.Geometry import Geometry |
| from Sketcher.App.Constraint import Constraint |
| from typing import List, Tuple, Union, Final, overload |
|
|
| @export( |
| Include="Mod/Sketcher/App/SketchObject.h", |
| FatherInclude="Mod/Part/App/Part2DObjectPy.h", |
| ) |
| class SketchObject(Part2DObject): |
| """ |
| Represents a sketch object |
| |
| Author: Juergen Riegel |
| Licence: LGPL |
| """ |
|
|
| MissingPointOnPointConstraints: List = ... |
| """Returns a list of (First FirstPos Second SecondPos Type) tuples with all the detected endpoint constraints.""" |
|
|
| MissingVerticalHorizontalConstraints: List = ... |
| """Returns a list of (First FirstPos Second SecondPos Type) tuples with all the detected vertical/horizontal constraints.""" |
|
|
| MissingLineEqualityConstraints: List = ... |
| """Returns a list of (First FirstPos Second SecondPos) tuples with all the detected line segment equality constraints.""" |
|
|
| MissingRadiusConstraints: List = ... |
| """Returns a list of (First FirstPos Second SecondPos) tuples with all the detected radius constraints.""" |
|
|
| OpenVertices: Final[List] = ... |
| """Returns a list of vertices positions.""" |
|
|
| ConstraintCount: Final[int] = ... |
| """Number of Constraints in this sketch""" |
|
|
| GeometryCount: Final[int] = ... |
| """Number of geometric objects in this sketch""" |
|
|
| AxisCount: Final[int] = ... |
| """Return the number of construction lines in the sketch which can be used as axes""" |
|
|
| GeometryFacadeList: List = ... |
| """Return a list of GeometryFacade objects corresponding to the PropertyGeometryList""" |
|
|
| DoF: Final[int] = ... |
| """Return the DoFs of the current solved sketch""" |
|
|
| ConflictingConstraints: Final[List] = ... |
| """Return a list of integers indicating the constraints detected as conflicting""" |
|
|
| RedundantConstraints: Final[List] = ... |
| """Return a list of integers indicating the constraints detected as redundant""" |
|
|
| PartiallyRedundantConstraints: Final[List] = ... |
| """Return a list of integers indicating the constraints detected as partially redundant""" |
|
|
| MalformedConstraints: Final[List] = ... |
| """Return a list of integers indicating the constraints detected as malformed""" |
|
|
| def solve(self) -> int: |
| """ |
| Solve the sketch and update the geometry. |
| |
| solve() |
| |
| Returns: |
| 0 in case of success, otherwise the following codes in this order of |
| priority: |
| -4 if over-constrained, |
| -3 if conflicting constraints, |
| -5 if malformed constraints |
| -1 if solver error, |
| -2 if redundant constraints. |
| """ |
| ... |
|
|
| @overload |
| def addGeometry(self, geo: Geometry, isConstruction: bool = False, /) -> int: ... |
| @overload |
| def addGeometry( |
| self, geo: List[Geometry], isConstruction: bool = False, / |
| ) -> Tuple[int, ...]: ... |
| def addGeometry( |
| self, geo: Union[Geometry, List[Geometry]], isConstruction: bool = False, / |
| ) -> Union[int, Tuple[int, ...]]: |
| """ |
| Add geometric objects to the sketch. |
| |
| addGeometry(geo:Geometry, isConstruction=False) -> int |
| Add a single geometric object to the sketch. |
| |
| Args: |
| geo: The geometry to add. e.g. a Part.LineSegement |
| isConstruction: Whether the added geometry is a "construction geometry". |
| Defaults to `False`, i.e. by omitting, a regular geometry is added. |
| |
| Returns: |
| The zero-based index of the newly added geometry. |
| |
| addGeometry(geo:List(Geometry), isConstruction=False) -> Tuple(int) |
| Add many geometric objects to the sketch. |
| |
| Args: |
| geo: The geometry to add. |
| isConstruction: see above. |
| |
| Returns: |
| A tuple of zero-based indices of all newly added geometry. |
| """ |
| ... |
|
|
| def delGeometry(self, geoId: int, noSolve: bool, /) -> None: |
| """ |
| Delete a geometric object from the sketch. |
| |
| delGeometry(geoId:int) |
| |
| Args: |
| geoId: The zero-based index of the geometry to delete. |
| Any internal alignment geometry thereof will be deleted, too. |
| """ |
| ... |
|
|
| def delGeometries(self, geoIds: List[int], noSolve: bool, /) -> None: |
| """ |
| Delete a list of geometric objects from the sketch. |
| |
| delGeometries(geoIds:List(int)) |
| |
| Args: |
| geoId: A list of zero-based indices of the geometry to delete. |
| Any internal alignment geometry thereof will be deleted, too. |
| """ |
| ... |
|
|
| def deleteAllGeometry(self, noSolve: bool, /) -> None: |
| """ |
| Delete all the geometry objects from the sketch, except external geometry. |
| |
| deleteAllGeometry() |
| """ |
| ... |
|
|
| def detectDegeneratedGeometries(self, tolerance: float, /) -> int: |
| """ |
| Detect degenerated geometries. A curve geometry is considered degenerated |
| if the parameter range is less than the tolerance. |
| |
| detectDegeneratedGeometries(tolerance:float) |
| |
| Args: |
| tolerance: The tolerance to check the parameter range of a curve. |
| |
| Returns: |
| The number of degenerated geometries. |
| """ |
| ... |
|
|
| def removeDegeneratedGeometries(self, tolerance: float, /) -> int: |
| """ |
| Remove degenerated geometries. A curve geometry is considered degenerated |
| if the parameter range is less than the tolerance. |
| |
| removeDegeneratedGeometries(tolerance:float) |
| |
| Args: |
| tolerance: The tolerance to check the parameter range of a curve. |
| |
| Returns: |
| The number of degenerated geometries. |
| """ |
| ... |
|
|
| def deleteAllConstraints(self) -> None: |
| """ |
| Delete all the constraints from the sketch. |
| |
| deleteAllConstraints() |
| """ |
| ... |
|
|
| def toggleConstruction(self, geoId: int, /) -> None: |
| """ |
| Toggles a geometry between regular and construction. |
| |
| toggleConstruction(geoId:int) |
| |
| Args: |
| geoId: The zero-based index of the geometry to toggle. |
| """ |
| ... |
|
|
| def setConstruction(self, geoId: int, state: bool, /) -> None: |
| """ |
| Set construction mode of a geometry. |
| |
| setConstruction(geoId:int, state:bool) |
| |
| Args: |
| geoId: The zero-based index of the geometry to configure. |
| state: `True` configures the geometry to "construction geometry", |
| `False` configures it to regular geometry. |
| """ |
| ... |
|
|
| def getConstruction(self, geoId: int, /) -> bool: |
| """ |
| Determine whether the given geometry is a "construction geometry". |
| |
| getConstruction(geoId:int) |
| |
| Args: |
| geoId: The zero-based index of the geometry to query. |
| |
| Returns: |
| `True` if the geometry is "construction geometry" and |
| `False` if it s a regular geometry. |
| """ |
| ... |
|
|
| @overload |
| def addConstraint(self, constraint: Constraint, /) -> int: ... |
| @overload |
| def addConstraint(self, constraints: List[Constraint], /) -> Tuple[int, ...]: ... |
| def addConstraint( |
| self, constraint: Union[Constraint, List[Constraint]], / |
| ) -> Union[int, Tuple[int, ...]]: |
| """ |
| Add constraints to the sketch. |
| |
| addConstraint(constraint:Constraint) -> int |
| Add a single constraint to the sketch and solves it. |
| |
| Returns: |
| The zero-based index of the newly added constraint. |
| |
| addConstraint(constraints:List(Constraint)) -> Tuple(int) |
| Add many constraints to the sketch without solving. |
| |
| Returns: |
| A tuple of zero-based indices of all newly added constraints. |
| """ |
| ... |
|
|
| def delConstraint(self, constraintIndex: int, noSolve: bool, /) -> None: |
| """ |
| Delete a constraint from the sketch. |
| |
| delConstraint(constraintIndex:int) |
| |
| Args: |
| constraintIndex: The zero-based index of the constraint to delete. |
| """ |
| ... |
|
|
| def delConstraints( |
| self, constraintIndices: List[int], updateGeometry: bool, noSolve: bool, / |
| ) -> None: |
| """ |
| Delete multiple constraints from a sketch |
| |
| delConstraints(constraintIndices: List[int], updateGeometry: bool) |
| |
| Args: |
| constraintIndices: The zero-based indices of the constraints to delete |
| updateGeometry: Whether to update the geometry after solve |
| """ |
| ... |
|
|
| def renameConstraint(self, constraintIndex: int, name: str, /) -> None: |
| """ |
| Rename a constraint in the sketch. |
| |
| renameConstraint(constraintIndex:int, name:str) |
| |
| Args: |
| constraintIndex: The zero-based index of the constraint to rename. |
| name: The new name for the constraint. |
| An empty string makes the constraint "unnamed" again. |
| """ |
| ... |
|
|
| @constmethod |
| def getIndexByName(self, name: str, /) -> int: |
| """ |
| Get the index of a constraint by name. |
| |
| getIndexByName(name:str) |
| |
| Args: |
| name: The name for the constraint to look up. |
| If there is no such constraint an exception is raised. |
| """ |
| ... |
|
|
| def setAllowUnaligned(self, state: bool, /) -> None: |
| """ |
| Set whether unaligned geometry is allowed in the sketch. |
| |
| setAllowUnaligned(state:bool) |
| |
| Args: |
| state: `True` allows unaligned geometry, |
| `False` enforces aligned geometry. |
| """ |
| ... |
|
|
| def carbonCopy(self, objName: str, asConstruction: bool = True, /) -> None: |
| """ |
| Copy another sketch's geometry and constraints into this sketch. |
| |
| carbonCopy(objName:str, asConstruction=True) |
| |
| Args: |
| ObjName: The name of the sketch object to copy from. |
| asConstruction: Whether to copy the geometry as "construction geometry". |
| """ |
| ... |
|
|
| def addExternal( |
| self, objName: str, subName: str, defining: bool = False, intersection: bool = False, / |
| ) -> None: |
| """ |
| Add a link to an external geometry. |
| |
| addExternal(objName:str, subName:str, defining:bool=False, intersection:bool=False) |
| |
| Args: |
| objName: The name of the document object to reference. |
| subName: The name of the sub-element of the object's shape to link as |
| "external geometry". |
| defining: Should the external edges be defining or construction? |
| intersection: Should the external edges be projections or intersections? |
| """ |
| ... |
|
|
| def delExternal(self, extGeoId: int, /) -> None: |
| """ |
| Delete an external geometry link from the sketch. |
| |
| delExternal(extGeoId:int) |
| |
| Args: |
| extGeoId: The zero-based index of the external geometry to remove. |
| """ |
| ... |
|
|
| @overload |
| def delConstraintOnPoint(self, vertexId: int, /) -> None: ... |
| @overload |
| def delConstraintOnPoint(self, geoId: int, pointPos: int, /) -> None: ... |
| def delConstraintOnPoint(self, *args: int) -> None: |
| """ |
| Delete coincident constraints associated with a sketch point. |
| |
| delConstraintOnPoint(vertexId:int) |
| |
| Args: |
| vertexId: A zero-based index of the shape's vertices. |
| |
| delConstraintOnPoint(geoId:int, pointPos:int) |
| |
| Args: |
| geoId: The zero-based index of the geometry that contains the point. |
| pointPos: Enum denoting which point on the geometry is meant: |
| 1: the start of a line or bounded curve. |
| 2: the end of a line or bounded curve. |
| 3: the center of a circle or ellipse. |
| """ |
| ... |
|
|
| @no_args |
| def delConstraintsToExternal(self) -> None: |
| """ |
| Deletes all constraints referencing an external geometry. |
| """ |
| ... |
|
|
| def setDatum(self, constraint: Union[int, str], value: Union[float, Quantity], /) -> None: |
| """ |
| Set the value of a datum constraint (e.g. Distance or Angle) |
| |
| setDatum(constraint, value) |
| |
| Args: |
| constraint (int or str): The index or name of the constraint to set. |
| value (float or Quantity): The value to set for the constraint. When |
| using floats, values for linear dimensions are interpreted as |
| millimeter, angular ones as radians. |
| """ |
| ... |
|
|
| @constmethod |
| def getDatum(self, constraint: Union[int, str], /) -> Quantity: |
| """ |
| Get the value of a datum constraint (e.g. Distance or Angle) |
| |
| getDatum(constraint) -> Quantity |
| |
| Args: |
| constraint (int or str): The index or name of the constraint to query. |
| |
| Returns: |
| The value of the constraint. |
| """ |
| ... |
|
|
| def setDriving(self, constraintIndex: int, state: bool, /) -> None: |
| """ |
| Set the Driving status of a datum constraint. |
| |
| setDriving(constraintIndex:int, state:bool) |
| |
| Args: |
| constraintIndex: The zero-based index of the constraint to configure. |
| state: `True` sets the constraint to driving, |
| `False` configures it as non-driving, i.e. reference. |
| """ |
| ... |
|
|
| def setDatumsDriving(self, state: bool, /) -> None: |
| """ |
| Set the Driving status of all datum constraints. |
| |
| setDatumsDriving(state:bool) |
| |
| Args: |
| state: `True` set all datum constraints to driving, |
| `False` configures them as non-driving, i.e. reference. |
| """ |
| ... |
|
|
| def moveDatumsToEnd(self) -> None: |
| """ |
| Moves all datum constraints to the end of the constraint list. |
| |
| moveDatumsToEnd() |
| |
| Warning: This method reorders the constraint indices. Previously held |
| numeric references to constraints may reference different constraints |
| after this operation. |
| """ |
| ... |
|
|
| @constmethod |
| def getDriving(self, constraintIndex: int, /) -> bool: |
| """ |
| Get the Driving status of a datum constraint. |
| |
| getDriving(constraintIndex:int) |
| |
| Args: |
| constraintIndex: The zero-based index of the constraint to query. |
| |
| Returns: |
| `True` if the constraint is driving, |
| `False` if it is non-driving, i.e. reference. |
| """ |
| ... |
|
|
| def toggleDriving(self, constraintIndex: int, /) -> None: |
| """ |
| Toggle the Driving status of a datum constraint. |
| |
| toggleDriving(constraintIndex:int) |
| |
| Args: |
| constraintIndex: The zero-based index of the constraint to toggle. |
| """ |
| ... |
|
|
| def setVirtualSpace(self) -> None: |
| """ |
| Set the VirtualSpace status of a constraint |
| """ |
| ... |
|
|
| def setVisibility(self) -> None: |
| """ |
| Set the visibility of a constraint |
| """ |
| ... |
|
|
| def getVirtualSpace(self) -> bool: |
| """ |
| Get the VirtualSpace status of a constraint |
| """ |
| ... |
|
|
| def toggleVirtualSpace(self) -> None: |
| """ |
| Toggle the VirtualSpace status of a constraint |
| """ |
| ... |
|
|
| def setActive(self, constraintIndex: int, state: bool, /) -> None: |
| """ |
| Activates or deactivates a constraint (enforce it or not). |
| |
| setActive(constraintIndex:int, state:bool) |
| |
| Args: |
| constraintIndex: The zero-based index of the constraint to configure. |
| state: `True` sets the constraint to active i.e. enforced, |
| `False` configures it as inactive, i.e. not enforced. |
| """ |
| ... |
|
|
| @constmethod |
| def getActive(self, constraintIndex: int, /) -> bool: |
| """ |
| Get whether a constraint is active, i.e. enforced, or not. |
| |
| getActive(constraintIndex:int) |
| |
| Args: |
| constraintIndex: The zero-based index of the constraint to query. |
| |
| Returns: |
| `True` if the constraint is active, i.e. enforced, |
| `False` if it is inactive, i.e. not enforced. |
| """ |
| ... |
|
|
| def toggleActive(self, constraintIndex: int, /) -> None: |
| """ |
| Toggle the constraint between active (enforced) and inactive. |
| |
| toggleActive(constraintIndex:int) |
| |
| Args: |
| constraintIndex: The zero-based index of the constraint to toggle. |
| """ |
| ... |
|
|
| @constmethod |
| def getLabelPosition(self, constraintIndex: int, /) -> float: |
| """ |
| Get label position of the constraint. |
| |
| getLabelPosition(constraintIndex:int) |
| |
| Args: |
| constraintIndex: The zero-based index of the constraint to query. |
| |
| Returns: |
| float with the current value. |
| """ |
| ... |
|
|
| def setLabelPosition(self, constraintIndex: int, value: float, /) -> None: |
| """ |
| Set label position of the constraint. |
| |
| setLabelPosition(constraintIndex:int, value:float) |
| |
| Args: |
| constraintIndex: The zero-based index of the constraint to query. |
| value: Value of the label position. |
| """ |
| ... |
|
|
| @constmethod |
| def getLabelDistance(self, constraintIndex: int, /) -> float: |
| """ |
| Get label distance of the constraint. |
| |
| getLabelDistance(constraintIndex:int) |
| |
| Args: |
| constraintIndex: The zero-based index of the constraint to query. |
| |
| Returns: |
| float with the current value. |
| """ |
| ... |
|
|
| def setLabelDistance(self, constraintIndex: int, value: float, /) -> None: |
| """ |
| Set label distance of the constraint. |
| |
| setLabelDistance(constraintIndex:int, value:float) |
| |
| Args: |
| constraintIndex: The zero-based index of the constraint to query. |
| value: Value of the label position. |
| """ |
| ... |
|
|
| def moveGeometry( |
| self, GeoIndex: int, PointPos: int, Vector: Vector, relative: bool = False, / |
| ) -> None: |
| """ |
| Move a given point (or curve) to another location. |
| |
| moveGeometry(GeoIndex,PointPos,Vector,[relative]) |
| |
| It moves the specified point (or curve) to the given location by adding some |
| temporary weak constraints and solving the sketch. |
| This method is mostly used to allow the user to drag some portions of the sketch |
| in real time by e.g. the mouse and it works only for underconstrained portions of |
| the sketch. |
| The argument 'relative', if present, states if the new location is given |
| relatively to the current one. |
| """ |
| ... |
|
|
| def moveGeometries( |
| self, Geos: List[Tuple[int, int]], Vector: Vector, relative: bool = False, / |
| ) -> None: |
| """ |
| Move given points and curves to another location. |
| |
| moveGeometries(Geos,Vector,[relative]) |
| |
| It moves the specified points and curves to the given location by adding some |
| temporary weak constraints and solving the sketch. |
| This method is mostly used to allow the user to drag some portions of the sketch |
| in real time by e.g. the mouse and it works only for underconstrained portions of |
| the sketch. |
| The argument 'relative', if present, states if the new location is given |
| relatively to the current one. For group dragging this is enforced. |
| Geos is a vector of pairs of geoId and posId. |
| """ |
| ... |
|
|
| @constmethod |
| def getPoint(self, GeoIndex: int, PointPos: int, /) -> Vector: |
| """ |
| Retrieve the vector of a point in the sketch. |
| |
| getPoint(GeoIndex,PointPos) |
| """ |
| ... |
|
|
| @constmethod |
| def getGeoVertexIndex(self, index: int, /) -> Tuple[int, int]: |
| """ |
| Retrieve the GeoId and PosId of a point in the sketch. |
| |
| (geoId, posId) = getGeoVertexIndex(index) |
| """ |
| ... |
|
|
| @constmethod |
| def getAxis(self) -> Axis: |
| """ |
| Return an axis based on the corresponding construction line |
| """ |
| ... |
|
|
| def fillet(self) -> None: |
| """ |
| Create a fillet between two edges or at a point |
| """ |
| ... |
|
|
| def trim(self) -> None: |
| """ |
| Trim a curve with a given id at a given reference point |
| """ |
| ... |
|
|
| def extend(self) -> None: |
| """ |
| Extend a curve to new start and end positions |
| """ |
| ... |
|
|
| def split(self) -> None: |
| """ |
| Split a curve with a given id at a given reference point |
| """ |
| ... |
|
|
| def join(self) -> None: |
| """ |
| Join two curves at the given end points |
| """ |
| ... |
|
|
| def addSymmetric(self) -> None: |
| """ |
| Add symmetric geometric objects to the sketch with respect to a reference point or line |
| """ |
| ... |
|
|
| def addCopy(self) -> None: |
| """ |
| Add a copy of geometric objects to the sketch displaced by a vector3d |
| """ |
| ... |
|
|
| def addMove(self) -> None: |
| """ |
| Move the geometric objects in the sketch displaced by a vector3d |
| """ |
| ... |
|
|
| def addRectangularArray(self) -> None: |
| """ |
| Add an array of size cols by rows where each element is a copy of the selected geometric objects displaced by a vector3d in the cols direction and by a vector perpendicular to it in the rows direction |
| """ |
| ... |
|
|
| def removeAxesAlignment(self) -> None: |
| """ |
| Modifies constraints so that the shape is not forced to be aligned with axes. |
| """ |
| ... |
|
|
| def ExposeInternalGeometry(self) -> None: |
| """ |
| Deprecated -- use exposeInternalGeometry |
| """ |
| ... |
|
|
| def DeleteUnusedInternalGeometry(self) -> None: |
| """ |
| Deprecated -- use deleteUnusedInternalGeometry |
| """ |
| ... |
|
|
| def exposeInternalGeometry(self) -> None: |
| """ |
| Exposes all internal geometry of an object supporting internal geometry |
| """ |
| ... |
|
|
| def deleteUnusedInternalGeometry(self) -> None: |
| """ |
| Deletes all unused (not further constrained) internal geometry |
| """ |
| ... |
|
|
| def convertToNURBS(self) -> None: |
| """ |
| Approximates the given geometry with a B-spline |
| """ |
| ... |
|
|
| def increaseBSplineDegree(self) -> None: |
| """ |
| Increases the given B-spline Degree by a number of degrees |
| """ |
| ... |
|
|
| def decreaseBSplineDegree(self) -> None: |
| """ |
| Decreases the given B-spline Degree by a number of degrees by approximating this curve |
| """ |
| ... |
|
|
| def modifyBSplineKnotMultiplicity(self) -> None: |
| """ |
| Increases or reduces the given BSpline knot multiplicity |
| """ |
| ... |
|
|
| def insertBSplineKnot(self) -> None: |
| """ |
| Inserts a knot into the BSpline at the given param with given multiplicity. If the knot already exists, this increases the knot multiplicity by the given multiplicity. |
| """ |
| ... |
|
|
| def calculateAngleViaPoint(self, GeoId1: int, GeoId2: int, px: float, py: float, /) -> float: |
| """ |
| calculateAngleViaPoint(GeoId1, GeoId2, px, py) - calculates angle between |
| curves identified by GeoId1 and GeoId2 at point (x,y). The point must be |
| on intersection of the curves, otherwise the result may be useless (except |
| line-to-line, where (0,0) is OK). Returned value is in radians. |
| """ |
| ... |
|
|
| def isPointOnCurve(self, GeoIdCurve: int, x: float, y: float, /) -> bool: |
| """ |
| isPointOnCurve(GeoIdCurve, float x, float y) -> bool - tests if the point (x,y) |
| geometrically lies on a curve (e.g. ellipse). It treats lines as infinite, |
| arcs as full circles/ellipses/etc. |
| """ |
| ... |
|
|
| def calculateConstraintError(self, index: int, /) -> float: |
| """ |
| calculateConstraintError(index) - calculates the error function of the |
| constraint identified by its index and returns the signed error value. |
| The error value roughly corresponds to by how much the constraint is |
| violated. If the constraint internally has more than one error function, |
| the returned value is RMS of all errors (sign is lost in this case). |
| """ |
| ... |
|
|
| def changeConstraintsLocking(self, bLock: bool, /) -> None: |
| """ |
| changeConstraintsLocking(bLock) - locks or unlocks all tangent and |
| perpendicular constraints. (Constraint locking prevents it from |
| flipping to another valid configuration, when e.g. external geometry |
| is updated from outside.) The sketch solve is not triggered by the |
| function, but the SketchObject is touched (a recompute will be |
| necessary). The geometry should not be affected by the function. |
| |
| The bLock argument specifies, what to do. If true, all constraints |
| are unlocked and locked again. If false, all tangent and perp. |
| constraints are unlocked. |
| """ |
| ... |
|
|
| def getGeometryWithDependentParameters(self) -> List[Tuple[int, int]]: |
| """ |
| getGeometryWithDependentParameters - returns a list of geoid posid pairs |
| with all the geometry element edges and vertices which the solver regards |
| as being dependent on other parameters. |
| """ |
| ... |
|
|
| def autoconstraint(self) -> None: |
| """ |
| Automatic sketch constraining algorithm. |
| """ |
| ... |
|
|
| def detectMissingPointOnPointConstraints(self) -> None: |
| """ |
| Detects missing Point On Point Constraints. The detect step just identifies possible missing constraints. |
| The result may be retrieved or applied using the corresponding Get / Make methods. |
| """ |
| ... |
|
|
| def analyseMissingPointOnPointCoincident(self) -> None: |
| """ |
| Analyses the already detected missing Point On Point Constraints to detect endpoint tangency/perpendicular. |
| The result may be retrieved or applied using the corresponding Get / Make methods. |
| """ |
| ... |
|
|
| def detectMissingVerticalHorizontalConstraints(self) -> None: |
| """ |
| Detects missing Horizontal/Vertical Constraints. The detect step just identifies possible missing constraints. |
| The result may be retrieved or applied using the corresponding Get / Make methods. |
| """ |
| ... |
|
|
| def detectMissingEqualityConstraints(self) -> None: |
| """ |
| Detects missing Equality Constraints. The detect step just identifies possible missing constraints. |
| The result may be retrieved or applied using the corresponding Get / Make methods. |
| """ |
| ... |
|
|
| def makeMissingPointOnPointCoincident(self, arg: bool, /) -> None: |
| """ |
| Applies the detected / set Point On Point coincident constraints. If the argument is True, then solving and redundant removal is done after each individual addition. |
| """ |
| ... |
|
|
| def makeMissingVerticalHorizontal(self, arg: bool, /) -> None: |
| """ |
| Applies the detected / set Vertical/Horizontal constraints. If the argument is True, then solving and redundant removal is done after each individual addition. |
| """ |
| ... |
|
|
| def makeMissingEquality(self, arg: bool, /) -> None: |
| """ |
| Applies the detected / set Equality constraints. If the argument is True, then solving and redundant removal is done after each individual addition. |
| """ |
| ... |
|
|
| @constmethod |
| @no_args |
| def evaluateConstraints(self) -> bool: |
| """ |
| Check for constraints with invalid indexes. Returns True if invalid constraints are found, False otherwise. |
| """ |
| ... |
|
|
| @no_args |
| def validateConstraints(self) -> None: |
| """ |
| Removes constraints with invalid indexes. |
| """ |
| ... |
|
|
| def autoRemoveRedundants(self, arg: bool, /) -> None: |
| """ |
| Removes constraints currently detected as redundant by the solver. If the argument is True, then the geometry is updated after solving. |
| """ |
| ... |
|
|
| def toPythonCommands(self) -> None: |
| """ |
| Prints the commands that should be executed to recreate the Geometry and Constraints of the present sketch (excluding any External Geometry). |
| """ |
| ... |
|
|
| def setGeometryId(): |
| """ |
| Sets the GeometryId of the SketchGeometryExtension of the geometry with the provided GeoId |
| """ |
| ... |
|
|
| def setGeometryIds(GeoIdsToIds: List[Tuple[int, int]], /): |
| """ |
| Sets the GeometryId of the SketchGeometryExtension of the geometries with the provided GeoIds |
| Expects a list of pairs (GeoId, id) |
| """ |
|
|
| def getGeometryId(): |
| """ |
| Gets the GeometryId of the SketchGeometryExtension of the geometry with the provided GeoId |
| """ |
| ... |
|
|