Represents a sketch object 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. 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. 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. 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. Delete all the geometry objects from the sketch, except external geometry. deleteAllGeometry() Delete all the constraints from the sketch. deleteAllConstraints() Toggles a geometry between regular and construction. toggleConstruction(geoId:int) Args: geoId: The zero-based index of the geometry to toggle. 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. 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. 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. Delete a constraint from the sketch. delConstraint(constraintIndex:int) Args: constraintIndex: The zero-based index of the constraint to delete. 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. 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. 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". Add a link to an external geometry. addExternal(objName:str, subName:str) 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". Delete an external geometry link from the sketch. delExternal(extGeoId:int) Args: extGeoId: The zero-based index of the external geometry to remove. 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. 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. 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. 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. 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. Moves all datum constraints to the end of the constraint list. moveDatumsToEnd() Warning: This method reorders the constraint indices. Previously hold numeric references to constraints may reference different constraints after this operation. 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. Toggle the Driving status of a datum constraint. toggleDriving(constraintIndex:int) Args: constraintIndex: The zero-based index of the constraint to toggle. set the VirtualSpace status of a constraint Get the VirtualSpace status of a constraint toggle the VirtualSpace status of a constraint 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. 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. Toggle the constraint between active (enforced) and inactive. toggleActive(constraintIndex:int) Args: constraintIndex: The zero-based index of the constraint to toggle. 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. 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. 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. 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. movePoint(GeoIndex,PointPos,Vector,[relative]) - move a given point (or curve) to another location. It moves the specified point (or curve) to the given location by adding some temporary weak constraints and solve 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. getPoint(GeoIndex,PointPos) - retrieve the vector of a point in the sketch (geoId, posId) = getGeoVertexIndex(index) - retrieve the GeoId and PosId of a point in the sketch return an axis based on the corresponding construction line create fillet between two edges or at a point trim a curve with a given id at a given reference point extend a curve to new start and end positions split a curve with a given id at a given reference point join two curves at the given end points add a symmetric geometric objects to the sketch with respect to a reference point or line add a copy of geometric objects to the sketch displaced by a vector3d Moves the geometric objects in the sketch displaced by a vector3d 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 modifies constraints so that the shape is not forced to be aligned with axes. Deprecated -- use exposeInternalGeometry Deprecated -- use deleteUnusedInternalGeometry Exposes all internal geometry of an object supporting internal geometry Deletes all unused (not further constrained) internal geometry Approximates the given geometry with a B-Spline Increases the given BSpline Degree by a number of degrees Decreases the given BSpline Degree by a number of degrees by approximating this curve Increases or reduces the given BSpline knot multiplicity 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. 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. isPointOnObject(GeoIdCurve, float x, float y) - 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. Returns boolean value. 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). 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. 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. Automatic sketch constraining algorithm. 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. Analyses the already detected Missing Point On Point Constraints to detect endpoint tagency/perpendicular. The result may be retrieved or applied using the corresponding Get / Make methods. 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. 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. 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. Applies the detected / set Vertical/Horizontal constraints. If the argument is True, then solving and redundant removal is done after each individual addition. Applies the detected / set Equality constraints. If the argument is True, then solving and redundant removal is done after each individual addition. Removes constraints currently detected as redundant by the solver. If the argument is True, then the geometry is updated after solving. Prints the commands that should be executed to recreate the Geometry and Constraints of the present sketch (excluding any External Geometry). returns a list of (First FirstPos Second SecondPos Type) tuples with all the detected endpoint constraints. returns a list of (First FirstPos Second SecondPos Type) tuples with all the detected vertical/horizontal constraints. returns a list of (First FirstPos Second SecondPos) tuples with all the detected line segment equality constraints. returns a list of (First FirstPos Second SecondPos) tuples with all the detected radius constraints. returns a list of vertices positions. Number of Constraints in this sketch Number of geometric objects in this sketch Return the number of construction lines in the sketch which can be used as axes Return a list of GeometryFacade objects corresponding to the PropertyGeometryList Return the DoFs of the current solved sketch Return a list of integers indicating the constraints detected as conflicting Return a list of integers indicating the constraints detected as redundant Return a list of integers indicating the constraints detected as partially redundant Return a list of integers indicating the constraints detected as malformed sets the GeometryId of the SketchGeometryExtension of the geometry with the provided GeoId gets the GeometryId of the SketchGeometryExtension of the geometry with the provided GeoId