MODULE Mod/Import/App/StepShape.pyi
classes:
class StepShape(PyObjectBase)
doc:
StepShape in Import
This class gives a interface to retrieve TopoShapes out of an loaded STEP file of any kind.
methods:
- def read(self) -> Any
doc:
Read a STEP file into memory and make it accessible
MODULE Mod/Measure/App/MeasureBase.pyi
classes:
class MeasureBase(DocumentObject)
doc:
User documentation here
MODULE Mod/Measure/App/Measurement.pyi
classes:
class Measurement(BaseClass)
doc:
Make a measurement
methods:
- def addReference3D(self) -> Any
doc:
add a geometric reference
- def has3DReferences(self) -> Any
doc:
does Measurement have links to 3D geometry
- def clear(self) -> Any
doc:
measure the difference between references to obtain resultant vector
- def delta(self) -> Any
doc:
measure the difference between references to obtain resultant vector
- def length(self) -> Any
doc:
measure the length of the references
- def volume(self) -> Any
doc:
measure the volume of the references
- def area(self) -> Any
doc:
measure the area of the references
- def lineLineDistance(self) -> Any
doc:
measure the line-Line Distance of the references. Returns 0 if references are not 2 lines.
- def planePlaneDistance(self) -> Any
doc:
measure the plane-plane distance of the references. Returns 0 if references are not 2 planes.
- def angle(self) -> Any
doc:
measure the angle between two edges
- def radius(self) -> Any
doc:
measure the radius of an arc or circle edge
- def com(self) -> Any
doc:
measure the center of mass for selected volumes
MODULE Mod/Measure/Gui/QuickMeasure.pyi
classes:
class QuickMeasure(PyObjectBase)
doc:
Selection Observer for the QuickMeasure label.
MODULE Mod/Mesh/App/Edge.pyi
classes:
class Edge(PyObjectBase)
doc:
Edge in mesh
This is an edge of a facet in a MeshObject. You can get it by e.g. iterating over the facets of a
mesh and calling getEdge(index).
attributes:
- Index: Final[int]
doc:
The index of this edge of the facet
- Points: Final[list]
doc:
A list of points of the edge
- PointIndices: Final[tuple]
doc:
The index tuple of point vertices of the mesh this edge is built of
- NeighbourIndices: Final[tuple]
doc:
The index tuple of neighbour facets of the mesh this edge is adjacent with
- Length: Final[float]
doc:
The length of the edge
- Bound: Final[bool]
doc:
Bound state of the edge
methods:
- def intersectWithEdge(self) -> Any
doc:
intersectWithEdge(Edge) -> list
Get a list of intersection points with another edge.
- def isParallel(self) -> Any
doc:
isParallel(Edge) -> bool
Checks if the two edges are parallel.
- def isCollinear(self) -> Any
doc:
isCollinear(Edge) -> bool
Checks if the two edges are collinear.
- def unbound(self) -> Any
doc:
method unbound()
Cut the connection to a MeshObject. The edge becomes
free and is more or less a simple edge.
After calling unbound() no topological operation will
work!
MODULE Mod/Mesh/App/Facet.pyi
classes:
class Facet(PyObjectBase)
doc:
Facet in mesh
This is a facet in a MeshObject. You can get it by e.g. iterating a
mesh. The facet has a connection to its mesh and allows therefore
topological operations. It is also possible to create an unbounded facet e.g. to create
a mesh. In this case the topological operations will fail. The same is
when you cut the bound to the mesh by calling unbound().
attributes:
- Index: Final[int]
doc:
The index of this facet in the MeshObject
- Bound: Final[bool]
doc:
Bound state of the facet
- Normal: Final[Any]
doc:
Normal vector of the facet.
- Points: Final[list]
doc:
A list of points of the facet
- PointIndices: Final[tuple]
doc:
The index tuple of point vertices of the mesh this facet is built of
- NeighbourIndices: Final[tuple]
doc:
The index tuple of neighbour facets of the mesh this facet is adjacent with
- Area: Final[float]
doc:
The area of the facet
- AspectRatio: Final[float]
doc:
The aspect ratio of the facet computed by longest edge and its height
- AspectRatio2: Final[float]
doc:
The aspect ratio of the facet computed by radius of circum-circle and in-circle
- Roundness: Final[float]
doc:
The roundness of the facet
- CircumCircle: Final[tuple]
doc:
The center and radius of the circum-circle
- InCircle: Final[tuple]
doc:
The center and radius of the in-circle
methods:
- def unbound(self) -> Any
doc:
method unbound()
Cut the connection to a MeshObject. The facet becomes
free and is more or less a simple facet.
After calling unbound() no topological operation will
work!
- def intersect(self) -> Any
doc:
intersect(Facet) -> list
Get a list of intersection points with another triangle.
- def isDegenerated(self) -> Any
doc:
isDegenerated([float]) -> boolean
Returns true if the facet is degenerated, otherwise false.
- def isDeformed(self) -> Any
doc:
isDegenerated(MinAngle, MaxAngle) -> boolean
Returns true if the facet is deformed, otherwise false.
A triangle is considered deformed if an angle is less than MinAngle
or higher than MaxAngle.
The two angles are given in radian.
- def getEdge(self) -> Any
doc:
getEdge(int) -> Edge
Returns the edge of the facet.
MODULE Mod/Mesh/App/Mesh.pyi
classes:
class Mesh(ComplexGeoData)
doc:
Mesh() -- Create an empty mesh object.
This class allows one to manipulate the mesh object by adding new facets, deleting facets, importing from an STL file,
transforming the mesh and much more.
For a complete overview of what can be done see also the documentation of mesh.
A mesh object cannot be added to an existing document directly. Therefore the document must create an object
with a property class that supports meshes.
Example:
m = Mesh.Mesh()
... # Manipulate the mesh
d = FreeCAD-compatible runtime.activeDocument() # Get a reference to the actie document
f = d.addObject("Mesh::Feature", "Mesh") # Create a mesh feature
f.Mesh = m # Assign the mesh object to the internal property
d.recompute()
attributes:
- Points: Final[list]
doc:
A collection of the mesh points
With this attribute it is possible to get access to the points of the mesh
for p in mesh.Points:
print p.x, p.y, p.z
- CountPoints: Final[int]
doc:
Return the number of vertices of the mesh object.
- CountEdges: Final[int]
doc:
Return the number of edges of the mesh object.
- Facets: Final[list]
doc:
A collection of facets
With this attribute it is possible to get access to the facets of the mesh
for p in mesh.Facets:
print p
- CountFacets: Final[int]
doc:
Return the number of facets of the mesh object.
- Topology: Final[tuple]
doc:
Return the points and face indices as tuple.
- Area: Final[float]
doc:
Return the area of the mesh object.
- Volume: Final[float]
doc:
Return the volume of the mesh object.
methods:
- def read(self, **kwargs) -> Any
doc:
Read in a mesh object from file.
mesh.read(Filename='mymesh.stl')
mesh.read(Stream=file,Format='STL')
@constmethod
- def write(self, **kwargs) -> Any
doc:
Write the mesh object into file.
mesh.write(Filename='mymesh.stl',[Format='STL',Name='Object name',Material=colors])
mesh.write(Stream=file,Format='STL',[Name='Object name',Material=colors])
@constmethod
- def writeInventor(self) -> Any
doc:
Write the mesh in OpenInventor format to a string.
@constmethod
- def copy(self) -> Any
doc:
Create a copy of this mesh
- def offset(self) -> Any
doc:
Move the point along their normals
- def offsetSpecial(self) -> Any
doc:
Move the point along their normals
@constmethod
- def crossSections(self) -> Any
doc:
Get cross-sections of the mesh through several planes
@constmethod
- def unite(self) -> Any
doc:
Union of this and the given mesh object.
@constmethod
- def intersect(self) -> Any
doc:
Intersection of this and the given mesh object.
@constmethod
- def difference(self) -> Any
doc:
Difference of this and the given mesh object.
@constmethod
- def inner(self) -> Any
doc:
Get the part inside of the intersection
@constmethod
- def outer(self) -> Any
doc:
Get the part outside the intersection
@constmethod
- def section(self, **kwargs) -> Any
doc:
Get the section curves of this and the given mesh object.
lines = mesh.section(mesh2, [ConnectLines=True, MinDist=0.0001])
- def translate(self) -> Any
doc:
Apply a translation to the mesh
- def rotate(self) -> Any
doc:
Apply a rotation to the mesh
- def transform(self) -> Any
doc:
Apply a transformation to the mesh
- def transformToEigen(self) -> Any
doc:
Transform the mesh to its eigenbase
@constmethod
- def getEigenSystem(self) -> Any
doc:
Get Eigen base of the mesh
- def addFacet(self) -> Any
doc:
Add a facet to the mesh
- def addFacets(self) -> Any
doc:
Add a list of facets to the mesh
- def removeFacets(self) -> Any
doc:
Remove a list of facet indices from the mesh
- def removeNeedles(self) -> Any
doc:
Remove all edges that are smaller than a given length
- def removeFullBoundaryFacets(self) -> Any
doc:
Remove facets whose all three points are on the boundary
@constmethod
- def getInternalFacets(self) -> Any
doc:
Builds a list of facet indices with triangles that are inside a volume mesh
- def rebuildNeighbourHood(self) -> Any
doc:
Repairs the neighbourhood which might be broken
- def addMesh(self) -> Any
doc:
Combine this mesh with another mesh.
- def setPoint(self) -> Any
doc:
setPoint(int, Vector)
Sets the point at index.
- def movePoint(self) -> Any
doc:
movePoint(int, Vector)
This method moves the point in the mesh along the
given vector. This affects the geometry of the mesh.
Be aware that moving points may cause self-intersections.
@constmethod
- def getPointNormals(self) -> Any
doc:
getPointNormals()
Get the normals of the points.
- def addSegment(self) -> Any
doc:
Add a list of facet indices that describes a segment to the mesh
@constmethod
- def countSegments(self) -> Any
doc:
Get the number of segments which may also be 0
@constmethod
- def getSegment(self) -> Any
doc:
Get a list of facet indices that describes a segment
@constmethod
- def getSeparateComponents(self) -> Any
doc:
Returns a list containing the different
components (separated areas) of the mesh as separate meshes
import Mesh
for c in mesh.getSeparatecomponents():
Mesh.show(c)
@constmethod
- def getFacetSelection(self) -> Any
doc:
Get a list of the indices of selected facets
@constmethod
- def getPointSelection(self) -> Any
doc:
Get a list of the indices of selected points
@constmethod
- def meshFromSegment(self) -> Any
doc:
Create a mesh from segment
- def clear(self) -> Any
doc:
Clear the mesh
@constmethod
- def isSolid(self) -> Any
doc:
Check if the mesh is a solid
@constmethod
- def hasNonManifolds(self) -> Any
doc:
Check if the mesh has non-manifolds
- def removeNonManifolds(self) -> Any
doc:
Remove non-manifolds
- def removeNonManifoldPoints(self) -> Any
doc:
Remove non-manifold points
@constmethod
- def hasSelfIntersections(self) -> Any
doc:
Check if the mesh intersects itself
@constmethod
- def getSelfIntersections(self) -> Any
doc:
Returns a tuple of indices of intersecting triangles
- def fixSelfIntersections(self) -> Any
doc:
Repair self-intersections
- def removeFoldsOnSurface(self) -> Any
doc:
Remove folds on surfaces
@constmethod
- def hasNonUniformOrientedFacets(self) -> Any
doc:
Check if the mesh has facets with inconsistent orientation
@constmethod
- def countNonUniformOrientedFacets(self) -> Any
doc:
Get the number of wrong oriented facets
@constmethod
- def getNonUniformOrientedFacets(self) -> Any
doc:
Get a tuple of wrong oriented facets
@constmethod
- def hasInvalidPoints(self) -> Any
doc:
Check if the mesh has points with invalid coordinates (NaN)
- def removeInvalidPoints(self) -> Any
doc:
Remove points with invalid coordinates (NaN)
@constmethod
- def hasPointsOnEdge(self) -> Any
doc:
Check if points lie on edges
- def removePointsOnEdge(self, **kwargs) -> Any
doc:
removePointsOnEdge(FillBoundary=False)
Remove points that lie on edges.
If FillBoundary is True then the holes by removing the affected facets
will be re-filled.
@constmethod
- def hasInvalidNeighbourhood(self) -> Any
doc:
Check if the mesh has invalid neighbourhood indices
@constmethod
- def hasPointsOutOfRange(self) -> Any
doc:
Check if the mesh has point indices that are out of range
@constmethod
- def hasFacetsOutOfRange(self) -> Any
doc:
Check if the mesh has facet indices that are out of range
@constmethod
- def hasCorruptedFacets(self) -> Any
doc:
Check if the mesh has corrupted facets
@constmethod
- def countComponents(self) -> Any
doc:
Get the number of topologic independent areas
- def removeComponents(self) -> Any
doc:
Remove components with less or equal to number of given facets
- def fixIndices(self) -> Any
doc:
Repair any invalid indices
- def fixCaps(self) -> Any
doc:
Repair caps by swapping the edge
- def fixDeformations(self) -> Any
doc:
Repair deformed facets
- def fixDegenerations(self) -> Any
doc:
Remove degenerated facets
- def removeDuplicatedPoints(self) -> Any
doc:
Remove duplicated points
- def removeDuplicatedFacets(self) -> Any
doc:
Remove duplicated facets
- def refine(self) -> Any
doc:
Refine the mesh
- def splitEdges(self) -> Any
doc:
Split all edges
- def splitEdge(self) -> Any
doc:
Split edge
- def splitFacet(self) -> Any
doc:
Split facet
- def swapEdge(self) -> Any
doc:
Swap the common edge with the neighbour
- def collapseEdge(self) -> Any
doc:
Remove an edge and both facets that share this edge
- def collapseFacet(self) -> Any
doc:
Remove a facet
- def collapseFacets(self) -> Any
doc:
Remove a list of facets
- def insertVertex(self) -> Any
doc:
Insert a vertex into a facet
- def snapVertex(self) -> Any
doc:
Insert a new facet at the border
@constmethod
- def printInfo(self) -> Any
doc:
Get detailed information about the mesh
@constmethod
- def foraminate(self) -> Any
doc:
Get a list of facet indices and intersection points
- def cut(self) -> Any
doc:
Cuts the mesh with a given closed polygon
cut(list, int) -> None
The argument list is an array of points, a polygon
The argument int is the mode: 0=inner, 1=outer
- def trim(self) -> Any
doc:
Trims the mesh with a given closed polygon
trim(list, int) -> None
The argument list is an array of points, a polygon
The argument int is the mode: 0=inner, 1=outer
- def trimByPlane(self) -> Any
doc:
Trims the mesh with a given plane
trimByPlane(Vector, Vector) -> None
The plane is defined by a base and normal vector. Depending on the
direction of the normal the part above or below will be kept.
@constmethod
- def harmonizeNormals(self) -> Any
doc:
Adjust wrong oriented facets
@constmethod
- def flipNormals(self) -> Any
doc:
Flip the mesh normals
@constmethod
- def fillupHoles(self) -> Any
doc:
Fillup holes
@constmethod
- def smooth(self, **kwargs) -> Any
doc:
Smooth the mesh
smooth([iteration=1,maxError=FLT_MAX])
- def decimate(self) -> Any
doc:
Decimate the mesh
decimate(tolerance(Float), reduction(Float))
tolerance: maximum error
reduction: reduction factor must be in the range [0.0,1.0]
Example:
mesh.decimate(0.5, 0.1) # reduction by up to 10 percent
mesh.decimate(0.5, 0.9) # reduction by up to 90 percent
- def mergeFacets(self) -> Any
doc:
Merge facets to optimize topology
@constmethod
- def optimizeTopology(self) -> Any
doc:
Optimize the edges to get nicer facets
@constmethod
- def optimizeEdges(self) -> Any
doc:
Optimize the edges to get nicer facets
@constmethod
- def nearestFacetOnRay(self) -> Any
doc:
nearestFacetOnRay(tuple, tuple) -> dict
Get the index and intersection point of the nearest facet to a ray.
The first parameter is a tuple of three floats the base point of the ray,
the second parameter is ut uple of three floats for the direction.
The result is a dictionary with an index and the intersection point or
an empty dictionary if there is no intersection.
@constmethod
- def getPlanarSegments(self) -> Any
doc:
getPlanarSegments(dev,[min faces=0]) -> list
Get all planes of the mesh as segment.
In the worst case each triangle can be regarded as single
plane if none of its neighbours is coplanar.
@constmethod
- def getSegmentsOfType(self) -> Any
doc:
getSegmentsOfType(type, dev,[min faces=0]) -> list
Get all segments of type.
Type can be Plane, Cylinder or Sphere
@constmethod
- def getSegmentsByCurvature(self) -> Any
doc:
getSegmentsByCurvature(list) -> list
The argument list gives a list if tuples where it defines the preferred maximum curvature,
the preferred minimum curvature, the tolerances and the number of minimum faces for the segment.
Example:
c=(1.0, 0.0, 0.1, 0.1, 500) # search for a cylinder with radius 1.0
p=(0.0, 0.0, 0.1, 0.1, 500) # search for a plane
mesh.getSegmentsByCurvature([c,p])
@constmethod
- def getCurvaturePerVertex(self) -> Any
doc:
getCurvaturePerVertex() -> list
The items in the list contains minimum and maximum curvature with their directions
MODULE Mod/Mesh/App/MeshFeature.pyi
classes:
class MeshFeature(GeoFeature)
doc:
The Mesh::Feature class handles meshes.
The Mesh.MeshFeature() function is for internal use only and cannot be used to create instances of this class.
Therefore you must have a reference to a document, e.g. 'd' then you can create an instance with
d.addObject("Mesh::Feature").
methods:
- def countPoints(self) -> Any
doc:
Return the number of vertices of the mesh object
- def countFacets(self) -> Any
doc:
Return the number of facets of the mesh object
- def harmonizeNormals(self) -> Any
doc:
Adjust wrong oriented facets
- def smooth(self) -> Any
doc:
Smooth the mesh data
- def decimate(self) -> Any
doc:
Decimate the mesh
decimate(tolerance(Float), reduction(Float))
tolerance: maximum error
reduction: reduction factor must be in the range [0.0,1.0]
Example:
mesh.decimate(0.5, 0.1) # reduction by up to 10 percent
mesh.decimate(0.5, 0.9) # reduction by up to 90 percent
or
decimate(targwt size(int))
mesh.decimate(mesh.CountFacets/2)
- def removeNonManifolds(self) -> Any
doc:
Remove non-manifolds
- def removeNonManifoldPoints(self) -> Any
doc:
Remove non-manifold points
- def fixIndices(self) -> Any
doc:
Repair any invalid indices
- def fixDegenerations(self) -> Any
doc:
Remove degenerated facets
- def removeDuplicatedFacets(self) -> Any
doc:
Remove duplicated facets
- def removeDuplicatedPoints(self) -> Any
doc:
Remove duplicated points
- def fixSelfIntersections(self) -> Any
doc:
Repair self-intersections
- def removeFoldsOnSurface(self) -> Any
doc:
Remove folds on surfaces
- def removeInvalidPoints(self) -> Any
doc:
Remove points with invalid coordinates (NaN)
MODULE Mod/Mesh/App/MeshPoint.pyi
classes:
class MeshPoint(PyObjectBase)
doc:
Point in mesh
This is a point in a MeshObject. You can get it by e.g. iterating a
mesh. The point has a connection to its mesh and allows therefore
topological operations. It is also possible to create an unbounded mesh point e.g. to create
a mesh. In this case the topological operations will fail. The same is
when you cut the bound to the mesh by calling unbound().
attributes:
- Index: Final[int]
doc:
The index of this point in the MeshObject
- Bound: Final[bool]
doc:
Bound state of the point
- Normal: Final[Any]
doc:
Normal vector of the point computed by the surrounding mesh.
- Vector: Final[Any]
doc:
Vector of the point.
- x: Final[float]
doc:
The X component of the point.
- y: Final[float]
doc:
The Y component of the point.
- z: Final[float]
doc:
The Z component of the point.
methods:
- def unbound(self) -> Any
doc:
method unbound()
Cut the connection to a MeshObject. The point becomes
free and is more or less a simple vector/point.
After calling unbound() no topological operation will
work!
MODULE Mod/Mesh/Gui/ViewProviderMesh.pyi
classes:
class ViewProviderMesh(ViewProviderGeometryObject)
doc:
This is the ViewProvider base class
methods:
- def setSelection(self) -> Any
doc:
Select list of facets
- def addSelection(self) -> Any
doc:
Add list of facets to selection
- def removeSelection(self) -> Any
doc:
Remove list of facets from selection
- def invertSelection(self) -> Any
doc:
Invert the selection
- def clearSelection(self) -> Any
doc:
Clear the selection
- def highlightSegments(self) -> Any
doc:
Highlights the segments of a mesh with a given list of colors.
The number of elements of this list must be equal to the number of mesh segments.
MODULE Mod/Part/App/Arc.pyi
classes:
class Arc(TrimmedCurve)
doc:
Describes a portion of a curve
methods:
@overload
- def __init__(self, circ: Geom_Circle, T: type=...) -> None
@overload
- def __init__(self, circ: Geom_Ellipse, T: type=...) -> None
@overload
- def __init__(self, p1: Vector, p2: Vector, p3: Vector, /) -> None
MODULE Mod/Part/App/ArcOfCircle.pyi
classes:
class ArcOfCircle(ArcOfConic)
doc:
Describes a portion of a circle
attributes:
- Radius: float
doc:
The radius of the circle.
- Circle: Final[object]
doc:
The internal circle representation
MODULE Mod/Part/App/ArcOfConic.pyi
classes:
class ArcOfConic(TrimmedCurve)
doc:
Describes a portion of a conic
attributes:
- Location: Vector
doc:
Center of the conic.
- Center: Vector
doc:
Deprecated -- use Location.
- AngleXU: float
doc:
The angle between the X axis and the major axis of the conic.
- Axis: Vector
doc:
The axis direction of the conic
- XAxis: Vector
doc:
The X axis direction of the circle
- YAxis: Vector
doc:
The Y axis direction of the circle
methods:
@overload
- def __init__(self) -> None
MODULE Mod/Part/App/ArcOfEllipse.pyi
classes:
class ArcOfEllipse(ArcOfConic)
doc:
Describes a portion of an ellipse
attributes:
- MajorRadius: float
doc:
The major radius of the ellipse.
- MinorRadius: float
doc:
The minor radius of the ellipse.
- Ellipse: Final[object]
doc:
The internal ellipse representation
methods:
@typing_only
@overload
- def __init__(self, ellipse: 'Part.Ellipse', u1: float, u2: float, sense: bool=..., /) -> None
MODULE Mod/Part/App/ArcOfHyperbola.pyi
classes:
class ArcOfHyperbola(ArcOfConic)
doc:
Describes a portion of an hyperbola
attributes:
- MajorRadius: float
doc:
The major radius of the hyperbola.
- MinorRadius: float
doc:
The minor radius of the hyperbola.
- Hyperbola: Final[object]
doc:
The internal hyperbola representation
MODULE Mod/Part/App/ArcOfParabola.pyi
classes:
class ArcOfParabola(ArcOfConic)
doc:
Describes a portion of a parabola
attributes:
- Focal: float
doc:
The focal length of the parabola.
- Parabola: Final[object]
doc:
The internal parabola representation
MODULE Mod/Part/App/AttachEngine.pyi
classes:
class AttachEngine(BaseClass)
doc:
AttachEngine abstract class - the functionality of AttachableObject, but outside of DocumentObject
DeveloperDocu: AttachEngine abstract class
attributes:
- AttacherType: Final[str]
doc:
Type of engine: 3d, plane, line, or point.
- Mode: str
doc:
Current attachment mode.
- References: object
doc:
Current attachment mode.
- AttachmentOffset: object
doc:
Current attachment mode.
- Reverse: bool
doc:
If True, Z axis of attached placement is flipped. X axis is flipped in addition (CS has to remain right-handed).
- Parameter: float
doc:
Value of parameter for some curve attachment modes. Range of 0..1 spans the length of the edge (parameter value can be outside of the range for curves that allow extrapolation.
- CompleteModeList: Final[list]
doc:
List of all attachment modes of all AttachEngines. This is the list of modes in MapMode enum properties of AttachableObjects.
- ImplementedModes: Final[list]
doc:
List of all attachment modes of all AttachEngines. This is the list of modes in MapMode enum properties of AttachableObjects.
- CompleteRefTypeList: Final[list]
doc:
List of all reference shape types recognized by AttachEngine.
methods:
- def getModeInfo(self, mode: str, /) -> dict
doc:
getModeInfo(mode): returns supported reference combinations, user-friendly name, and so on.
- def getRefTypeOfShape(self, shape: str, /) -> str
doc:
getRefTypeOfShape(shape): returns shape type as interpreted by AttachEngine. Returns a string.
- def isFittingRefType(self, type_shape: str, type_needed: str, /) -> bool
doc:
isFittingRefType(type_shape, type_needed): tests if shape type, specified by type_shape (string), fits a type required by attachment mode type_needed (string). e.g. 'Circle' fits a requirement of 'Edge', and 'Curve' doesn't fit if a 'Circle' is required.
- def downgradeRefType(self, type: str, /) -> str
doc:
downgradeRefType(type): returns next more general type. E.g. downgradeType('Circle') yields 'Curve'.
- def getRefTypeInfo(self, type: str, /) -> dict
doc:
getRefTypeInfo(type): returns information (dict) on shape type. Keys:'UserFriendlyName', 'TypeIndex', 'Rank'. Rank is the number of times reftype can be downgraded, before it becomes 'Any'.
@constmethod
- def copy(self) -> 'AttachEngine'
doc:
copy(): returns a new instance of AttachEngine.
@constmethod
- def calculateAttachedPlacement(self, orig_placement: Placement, /) -> Optional[Placement]
doc:
calculateAttachedPlacement(orig_placement): returns result of attachment, based
on current Mode, References, etc. AttachmentOffset is included.
original_placement is the previous placement of the object being attached. It
is used to preserve orientation for Translate attachment mode. For other modes,
it is ignored.
Returns the new placement. If not attached, returns None. If attachment fails,
an exception is raised.
- def suggestModes(self) -> dict
doc:
suggestModes(): runs mode suggestion routine and returns a dictionary with
results and supplementary information.
Keys:
'allApplicableModes': list of modes that can accept current references. Note
that it is only a check by types, and does not guarantee the modes will
actually work.
'bestFitMode': mode that fits current references best. Note that the mode may
not be valid for the set of references; check for if 'message' is 'OK'.
'error': error message for when 'message' is 'UnexpectedError' or
'LinkBroken'.
'message': general result of suggestion. 'IncompatibleGeometry', 'NoModesFit':
no modes accept current set of references; 'OK': some modes do accept current
set of references (though it's not guarantted the modes will work - surrestor
only checks for correct types); 'UnexpectedError': should never happen.
'nextRefTypeHint': what more can be added to references to reach other modes
('reachableModes' provide more extended information on this)
'reachableModes': a dict, where key is mode, and value is a list of sequences
of references that can be added to fit that mode.
'references_Types': a list of types of geometry linked by references (that's
the input information for suggestor, actually).
- def readParametersFromFeature(self, document_object: DocumentObject, /) -> None
doc:
readParametersFromFeature(document_object): sets AttachEngine parameters (References, Mode, etc.) by reading out properties of AttachableObject-derived feature.
- def writeParametersToFeature(self, document_object: DocumentObject, /) -> None
doc:
writeParametersToFeature(document_object): updates properties of
AttachableObject-derived feature with current AttachEngine parameters
(References, Mode, etc.).
Warning: if a feature linked by AttachEngine.References was deleted, this method
will crash FreeCAD-compatible runtime.
MODULE Mod/Part/App/AttachExtension.pyi
classes:
class AttachExtension(DocumentObjectExtension)
doc:
This object represents an attachable object with OCC shape.
attributes:
- Attacher: Final[Any]
doc:
AttachEngine object driving this AttachableObject. Returns a copy.
methods:
- def positionBySupport(self) -> bool
doc:
positionBySupport() -> bool
Reposition object based on AttachmentSupport, MapMode and MapPathParameter properties.
Returns True if attachment calculation was successful, false if object is not attached and Placement wasn't updated,
and raises an exception if attachment calculation fails.
- def changeAttacherType(self, typename: str, /) -> None
doc:
changeAttacherType(typename) -> None
Changes Attacher class of this object.
typename: string. The following are accepted so far:
'Attacher::AttachEngine3D'
'Attacher::AttachEnginePlane'
'Attacher::AttachEngineLine'
'Attacher::AttachEnginePoint'
MODULE Mod/Part/App/BRepFeat/MakePrism.pyi
classes:
class MakePrism(PyObjectBase)
doc:
Describes functions to build prism features.
methods:
- def init(self, **kwargs) -> None
doc:
Initializes this algorithm for building prisms along surfaces.
A face Pbase is selected in the shape Sbase
to serve as the basis for the prism. The orientation
of the prism will be defined by the vector Direction.
Fuse offers a choice between:
- removing matter with a Boolean cut using the setting 0
- adding matter with Boolean fusion using the setting 1.
The sketch face Skface serves to determine
the type of operation. If it is inside the basis
shape, a local operation such as glueing can be performed.
- def add(self, **kwargs) -> None
doc:
Indicates that the edge will slide on the face.
Raises ConstructionError if the face does not belong to the
basis shape, or the edge to the prismed shape.
- def perform(self, **kwargs) -> None
doc:
Assigns one of the following semantics.
1. to a height Length
2. to a face Until
3. from a face From to a height Until. Reconstructs the feature topologically according to the semantic option chosen.
- def performUntilEnd(self) -> None
doc:
Realizes a semi-infinite prism, limited by the
position of the prism base. All other faces extend infinitely.
- def performFromEnd(self) -> None
doc:
Realizes a semi-infinite prism, limited by the face Funtil.
- def performThruAll(self) -> None
doc:
Builds an infinite prism. The infinite descendants will not be kept in the result.
- def performUntilHeight(self) -> None
doc:
Assigns both a limiting shape, Until from TopoDS_Shape
and a height, Length at which to stop generation of the prism feature.
@constmethod
- def curves(self) -> List
doc:
Returns the list of curves S parallel to the axis of the prism.
@constmethod
- def barycCurve(self) -> object
doc:
Generates a curve along the center of mass of the primitive.
@constmethod
- def shape(self) -> object
doc:
Returns a shape built by the shape construction algorithm.
MODULE Mod/Part/App/BRepOffsetAPI_MakeFilling.pyi
classes:
class BRepOffsetAPI_MakeFilling(PyObjectBase)
doc:
N-Side Filling
methods:
- def setConstrParam(self, *, Tol2d: float=1e-05, Tol3d: float=0.0001, TolAng: float=0.01, TolCurv: float=0.1) -> None
doc:
setConstrParam(Tol2d=0.00001, Tol3d=0.0001, TolAng=0.01, TolCurv=0.1)
Sets the values of Tolerances used to control the constraint.
- def setResolParam(self, *, Degree: int=3, NbPtsOnCur: int=15, NbIter: int=2, Anisotropy: bool=False) -> None
doc:
setResolParam(Degree=3, NbPtsOnCur=15, NbIter=2, Anisotropy=False)
Sets the parameters used for resolution.
- def setApproxParam(self, *, MaxDeg: int=8, MaxSegments: int=9) -> None
doc:
setApproxParam(MaxDeg=8, MaxSegments=9)
Sets the parameters used to approximate the filling the surface
- def loadInitSurface(self, face: TopoShapeFace, /) -> None
doc:
loadInitSurface(face)
Loads the initial surface.
@overload
- def add(self, Edge: TopoShapeEdge, Order: int, *, IsBound: bool=True) -> None
@overload
- def add(self, Edge: TopoShapeEdge, Support: TopoShapeFace, Order: int, *, IsBound: bool=True) -> None
@overload
- def add(self, Support: TopoShapeFace, Order: int) -> None
@overload
- def add(self, Point: Point) -> None
@overload
- def add(self, U: float, V: float, Support: TopoShapeFace, Order: int) -> None
- def add(self, **kwargs) -> None
doc:
add(Edge, Order, IsBound=True)
add(Edge, Support, Order, IsBound=True)
add(Support, Order)
add(Point)
add(U, V, Support, Order)
Adds a new constraint.
- def build(self) -> None
doc:
Builds the resulting faces.
- def isDone(self) -> bool
doc:
Tests whether computation of the filling plate has been completed.
@overload
- def G0Error(self, /) -> float
@overload
- def G0Error(self, arg: int, /) -> float
- def G0Error(self, arg: int=0, /) -> float
doc:
G0Error([int])
Returns the maximum distance between the result and the constraints.
@overload
- def G1Error(self, /) -> float
@overload
- def G1Error(self, arg: int, /) -> float
- def G1Error(self, arg: int=0, /) -> float
doc:
G1Error([int])
Returns the maximum angle between the result and the constraints.
@overload
- def G2Error(self, /) -> float
@overload
- def G2Error(self, arg: int, /) -> float
- def G2Error(self, arg: int=0, /) -> float
doc:
G2Error([int])
Returns the greatest difference in curvature between the result and the constraints.
- def shape(self) -> TopoShape
doc:
shape()
Returns the resulting shape.
MODULE Mod/Part/App/BRepOffsetAPI_MakePipeShell.pyi
classes:
class BRepOffsetAPI_MakePipeShell(PyObjectBase)
doc:
Low level API to create a PipeShell using OCC API
Ref: https://dev.opencascade.org/doc/refman/html/class_b_rep_offset_a_p_i___make_pipe_shell.html
methods:
- def setFrenetMode(self, mode: bool, /) -> None
doc:
setFrenetMode(True|False)
Sets a Frenet or a CorrectedFrenet trihedron to perform the sweeping.
True = Frenet
False = CorrectedFrenet
- def setTrihedronMode(self, point: Vector, direction: Vector, /) -> None
doc:
setTrihedronMode(point,direction)
Sets a fixed trihedron to perform the sweeping.
All sections will be parallel.
- def setBiNormalMode(self, direction: Vector, /) -> None
doc:
setBiNormalMode(direction)
Sets a fixed BiNormal direction to perform the sweeping.
Angular relations between the section(s) and the BiNormal direction will be constant.
- def setSpineSupport(self, shape: TopoShape, /) -> None
doc:
setSpineSupport(shape)
Sets support to the spine to define the BiNormal of the trihedron, like the normal to the surfaces.
Warning: To be effective, Each edge of the spine must have an representation on one face of SpineSupport.
- def setAuxiliarySpine(self, wire: TopoShape, CurvilinearEquivalence: bool, TypeOfContact: int, /) -> None
doc:
setAuxiliarySpine(wire, CurvilinearEquivalence, TypeOfContact)
Sets an auxiliary spine to define the Normal.
CurvilinearEquivalence = bool
For each Point of the Spine P, an Point Q is evalued on AuxiliarySpine.
If CurvilinearEquivalence=True Q split AuxiliarySpine with the same length ratio than P split Spine.
* OCC >= 6.7
TypeOfContact = long
0: No contact
1: Contact
2: Contact On Border (The auxiliary spine becomes a boundary of the swept surface)
@overload
- def add(self, Profile: TopoShape, *, WithContact: bool=False, WithCorrection: bool=False) -> None
@overload
- def add(self, Profile: TopoShape, Location: TopoShape, *, WithContact: bool=False, WithCorrection: bool=False) -> None
- def add(self, **kwargs) -> None
doc:
add(shape Profile, bool WithContact=False, bool WithCorrection=False)
add(shape Profile, vertex Location, bool WithContact=False, bool WithCorrection=False)
Adds the section Profile to this framework.
First and last sections may be punctual, so the shape Profile may be both wire and vertex.
If WithContact is true, the section is translated to be in contact with the spine.
If WithCorrection is true, the section is rotated to be orthogonal to the spine tangent in the correspondent point.
- def remove(self, Profile: TopoShape, /) -> None
doc:
remove(shape Profile)
Removes the section Profile from this framework.
- def isReady(self) -> bool
doc:
isReady()
Returns true if this tool object is ready to build the shape.
- def getStatus(self) -> int
doc:
getStatus()
Get a status, when Simulate or Build failed.
- def makeSolid(self) -> bool
doc:
makeSolid()
Transforms the sweeping Shell in Solid. If a propfile is not closed returns False.
- def setTolerance(self, tol3d: float, boundTol: float, tolAngular: float, /) -> None
doc:
setTolerance( tol3d, boundTol, tolAngular)
Tol3d = 3D tolerance
BoundTol = boundary tolerance
TolAngular = angular tolerance
- def setTransitionMode(self, mode: int, /) -> None
doc:
0: BRepBuilderAPI_Transformed
1: BRepBuilderAPI_RightCorner
2: BRepBuilderAPI_RoundCorner
- def firstShape(self) -> TopoShape
doc:
firstShape()
Returns the Shape of the bottom of the sweep.
- def lastShape(self) -> TopoShape
doc:
lastShape()
Returns the Shape of the top of the sweep.
- def build(self) -> None
doc:
build()
Builds the resulting shape.
- def shape(self) -> TopoShape
doc:
shape()
Returns the resulting shape.
- def generated(self, S: TopoShape, /) -> list[TopoShape]
doc:
generated(shape S)
Returns a list of new shapes generated from the shape S by the shell-generating algorithm.
- def setMaxDegree(self, degree: int, /) -> None
doc:
setMaxDegree(int degree)
Define the maximum V degree of resulting surface.
- def setMaxSegments(self, num: int, /) -> None
doc:
setMaxSegments(int num)
Define the maximum number of spans in V-direction on resulting surface.
- def setForceApproxC1(self, flag: bool, /) -> None
doc:
setForceApproxC1(bool)
Set the flag that indicates attempt to approximate a C1-continuous surface if a swept surface proved to be C0.
- def simulate(self, nbsec: int, /) -> None
doc:
simulate(int nbsec)
Simulates the resulting shape by calculating the given number of cross-sections.
MODULE Mod/Part/App/BSplineCurve.pyi
classes:
class BSplineCurve(BoundedCurve)
doc:
Describes a B-Spline curve in 3D space
attributes:
- Degree: Final[int]
doc:
Returns the polynomial degree of this B-Spline curve.
- MaxDegree: Final[int]
doc:
Returns the value of the maximum polynomial degree of any
B-Spline curve curve. This value is 25.
- NbPoles: Final[int]
doc:
Returns the number of poles of this B-Spline curve.
- NbKnots: Final[int]
doc:
Returns the number of knots of this B-Spline curve.
- StartPoint: Final[Vector]
doc:
Returns the start point of this B-Spline curve.
- EndPoint: Final[Vector]
doc:
Returns the end point of this B-Spline curve.
- FirstUKnotIndex: Final[int]
doc:
Returns the index in the knot array of the knot
corresponding to the first or last parameter
of this B-Spline curve.
- LastUKnotIndex: Final[int]
doc:
Returns the index in the knot array of the knot
corresponding to the first or last parameter
of this B-Spline curve.
- KnotSequence: Final[List[float]]
doc:
Returns the knots sequence of this B-Spline curve.
methods:
@constmethod
- def __reduce__(self) -> Any
doc:
__reduce__()
Serialization of Part.BSplineCurve objects
@constmethod
- def isRational(self) -> bool
doc:
Returns true if this B-Spline curve is rational.
A B-Spline curve is rational if, at the time of construction,
the weight table has been initialized.
@constmethod
- def isPeriodic(self) -> bool
doc:
Returns true if this BSpline curve is periodic.
@constmethod
- def isClosed(self) -> bool
doc:
Returns true if the distance between the start point and end point of
this B-Spline curve is less than or equal to gp::Resolution().
- def increaseDegree(self, Degree: int=..., /) -> None
doc:
increase(Int=Degree)
Increases the degree of this B-Spline curve to Degree.
As a result, the poles, weights and multiplicities tables
are modified; the knots table is not changed. Nothing is
done if Degree is less than or equal to the current degree.
@overload
- def increaseMultiplicity(self, index: int, mult: int, /) -> None
@overload
- def increaseMultiplicity(self, start: int, end: int, mult: int, /) -> None
- def increaseMultiplicity(self, *args, **kwargs) -> None
doc:
increaseMultiplicity(int index, int mult)
increaseMultiplicity(int start, int end, int mult)
Increases multiplicity of knots up to mult.
index: the index of a knot to modify (1-based)
start, end: index range of knots to modify.
If mult is lower or equal to the current multiplicity nothing is done.
If mult is higher than the degree the degree is used.
- def incrementMultiplicity(self, start: int, end: int, mult: int, /) -> None
doc:
incrementMultiplicity(int start, int end, int mult)
Raises multiplicity of knots by mult.
start, end: index range of knots to modify.
- def insertKnot(self, u: float, mult: int=1, tol: float=0.0, /) -> None
doc:
insertKnot(u, mult = 1, tol = 0.0)
Inserts a knot value in the sequence of knots. If u is an existing knot the
multiplicity is increased by mult.
- def insertKnots(self, list_of_floats: List[float], list_of_ints: List[int], tol: float=0.0, bool_add: bool=True, /) -> None
doc:
insertKnots(list_of_floats, list_of_ints, tol = 0.0, bool_add = True)
Inserts a set of knots values in the sequence of knots.
For each u = list_of_floats[i], mult = list_of_ints[i]
If u is an existing knot the multiplicity is increased by mult if bool_add is
True, otherwise increased to mult.
If u is not on the parameter range nothing is done.
If the multiplicity is negative or null nothing is done. The new multiplicity
is limited to the degree.
The tolerance criterion for knots equality is the max of Epsilon(U) and ParametricTolerance.
- def removeKnot(self, Index: int, M: int, tol: float, /) -> bool
doc:
removeKnot(Index, M, tol)
Reduces the multiplicity of the knot of index Index to M.
If M is equal to 0, the knot is removed.
With a modification of this type, the array of poles is also modified.
Two different algorithms are systematically used to compute the new
poles of the curve. If, for each pole, the distance between the pole
calculated using the first algorithm and the same pole calculated using
the second algorithm, is less than Tolerance, this ensures that the curve
is not modified by more than Tolerance. Under these conditions, true is
returned; otherwise, false is returned.
A low tolerance is used to prevent modification of the curve.
A high tolerance is used to 'smooth' the curve.
- def segment(self, u1: float, u2: float, /) -> None
doc:
segment(u1,u2)
Modifies this B-Spline curve by segmenting it.
@constmethod
- def split(self, u: float, tolerance: float=0.0, /) -> tuple[BSplineCurve, BSplineCurve]
doc:
split(u, tolerance=0.0)
Splits this B-Spline curve at parameter u and returns the two resulting curves.
- def setKnot(self, knot: float, index: int, /) -> None
doc:
Set a knot of the B-Spline curve.
@constmethod
- def getKnot(self, index: int, /) -> float
doc:
Get a knot of the B-Spline curve.
- def setKnots(self, knots: List[float], /) -> None
doc:
Set knots of the B-Spline curve.
@constmethod
- def getKnots(self) -> List[float]
doc:
Get all knots of the B-Spline curve.
- def setPole(self, P: Vector, Index: int, /) -> None
doc:
Modifies this B-Spline curve by assigning P
to the pole of index Index in the poles table.
@constmethod
- def getPole(self, Index: int, /) -> Vector
doc:
Get a pole of the B-Spline curve.
@constmethod
- def getPoles(self) -> List[Vector]
doc:
Get all poles of the B-Spline curve.
- def setWeight(self, weight: float, index: int, /) -> None
doc:
Set a weight of the B-Spline curve.
@constmethod
- def getWeight(self, index: int, /) -> float
doc:
Get a weight of the B-Spline curve.
@constmethod
- def getWeights(self) -> List[float]
doc:
Get all weights of the B-Spline curve.
@constmethod
- def getPolesAndWeights(self) -> List[float]
doc:
Returns the table of poles and weights in homogeneous coordinates.
@constmethod
- def getResolution(self, Tolerance3D: float, /) -> float
doc:
Computes for this B-Spline curve the parametric tolerance (UTolerance)
for a given 3D tolerance (Tolerance3D).
If f(t) is the equation of this B-Spline curve, the parametric tolerance
ensures that:
|t1-t0| < UTolerance =""==> |f(t1)-f(t0)| < Tolerance3D
- def movePoint(self, U: float, P: Vector, Index1: int, Index2: int, /) -> tuple[int, int]
doc:
movePoint(U, P, Index1, Index2)
Moves the point of parameter U of this B-Spline curve to P.
Index1 and Index2 are the indexes in the table of poles of this B-Spline curve
of the first and last poles designated to be moved.
Returns: (FirstModifiedPole, LastModifiedPole). They are the indexes of the
first and last poles which are effectively modified.
- def setNotPeriodic(self) -> None
doc:
Changes this B-Spline curve into a non-periodic curve.
If this curve is already non-periodic, it is not modified.
- def setPeriodic(self) -> None
doc:
Changes this B-Spline curve into a periodic curve.
- def setOrigin(self, Index: int, /) -> None
doc:
Assigns the knot of index Index in the knots table
as the origin of this periodic B-Spline curve. As a consequence,
the knots and poles tables are modified.
@constmethod
- def getMultiplicity(self, index: int, /) -> int
doc:
Returns the multiplicity of the knot of index
from the knots table of this B-Spline curve.
@constmethod
- def getMultiplicities(self) -> List[int]
doc:
Returns the multiplicities table M of the knots of this B-Spline curve.
@overload
- def approximate(self, Points: List[Vector], DegMin: int=3, DegMax: int=8, Tolerance: float=0.001, Continuity: str='C2', LengthWeight: float=0.0, CurvatureWeight: float=0.0, TorsionWeight: float=0.0, Parameters: List[float]=None, ParamType: str='Uniform') -> None
- def approximate(self, **kwargs) -> None
doc:
Replaces this B-Spline curve by approximating a set of points.
The function accepts keywords as arguments.
approximate(Points = list_of_points)
Optional arguments :
DegMin = integer (3) : Minimum degree of the curve.
DegMax = integer (8) : Maximum degree of the curve.
Tolerance = float (1e-3) : approximating tolerance.
Continuity = string ('C2') : Desired continuity of the curve.
Possible values : 'C0','G1','C1','G2','C2','C3','CN'
LengthWeight = float, CurvatureWeight = float, TorsionWeight = float
If one of these arguments is not null, the functions approximates the
points using variational smoothing algorithm, which tries to minimize
additional criterium:
LengthWeight*CurveLength + CurvatureWeight*Curvature + TorsionWeight*Torsion
Continuity must be C0, C1(with DegMax >= 3) or C2(with DegMax >= 5).
Parameters = list of floats : knot sequence of the approximated points.
This argument is only used if the weights above are all null.
ParamType = string ('Uniform','Centripetal' or 'ChordLength')
Parameterization type. Only used if weights and Parameters above aren't specified.
Note : Continuity of the spline defaults to C2. However, it may not be applied if
it conflicts with other parameters ( especially DegMax ).
@overload
@constmethod
- def getCardinalSplineTangents(self, **kwargs) -> List[Vector]
@constmethod
- def getCardinalSplineTangents(self, **kwargs) -> List[Vector]
doc:
Compute the tangents for a Cardinal spline
@overload
- def interpolate(self, Points: List[Vector], PeriodicFlag: bool=False, Tolerance: float=1e-06, Parameters: List[float]=None, InitialTangent: Vector=None, FinalTangent: Vector=None, Tangents: List[Vector]=None, TangentFlags: List[bool]=None) -> None
- def interpolate(self, **kwargs) -> None
doc:
Replaces this B-Spline curve by interpolating a set of points.
The function accepts keywords as arguments.
interpolate(Points = list_of_points)
Optional arguments :
PeriodicFlag = bool (False) : Sets the curve closed or opened.
Tolerance = float (1e-6) : interpolating tolerance
Parameters : knot sequence of the interpolated points.
If not supplied, the function defaults to chord-length parameterization.
If PeriodicFlag == True, one extra parameter must be appended.
EndPoint Tangent constraints :
InitialTangent = vector, FinalTangent = vector
specify tangent vectors for starting and ending points
of the BSpline. Either none, or both must be specified.
Full Tangent constraints :
Tangents = list_of_vectors, TangentFlags = list_of_bools
Both lists must have the same length as Points list.
Tangents specifies the tangent vector of each point in Points list.
TangentFlags (bool) activates or deactivates the corresponding tangent.
These arguments will be ignored if EndPoint Tangents (above) are also defined.
Note : Continuity of the spline defaults to C2. However, if periodic, or tangents
are supplied, the continuity will drop to C1.
- def buildFromPoles(self, poles: List[Vector], periodic: bool=False, degree: int=3, interpolate: bool=False, /) -> None
doc:
Builds a B-Spline by a list of poles.
arguments: poles (sequence of Base.Vector), [periodic (default is False), degree (default is 3), interpolate (default is False)]
Examples:
from FreeCAD-compatible runtime import Base
import Part
V = Base.Vector
poles = [V(-2, 2, 0),V(0, 2, 1),V(2, 2, 0),V(2, -2, 0),V(0, -2, 1),V(-2, -2, 0)]
# non-periodic spline
n=Part.BSplineCurve()
n.buildFromPoles(poles)
Part.show(n.toShape())
# periodic spline
n=Part.BSplineCurve()
n.buildFromPoles(poles, True)
Part.show(n.toShape())
@overload
- def buildFromPolesMultsKnots(self, poles: List[Vector], mults: List[int], knots: List[float], periodic: bool, degree: int, weights: List[float]=None, CheckRational: bool=False) -> None
- def buildFromPolesMultsKnots(self, **kwargs) -> None
doc:
Builds a B-Spline by a lists of Poles, Mults, Knots.
arguments: poles (sequence of Base.Vector), [mults , knots, periodic, degree, weights (sequence of float), CheckRational]
Examples:
from FreeCAD-compatible runtime import Base
import Part
V=Base.Vector
poles=[V(-10,-10),V(10,-10),V(10,10),V(-10,10)]
# non-periodic spline
n=Part.BSplineCurve()
n.buildFromPolesMultsKnots(poles,(3,1,3),(0,0.5,1),False,2)
Part.show(n.toShape())
# periodic spline
p=Part.BSplineCurve()
p.buildFromPolesMultsKnots(poles,(1,1,1,1,1),(0,0.25,0.5,0.75,1),True,2)
Part.show(p.toShape())
# periodic and rational spline
r=Part.BSplineCurve()
r.buildFromPolesMultsKnots(poles,(1,1,1,1,1),(0,0.25,0.5,0.75,1),True,2,(1,0.8,0.7,0.2))
Part.show(r.toShape())
@constmethod
- def toBezier(self) -> List[BezierCurve]
doc:
Build a list of Bezier splines.
@constmethod
- def toBiArcs(self, tolerance: float, /) -> List[Arc]
doc:
Build a list of arcs and lines to approximate the B-spline.
toBiArcs(tolerance) -> list.
- def join(self, other: 'BSplineCurve', /) -> None
doc:
Build a new spline by joining this and a second spline.
- def makeC1Continuous(self, tol: float=1e-06, ang_tol: float=1e-07, /) -> 'BSplineCurve'
doc:
makeC1Continuous(tol = 1e-6, ang_tol = 1e-7)
Reduces as far as possible the multiplicities of the knots of this BSpline
(keeping the geometry). It returns a new BSpline, which could still be C0.
tol is a geometrical tolerance.
The tol_ang is angular tolerance, in radians. It sets tolerable angle mismatch
of the tangents on the left and on the right to decide if the curve is G1 or
not at a given point.
- def scaleKnotsToBounds(self, u0: float=0.0, u1: float=1.0, /) -> None
doc:
Scales the knots list to fit the specified bounds.
The shape of the curve is not modified.
bspline_curve.scaleKnotsToBounds(u0, u1)
Default arguments are (0.0, 1.0)
MODULE Mod/Part/App/BSplineSurface.pyi
classes:
class BSplineSurface(GeometrySurface)
doc:
Describes a B-Spline surface in 3D space
DeveloperDocu: Describes a B-Spline surface in 3D space
attributes:
- UDegree: Final[int]
doc:
Returns the degree of this B-Spline surface in the u parametric direction.
- VDegree: Final[int]
doc:
Returns the degree of this B-Spline surface in the v parametric direction.
- MaxDegree: Final[int]
doc:
Returns the value of the maximum polynomial degree of any
B-Spline surface surface in either parametric directions.
This value is 25.
- NbUPoles: Final[int]
doc:
Returns the number of poles of this B-Spline surface in the u parametric direction.
- NbVPoles: Final[int]
doc:
Returns the number of poles of this B-Spline surface in the v parametric direction.
- NbUKnots: Final[int]
doc:
Returns the number of knots of this B-Spline surface in the u parametric direction.
- NbVKnots: Final[int]
doc:
Returns the number of knots of this B-Spline surface in the v parametric direction.
- FirstUKnotIndex: Final[Any]
doc:
Returns the index in the knot array associated with the u parametric direction,
which corresponds to the first parameter of this B-Spline surface in the specified
parametric direction.
The isoparametric curves corresponding to these values are the boundary curves of
this surface.
Note: The index does not correspond to the first knot of the surface in the specified
parametric direction unless the multiplicity of the first knot is equal to Degree + 1,
where Degree is the degree of this surface in the corresponding parametric direction.
- LastUKnotIndex: Final[Any]
doc:
Returns the index in the knot array associated with the u parametric direction,
which corresponds to the last parameter of this B-Spline surface in the specified
parametric direction.
The isoparametric curves corresponding to these values are the boundary curves of
this surface.
Note: The index does not correspond to the first knot of the surface in the specified
parametric direction unless the multiplicity of the last knot is equal to Degree + 1,
where Degree is the degree of this surface in the corresponding parametric direction.
- FirstVKnotIndex: Final[Any]
doc:
Returns the index in the knot array associated with the v parametric direction,
which corresponds to the first parameter of this B-Spline surface in the specified
parametric direction.
The isoparametric curves corresponding to these values are the boundary curves of
this surface.
Note: The index does not correspond to the first knot of the surface in the specified
parametric direction unless the multiplicity of the first knot is equal to Degree + 1,
where Degree is the degree of this surface in the corresponding parametric direction.
- LastVKnotIndex: Final[Any]
doc:
Returns the index in the knot array associated with the v parametric direction,
which corresponds to the last parameter of this B-Spline surface in the specified
parametric direction.
The isoparametric curves corresponding to these values are the boundary curves of
this surface.
Note: The index does not correspond to the first knot of the surface in the specified
parametric direction unless the multiplicity of the last knot is equal to Degree + 1,
where Degree is the degree of this surface in the corresponding parametric direction.
- UKnotSequence: Final[List[Any]]
doc:
Returns the knots sequence of this B-Spline surface in
the u direction.
- VKnotSequence: Final[List[Any]]
doc:
Returns the knots sequence of this B-Spline surface in
the v direction.
methods:
@constmethod
- def bounds(self) -> Any
doc:
Returns the parametric bounds (U1, U2, V1, V2) of this B-Spline surface.
@constmethod
- def isURational(self) -> Any
doc:
Returns false if the equation of this B-Spline surface is polynomial
(e.g. non-rational) in the u or v parametric direction.
In other words, returns false if for each row of poles, the associated
weights are identical
@constmethod
- def isVRational(self) -> Any
doc:
Returns false if the equation of this B-Spline surface is polynomial
(e.g. non-rational) in the u or v parametric direction.
In other words, returns false if for each column of poles, the associated
weights are identical
@constmethod
- def isUPeriodic(self) -> Any
doc:
Returns true if this surface is periodic in the u parametric direction.
@constmethod
- def isVPeriodic(self) -> Any
doc:
Returns true if this surface is periodic in the v parametric direction.
@constmethod
- def isUClosed(self) -> Any
doc:
Checks if this surface is closed in the u parametric direction.
Returns true if, in the table of poles the first row and the last
row are identical.
@constmethod
- def isVClosed(self) -> Any
doc:
Checks if this surface is closed in the v parametric direction.
Returns true if, in the table of poles the first column and the
last column are identical.
- def increaseDegree(self, DegMin: int, DegMax: int, Continuity: int, Tolerance: float, X0: float=..., dX: float=..., Y0: float=..., dY: float=..., /) -> None
doc:
increase(Int=UDegree, int=VDegree)
Increases the degrees of this B-Spline surface to UDegree and VDegree
in the u and v parametric directions respectively.
As a result, the tables of poles, weights and multiplicities are modified.
The tables of knots is not changed.
Note: Nothing is done if the given degree is less than or equal to the
current degree in the corresponding parametric direction.
- def increaseUMultiplicity(self) -> None
doc:
Increases the multiplicity in the u direction.
- def increaseVMultiplicity(self) -> None
doc:
Increases the multiplicity in the v direction.
- def incrementUMultiplicity(self) -> None
doc:
Increment the multiplicity in the u direction
- def incrementVMultiplicity(self) -> None
doc:
Increment the multiplicity in the v direction
- def insertUKnot(self, U: float, Index: int, Tolerance: float, /) -> None
doc:
insertUKnote(float U, int Index, float Tolerance) - Insert or override a knot
- def insertUKnots(self, U: List[float], Mult: List[float], Tolerance: float, /) -> None
doc:
insertUKnote(List of float U, List of float Mult, float Tolerance) - Inserts knots.
- def insertVKnot(self, V: float, Index: int, Tolerance: float, /) -> None
doc:
insertUKnote(float V, int Index, float Tolerance) - Insert or override a knot.
- def insertVKnots(self, V: List[float], Mult: List[float], Tolerance: float, /) -> None
doc:
insertUKnote(List of float V, List of float Mult, float Tolerance) - Inserts knots.
- def removeUKnot(self, M: int, Index: int, Tolerance: float, /) -> bool
doc:
Reduces to M the multiplicity of the knot of index Index in the given
parametric direction. If M is 0, the knot is removed.
With a modification of this type, the table of poles is also modified.
Two different algorithms are used systematically to compute the new
poles of the surface. For each pole, the distance between the pole
calculated using the first algorithm and the same pole calculated using
the second algorithm, is checked. If this distance is less than Tolerance
it ensures that the surface is not modified by more than Tolerance.
Under these conditions, the function returns true; otherwise, it returns
false.
A low tolerance prevents modification of the surface. A high tolerance
'smoothes' the surface.
- def removeVKnot(self, M: int, Index: int, Tolerance: float, /) -> bool
doc:
Reduces to M the multiplicity of the knot of index Index in the given
parametric direction. If M is 0, the knot is removed.
With a modification of this type, the table of poles is also modified.
Two different algorithms are used systematically to compute the new
poles of the surface. For each pole, the distance between the pole
calculated using the first algorithm and the same pole calculated using
the second algorithm, is checked. If this distance is less than Tolerance
it ensures that the surface is not modified by more than Tolerance.
Under these conditions, the function returns true; otherwise, it returns
false.
A low tolerance prevents modification of the surface. A high tolerance
'smoothes' the surface.
- def segment(self, U1: float, U2: float, V1: float, V2: float, /) -> None
doc:
Modifies this B-Spline surface by segmenting it between U1 and U2 in the
u parametric direction and between V1 and V2 in the v parametric direction.
Any of these values can be outside the bounds of this surface, but U2 must
be greater than U1 and V2 must be greater than V1.
All the data structure tables of this B-Spline surface are modified but the
knots located between U1 and U2 in the u parametric direction, and between
V1 and V2 in the v parametric direction are retained.
The degree of the surface in each parametric direction is not modified.
- def setUKnot(self, K: float, UIndex: int, M: int=..., /) -> None
doc:
Modifies this B-Spline surface by assigning the value K to the knot of index
UIndex of the knots table corresponding to the u parametric direction.
This modification remains relatively local, since K must lie between the values
of the knots which frame the modified knot.
You can also increase the multiplicity of the modified knot to M. Note however
that it is not possible to decrease the multiplicity of a knot with this function.
- def setVKnot(self, K: float, VIndex: int, M: int=..., /) -> None
doc:
Modifies this B-Spline surface by assigning the value K to the knot of index
VIndex of the knots table corresponding to the v parametric direction.
This modification remains relatively local, since K must lie between the values
of the knots which frame the modified knot.
You can also increase the multiplicity of the modified knot to M. Note however
that it is not possible to decrease the multiplicity of a knot with this function.
@constmethod
- def getUKnot(self, UIndex: int, /) -> Any
doc:
Returns, for this B-Spline surface, in the u parametric direction
the knot of index UIndex of the knots table.
@constmethod
- def getVKnot(self, VIndex: int, /) -> Any
doc:
Returns, for this B-Spline surface, in the v parametric direction
the knot of index VIndex of the knots table.
- def setUKnots(self, knots: List[Any], /) -> None
doc:
Changes all knots of this B-Spline surface in the u parametric
direction. The multiplicity of the knots is not modified.
- def setVKnots(self, knots: List[Any], /) -> None
doc:
Changes all knots of this B-Spline surface in the v parametric
direction. The multiplicity of the knots is not modified.
@constmethod
- def getUKnots(self) -> List[Any]
doc:
Returns, for this B-Spline surface, the knots table
in the u parametric direction
@constmethod
- def getVKnots(self) -> List[Any]
doc:
Returns, for this B-Spline surface, the knots table
in the v parametric direction
- def setPole(self, P: Any, UIndex: int, VIndex: int, Weight: float=..., /) -> None
doc:
Modifies this B-Spline surface by assigning P to the pole of
index (UIndex, VIndex) in the poles table.
The second syntax allows you also to change the weight of the
modified pole. The weight is set to Weight. This syntax must
only be used for rational surfaces.
Modifies this B-Spline curve by assigning P to the pole of
index Index in the poles table.
- def setPoleCol(self, VIndex: int, values: List[Any], CPoleWeights: List[float], /) -> None
doc:
Modifies this B-Spline surface by assigning values to all or part
of the column of poles of index VIndex, of this B-Spline surface.
You can also change the weights of the modified poles. The weights
are set to the corresponding values of CPoleWeights.
These syntaxes must only be used for rational surfaces.
- def setPoleRow(self, UIndex: int, values: List[Any], CPoleWeights: List[float], /) -> None
doc:
Modifies this B-Spline surface by assigning values to all or part
of the row of poles of index UIndex, of this B-Spline surface.
You can also change the weights of the modified poles. The weights
are set to the corresponding values of CPoleWeights.
These syntaxes must only be used for rational surfaces.
@constmethod
- def getPole(self, UIndex: int, VIndex: int, /) -> Any
doc:
Returns the pole of index (UIndex,VIndex) of this B-Spline surface.
@constmethod
- def getPoles(self) -> List[Any]
doc:
Returns the table of poles of this B-Spline surface.
- def setWeight(self, Weight: float, UIndex: int, VIndex: int, /) -> None
doc:
Modifies this B-Spline surface by assigning the value Weight to the weight
of the pole of index (UIndex, VIndex) in the poles tables of this B-Spline
surface.
This function must only be used for rational surfaces.
- def setWeightCol(self, VIndex: int, CPoleWeights: List[float], /) -> None
doc:
Modifies this B-Spline surface by assigning values to all or part of the
weights of the column of poles of index VIndex of this B-Spline surface.
The modified part of the column of weights is defined by the bounds
of the array CPoleWeights.
This function must only be used for rational surfaces.
- def setWeightRow(self, UIndex: int, CPoleWeights: List[float], /) -> None
doc:
Modifies this B-Spline surface by assigning values to all or part of the
weights of the row of poles of index UIndex of this B-Spline surface.
The modified part of the row of weights is defined by the bounds of the
array CPoleWeights.
This function must only be used for rational surfaces.
@constmethod
- def getWeight(self, UIndex: int, VIndex: int, /) -> float
doc:
Return the weight of the pole of index (UIndex,VIndex)
in the poles table for this B-Spline surface.
@constmethod
- def getWeights(self) -> List[float]
doc:
Returns the table of weights of the poles for this B-Spline surface.
@constmethod
- def getPolesAndWeights(self) -> List[Any]
doc:
Returns the table of poles and weights in homogeneous coordinates.
@constmethod
- def getResolution(self, Tolerance3D: float, /) -> Any
doc:
Computes two tolerance values for this B-Spline surface, based on the
given tolerance in 3D space Tolerance3D. The tolerances computed are:
-- UTolerance in the u parametric direction and
-- VTolerance in the v parametric direction.
If f(u,v) is the equation of this B-Spline surface, UTolerance and
VTolerance guarantee that:
|u1 - u0| < UTolerance
|v1 - v0| < VTolerance
====> ||f(u1, v1) - f(u2, v2)|| < Tolerance3D
- def movePoint(self, U: float, V: float, P: Any, UIndex1: int=..., UIndex2: int=..., VIndex1: int=..., VIndex2: int=..., /) -> Any
doc:
Moves the point of parameters (U, V) of this B-Spline surface to P.
UIndex1, UIndex2, VIndex1 and VIndex2 are the indexes in the poles
table of this B-Spline surface, of the first and last poles which
can be moved in each parametric direction.
The returned indexes UFirstIndex, ULastIndex, VFirstIndex and
VLastIndex are the indexes of the first and last poles effectively
modified in each parametric direction.
In the event of incompatibility between UIndex1, UIndex2, VIndex1,
VIndex2 and the values U and V:
-- no change is made to this B-Spline surface, and
-- UFirstIndex, ULastIndex, VFirstIndex and VLastIndex are set to
null.
- def setUNotPeriodic(self) -> None
doc:
Changes this B-Spline surface into a non-periodic one in the u parametric direction.
If this B-Spline surface is already non-periodic in the given parametric direction,
it is not modified.
If this B-Spline surface is periodic in the given parametric direction, the boundaries
of the surface are not given by the first and last rows (or columns) of poles (because
the multiplicity of the first knot and of the last knot in the given parametric direction
are not modified, nor are they equal to Degree+1, where Degree is the degree of this
B-Spline surface in the given parametric direction). Only the function Segment ensures
this property.
Note: the poles and knots tables are modified.
- def setVNotPeriodic(self) -> None
doc:
Changes this B-Spline surface into a non-periodic one in the v parametric direction.
If this B-Spline surface is already non-periodic in the given parametric direction,
it is not modified.
If this B-Spline surface is periodic in the given parametric direction, the boundaries
of the surface are not given by the first and last rows (or columns) of poles (because
the multiplicity of the first knot and of the last knot in the given parametric direction
are not modified, nor are they equal to Degree+1, where Degree is the degree of this
B-Spline surface in the given parametric direction). Only the function Segment ensures
this property.
Note: the poles and knots tables are modified.
- def setUPeriodic(self, I1: int, I2: int, /) -> None
doc:
Modifies this surface to be periodic in the u parametric direction.
To become periodic in a given parametric direction a surface must
be closed in that parametric direction, and the knot sequence relative
to that direction must be periodic.
To generate this periodic sequence of knots, the functions FirstUKnotIndex
and LastUKnotIndex are used to compute I1 and I2. These are the indexes,
in the knot array associated with the given parametric direction, of the
knots that correspond to the first and last parameters of this B-Spline
surface in the given parametric direction. Hence the period is:
Knots(I1) - Knots(I2)
As a result, the knots and poles tables are modified.
- def setVPeriodic(self, I1: int, I2: int, /) -> None
doc:
Modifies this surface to be periodic in the v parametric direction.
To become periodic in a given parametric direction a surface must
be closed in that parametric direction, and the knot sequence relative
to that direction must be periodic.
To generate this periodic sequence of knots, the functions FirstUKnotIndex
and LastUKnotIndex are used to compute I1 and I2. These are the indexes,
in the knot array associated with the given parametric direction, of the
knots that correspond to the first and last parameters of this B-Spline
surface in the given parametric direction. Hence the period is:
Knots(I1) - Knots(I2)
As a result, the knots and poles tables are modified.
- def setUOrigin(self, Index: int, /) -> None
doc:
Assigns the knot of index Index in the knots table
in the u parametric direction to be the origin of
this periodic B-Spline surface. As a consequence,
the knots and poles tables are modified.
- def setVOrigin(self, Index: int, /) -> None
doc:
Assigns the knot of index Index in the knots table
in the v parametric direction to be the origin of
this periodic B-Spline surface. As a consequence,
the knots and poles tables are modified.
@constmethod
- def getUMultiplicity(self, UIndex: int, /) -> Any
doc:
Returns, for this B-Spline surface, the multiplicity of
the knot of index UIndex in the u parametric direction.
@constmethod
- def getVMultiplicity(self, VIndex: int, /) -> Any
doc:
Returns, for this B-Spline surface, the multiplicity of
the knot of index VIndex in the v parametric direction.
@constmethod
- def getUMultiplicities(self) -> List[Any]
doc:
Returns, for this B-Spline surface, the table of
multiplicities in the u parametric direction
@constmethod
- def getVMultiplicities(self) -> List[Any]
doc:
Returns, for this B-Spline surface, the table of
multiplicities in the v parametric direction
- def exchangeUV(self) -> None
doc:
Exchanges the u and v parametric directions on this B-Spline surface.
As a consequence:
-- the poles and weights tables are transposed,
-- the knots and multiplicities tables are exchanged,
-- degrees of continuity and rational, periodic and uniform
characteristics are exchanged and
-- the orientation of the surface is reversed.
@constmethod
- def reparametrize(self) -> Any
doc:
Returns a reparametrized copy of this surface
- def approximate(self, *, Points: Any=..., DegMin: int=..., DegMax: int=..., Continuity: int=..., Tolerance: float=..., X0: float=..., dX: float=..., Y0: float=..., dY: float=..., ParamType: str=..., LengthWeight: float=..., CurvatureWeight: float=..., TorsionWeight: float=...) -> None
doc:
Replaces this B-Spline surface by approximating a set of points.
This method uses keywords :
- Points = 2Darray of points (or floats, in combination with X0, dX, Y0, dY)
- DegMin (int), DegMax (int)
- Continuity = 0,1 or 2 (for C0, C1, C2)
- Tolerance (float)
- X0, dX, Y0, dY (floats) with Points = 2Darray of floats
- ParamType = 'Uniform','Centripetal' or 'ChordLength'
- LengthWeight, CurvatureWeight, TorsionWeight (floats)
(with this smoothing algorithm, continuity C1 requires DegMax >= 3 and C2, DegMax >=5)
Possible combinations :
- approximate(Points, DegMin, DegMax, Continuity, Tolerance)
- approximate(Points, DegMin, DegMax, Continuity, Tolerance, X0, dX, Y0, dY)
With explicit keywords :
- approximate(Points, DegMin, DegMax, Continuity, Tolerance, ParamType)
- approximate(Points, DegMax, Continuity, Tolerance, LengthWeight, CurvatureWeight, TorsionWeight)
- def interpolate(self, points: Any=..., zpoints: Any=..., X0: float=..., dX: float=..., Y0: float=..., dY: float=..., /) -> None
doc:
interpolate(points)
interpolate(zpoints, X0, dX, Y0, dY)
Replaces this B-Spline surface by interpolating a set of points.
The resulting surface is of degree 3 and continuity C2.
Arguments:
a 2 dimensional array of vectors, that the surface passes through
or
a 2 dimensional array of floats with the z values,
the x starting point X0 (float),
the x increment dX (float),
the y starting point Y0 and increment dY
- def buildFromPolesMultsKnots(self, *, poles: List[List[Any]], umults: List[Any], vmults: List[Any], uknots: List[Any]=..., vknots: List[Any]=..., uperiodic: bool=..., vperiodic: bool=..., udegree: int=..., vdegree: int=..., weights: List[List[float]]=...) -> None
doc:
Builds a B-Spline by a lists of Poles, Mults and Knots
arguments: poles (sequence of sequence of Base.Vector), umults, vmults, [uknots, vknots, uperiodic, vperiodic, udegree, vdegree, weights (sequence of sequence of float)]
- def buildFromNSections(self, control_curves: Any, /) -> None
doc:
Builds a B-Spline from a list of control curves
- def scaleKnotsToBounds(self, u0: float, u1: float, v0: float, v1: float, /) -> None
doc:
Scales the U and V knots lists to fit the specified bounds.
The shape of the surface is not modified.
bspline_surf.scaleKnotsToBounds(u0, u1, v0, v1)
Default arguments are 0.0, 1.0, 0.0, 1.0
MODULE Mod/Part/App/BezierCurve.pyi
classes:
class BezierCurve(BoundedCurve)
doc:
Describes a rational or non-rational Bezier curve:
-- a non-rational Bezier curve is defined by a table of poles (also called control points)
-- a rational Bezier curve is defined by a table of poles with varying weights
Constructor takes no arguments.
Example usage:
p1 = Base.Vector(-1, 0, 0)
p2 = Base.Vector(0, 1, 0.2)
p3 = Base.Vector(1, 0, 0.4)
p4 = Base.Vector(0, -1, 1)
bc = BezierCurve()
bc.setPoles([p1, p2, p3, p4])
curveShape = bc.toShape()
attributes:
- Degree: Final[int]
doc:
Returns the polynomial degree of this Bezier curve,
which is equal to the number of poles minus 1.
- MaxDegree: Final[int]
doc:
Returns the value of the maximum polynomial degree of any
Bezier curve curve. This value is 25.
- NbPoles: Final[int]
doc:
Returns the number of poles of this Bezier curve.
- StartPoint: Final[Vector]
doc:
Returns the start point of this Bezier curve.
- EndPoint: Final[Vector]
doc:
Returns the end point of this Bezier curve.
methods:
@constmethod
- def isRational(self) -> bool
doc:
Returns false if the weights of all the poles of this Bezier curve are equal.
@constmethod
- def isPeriodic(self) -> bool
doc:
Returns false.
@constmethod
- def isClosed(self) -> bool
doc:
Returns true if the distance between the start point and end point of
this Bezier curve is less than or equal to gp::Resolution().
- def increase(self, Int: int=..., /) -> None
doc:
Increases the degree of this Bezier curve to Degree.
As a result, the poles and weights tables are modified.
- def insertPoleAfter(self, index: int, /) -> None
doc:
Inserts after the pole of index.
- def insertPoleBefore(self, index: int, /) -> None
doc:
Inserts before the pole of index.
- def removePole(self, Index: int, /) -> None
doc:
Removes the pole of index Index from the table of poles of this Bezier curve.
If this Bezier curve is rational, it can become non-rational.
- def segment(self) -> None
doc:
Modifies this Bezier curve by segmenting it.
- def setPole(self, pole: Vector, /) -> None
doc:
Set a pole of the Bezier curve.
@constmethod
- def getPole(self, index: int, /) -> Vector
doc:
Get a pole of the Bezier curve.
@constmethod
- def getPoles(self) -> List[Vector]
doc:
Get all poles of the Bezier curve.
- def setPoles(self, poles: List[Vector], /) -> None
doc:
Set the poles of the Bezier curve.
Takes a list of 3D Base.Vector objects.
- def setWeight(self, id: int, weight: float, /) -> None
doc:
(id, weight) Set a weight of the Bezier curve.
@constmethod
- def getWeight(self, id: int, /) -> float
doc:
Get a weight of the Bezier curve.
@constmethod
- def getWeights(self) -> List[float]
doc:
Get all weights of the Bezier curve.
@constmethod
- def getResolution(self, Tolerance3D: float, /) -> float
doc:
Computes for this Bezier curve the parametric tolerance (UTolerance)
for a given 3D tolerance (Tolerance3D).
If f(t) is the equation of this Bezier curve, the parametric tolerance
ensures that:
|t1-t0| < UTolerance =""==> |f(t1)-f(t0)| < Tolerance3D
- def interpolate(self, constraints: List[List], parameters: List[float]=..., /) -> None
doc:
Interpolates a list of constraints.
Each constraint is a list of a point and some optional derivatives
An optional list of parameters can be passed. It must be of same size as constraint list.
Otherwise, a simple uniform parametrization is used.
Example :
bezier.interpolate([[pt1, deriv11, deriv12], [pt2,], [pt3, deriv31]], [0, 0.4, 1.0])
MODULE Mod/Part/App/BezierSurface.pyi
classes:
class BezierSurface(GeometrySurface)
doc:
Describes a rational or non-rational Bezier surface
-- A non-rational Bezier surface is defined by a table of poles (also known as control points).
-- A rational Bezier surface is defined by a table of poles with varying associated weights.
attributes:
- UDegree: Final[int]
doc:
Returns the polynomial degree in u direction of this Bezier surface,
which is equal to the number of poles minus 1.
- VDegree: Final[int]
doc:
Returns the polynomial degree in v direction of this Bezier surface,
which is equal to the number of poles minus 1.
- MaxDegree: Final[int]
doc:
Returns the value of the maximum polynomial degree of any
Bezier surface. This value is 25.
- NbUPoles: Final[int]
doc:
Returns the number of poles in u direction of this Bezier surface.
- NbVPoles: Final[int]
doc:
Returns the number of poles in v direction of this Bezier surface.
methods:
@constmethod
- def bounds(self) -> Tuple[float, float, float, float]
doc:
Returns the parametric bounds (U1, U2, V1, V2) of this Bezier surface.
@constmethod
- def isURational(self) -> bool
doc:
Returns false if the equation of this Bezier surface is polynomial
(e.g. non-rational) in the u or v parametric direction.
In other words, returns false if for each row of poles, the associated
weights are identical.
@constmethod
- def isVRational(self) -> bool
doc:
Returns false if the equation of this Bezier surface is polynomial
(e.g. non-rational) in the u or v parametric direction.
In other words, returns false if for each column of poles, the associated
weights are identical.
@constmethod
- def isUPeriodic(self) -> bool
doc:
Returns false.
@constmethod
- def isVPeriodic(self) -> bool
doc:
Returns false.
@constmethod
- def isUClosed(self) -> bool
doc:
Checks if this surface is closed in the u parametric direction.
Returns true if, in the table of poles the first row and the last
row are identical.
@constmethod
- def isVClosed(self) -> bool
doc:
Checks if this surface is closed in the v parametric direction.
Returns true if, in the table of poles the first column and the
last column are identical.
- def increase(self, DegreeU: int, DegreeV: int, /) -> None
doc:
increase(DegreeU: int, DegreeV: int)
Increases the degree of this Bezier surface in the two
parametric directions.
- def insertPoleColAfter(self, index: int, /) -> None
doc:
Inserts into the table of poles of this surface, after the column
of poles of index.
If this Bezier surface is non-rational, it can become rational if
the weights associated with the new poles are different from each
other, or collectively different from the existing weights in the
table.
- def insertPoleRowAfter(self, index: int, /) -> None
doc:
Inserts into the table of poles of this surface, after the row
of poles of index.
If this Bezier surface is non-rational, it can become rational if
the weights associated with the new poles are different from each
other, or collectively different from the existing weights in the
table.
- def insertPoleColBefore(self, index: int, /) -> None
doc:
Inserts into the table of poles of this surface, before the column
of poles of index.
If this Bezier surface is non-rational, it can become rational if
the weights associated with the new poles are different from each
other, or collectively different from the existing weights in the
table.
- def insertPoleRowBefore(self, index: int, /) -> None
doc:
Inserts into the table of poles of this surface, before the row
of poles of index.
If this Bezier surface is non-rational, it can become rational if
the weights associated with the new poles are different from each
other, or collectively different from the existing weights in the
table.
- def removePoleCol(self, VIndex: int, /) -> None
doc:
removePoleRow(VIndex: int)
Removes the column of poles of index VIndex from the table of
poles of this Bezier surface.
If this Bezier curve is rational, it can become non-rational.
- def removePoleRow(self, UIndex: int, /) -> None
doc:
removePoleRow(UIndex: int)
Removes the row of poles of index UIndex from the table of
poles of this Bezier surface.
If this Bezier curve is rational, it can become non-rational.
- def segment(self, U1: float, U2: float, V1: float, V2: float, /) -> None
doc:
segment(U1: double, U2: double, V1: double, V2: double)
Modifies this Bezier surface by segmenting it between U1 and U2
in the u parametric direction, and between V1 and V2 in the v
parametric direction.
U1, U2, V1, and V2 can be outside the bounds of this surface.
-- U1 and U2 isoparametric Bezier curves, segmented between
V1 and V2, become the two bounds of the surface in the v
parametric direction (0. and 1. u isoparametric curves).
-- V1 and V2 isoparametric Bezier curves, segmented between
U1 and U2, become the two bounds of the surface in the u
parametric direction (0. and 1. v isoparametric curves).
The poles and weights tables are modified, but the degree of
this surface in the u and v parametric directions does not
change.U1 can be greater than U2, and V1 can be greater than V2.
In these cases, the corresponding parametric direction is inverted.
The orientation of the surface is inverted if one (and only one)
parametric direction is inverted.
- def setPole(self, pole: Any, /) -> None
doc:
Set a pole of the Bezier surface.
- def setPoleCol(self, poles: Any, /) -> None
doc:
Set the column of poles of the Bezier surface.
- def setPoleRow(self, poles: Any, /) -> None
doc:
Set the row of poles of the Bezier surface.
@constmethod
- def getPole(self, UIndex: int, VIndex: int, /) -> Any
doc:
Get a pole of index (UIndex, VIndex) of the Bezier surface.
@constmethod
- def getPoles(self) -> Any
doc:
Get all poles of the Bezier surface.
- def setWeight(self, UIndex: int, VIndex: int, weight: float, /) -> None
doc:
Set the weight of pole of the index (UIndex, VIndex)
for the Bezier surface.
- def setWeightCol(self, VIndex: int, weights: Any, /) -> None
doc:
Set the weights of the poles in the column of poles
of index VIndex of the Bezier surface.
- def setWeightRow(self, UIndex: int, weights: Any, /) -> None
doc:
Set the weights of the poles in the row of poles
of index UIndex of the Bezier surface.
@constmethod
- def getWeight(self, UIndex: int, VIndex: int, /) -> float
doc:
Get a weight of the pole of index (UIndex, VIndex)
of the Bezier surface.
@constmethod
- def getWeights(self) -> Any
doc:
Get all weights of the Bezier surface.
@constmethod
- def getResolution(self, Tolerance3D: float, /) -> Tuple[float, float]
doc:
Computes two tolerance values for this Bezier surface, based on the
given tolerance in 3D space Tolerance3D. The tolerances computed are:
-- UTolerance in the u parametric direction and
-- VTolerance in the v parametric direction.
If f(u,v) is the equation of this Bezier surface, UTolerance and VTolerance
guarantee that:
|u1 - u0| < UTolerance
|v1 - v0| < VTolerance
====> ||f(u1, v1) - f(u2, v2)|| < Tolerance3D
- def exchangeUV(self) -> None
doc:
Exchanges the u and v parametric directions on this Bezier surface.
As a consequence:
-- the poles and weights tables are transposed,
-- degrees, rational characteristics and so on are exchanged between
the two parametric directions, and
-- the orientation of the surface is reversed.
MODULE Mod/Part/App/BodyBase.pyi
classes:
class BodyBase(PartFeature)
doc:
Base class of all Body objects
MODULE Mod/Part/App/BoundedCurve.pyi
classes:
class BoundedCurve(GeometryCurve)
doc:
The abstract class BoundedCurve is the root class of all bounded curve objects.
attributes:
- StartPoint: Final[Any]
doc:
Returns the starting point of the bounded curve.
- EndPoint: Final[Any]
doc:
Returns the end point of the bounded curve.
MODULE Mod/Part/App/ChFi2d/ChFi2d_AnaFilletAlgo.pyi
classes:
class AnaFilletAlgo(PyObjectBase)
doc:
An analytical algorithm for calculation of the fillets.
It is implemented for segments and arcs of circle only.
methods:
- def init(self) -> None
doc:
Initializes a fillet algorithm: accepts a wire consisting of two edges in a plane
- def perform(self, radius: float, /) -> bool
doc:
perform(radius) -> bool
Constructs a fillet edge
- def result(self) -> Tuple[PyObjectBase, PyObjectBase, PyObjectBase]
doc:
result()
Returns result (fillet edge, modified edge1, modified edge2)
MODULE Mod/Part/App/ChFi2d/ChFi2d_ChamferAPI.pyi
classes:
class ChFi2d_ChamferAPI(PyObjectBase)
doc:
Algorithm that creates a chamfer between two linear edges
methods:
- def init(self) -> None
doc:
Initializes a chamfer algorithm: accepts a wire consisting of two edges in a plane
- def perform(self, radius: float, /) -> bool
doc:
perform(radius) -> bool
Constructs a chamfer edge
- def result(self, point: object, solution: int=-1, /) -> Tuple[object, object, object]
doc:
result(point, solution=-1)
Returns result (chamfer edge, modified edge1, modified edge2)
MODULE Mod/Part/App/ChFi2d/ChFi2d_FilletAPI.pyi
classes:
class ChFi2d_FilletAPI(PyObjectBase)
doc:
Algorithm that creates fillet edge
methods:
- def init(self) -> None
doc:
Initializes a fillet algorithm: accepts a wire consisting of two edges in a plane
- def perform(self, radius: float, /) -> bool
doc:
perform(radius) -> bool
Constructs a fillet edge
- def numberOfResults(self) -> int
doc:
Returns number of possible solutions
- def result(self, point: Point, solution: int=-1, /) -> tuple[TopoShapeEdge, TopoShapeEdge, TopoShapeEdge]
doc:
result(point, solution=-1)
Returns result (fillet edge, modified edge1, modified edge2)
MODULE Mod/Part/App/ChFi2d/ChFi2d_FilletAlgo.pyi
classes:
class FilletAlgo(PyObjectBase)
doc:
Algorithm that creates fillet edge
methods:
- def init(self) -> None
doc:
Initializes a fillet algorithm: accepts a wire consisting of two edges in a plane
- def perform(self, radius: float, /) -> bool
doc:
perform(radius) -> bool
Constructs a fillet edge
- def numberOfResults(self) -> int
doc:
Returns number of possible solutions
- def result(self, point: Vector, solution: int=-1, /) -> tuple[object, object, object]
doc:
result(point, solution=-1)
Returns result (fillet edge, modified edge1, modified edge2)
MODULE Mod/Part/App/Circle.pyi
classes:
class Circle(Conic)
doc:
Describes a circle in 3D space
To create a circle there are several ways:
Part.Circle()
Creates a default circle with center (0,0,0) and radius 1
Part.Circle(Circle)
Creates a copy of the given circle
Part.Circle(Circle, Distance)
Creates a circle parallel to given circle at a certain distance
Part.Circle(Center,Normal,Radius)
Creates a circle defined by center, normal direction and radius
Part.Circle(Point1,Point2,Point3)
Creates a circle defined by three non-linear points
attributes:
- Radius: float
doc:
The radius of the circle.
methods:
@overload
- def __init__(self) -> None
@overload
- def __init__(self, circle: 'Circle') -> None
@overload
- def __init__(self, circle: 'Circle', distance: float) -> None
@overload
- def __init__(self, center: Point, normal: Vector, radius: float) -> None
@overload
- def __init__(self, point1: Point, point2: Point, point3: Point) -> None
MODULE Mod/Part/App/Cone.pyi
classes:
class Cone(GeometrySurface)
doc:
Describes a cone in 3D space
To create a cone there are several ways:
Part.Cone()
Creates a default cone with radius 1
Part.Cone(Cone)
Creates a copy of the given cone
Part.Cone(Cone, Distance)
Creates a cone parallel to given cone at a certain distance
Part.Cone(Point1,Point2,Radius1,Radius2)
Creates a cone defined by two points and two radii
The axis of the cone is the line passing through
Point1 and Poin2.
Radius1 is the radius of the section passing through
Point1 and Radius2 the radius of the section passing
through Point2.
Part.Cone(Point1,Point2,Point3,Point4)
Creates a cone passing through three points Point1,
Point2 and Point3.
Its axis is defined by Point1 and Point2 and the radius of
its base is the distance between Point3 and its axis.
The distance between Point and the axis is the radius of
the section passing through Point4.
attributes:
- Apex: Final[Vector]
doc:
Compute the apex of the cone.
- Radius: float
doc:
The radius of the cone.
- SemiAngle: float
doc:
The semi-angle of the cone.
- Center: Vector
doc:
Center of the cone.
- Axis: AxisPy
doc:
The axis direction of the cone
MODULE Mod/Part/App/Conic.pyi
classes:
class Conic(GeometryCurve)
doc:
Describes an abstract conic in 3d space
attributes:
- Location: Vector
doc:
Location of the conic.
- Center: Vector
doc:
Deprecated -- use Location.
- Eccentricity: Final[float]
doc:
Returns the eccentricity value of the conic e.
e = 0 for a circle
0 < e < 1 for an ellipse (e = 0 if MajorRadius = MinorRadius)
e > 1 for a hyperbola
e = 1 for a parabola
- AngleXU: float
doc:
The angle between the X axis and the major axis of the conic.
- Axis: Vector
doc:
The axis direction of the circle
- XAxis: Vector
doc:
The X axis direction of the circle
- YAxis: Vector
doc:
The Y axis direction of the circle
MODULE Mod/Part/App/Cylinder.pyi
classes:
class Cylinder(GeometrySurface)
doc:
Describes a cylinder in 3D space
To create a cylinder there are several ways:
Part.Cylinder()
Creates a default cylinder with center (0,0,0) and radius 1
Part.Cylinder(Cylinder)
Creates a copy of the given cylinder
Part.Cylinder(Cylinder, Distance)
Creates a cylinder parallel to given cylinder at a certain distance
Part.Cylinder(Point1, Point2, Point2)
Creates a cylinder defined by three non-linear points
Part.Cylinder(Circle)
Creates a cylinder by a circular base
attributes:
- Radius: float
doc:
The radius of the cylinder.
- Center: Vector
doc:
Center of the cylinder.
- Axis: Vector
doc:
The axis direction of the cylinder
methods:
@overload
- def __init__(self) -> None
@overload
- def __init__(self, cylinder: 'Cylinder') -> None
@overload
- def __init__(self, cylinder: 'Cylinder', distance: float) -> None
@overload
- def __init__(self, point1: Vector, point2: Vector, point3: Vector) -> None
@overload
- def __init__(self, circle: Circle) -> None
MODULE Mod/Part/App/Ellipse.pyi
classes:
class Ellipse(Conic)
doc:
Describes an ellipse in 3D space
To create an ellipse there are several ways:
Part.Ellipse()
Creates an ellipse with major radius 2 and minor radius 1 with the
center in (0,0,0)
Part.Ellipse(Ellipse)
Create a copy of the given ellipse
Part.Ellipse(S1,S2,Center)
Creates an ellipse centered on the point Center, where
the plane of the ellipse is defined by Center, S1 and S2,
its major axis is defined by Center and S1,
its major radius is the distance between Center and S1, and
its minor radius is the distance between S2 and the major axis.
Part.Ellipse(Center,MajorRadius,MinorRadius)
Creates an ellipse with major and minor radii MajorRadius and
MinorRadius, and located in the plane defined by Center and
the normal (0,0,1)
attributes:
- MajorRadius: float
doc:
The major radius of the ellipse.
- MinorRadius: float
doc:
The minor radius of the ellipse.
- Focal: Final[float]
doc:
The focal distance of the ellipse.
- Focus1: Final[Vector]
doc:
The first focus is on the positive side of the major axis of the ellipse.
- Focus2: Final[Vector]
doc:
The second focus is on the negative side of the major axis of the ellipse.
methods:
@overload
- def __init__(self) -> None
@overload
- def __init__(self, ellipse: 'Ellipse', /) -> None
@overload
- def __init__(self, s1: Vector, s2: Vector, center: Vector, /) -> None
@overload
- def __init__(self, center: Vector, major_radius: float, minor_radius: float, /) -> None
MODULE Mod/Part/App/Geom2d/ArcOfCircle2d.pyi
classes:
class ArcOfCircle2d(ArcOfConic2d)
doc:
Describes a portion of a circle
attributes:
- Radius: float
doc:
The radius of the circle.
- Circle: Final[object]
doc:
The internal circle representation
methods:
@overload
- def __init__(self, Radius: float, Circle: object) -> None
MODULE Mod/Part/App/Geom2d/ArcOfConic2d.pyi
classes:
class ArcOfConic2d(Curve2d)
doc:
Describes an abstract arc of conic in 2d space.
attributes:
- Location: object
doc:
Location of the conic.
- Eccentricity: Final[float]
doc:
returns the eccentricity value of the conic e.
e = 0 for a circle
0 < e < 1 for an ellipse (e = 0 if MajorRadius = MinorRadius)
e > 1 for a hyperbola
e = 1 for a parabola
- XAxis: object
doc:
The X axis direction of the circle.
- YAxis: object
doc:
The Y axis direction of the circle.
MODULE Mod/Part/App/Geom2d/ArcOfEllipse2d.pyi
classes:
class ArcOfEllipse2d(ArcOfConic2d)
doc:
Describes a portion of an ellipse
attributes:
- MajorRadius: float
doc:
The major radius of the ellipse.
- MinorRadius: float
doc:
The minor radius of the ellipse.
- Ellipse: Final[object]
doc:
The internal ellipse representation
methods:
@overload
- def __init__(self) -> None
MODULE Mod/Part/App/Geom2d/ArcOfHyperbola2d.pyi
classes:
class ArcOfHyperbola2d(ArcOfConic2d)
doc:
Describes a portion of an hyperbola
attributes:
- MajorRadius: float
doc:
The major radius of the hyperbola.
- MinorRadius: float
doc:
The minor radius of the hyperbola.
- Hyperbola: Final[object]
doc:
The internal hyperbola representation
methods:
@overload
- def __init__(self) -> None
MODULE Mod/Part/App/Geom2d/ArcOfParabola2d.pyi
classes:
class ArcOfParabola2d(ArcOfConic2d)
doc:
Describes a portion of a parabola.
attributes:
- Focal: float
doc:
The focal length of the parabola.
- Parabola: Final[object]
doc:
The internal parabola representation.
methods:
@overload
- def __init__(self) -> None
MODULE Mod/Part/App/Geom2d/BSplineCurve2d.pyi
classes:
class BSplineCurve2d(Curve2d)
doc:
Describes a B-Spline curve in 3D space
attributes:
- Degree: Final[int]
doc:
Returns the polynomial degree of this B-Spline curve.
- MaxDegree: Final[int]
doc:
Returns the value of the maximum polynomial degree of any
B-Spline curve curve. This value is 25.
- NbPoles: Final[int]
doc:
Returns the number of poles of this B-Spline curve.
- NbKnots: Final[int]
doc:
Returns the number of knots of this B-Spline curve.
- StartPoint: Final[object]
doc:
Returns the start point of this B-Spline curve.
- EndPoint: Final[object]
doc:
Returns the end point of this B-Spline curve.
- FirstUKnotIndex: Final[object]
doc:
Returns the index in the knot array of the knot
corresponding to the first or last parameter
of this B-Spline curve.
- LastUKnotIndex: Final[object]
doc:
Returns the index in the knot array of the knot
corresponding to the first or last parameter
of this B-Spline curve.
- KnotSequence: Final[list]
doc:
Returns the knots sequence of this B-Spline curve.
methods:
- def isRational(self) -> bool
doc:
Returns true if this B-Spline curve is rational.
A B-Spline curve is rational if, at the time of construction, the weight table has been initialized.
- def isPeriodic(self) -> bool
doc:
Returns true if this BSpline curve is periodic.
- def isClosed(self) -> bool
doc:
Returns true if the distance between the start point and end point of
this B-Spline curve is less than or equal to gp::Resolution().
- def increaseDegree(self, Degree: int, /) -> None
doc:
increaseDegree(Int=Degree)
Increases the degree of this B-Spline curve to Degree.
As a result, the poles, weights and multiplicities tables
are modified; the knots table is not changed. Nothing is
done if Degree is less than or equal to the current degree.
@overload
- def increaseMultiplicity(self, index: int, mult: int, /) -> None
@overload
- def increaseMultiplicity(self, start: int, end: int, mult: int, /) -> None
- def increaseMultiplicity(self, *args, **kwargs) -> None
doc:
increaseMultiplicity(int index, int mult)
increaseMultiplicity(int start, int end, int mult)
Increases multiplicity of knots up to mult.
index: the index of a knot to modify (1-based)
start, end: index range of knots to modify.
If mult is lower or equal to the current multiplicity nothing is done.
If mult is higher than the degree the degree is used.
- def incrementMultiplicity(self, start: int, end: int, mult: int, /) -> None
doc:
incrementMultiplicity(int start, int end, int mult)
Raises multiplicity of knots by mult.
start, end: index range of knots to modify.
- def insertKnot(self, u: float, mult: int=1, tol: float=0.0, /) -> None
doc:
insertKnot(u, mult = 1, tol = 0.0)
Inserts a knot value in the sequence of knots. If u is an existing knot the multiplicity is increased by mult.
- def insertKnots(self, list_of_floats: list[float], list_of_ints: list[int], tol: float=0.0, bool_add: bool=True, /) -> None
doc:
insertKnots(list_of_floats, list_of_ints, tol = 0.0, bool_add = True)
Inserts a set of knots values in the sequence of knots.
For each u = list_of_floats[i], mult = list_of_ints[i]
If u is an existing knot the multiplicity is increased by mult if bool_add is
True, otherwise increased to mult.
If u is not on the parameter range nothing is done.
If the multiplicity is negative or null nothing is done. The new multiplicity
is limited to the degree.
The tolerance criterion for knots equality is the max of Epsilon(U) and ParametricTolerance.
- def removeKnot(self, Index: int, M: int, tol: float, /) -> None
doc:
removeKnot(Index, M, tol)
Reduces the multiplicity of the knot of index Index to M.
If M is equal to 0, the knot is removed.
With a modification of this type, the array of poles is also modified.
Two different algorithms are systematically used to compute the new
poles of the curve. If, for each pole, the distance between the pole
calculated using the first algorithm and the same pole calculated using
the second algorithm, is less than Tolerance, this ensures that the curve
is not modified by more than Tolerance. Under these conditions, true is
returned; otherwise, false is returned.
A low tolerance is used to prevent modification of the curve.
A high tolerance is used to 'smooth' the curve.
- def segment(self, u1: float, u2: float, /) -> None
doc:
segment(u1,u2)
Modifies this B-Spline curve by segmenting it.
- def setKnot(self, value: float, /) -> None
doc:
Set a knot of the B-Spline curve.
- def getKnot(self, index: int, /) -> float
doc:
Get a knot of the B-Spline curve.
- def setKnots(self, knots: list[float], /) -> None
doc:
Set knots of the B-Spline curve.
- def getKnots(self) -> list[float]
doc:
Get all knots of the B-Spline curve.
- def setPole(self, P: Vector, Index: int, /) -> None
doc:
Modifies this B-Spline curve by assigning P to the pole of index Index in the poles table.
- def getPole(self, Index: int, /) -> Vector
doc:
Get a pole of the B-Spline curve.
- def getPoles(self) -> list[Vector]
doc:
Get all poles of the B-Spline curve.
- def setWeight(self, weight: float, Index: int, /) -> None
doc:
Set a weight of the B-Spline curve.
- def getWeight(self, Index: int, /) -> float
doc:
Get a weight of the B-Spline curve.
- def getWeights(self) -> list[float]
doc:
Get all weights of the B-Spline curve.
- def getPolesAndWeights(self) -> tuple[list[Vector], list[float]]
doc:
Returns the table of poles and weights in homogeneous coordinates.
@constmethod
- def getResolution(self) -> float
doc:
Computes for this B-Spline curve the parametric tolerance (UTolerance)
for a given 3D tolerance (Tolerance3D).
If f(t) is the equation of this B-Spline curve, the parametric tolerance ensures that:
|t1-t0| < UTolerance =""==> |f(t1)-f(t0)| < Tolerance3D
- def movePoint(self, U: float, P: Vector, Index1: int, Index2: int, /) -> tuple[int, int]
doc:
movePoint(U, P, Index1, Index2)
Moves the point of parameter U of this B-Spline curve to P.
Index1 and Index2 are the indexes in the table of poles of this B-Spline curve
of the first and last poles designated to be moved.
Returns: (FirstModifiedPole, LastModifiedPole). They are the indexes of the
first and last poles which are effectively modified.
- def setNotPeriodic(self) -> None
doc:
Changes this B-Spline curve into a non-periodic curve.
If this curve is already non-periodic, it is not modified.
- def setPeriodic(self) -> None
doc:
Changes this B-Spline curve into a periodic curve.
- def setOrigin(self, Index: int, /) -> None
doc:
Assigns the knot of index Index in the knots table as the origin of this periodic B-Spline curve.
As a consequence, the knots and poles tables are modified.
- def getMultiplicity(self, index: int, /) -> int
doc:
Returns the multiplicity of the knot of index from the knots table of this B-Spline curve.
- def getMultiplicities(self) -> list[int]
doc:
Returns the multiplicities table M of the knots of this B-Spline curve.
- def approximate(self, **kwargs) -> None
doc:
Replaces this B-Spline curve by approximating a set of points.
The function accepts keywords as arguments.
approximate2(Points = list_of_points)
Optional arguments :
DegMin = integer (3) : Minimum degree of the curve.
DegMax = integer (8) : Maximum degree of the curve.
Tolerance = float (1e-3) : approximating tolerance.
Continuity = string ('C2') : Desired continuity of the curve.
Possible values : 'C0','G1','C1','G2','C2','C3','CN'
LengthWeight = float, CurvatureWeight = float, TorsionWeight = float
If one of these arguments is not null, the functions approximates the
points using variational smoothing algorithm, which tries to minimize
additional criterium:
LengthWeight*CurveLength + CurvatureWeight*Curvature + TorsionWeight*Torsion
Continuity must be C0, C1 or C2, else defaults to C2.
Parameters = list of floats : knot sequence of the approximated points.
This argument is only used if the weights above are all null.
ParamType = string ('Uniform','Centripetal' or 'ChordLength')
Parameterization type. Only used if weights and Parameters above aren't specified.
Note : Continuity of the spline defaults to C2. However, it may not be applied if
it conflicts with other parameters ( especially DegMax ).
- def getCardinalSplineTangents(self, **kwargs) -> None
doc:
Compute the tangents for a Cardinal spline
- def interpolate(self, **kwargs) -> None
doc:
Replaces this B-Spline curve by interpolating a set of points.
The function accepts keywords as arguments.
interpolate(Points = list_of_points)
Optional arguments :
PeriodicFlag = bool (False) : Sets the curve closed or opened.
Tolerance = float (1e-6) : interpolating tolerance
Parameters : knot sequence of the interpolated points.
If not supplied, the function defaults to chord-length parameterization.
If PeriodicFlag == True, one extra parameter must be appended.
EndPoint Tangent constraints :
InitialTangent = vector, FinalTangent = vector
specify tangent vectors for starting and ending points
of the BSpline. Either none, or both must be specified.
Full Tangent constraints :
Tangents = list_of_vectors, TangentFlags = list_of_bools
Both lists must have the same length as Points list.
Tangents specifies the tangent vector of each point in Points list.
TangentFlags (bool) activates or deactivates the corresponding tangent.
These arguments will be ignored if EndPoint Tangents (above) are also defined.
Note : Continuity of the spline defaults to C2. However, if periodic, or tangents
are supplied, the continuity will drop to C1.
- def buildFromPoles(self, poles: list[Vector], /) -> None
doc:
Builds a B-Spline by a list of poles.
@overload
- def buildFromPolesMultsKnots(self, poles: list[Vector], mults: tuple[int, ...], knots: tuple[float, ...], periodic: bool, degree: int) -> None
@overload
- def buildFromPolesMultsKnots(self, poles: list[Vector], mults: tuple[int, ...], knots: tuple[float, ...], periodic: bool, degree: int, weights: tuple[float, ...], CheckRational: bool) -> None
- def buildFromPolesMultsKnots(self, **kwargs) -> None
doc:
Builds a B-Spline by a lists of Poles, Mults, Knots.
arguments: poles (sequence of Base.Vector),
[mults , knots, periodic, degree, weights (sequence of float), CheckRational]
Examples:
from FreeCAD-compatible runtime import Base
import Part
V=Base.Vector
poles=[V(-10,-10),V(10,-10),V(10,10),V(-10,10)]
# non-periodic spline
n=Part.BSplineCurve()
n.buildFromPolesMultsKnots(poles,(3,1,3),(0,0.5,1),False,2)
Part.show(n.toShape())
# periodic spline
p=Part.BSplineCurve()
p.buildFromPolesMultsKnots(poles,(1,1,1,1,1),(0,0.25,0.5,0.75,1),True,2)
Part.show(p.toShape())
# periodic and rational spline
r=Part.BSplineCurve()
r.buildFromPolesMultsKnots(poles,(1,1,1,1,1),(0,0.25,0.5,0.75,1),True,2,(1,0.8,0.7,0.2))
Part.show(r.toShape())
- def toBezier(self) -> list
doc:
Build a list of Bezier splines.
- def toBiArcs(self, tolerance: float, /) -> list
doc:
toBiArcs(tolerance) -> list.
Build a list of arcs and lines to approximate the B-spline.
- def join(self, other: 'BSplineCurve2d', /) -> 'BSplineCurve2d'
doc:
Build a new spline by joining this and a second spline.
- def makeC1Continuous(self, tol: float=1e-06, ang_tol: float=1e-07, /) -> 'BSplineCurve2d'
doc:
makeC1Continuous(tol = 1e-6, ang_tol = 1e-7)
Reduces as far as possible the multiplicities of the knots of this BSpline
(keeping the geometry). It returns a new BSpline, which could still be C0.
tol is a geometrical tolerance.
The tol_ang is angular tolerance, in radians. It sets tolerable angle mismatch
of the tangents on the left and on the right to decide if the curve is G1 or
not at a given point.
MODULE Mod/Part/App/Geom2d/BezierCurve2d.pyi
classes:
class BezierCurve2d(Curve2d)
doc:
Describes a rational or non-rational Bezier curve in 2d space:
-- a non-rational Bezier curve is defined by a table of poles (also called control points)
-- a rational Bezier curve is defined by a table of poles with varying weights
attributes:
- Degree: Final[int]
doc:
Returns the polynomial degree of this Bezier curve, which is equal to the number of poles minus 1.
- MaxDegree: Final[int]
doc:
Returns the value of the maximum polynomial degree of any Bezier curve curve. This value is 25.
- NbPoles: Final[int]
doc:
Returns the number of poles of this Bezier curve.
- StartPoint: Final[object]
doc:
Returns the start point of this Bezier curve.
- EndPoint: Final[object]
doc:
Returns the end point of this Bezier curve.
methods:
- def isRational(self) -> bool
doc:
Returns false if the weights of all the poles of this Bezier curve are equal.
- def isPeriodic(self) -> bool
doc:
Returns false.
- def isClosed(self) -> bool
doc:
Returns true if the distance between the start point and end point of this Bezier curve
is less than or equal to gp::Resolution().
- def increase(self, Degree: int, /) -> None
doc:
increase(Int=Degree)
Increases the degree of this Bezier curve to Degree.
As a result, the poles and weights tables are modified.
- def insertPoleAfter(self, index: int, /) -> None
doc:
Inserts after the pole of index.
- def insertPoleBefore(self, index: int, /) -> None
doc:
Inserts before the pole of index.
- def removePole(self, index: int, /) -> None
doc:
Removes the pole of index Index from the table of poles of this Bezier curve.
If this Bezier curve is rational, it can become non-rational.
- def segment(self) -> None
doc:
Modifies this Bezier curve by segmenting it.
- def setPole(self, index: int, pole: object, /) -> None
doc:
Set a pole of the Bezier curve.
- def getPole(self, index: int, /) -> object
doc:
Get a pole of the Bezier curve.
- def getPoles(self) -> List[object]
doc:
Get all poles of the Bezier curve.
- def setPoles(self, poles: List[object], /) -> None
doc:
Set the poles of the Bezier curve.
- def setWeight(self, index: int, weight: float, /) -> None
doc:
Set a weight of the Bezier curve.
- def getWeight(self, index: int, /) -> float
doc:
Get a weight of the Bezier curve.
- def getWeights(self) -> List[float]
doc:
Get all weights of the Bezier curve.
@constmethod
- def getResolution(self, Tolerance3D: float, /) -> float
doc:
Computes for this Bezier curve the parametric tolerance (UTolerance)
for a given 3D tolerance (Tolerance3D).
If f(t) is the equation of this Bezier curve,
the parametric tolerance ensures that:
|t1-t0| < UTolerance =""==> |f(t1)-f(t0)| < Tolerance3D
MODULE Mod/Part/App/Geom2d/Circle2d.pyi
classes:
class Circle2d(Conic2d)
doc:
Describes a circle in 3D space
To create a circle there are several ways:
Part.Geom2d.Circle2d()
Creates a default circle with center (0,0) and radius 1
Part.Geom2d.Circle2d(circle)
Creates a copy of the given circle
Part.Geom2d.Circle2d(circle, Distance)
Creates a circle parallel to given circle at a certain distance
Part.Geom2d.Circle2d(Center,Radius)
Creates a circle defined by center and radius
Part.Geom2d.Circle2d(Point1,Point2,Point3)
Creates a circle defined by three non-linear points
attributes:
- Radius: float
doc:
The radius of the circle.
methods:
@overload
- def __init__(self) -> None
@overload
- def __init__(self, circle: 'Circle2d') -> None
@overload
- def __init__(self, circle: 'Circle2d', Distance: float) -> None
@overload
- def __init__(self, Center: Tuple[float, float], Radius: float) -> None
@overload
- def __init__(self, Point1: Tuple[float, float], Point2: Tuple[float, float], Point3: Tuple[float, float]) -> None
@overload
- def __init__(self, *args, **kwargs) -> None
doc:
Describes a circle in 3D space
To create a circle there are several ways:
Part.Geom2d.Circle2d()
Creates a default circle with center (0,0) and radius 1
Part.Geom2d.Circle2d(circle)
Creates a copy of the given circle
Part.Geom2d.Circle2d(circle, Distance)
Creates a circle parallel to given circle at a certain distance
Part.Geom2d.Circle2d(Center,Radius)
Creates a circle defined by center and radius
Part.Geom2d.Circle2d(Point1,Point2,Point3)
Creates a circle defined by three non-linear points
@staticmethod
- def getCircleCenter() -> Tuple[float, float]
doc:
Get the circle center defined by three points
MODULE Mod/Part/App/Geom2d/Conic2d.pyi
classes:
class Conic2d(Curve2d)
doc:
Describes an abstract conic in 2d space
attributes:
- Location: object
doc:
Location of the conic.
- Eccentricity: Final[float]
doc:
returns the eccentricity value of the conic e.
e = 0 for a circle
0 < e < 1 for an ellipse (e = 0 if MajorRadius = MinorRadius)
e > 1 for a hyperbola
e = 1 for a parabola
- XAxis: object
doc:
The X axis direction of the circle
- YAxis: object
doc:
The Y axis direction of the circle
MODULE Mod/Part/App/Geom2d/Curve2d.pyi
classes:
class Curve2d(Geometry2d)
doc:
The abstract class Geom2dCurve is the root class of all curve objects.
attributes:
- Continuity: Final[str]
doc:
Returns the global continuity of the curve.
- Closed: Final[bool]
doc:
Returns true if the curve is closed.
- Periodic: Final[bool]
doc:
Returns true if the curve is periodic.
- FirstParameter: Final[float]
doc:
Returns the value of the first parameter.
- LastParameter: Final[float]
doc:
Returns the value of the last parameter.
methods:
- def reverse(self) -> None
doc:
Changes the direction of parametrization of the curve.
@constmethod
- def toShape(self) -> object
doc:
Return the shape for the geometry.
@overload
@constmethod
- def discretize(self, *, Number: int) -> List[Vector]
@overload
@constmethod
- def discretize(self, *, QuasiNumber: int) -> List[Vector]
@overload
@constmethod
- def discretize(self, *, Distance: float) -> List[Vector]
@overload
@constmethod
- def discretize(self, *, Deflection: float) -> List[Vector]
@overload
@constmethod
- def discretize(self, *, QuasiDeflection: float) -> List[Vector]
@overload
@constmethod
- def discretize(self, *, Angular: float, Curvature: float, Minimum: int=2) -> List[Vector]
@constmethod
- def discretize(self, **kwargs) -> List[Vector]
doc:
Discretizes the curve and returns a list of points.
The function accepts keywords as argument:
discretize(Number=n) => gives a list of 'n' equidistant points.
discretize(QuasiNumber=n) => gives a list of 'n' quasi-equidistant points (is faster than the method above).
discretize(Distance=d) => gives a list of equidistant points with distance 'd'.
discretize(Deflection=d) => gives a list of points with a maximum deflection 'd' to the curve.
discretize(QuasiDeflection=d) => gives a list of points with a maximum deflection 'd' to the curve (faster).
discretize(Angular=a,Curvature=c,[Minimum=m]) => gives a list of points with an angular deflection of 'a'
and a curvature deflection of 'c'. Optionally a minimum number of points
can be set, which by default is set to 2.
Optionally you can set the keywords 'First' and 'Last' to define
a sub-range of the parameter range of the curve.
If no keyword is given, then it depends on whether the argument is an int or float.
If it's an int then the behaviour is as if using the keyword 'Number',
if it's a float then the behaviour is as if using the keyword 'Distance'.
Example:
import Part
c=PartGeom2d.Circle2d()
c.Radius=5
p=c.discretize(Number=50,First=3.14)
s=Part.Compound([Part.Vertex(i) for i in p])
Part.show(s)
p=c.discretize(Angular=0.09,Curvature=0.01,Last=3.14,Minimum=100)
s=Part.Compound([Part.Vertex(i) for i in p])
Part.show(s)
@overload
- def length(self, /) -> float
@overload
- def length(self, uMin: float, /) -> float
@overload
- def length(self, uMin: float, uMax: float, /) -> float
@overload
- def length(self, uMin: float, uMax: float, Tol: float, /) -> float
- def length(self, *args: float) -> float
doc:
Computes the length of a curve
length([uMin,uMax,Tol]) -> Float
@overload
- def parameterAtDistance(self, abscissa: float, /) -> float
@overload
- def parameterAtDistance(self, abscissa: float, startingParameter: float, /) -> float
- def parameterAtDistance(self, *args: float) -> float
doc:
Returns the parameter on the curve of a point at
the given distance from a starting parameter.
parameterAtDistance([abscissa, startingParameter]) -> Float
- def value(self, u: float, /) -> Vector
doc:
Computes the point of parameter u on this curve
- def tangent(self, u: float, /) -> Vector
doc:
Computes the tangent of parameter u on this curve
- def parameter(self, point: Vector, /) -> float
doc:
Returns the parameter on the curve of the
nearest orthogonal projection of the point.
@constmethod
- def normal(self, pos: float, /) -> Vector
doc:
Vector = normal(pos) - Get the normal vector at the given parameter [First|Last] if defined.
@constmethod
- def curvature(self, pos: float, /) -> float
doc:
Float = curvature(pos) - Get the curvature at the given parameter [First|Last] if defined.
@constmethod
- def centerOfCurvature(self, pos: float, /) -> Vector
doc:
Vector = centerOfCurvature(float pos) - Get the center of curvature at the given parameter [First|Last] if defined.
@constmethod
- def intersectCC(self, other: 'Curve2d', /) -> List[Vector]
doc:
Returns all intersection points between this curve and the given curve.
@overload
- def toBSpline(self, /) -> BSplineCurve
@overload
- def toBSpline(self, First: float, Last: float, /) -> BSplineCurve
- def toBSpline(self, *args: float) -> BSplineCurve
doc:
Converts a curve of any type (only part from First to Last)
toBSpline([Float=First, Float=Last]) -> B-Spline curve
- def approximateBSpline(self, Tolerance: float, MaxSegments: int, MaxDegree: int, Order: str='C2', /) -> BSplineCurve
doc:
Approximates a curve of any type to a B-Spline curve
approximateBSpline(Tolerance, MaxSegments, MaxDegree, [Order='C2']) -> B-Spline curve
MODULE Mod/Part/App/Geom2d/Ellipse2d.pyi
classes:
class Ellipse2d(Conic2d)
doc:
Describes an ellipse in 2D space
To create an ellipse there are several ways:
Part.Geom2d.Ellipse2d()
Creates an ellipse with major radius 2 and minor radius 1 with the
center in (0,0)
Part.Geom2d.Ellipse2d(Ellipse)
Create a copy of the given ellipse
Part.Geom2d.Ellipse2d(S1,S2,Center)
Creates an ellipse centered on the point Center,
its major axis is defined by Center and S1,
its major radius is the distance between Center and S1, and
its minor radius is the distance between S2 and the major axis.
Part.Geom2d.Ellipse2d(Center,MajorRadius,MinorRadius)
Creates an ellipse with major and minor radii MajorRadius and
MinorRadius
attributes:
- MajorRadius: float
doc:
The major radius of the ellipse.
- MinorRadius: float
doc:
The minor radius of the ellipse.
- Focal: Final[float]
doc:
The focal distance of the ellipse.
- Focus1: Final[object]
doc:
The first focus is on the positive side of the major axis of the ellipse.
- Focus2: Final[object]
doc:
The second focus is on the negative side of the major axis of the ellipse.
methods:
@overload
- def __init__(self) -> None
@overload
- def __init__(self, Ellipse: 'Ellipse2d') -> None
@overload
- def __init__(self, S1: object, S2: object, Center: object) -> None
@overload
- def __init__(self, Center: object, MajorRadius: float, MinorRadius: float) -> None
@overload
- def __init__(self, *args, **kwargs) -> None
MODULE Mod/Part/App/Geom2d/Geometry2d.pyi
classes:
class Geometry2d(PyObjectBase)
doc:
The abstract class Geometry for 2D space is the root class of all geometric objects.
It describes the common behavior of these objects when:
- applying geometric transformations to objects, and
- constructing objects by geometric transformation (including copying).
methods:
- def mirror(self) -> None
doc:
Performs the symmetrical transformation of this geometric object.
- def rotate(self) -> None
doc:
Rotates this geometric object at angle Ang (in radians) around a point.
- def scale(self) -> None
doc:
Applies a scaling transformation on this geometric object with a center and scaling factor.
- def transform(self) -> None
doc:
Applies a transformation to this geometric object.
- def translate(self) -> None
doc:
Translates this geometric object.
@constmethod
- def copy(self) -> 'Geometry2d'
doc:
Create a copy of this geometry.
MODULE Mod/Part/App/Geom2d/Hyperbola2d.pyi
classes:
class Hyperbola2d(Conic2d)
doc:
Describes a hyperbola in 2D space
To create a hyperbola there are several ways:
Part.Geom2d.Hyperbola2d()
Creates a hyperbola with major radius 2 and minor radius 1 with the
center in (0,0)
Part.Geom2d.Hyperbola2d(Hyperbola)
Create a copy of the given hyperbola
Part.Geom2d.Hyperbola2d(S1,S2,Center)
Creates a hyperbola centered on the point Center, S1 and S2,
its major axis is defined by Center and S1,
its major radius is the distance between Center and S1, and
its minor radius is the distance between S2 and the major axis.
Part.Geom2d.Hyperbola2d(Center,MajorRadius,MinorRadius)
Creates a hyperbola with major and minor radii MajorRadius and
MinorRadius and located at Center
attributes:
- MajorRadius: float
doc:
The major radius of the hyperbola.
- MinorRadius: float
doc:
The minor radius of the hyperbola.
- Focal: Final[float]
doc:
The focal distance of the hyperbola.
- Focus1: Final[object]
doc:
The first focus is on the positive side of the major axis of the hyperbola;
the second focus is on the negative side.
- Focus2: Final[object]
doc:
The first focus is on the positive side of the major axis of the hyperbola;
the second focus is on the negative side.
methods:
@overload
- def __init__(self) -> None
@overload
- def __init__(self, Hyperbola: 'Hyperbola2d') -> None
@overload
- def __init__(self, S1: object, S2: object, Center: object) -> None
@overload
- def __init__(self, Center: object, MajorRadius: float, MinorRadius: float) -> None
MODULE Mod/Part/App/Geom2d/Line2d.pyi
classes:
class Line2d(Curve2d)
doc:
Describes an infinite line in 2D space
To create a line there are several ways:
Part.Geom2d.Line2d()
Creates a default line.
Part.Geom2d.Line2d(Line)
Creates a copy of the given line.
Part.Geom2d.Line2d(Point,Dir)
Creates a line that goes through two given points.
attributes:
- Location: object
doc:
Returns the location of this line.
- Direction: object
doc:
Returns the direction of this line.
MODULE Mod/Part/App/Geom2d/Line2dSegment.pyi
classes:
class Line2dSegment(Curve2d)
doc:
Describes a line segment in 2D space.
To create a line there are several ways:
Part.Geom2d.Line2dSegment()
Creates a default line
Part.Geom2d.Line2dSegment(Line)
Creates a copy of the given line
Part.Geom2d.Line2dSegment(Point1,Point2)
Creates a line that goes through two given points.
attributes:
- StartPoint: object
doc:
Returns the start point of this line segment.
- EndPoint: object
doc:
Returns the end point of this line segment.
methods:
@overload
- def __init__(self) -> None
@overload
- def __init__(self, Line: 'Line2dSegment') -> None
@overload
- def __init__(self, Point1: object, Point2: object) -> None
- def setParameterRange(self) -> None
doc:
Set the parameter range of the underlying line segment geometry.
MODULE Mod/Part/App/Geom2d/OffsetCurve2d.pyi
classes:
class OffsetCurve2d(Curve2d)
attributes:
- OffsetValue: float
doc:
Sets or gets the offset value to offset the underlying curve.
- BasisCurve: object
doc:
Sets or gets the basic curve.
MODULE Mod/Part/App/Geom2d/Parabola2d.pyi
classes:
class Parabola2d(Conic2d)
doc:
Describes a parabola in 2D space
attributes:
- Focal: float
doc:
The focal distance is the distance between the apex and the focus of the parabola.
- Focus: Final[object]
doc:
The focus is on the positive side of the
'X Axis' of the local coordinate system of the parabola.
- Parameter: Final[float]
doc:
Compute the parameter of this parabola which is the distance between its focus
and its directrix. This distance is twice the focal length.
MODULE Mod/Part/App/GeomPlate/BuildPlateSurface.pyi
classes:
class BuildPlateSurface(PyObjectBase)
doc:
This class provides an algorithm for constructing such a plate surface.
methods:
- def init(self) -> None
doc:
Resets all constraints
- def setNbBounds(self) -> None
doc:
Sets the number of bounds
- def loadInitSurface(self) -> None
doc:
Loads the initial surface
@constmethod
- def surfInit(self) -> object
doc:
Returns the initial surface
@constmethod
- def surface(self) -> object
doc:
Returns the plate surface
- def add(self) -> None
doc:
Adds a linear or point constraint
- def perform(self) -> None
doc:
Calls the algorithm and computes the plate surface
@constmethod
- def isDone(self) -> bool
doc:
Tests whether computation of the plate has been completed
@constmethod
- def sense(self) -> object
doc:
Returns the orientation of the curves in the array returned by curves2d
@constmethod
- def order(self) -> int
doc:
Returns the order of the curves in the array returned by curves2d
@constmethod
- def curves2d(self) -> List[object]
doc:
Extracts the array of curves on the plate surface which
correspond to the curve constraints set in add()
@constmethod
- def curveConstraint(self) -> object
doc:
Returns the curve constraint of order
@constmethod
- def pointConstraint(self) -> object
doc:
Returns the point constraint of order
- def disc2dContour(self) -> object
doc:
Returns the 2D contour of the plate surface
- def disc3dContour(self) -> object
doc:
Returns the 3D contour of the plate surface
@constmethod
- def G0Error(self) -> float
doc:
Returns the max distance between the result and the constraints
@constmethod
- def G1Error(self) -> float
doc:
Returns the max angle between the result and the constraints
@constmethod
- def G2Error(self) -> float
doc:
Returns the max difference of curvature between the result and the constraints
MODULE Mod/Part/App/GeomPlate/CurveConstraint.pyi
classes:
class CurveConstraint(PyObjectBase)
doc:
Defines curves as constraints to be used to deform a surface
attributes:
- NbPoints: int
doc:
The number of points on the curve used as a
constraint. The default setting is 10. This parameter
affects computation time, which increases by the cube of
the number of points.
- FirstParameter: Final[float]
doc:
This function returns the first parameter of the curve.
The first parameter is the lowest parametric value for the curve, which defines the starting point of the curve.
- LastParameter: Final[float]
doc:
This function returns the last parameter of the curve.
The last parameter is the highest parametric value for the curve, which defines the ending point of the curve.
- Length: Final[float]
doc:
This function returns the length of the curve.
The length of the curve is a geometric property that indicates how long the curve is in the space.
methods:
- def setOrder(self) -> None
doc:
Allows you to set the order of continuity required for the constraints: G0, G1, and G2, controlled
respectively by G0Criterion G1Criterion and G2Criterion.
- def order(self) -> None
doc:
Returns the order of constraint, one of G0, G1 or G2
- def G0Criterion(self) -> None
doc:
Returns the G0 criterion at the parametric point U on the curve.
This is the greatest distance allowed between the constraint and the target surface at U.
- def G1Criterion(self) -> None
doc:
Returns the G1 criterion at the parametric point U on the curve.
This is the greatest angle allowed between the constraint and the target surface at U.
Raises an exception if the curve is not on a surface.
- def G2Criterion(self) -> None
doc:
Returns the G2 criterion at the parametric point U on the curve.
This is the greatest difference in curvature allowed between the constraint and the target surface at U.
Raises an exception if the curve is not on a surface.
- def setG0Criterion(self) -> None
doc:
Allows you to set the G0 criterion. This is the law
defining the greatest distance allowed between the
constraint and the target surface for each point of the
constraint. If this criterion is not set, TolDist, the
distance tolerance from the constructor, is used.
- def setG1Criterion(self) -> None
doc:
Allows you to set the G1 criterion. This is the law
defining the greatest angle allowed between the
constraint and the target surface. If this criterion is not
set, TolAng, the angular tolerance from the constructor, is used.
Raises an exception if the curve is not on a surface.
- def setG2Criterion(self) -> None
doc:
Allows you to set the G2 criterion. This is the law
defining the greatest difference in curvature allowed
between the constraint and the target surface. If this
criterion is not set, TolCurv, the curvature tolerance from
the constructor, is used.
Raises ConstructionError if the point is not on the surface.
- def curve3d(self) -> None
doc:
Returns a 3d curve associated the surface resulting of the constraints
- def setCurve2dOnSurf(self) -> None
doc:
Loads a 2d curve associated the surface resulting of the constraints
- def curve2dOnSurf(self) -> None
doc:
Returns a 2d curve associated the surface resulting of the constraints
- def setProjectedCurve(self) -> None
doc:
Loads a 2d curve resulting from the normal projection of
the curve on the initial surface
- def projectedCurve(self) -> None
doc:
Returns the projected curve resulting from the normal projection of the
curve on the initial surface
MODULE Mod/Part/App/GeomPlate/PointConstraint.pyi
classes:
class PointConstraint(PyObjectBase)
doc:
Defines points as constraints to be used to deform a surface
methods:
- def setOrder(self, order: str, /) -> None
doc:
Allows you to set the order of continuity required for
the constraints: G0, G1, and G2, controlled
respectively by G0Criterion G1Criterion and G2Criterion.
- def order(self) -> str
doc:
Returns the order of constraint, one of G0, G1 or G2
- def G0Criterion(self, U: float, /) -> float
doc:
Returns the G0 criterion at the parametric point U on
the curve. This is the greatest distance allowed between
the constraint and the target surface at U.
- def G1Criterion(self, U: float, /) -> float
doc:
Returns the G1 criterion at the parametric point U on
the curve. This is the greatest angle allowed between
the constraint and the target surface at U.
Raises an exception if the curve is not on a surface.
- def G2Criterion(self, U: float, /) -> float
doc:
Returns the G2 criterion at the parametric point U on
the curve. This is the greatest difference in curvature
allowed between the constraint and the target surface at U.
Raises an exception if the curve is not on a surface.
- def setG0Criterion(self, value: float, /) -> None
doc:
Allows you to set the G0 criterion. This is the law
defining the greatest distance allowed between the
constraint and the target surface for each point of the
constraint. If this criterion is not set, TolDist, the
distance tolerance from the constructor, is used.
- def setG1Criterion(self, value: float, /) -> None
doc:
Allows you to set the G1 criterion. This is the law
defining the greatest angle allowed between the
constraint and the target surface. If this criterion is not
set, TolAng, the angular tolerance from the constructor, is used.
Raises an exception if the curve is not on a surface
- def setG2Criterion(self, value: float, /) -> None
doc:
Allows you to set the G2 criterion. This is the law
defining the greatest difference in curvature allowed between the
constraint and the target surface. If this criterion is not
set, TolCurv, the curvature tolerance from the constructor, is used.
Raises ConstructionError if the curve is not on a surface
- def hasPnt2dOnSurf(self) -> bool
doc:
Checks if there is a 2D point associated with the surface. It returns a boolean indicating whether such a point exists.
- def setPnt2dOnSurf(self, x: float, y: float, /) -> None
doc:
Allows you to set a 2D point on the surface. It takes a gp_Pnt2d as an argument, representing the 2D point to be associated with the surface.
- def pnt2dOnSurf(self) -> Tuple[float, float]
doc:
Returns the 2D point on the surface. It returns a gp_Pnt2d representing the associated 2D point.
MODULE Mod/Part/App/Geometry.pyi
classes:
class Geometry(Persistence)
doc:
The abstract class Geometry for 3D space is the root class of all geometric objects.
It describes the common behavior of these objects when:
- applying geometric transformations to objects, and
- constructing objects by geometric transformation (including copying).
attributes:
- Tag: Final[str]
doc:
Gives the tag of the geometry as string.
methods:
- def mirror(self, geometry: 'Geometry', /) -> None
doc:
Performs the symmetrical transformation of this geometric object
- def rotate(self, angle: float, axis: Vector, /) -> None
doc:
Rotates this geometric object at angle Ang (in radians) about axis
- def scale(self, center: Vector, factor: float, /) -> None
doc:
Applies a scaling transformation on this geometric object with a center and scaling factor
- def transform(self, transformation: Matrix, /) -> None
doc:
Applies a transformation to this geometric object
- def translate(self, vector: Vector, /) -> None
doc:
Translates this geometric object
@constmethod
- def copy(self) -> 'Geometry'
doc:
Create a copy of this geometry
@constmethod
- def clone(self) -> 'Geometry'
doc:
Create a clone of this geometry with the same Tag
@constmethod
- def isSame(self, geom: 'Geometry', tol: float, angulartol: float, /) -> bool
doc:
isSame(geom, tol, angulartol) -> boolean
Compare this geometry to another one
@constmethod
- def hasExtensionOfType(self, type_name: str, /) -> bool
doc:
Returns a boolean indicating whether a geometry extension of the type indicated as a string exists.
@constmethod
- def hasExtensionOfName(self, name: str, /) -> bool
doc:
Returns a boolean indicating whether a geometry extension with the name indicated as a string exists.
@constmethod
- def getExtensionOfType(self, type_name: str, /) -> Optional[Extension]
doc:
Gets the first geometry extension of the type indicated by the string.
@constmethod
- def getExtensionOfName(self, name: str, /) -> Optional[Extension]
doc:
Gets the first geometry extension of the name indicated by the string.
- def setExtension(self, extension: Extension, /) -> None
doc:
Sets a geometry extension of the indicated type.
- def deleteExtensionOfType(self, type_name: str, /) -> None
doc:
Deletes all extensions of the indicated type.
- def deleteExtensionOfName(self, name: str, /) -> None
doc:
Deletes all extensions of the indicated name.
@constmethod
- def getExtensions(self) -> List[Extension]
doc:
Returns a list with information about the geometry extensions.
MODULE Mod/Part/App/GeometryBoolExtension.pyi
classes:
class GeometryBoolExtension(GeometryExtension)
doc:
A GeometryExtension extending geometry objects with a boolean.
attributes:
- Value: bool
doc:
Returns the value of the GeometryBoolExtension.
MODULE Mod/Part/App/GeometryCurve.pyi
classes:
class GeometryCurve(Geometry)
doc:
The abstract class GeometryCurve is the root class of all curve objects.
attributes:
- Continuity: Final[str]
doc:
Returns the global continuity of the curve.
- FirstParameter: Final[float]
doc:
Returns the value of the first parameter.
- LastParameter: Final[float]
doc:
Returns the value of the last parameter.
- Rotation: Final[RotationPy]
doc:
Returns a rotation object to describe the orientation for curve that supports it
methods:
@constmethod
- def toShape(self) -> TopoShape
doc:
Return the shape for the geometry.
@overload
@constmethod
- def discretize(self, Number: int, *, First: Optional[float]=None, Last: Optional[float]=None) -> List[Vector]
doc:
Discretizes the curve and returns a list of points.
@overload
@constmethod
- def discretize(self, QuasiNumber: int, *, First: Optional[float]=None, Last: Optional[float]=None) -> List[Vector]
doc:
Discretizes the curve and returns a list of quasi equidistant points.
@overload
@constmethod
- def discretize(self, Distance: float, *, First: Optional[float]=None, Last: Optional[float]=None) -> List[Vector]
doc:
Discretizes the curve and returns a list of equidistant points with distance 'd'.
@overload
@constmethod
- def discretize(self, Deflection: float, *, First: Optional[float]=None, Last: Optional[float]=None) -> List[Vector]
doc:
Discretizes the curve and returns a list of points with a maximum deflection 'd' to the curve.
@overload
@constmethod
- def discretize(self, QuasiDeflection: float, *, First: Optional[float]=None, Last: Optional[float]=None) -> List[Vector]
doc:
Discretizes the curve and returns a list of points with a maximum deflection 'd' to the curve (faster).
@overload
@constmethod
- def discretize(self, Angular: float, Curvature: float, Minimum: int=2, *, First: Optional[float]=None, Last: Optional[float]=None) -> List[Vector]
doc:
Discretizes the curve and returns a list of points with an angular deflection of 'a' and a curvature deflection of 'c'.
Optionally a minimum number of points can be set.
@constmethod
- def discretize(self, **kwargs) -> List[Vector]
doc:
Discretizes the curve and returns a list of points.
The function accepts keywords as argument:
discretize(Number=n) => gives a list of 'n' equidistant points
discretize(QuasiNumber=n) => gives a list of 'n' quasi equidistant points (is faster than the method above)
discretize(Distance=d) => gives a list of equidistant points with distance 'd'
discretize(Deflection=d) => gives a list of points with a maximum deflection 'd' to the curve
discretize(QuasiDeflection=d) => gives a list of points with a maximum deflection 'd' to the curve (faster)
discretize(Angular=a,Curvature=c,[Minimum=m]) => gives a list of points with an angular deflection of 'a'
and a curvature deflection of 'c'. Optionally a minimum number of points
can be set which by default is set to 2.
Optionally you can set the keywords 'First' and 'Last' to define a sub-range of the parameter range
of the curve.
If no keyword is given then it depends on whether the argument is an int or float.
If it's an int then the behaviour is as if using the keyword 'Number', if it's float
then the behaviour is as if using the keyword 'Distance'.
Example:
import Part
c=Part.Circle()
c.Radius=5
p=c.discretize(Number=50,First=3.14)
s=Part.Compound([Part.Vertex(i) for i in p])
Part.show(s)
p=c.discretize(Angular=0.09,Curvature=0.01,Last=3.14,Minimum=100)
s=Part.Compound([Part.Vertex(i) for i in p])
Part.show(s)
@constmethod
- def getD0(self, parameter: float, /) -> Vector
doc:
Returns the point of given parameter
@constmethod
- def getD1(self, parameter: float, /) -> Vector
doc:
Returns the point and first derivative of given parameter
@constmethod
- def getD2(self, parameter: float, /) -> Vector
doc:
Returns the point, first and second derivatives
@constmethod
- def getD3(self, parameter: float, /) -> Vector
doc:
Returns the point, first, second and third derivatives
@constmethod
- def getDN(self, n: int, parameter: float, /) -> Vector
doc:
Returns the n-th derivative
@constmethod
- def length(self, uMin: Optional[float]=None, uMax: Optional[float]=None, Tol: Optional[float]=None, /) -> float
doc:
Computes the length of a curve
length([uMin, uMax, Tol]) -> float
@constmethod
- def parameterAtDistance(self, abscissa: Optional[float]=None, startingParameter: Optional[float]=None, /) -> float
doc:
Returns the parameter on the curve of a point at the given distance from a starting parameter.
parameterAtDistance([abscissa, startingParameter]) -> float
@constmethod
- def value(self, u: float, /) -> Vector
doc:
Computes the point of parameter u on this curve
@constmethod
- def tangent(self, u: float, /) -> Vector
doc:
Computes the tangent of parameter u on this curve
@constmethod
- def makeRuledSurface(self, otherCurve: 'GeometryCurve', /) -> object
doc:
Make a ruled surface of this and the given curves
@constmethod
- def intersect2d(self, otherCurve: 'GeometryCurve', /) -> List[Vector]
doc:
Get intersection points with another curve lying on a plane.
@constmethod
- def continuityWith(self, otherCurve: 'GeometryCurve', /) -> str
doc:
Computes the continuity of two curves
@constmethod
- def parameter(self, point: Vector, /) -> float
doc:
Returns the parameter on the curve of the nearest orthogonal projection of the point.
@constmethod
- def normal(self, pos: float, /) -> Vector
doc:
Vector = normal(pos) - Get the normal vector at the given parameter [First|Last] if defined
@overload
@constmethod
- def projectPoint(self, Point: Vector, Method: str='NearestPoint') -> Vector
doc:
projectPoint(Point=Vector, Method="NearestPoint") -> Vector
@overload
@constmethod
- def projectPoint(self, Point: Vector, Method: str='LowerDistance') -> float
doc:
projectPoint(Vector, "LowerDistance") -> float.
@overload
@constmethod
- def projectPoint(self, Point: Vector, Method: str='LowerDistanceParameter') -> float
doc:
projectPoint(Vector, "LowerDistanceParameter") -> float.
@overload
@constmethod
- def projectPoint(self, Point: Vector, Method: str='Distance') -> List[float]
doc:
projectPoint(Vector, "Distance") -> list of floats.
@overload
@constmethod
- def projectPoint(self, Point: Vector, Method: str='Parameter') -> List[float]
doc:
projectPoint(Vector, "Parameter") -> list of floats.
@overload
@constmethod
- def projectPoint(self, Point: Vector, Method: str='Point') -> List[Vector]
doc:
projectPoint(Vector, "Point") -> list of points.
@constmethod
- def projectPoint(self, **kwargs) -> Union[Vector, float, List[float], List[Vector]]
doc:
Computes the projection of a point on the curve
projectPoint(Point=Vector,[Method="NearestPoint"])
projectPoint(Vector,"NearestPoint") -> Vector
projectPoint(Vector,"LowerDistance") -> float
projectPoint(Vector,"LowerDistanceParameter") -> float
projectPoint(Vector,"Distance") -> list of floats
projectPoint(Vector,"Parameter") -> list of floats
projectPoint(Vector,"Point") -> list of points
@constmethod
- def curvature(self, pos: float, /) -> float
doc:
Float = curvature(pos) - Get the curvature at the given parameter [First|Last] if defined
@constmethod
- def centerOfCurvature(self, pos: float, /) -> Vector
doc:
Vector = centerOfCurvature(float pos) - Get the center of curvature at the given parameter [First|Last] if defined
@constmethod
- def intersect(self, curve_or_surface: object, precision: float, /) -> object
doc:
Returns all intersection points and curve segments between the curve and the curve/surface.
arguments: curve/surface (for the intersection), precision (float)
@constmethod
- def intersectCS(self, surface: object, /) -> object
doc:
Returns all intersection points and curve segments between the curve and the surface.
@constmethod
- def intersectCC(self, otherCurve: 'GeometryCurve', /) -> List[Vector]
doc:
Returns all intersection points between this curve and the given curve.
@constmethod
- def toBSpline(self, points: Tuple[float, float], /) -> BSplineCurve
doc:
Converts a curve of any type (only part from First to Last) to BSpline curve.
toBSpline((first: float, last: float)) -> BSplineCurve
@constmethod
- def toNurbs(self, points: Tuple[float, float], /) -> BSplineCurve
doc:
Converts a curve of any type (only part from First to Last) to NURBS curve.
toNurbs((first: float, last: float)) -> NurbsCurve
@constmethod
- def trim(self, points: Tuple[float, float], /) -> TrimmedCurve
doc:
Returns a trimmed curve defined in the given parameter range.
trim((first: float, last: float)) -> TrimmedCurve
@constmethod
- def approximateBSpline(self, Tolerance: float, MaxSegments: int, MaxDegree: int, Order: str='C2', /) -> BSplineCurve
doc:
Approximates a curve of any type to a B-Spline curve.
approximateBSpline(Tolerance, MaxSegments, MaxDegree, [Order='C2']) -> BSplineCurve
- def reverse(self) -> None
doc:
Changes the direction of parametrization of the curve.
@constmethod
- def reversedParameter(self, U: float, /) -> float
doc:
Returns the parameter on the reversed curve for the point of parameter U on this curve.
@constmethod
- def isPeriodic(self) -> bool
doc:
Returns true if this curve is periodic.
@constmethod
- def period(self) -> float
doc:
Returns the period of this curve or raises an exception if it is not periodic.
@constmethod
- def isClosed(self) -> bool
doc:
Returns true if the curve is closed.
MODULE Mod/Part/App/GeometryDoubleExtension.pyi
classes:
class GeometryDoubleExtension(GeometryExtension)
doc:
A GeometryExtension extending geometry objects with a double.
attributes:
- Value: float
doc:
Returns the value of the GeometryDoubleExtension.
MODULE Mod/Part/App/GeometryExtension.pyi
classes:
class GeometryExtension(PyObjectBase)
doc:
The abstract class GeometryExtension enables to extend geometry objects with application specific data.
attributes:
- Name: str
doc:
Sets/returns the name of this extension.
methods:
@constmethod
- def copy(self) -> 'GeometryExtension'
doc:
Create a copy of this geometry extension.
MODULE Mod/Part/App/GeometryIntExtension.pyi
classes:
class GeometryIntExtension(GeometryExtension)
doc:
A GeometryExtension extending geometry objects with an int.
attributes:
- Value: int
doc:
returns the value of the GeometryIntExtension.
MODULE Mod/Part/App/GeometryStringExtension.pyi
classes:
class GeometryStringExtension(GeometryExtension)
doc:
A GeometryExtension extending geometry objects with a string.
attributes:
- Value: str
doc:
returns the value of the GeometryStringExtension.
MODULE Mod/Part/App/GeometrySurface.pyi
classes:
class GeometrySurface(Geometry)
doc:
The abstract class GeometrySurface is the root class of all surface objects.
attributes:
- Continuity: Final[str]
doc:
Returns the global continuity of the surface.
- Rotation: Final[RotationPy]
doc:
Returns a rotation object to describe the orientation for surface that supports it
methods:
@constmethod
- def toShape(self) -> Any
doc:
Return the shape for the geometry.
@constmethod
- def toShell(self, Bounds: object, Segment: object) -> Any
doc:
Make a shell of the surface.
@constmethod
- def getD0(self, param: float, /) -> Vector
doc:
Returns the point of given parameter
@constmethod
- def getDN(self, n: int, /) -> Any
doc:
Returns the n-th derivative
@constmethod
- def value(self, u: float, v: float, /) -> Vector
doc:
value(u,v) -> Point
Computes the point of parameter (u,v) on this surface
@constmethod
- def tangent(self, u: float, v: float, /) -> Tuple[Vector, Vector]
doc:
tangent(u,v) -> (Vector,Vector)
Computes the tangent of parameter (u,v) on this geometry
@constmethod
- def normal(self, u: float, v: float, /) -> Vector
doc:
normal(u,v) -> Vector
Computes the normal of parameter (u,v) on this geometry
@overload
- def projectPoint(self, Point: Vector, Method: Literal['NearestPoint']='NearestPoint') -> Vector
@overload
- def projectPoint(self, Point: Vector, Method: Literal['LowerDistance']) -> float
@overload
- def projectPoint(self, Point: Vector, Method: Literal['LowerDistanceParameters']) -> Tuple[float, float]
@overload
- def projectPoint(self, Point: Vector, Method: Literal['Distance']) -> List[float]
@overload
- def projectPoint(self, Point: Vector, Method: Literal['Parameters']) -> List[Tuple[float, float]]
@overload
- def projectPoint(self, Point: Vector, Method: Literal['Point']) -> List[Vector]
@constmethod
- def projectPoint(self, Point: Vector, Method: str=...) -> Any
doc:
Computes the projection of a point on the surface
projectPoint(Point=Vector,[Method="NearestPoint"])
projectPoint(Vector,"NearestPoint") -> Vector
projectPoint(Vector,"LowerDistance") -> float
projectPoint(Vector,"LowerDistanceParameters") -> tuple of floats (u,v)
projectPoint(Vector,"Distance") -> list of floats
projectPoint(Vector,"Parameters") -> list of tuples of floats
projectPoint(Vector,"Point") -> list of points
@constmethod
- def isUmbillic(self, u: float, v: float, /) -> bool
doc:
isUmbillic(u,v) -> bool
Check if the geometry on parameter is an umbillic point,
i.e. maximum and minimum curvature are equal.
@constmethod
- def curvature(self, u: float, v: float, type: str, /) -> float
doc:
curvature(u,v,type) -> float
The value of type must be one of this: Max, Min, Mean or Gauss
Computes the curvature of parameter (u,v) on this geometry
@constmethod
- def curvatureDirections(self, u: float, v: float, /) -> Tuple[Vector, Vector]
doc:
curvatureDirections(u,v) -> (Vector,Vector)
Computes the directions of maximum and minimum curvature
of parameter (u,v) on this geometry.
The first vector corresponds to the maximum curvature,
the second vector corresponds to the minimum curvature.
@constmethod
- def bounds(self) -> Tuple[float, float, float, float]
doc:
Returns the parametric bounds (U1, U2, V1, V2) of this trimmed surface.
@constmethod
- def isPlanar(self, tolerance: float=0.0, /) -> bool
doc:
isPlanar([float]) -> Bool
Checks if the surface is planar within a certain tolerance.
@constmethod
- def uIso(self, u: Tuple, /) -> Union[GeometryCurve, Line]
doc:
Builds the U isoparametric curve
@constmethod
- def vIso(self, v: Tuple, /) -> Union[GeometryCurve, Line]
doc:
Builds the V isoparametric curve
@constmethod
- def isUPeriodic(self) -> bool
doc:
Returns true if this patch is periodic in the given parametric direction.
@constmethod
- def isVPeriodic(self) -> bool
doc:
Returns true if this patch is periodic in the given parametric direction.
@constmethod
- def isUClosed(self) -> bool
doc:
Checks if this surface is closed in the u parametric direction.
@constmethod
- def isVClosed(self) -> bool
doc:
Checks if this surface is closed in the v parametric direction.
@constmethod
- def UPeriod(self) -> float
doc:
Returns the period of this patch in the u parametric direction.
@constmethod
- def VPeriod(self) -> float
doc:
Returns the period of this patch in the v parametric direction.
@constmethod
- def parameter(self) -> float
doc:
Returns the parameter on the curve
of the nearest orthogonal projection of the point.
@overload
- def toBSpline(self, tolerance: float=1e-07, continuity_u: Literal['C0', 'G0', 'G1', 'C1', 'G2', 'C3', 'CN']='C1', continuity_v: Literal['C0', 'G0', 'G1', 'C1', 'G2', 'C3', 'CN']='C1', max_degree_u: int=25, max_degree_v: int=25, max_segments: int=1000, precision_code: int=0) -> Any
@constmethod
- def toBSpline(self, tolerance: float=1e-07, continuity_u: str='C1', continuity_v: str='C1', max_degree_u: int=25, max_degree_v: int=25, max_segments: int=1000, precision_code: int=0) -> Any
doc:
Returns a B-Spline representation of this surface.
The optional arguments are:
* tolerance (default=1e-7)
* continuity in u (as string e.g. C0, G0, G1, C1, G2, C3, CN) (default='C1')
* continuity in v (as string e.g. C0, G0, G1, C1, G2, C3, CN) (default='C1')
* maximum degree in u (default=25)
* maximum degree in v (default=25)
* maximum number of segments (default=1000)
* precision code (default=0)
Will raise an exception if surface is infinite in U or V (like planes, cones or cylinders)
@constmethod
- def intersect(self) -> Any
doc:
Returns all intersection points/curves between the surface and the curve/surface.
@constmethod
- def intersectSS(self, SecondSurface: Any, precision_code: int=0, /) -> Any
doc:
Returns all intersection curves of this surface and the given surface.
The required arguments are:
* Second surface
* precision code (optional, default=0)
MODULE Mod/Part/App/HLRBRep/HLRBRep_Algo.pyi
classes:
class HLRBRep_Algo(PyObjectBase)
doc:
Algo() -> HLRBRep_Algo
A framework to compute a shape as seen in a projection
plane. This is done by calculating the visible and the hidden parts
of the shape. HLRBRep_Algo works with three types of entity:
- shapes to be visualized
- edges in these shapes (these edges are the basic entities which will be
visualized or hidden), and
- faces in these shapes which hide the edges.
HLRBRep_Algo is based on the principle of comparing each edge of the shape to
be visualized with each of its faces, and calculating the visible and the
hidden parts of each edge. For a given projection, HLRBRep_Algo calculates a
set of lines characteristic of the object being represented. It is also used in
conjunction with the HLRBRep_HLRToShape extraction utilities, which reconstruct
a new, simplified shape from a selection of calculation results. This new shape
is made up of edges, which represent the shape visualized in the
projection. HLRBRep_Algo takes the shape itself into account whereas
HLRBRep_PolyAlgo works with a polyhedral simplification of the shape. When you
use HLRBRep_Algo, you obtain an exact result, whereas, when you use
HLRBRep_PolyAlgo, you reduce computation time but obtain polygonal segments. In
the case of complicated shapes, HLRBRep_Algo may be time-consuming. An
HLRBRep_Algo object provides a framework for:
- defining the point of view
- identifying the shape or shapes to be visualized
- calculating the outlines
- calculating the visible and hidden lines of the shape. Warning
- Superimposed lines are not eliminated by this algorithm.
- There must be no unfinished objects inside the shape you wish to visualize.
- Points are not treated.
- Note that this is not the sort of algorithm used in generating shading, which
calculates the visible and hidden parts of each face in a shape to be
visualized by comparing each face in the shape with every other face in the
same shape.
methods:
- def add(self, S, nbIso: int=0, /) -> None
doc:
add(S, nbIso=0)
Adds the shape S to this framework, and specifies the number of isoparameters
nbiso desired in visualizing S. You may add as many shapes as you wish. Use
the function add once for each shape.
- def remove(self, i: int, /) -> None
doc:
remove(i)
Remove the shape of index i from this framework.
- def index(self, S, /) -> int
doc:
index(S) -> int
Return the index of the Shape S and return 0 if the Shape S is not found.
- def outLinedShapeNullify(self) -> None
doc:
outlinedShapeNullify()
Nullify all the results of OutLiner from HLRTopoBRep.
- def setProjector(self, Origin: tuple[float, float, float]=(0, 0, 0), ZDir: tuple[float, float, float]=(0, 0, 0), XDir: tuple[float, float, float]=(0, 0, 0), focus: float=float('nan')) -> None
doc:
setProjector(Origin=(0, 0, 0), ZDir=(0,0,0), XDir=(0,0,0), focus=NaN)
Set the projector. With focus left to NaN, an axonometric projector is
created. Otherwise, a perspective projector is created with focus focus.
- def nbShapes(self) -> int
doc:
nbShapes()
Returns the number of shapes in the collection. It does not modify the
object's state and is used to retrieve the count of shapes.
- def showAll(self, i: int=-1, /) -> None
doc:
showAll(i=-1)
If i < 1, then set all the edges to visible.
Otherwise, set to visible all the edges of the shape of index i.
- def hide(self, i: int=-1, j: int=-1, /) -> None
doc:
hide(i=-1, j=-1)
If i < 1, hide all of the datastructure.
Otherwise, if j < 1, hide the shape of index i.
Otherwise, hide the shape of index i by the shape of index j.
- def hideAll(self, i: int=-1, /) -> None
doc:
hideAll(i=-1)
If i < 1, hide all the edges.
Otherwise, hide all the edges of shape of index i.
- def partialHide(self) -> None
doc:
partialHide()
Own hiding of all the shapes of the DataStructure without hiding by each other.
- def select(self, i: int=-1, /) -> None
doc:
select(i=-1)
If i < 1, select all the DataStructure.
Otherwise, only select the shape of index i.
- def selectEdge(self, i: int, /) -> None
doc:
selectEdge(i)
Select only the edges of the shape of index i.
- def selectFace(self, i: int, /) -> None
doc:
selectFace(i)
Select only the faces of the shape of index i.
- def initEdgeStatus(self) -> None
doc:
initEdgeStatus()
Init the status of the selected edges depending of the back faces of a closed
shell.
- def update(self) -> None
doc:
update()
Update the DataStructure.
MODULE Mod/Part/App/HLRBRep/HLRBRep_PolyAlgo.pyi
classes:
class HLRBRep_PolyAlgo(PyObjectBase)
doc:
PolyAlgo() -> HLRBRep_PolyAlgo
A framework to compute the shape as seen in a projection
plane. This is done by calculating the visible and the hidden parts of the
shape. HLRBRep_PolyAlgo works with three types of entity:
- shapes to be visualized (these shapes must have already been triangulated.)
- edges in these shapes (these edges are defined as polygonal lines on the
triangulation of the shape, and are the basic entities which will be visualized
or hidden), and
- triangles in these shapes which hide the edges.
HLRBRep_PolyAlgo is based on the principle of comparing each edge of the shape
to be visualized with each of the triangles produced by the triangulation of
the shape, and calculating the visible and the hidden parts of each edge. For a
given projection, HLRBRep_PolyAlgo calculates a set of lines characteristic of
the object being represented. It is also used in conjunction with the
HLRBRep_PolyHLRToShape extraction utilities, which reconstruct a new,
simplified shape from a selection of calculation results. This new shape is
made up of edges, which represent the shape visualized in the
projection. HLRBRep_PolyAlgo works with a polyhedral simplification of the
shape whereas HLRBRep_Algo takes the shape itself into account. When you use
HLRBRep_Algo, you obtain an exact result, whereas, when you use
HLRBRep_PolyAlgo, you reduce computation time but obtain polygonal segments. An
HLRBRep_PolyAlgo object provides a framework for:
- defining the point of view
- identifying the shape or shapes to be visualized
- calculating the outlines
- calculating the visible and hidden lines of the shape. Warning
- Superimposed lines are not eliminated by this algorithm.
- There must be no unfinished objects inside the shape you wish to visualize.
- Points are not treated.
- Note that this is not the sort of algorithm used in generating shading, which
calculates the visible and hidden parts of each face in a shape to be
visualized by comparing each face in the shape with every other face in the
same shape.
attributes:
- TolAngular: float
- TolCoef: float
methods:
- def load(self, S: TopoShape, /) -> None
doc:
load(S)
Loads the shape S into this framework. Warning S must have already been triangulated.
- def remove(self, i: int, /) -> None
doc:
remove(i)
Remove the shape of index i from this framework.
- def nbShapes(self) -> int
doc:
nbShapes()
Returns the number of shapes in the collection. It does not modify the
object's state and is used to retrieve the count of shapes.
- def shape(self, i: int, /) -> TopoShape
doc:
shape(i) -> TopoShape
Return the shape of index i.
- def index(self, S: TopoShape, /) -> int
doc:
index(S) -> int
Return the index of the Shape S.
- def setProjector(self, Origin: tuple[float, float, float]=(0.0, 0.0, 0.0), ZDir: tuple[float, float, float]=(0.0, 0.0, 0.0), XDir: tuple[float, float, float]=(0.0, 0.0, 0.0), focus: float=float('nan')) -> None
doc:
setProjector(Origin=(0, 0, 0), ZDir=(0,0,0), XDir=(0,0,0), focus=NaN)
Set the projector. With focus left to NaN, an axonometric projector is
created. Otherwise, a perspective projector is created with focus focus.
- def update(self) -> None
doc:
update()
Launches calculation of outlines of the shape visualized by this
framework. Used after setting the point of view and defining the shape or
shapes to be visualized.
- def initHide(self) -> None
doc:
initHide()
- def moreHide(self) -> None
doc:
moreHide()
- def nextHide(self) -> None
doc:
nextHide()
- def initShow(self) -> None
doc:
initShow()
- def moreShow(self) -> None
doc:
moreShow()
- def nextShow(self) -> None
doc:
nextShow()
- def outLinedShape(self, S: TopoShape, /) -> TopoShape
doc:
outLinedShape(S) -> TopoShape
Make a shape with the internal outlines in each face of shape S.
MODULE Mod/Part/App/HLRBRep/HLRToShape.pyi
classes:
class HLRToShape(PyObjectBase)
doc:
HLRToShape(algo: HLRBRep_Algo) -> HLRBRep_HLRToShape
A framework for filtering the computation results of an HLRBRep_Algo algorithm
by extraction. From the results calculated by the algorithm on a shape, a
filter returns the type of edge you want to identify. You can choose any of the
following types of output:
- visible sharp edges
- hidden sharp edges
- visible smooth edges
- hidden smooth edges
- visible sewn edges
- hidden sewn edges
- visible outline edges
- hidden outline edges
- visible isoparameters and
- hidden isoparameters.
Sharp edges present a C0 continuity (non G1). Smooth edges present a G1
continuity (non G2). Sewn edges present a C2 continuity. The result is composed
of 2D edges in the projection plane of the view which the algorithm has worked
with. These 2D edges are not included in the data structure of the visualized
shape. In order to obtain a complete image, you must combine the shapes given
by each of the chosen filters. The construction of the shape does not call a
new computation of the algorithm, but only reads its internal results. The
methods of this shape are almost identic to those of the HLRBrep_PolyHLRToShape
class.
methods:
- def vCompound(self, Shape: Optional[TopoShape]=None, /) -> TopoShape
doc:
vCompound(Shape=None) -> TopoShape
Sets the extraction filter for visible sharp edges for either shape Shape or
for all added shapes (Shape=None).
- def Rg1LineVCompound(self, Shape: Optional[TopoShape]=None, /) -> TopoShape
doc:
Rg1LineVCompound(Shape=None) -> TopoShape
Sets the extraction filter for visible smooth edges for either shape Shape or
for all added shapes (Shape=None).
- def RgNLineVCompound(self, Shape: Optional[TopoShape]=None, /) -> TopoShape
doc:
RgNLineVCompound(Shape=None) -> TopoShape
Sets the extraction filter for visible sewn edges for either shape Shape or for
all added shapes (Shape=None).
- def outLineVCompound(self, Shape: Optional[TopoShape]=None, /) -> TopoShape
doc:
outLineVCompound(Shape=None) -> TopoShape
Sets the extraction filter for visible outline edges for either shape Shape or
for all added shapes (Shape=None).
- def outLineVCompound3d(self, Shape: Optional[TopoShape]=None, /) -> TopoShape
doc:
outLineVCompound(Shape=None) -> TopoShape
Sets the extraction filter for visible outline edges in 3D for either shape
Shape or for all added shapes (Shape=None).
- def isoLineVCompound(self, Shape: Optional[TopoShape]=None, /) -> TopoShape
doc:
isoLineVCompound(Shape=None) -> TopoShape
Sets the extraction filter for visible isoparameters for either shape Shape or
for all added shapes (Shape=None).
- def hCompound(self, Shape: Optional[TopoShape]=None, /) -> TopoShape
doc:
hCompound(Shape=None) -> TopoShape
Sets the extraction filter for hidden sharp edges for either shape Shape or for
all added shapes (Shape=None).
- def Rg1LineHCompound(self, Shape: Optional[TopoShape]=None, /) -> TopoShape
doc:
Rg1LineHCompound(Shape=None) -> TopoShape
Sets the extraction filter for hidden smooth edges for either shape Shape or
for all added shapes (Shape=None).
- def RgNLineHCompound(self, Shape: Optional[TopoShape]=None, /) -> TopoShape
doc:
RgNLineHCompound(Shape=None) -> TopoShape
Sets the extraction filter for hidden sewn edges for either shape Shape or for
all added shapes (Shape=None).
- def outLineHCompound(self, Shape: Optional[TopoShape]=None, /) -> TopoShape
doc:
outLineHCompound(Shape=None) -> TopoShape
Sets the extraction filter for hidden outline edges for either shape Shape or
for all added shapes (Shape=None).
- def isoLineHCompound(self, Shape: Optional[TopoShape]=None, /) -> TopoShape
doc:
isoLineHCompound(Shape=None) -> TopoShape
Sets the extraction filter for hidden isoparameters for either shape Shape or
for all added shapes (Shape=None).
- def compoundOfEdges(self, Type: int, Visible: bool, In3D: bool, Shape: Optional[TopoShape]=None) -> TopoShape
doc:
compoundOfEdges(Type: int, Visible: bool, In3D: bool, Shape=None) -> TopoShape
Returns compound of resulting edges of required type and visibility, taking
into account the kind of space (2d or 3d). If Shape=None, return it for all
added shapes, otherwise return it for shape Shape.
MODULE Mod/Part/App/HLRBRep/PolyHLRToShape.pyi
classes:
class PolyHLRToShape(PyObjectBase)
doc:
PolyHLRToShape(algo: HLRBRep_PolyAlgo) -> HLRBRep_PolyHLRToShape
A framework for filtering the computation results of an HLRBRep_PolyAlgo
algorithm by extraction. From the results calculated by the algorithm on a
shape, a filter returns the type of edge you want to identify. You can choose
any of the following types of output:
- visible sharp edges
- hidden sharp edges
- visible smooth edges
- hidden smooth edges
- visible sewn edges
- hidden sewn edges
- visible outline edges
- hidden outline edges
- visible isoparameters and
- hidden isoparameters.
Sharp edges present a C0 continuity (non G1). Smooth edges present a G1
continuity (non G2). Sewn edges present a C2 continuity. The result is composed
of 2D edges in the projection plane of the view which the algorithm has worked
with. These 2D edges are not included in the data structure of the visualized
shape. In order to obtain a complete image, you must combine the shapes given
by each of the chosen filters. The construction of the shape does not call a
new computation of the algorithm, but only reads its internal results.
methods:
- def update(self, algo: HLRBRep_PolyAlgo, /) -> None
doc:
update(algo: HLRBRep_PolyAlgo)
- def show(self) -> None
doc:
show()
- def hide(self) -> None
doc:
hide()
- def vCompound(self, Shape: Optional[TopoShape]=None, /) -> TopoShape
doc:
vCompound(Shape=None) -> TopoShape
Sets the extraction filter for visible sharp edges for either shape Shape or
for all added shapes (Shape=None).
- def Rg1LineVCompound(self, Shape: Optional[TopoShape]=None, /) -> TopoShape
doc:
Rg1LineVCompound(Shape=None) -> TopoShape
Sets the extraction filter for visible smooth edges for either shape Shape or
for all added shapes (Shape=None).
- def RgNLineVCompound(self, Shape: Optional[TopoShape]=None, /) -> TopoShape
doc:
RgNLineVCompound(Shape=None) -> TopoShape
Sets the extraction filter for visible sewn edges for either shape Shape or for
all added shapes (Shape=None).
- def outLineVCompound(self, Shape: Optional[TopoShape]=None, /) -> TopoShape
doc:
outLineVCompound(Shape=None) -> TopoShape
Sets the extraction filter for visible outline edges for either shape Shape or
for all added shapes (Shape=None).
- def hCompound(self, Shape: Optional[TopoShape]=None, /) -> TopoShape
doc:
hCompound(Shape=None) -> TopoShape
Sets the extraction filter for hidden sharp edges for either shape Shape or for
all added shapes (Shape=None).
- def Rg1LineHCompound(self, Shape: Optional[TopoShape]=None, /) -> TopoShape
doc:
Rg1LineHCompound(Shape=None) -> TopoShape
Sets the extraction filter for hidden smooth edges for either shape Shape or
for all added shapes (Shape=None).
- def RgNLineHCompound(self, Shape: Optional[TopoShape]=None, /) -> TopoShape
doc:
RgNLineHCompound(Shape=None) -> TopoShape
Sets the extraction filter for hidden sewn edges for either shape Shape or for
all added shapes (Shape=None).
- def outLineHCompound(self, Shape: Optional[TopoShape]=None, /) -> TopoShape
doc:
outLineHCompound(Shape=None) -> TopoShape
Sets the extraction filter for hidden outline edges for either shape Shape or
for all added shapes (Shape=None).
MODULE Mod/Part/App/Hyperbola.pyi
classes:
class Hyperbola(Conic)
doc:
Describes an hyperbola in 3D space
To create a hyperbola there are several ways:
Part.Hyperbola()
Creates an hyperbola with major radius 2 and minor radius 1 with the
center in (0,0,0)
Part.Hyperbola(Hyperbola)
Create a copy of the given hyperbola
Part.Hyperbola(S1,S2,Center)
Creates an hyperbola centered on the point Center, where
the plane of the hyperbola is defined by Center, S1 and S2,
its major axis is defined by Center and S1,
its major radius is the distance between Center and S1, and
its minor radius is the distance between S2 and the major axis.
Part.Hyperbola(Center,MajorRadius,MinorRadius)
Creates an hyperbola with major and minor radii MajorRadius and
MinorRadius, and located in the plane defined by Center and
the normal (0,0,1)
attributes:
- MajorRadius: float
doc:
The major radius of the hyperbola.
- MinorRadius: float
doc:
The minor radius of the hyperbola.
- Focal: Final[float]
doc:
The focal distance of the hyperbola.
- Focus1: Final[Vector]
doc:
The first focus is on the positive side of the major axis of the hyperbola.
- Focus2: Final[Vector]
doc:
The second focus is on the negative side of the major axis of the hyperbola.
methods:
@overload
- def __init__(self) -> None
@overload
- def __init__(self, hyperbola: 'Hyperbola') -> None
@overload
- def __init__(self, S1: Vector, S2: Vector, Center: Vector) -> None
@overload
- def __init__(self, Center: Vector, MajorRadius: float, MinorRadius: float) -> None
MODULE Mod/Part/App/Line.pyi
classes:
class Line(GeometryCurve)
doc:
Describes an infinite line
To create a line there are several ways:
Part.Line()
Creates a default line
Part.Line(Line)
Creates a copy of the given line
Part.Line(Point1,Point2)
Creates a line that goes through two given points
attributes:
- Location: Vector
doc:
Returns the location of this line.
- Direction: Vector
doc:
Returns the direction of this line.
methods:
@overload
- def __init__(self) -> None
@overload
- def __init__(self, line: 'Line') -> None
@overload
- def __init__(self, point1: Vector, point2: Vector) -> None
MODULE Mod/Part/App/LineSegment.pyi
classes:
class LineSegment(TrimmedCurve)
doc:
Describes a line segment
To create a line segment there are several ways:
Part.LineSegment()
Creates a default line segment
Part.LineSegment(LineSegment)
Creates a copy of the given line segment
Part.LineSegment(Point1,Point2)
Creates a line segment that goes through two given points
attributes:
- StartPoint: Type
doc:
Returns the start point of this line.
- EndPoint: Type
doc:
Returns the end point point of this line.
methods:
@overload
- def __init__(self) -> None
@overload
- def __init__(self, line_segment: 'LineSegment') -> None
@overload
- def __init__(self, point1: Point, point2: Point) -> None
- def setParameterRange(self) -> None
doc:
Set the parameter range of the underlying line geometry
MODULE Mod/Part/App/OffsetCurve.pyi
classes:
class OffsetCurve(GeometryCurve)
attributes:
- OffsetValue: float
doc:
Sets or gets the offset value to offset the underlying curve.
- OffsetDirection: Vector
doc:
Sets or gets the offset direction to offset the underlying curve.
- BasisCurve: GeometryCurve
doc:
Sets or gets the basic curve.
MODULE Mod/Part/App/OffsetSurface.pyi
classes:
class OffsetSurface(GeometrySurface)
attributes:
- OffsetValue: float
doc:
Sets or gets the offset value to offset the underlying surface.
- BasisSurface: object
doc:
Sets or gets the basic surface.
MODULE Mod/Part/App/Parabola.pyi
classes:
class Parabola(Conic)
doc:
Describes a parabola in 3D space
attributes:
- Focal: float
doc:
The focal distance is the distance between
the apex and the focus of the parabola.
- Focus: Final[Vector]
doc:
The focus is on the positive side of the
'X Axis' of the local coordinate system of the parabola.
- Parameter: Final[float]
doc:
Compute the parameter of this parabola
which is the distance between its focus
and its directrix. This distance is twice the focal length.
methods:
- def compute(self, p1: Vector, p2: Vector, p3: Vector, /) -> None
doc:
compute(p1,p2,p3) -> None
The three points must lie on a plane parallel to xy plane and must not be collinear
MODULE Mod/Part/App/Part.module.pyi
module_doc:
Typed public signatures for the ``Part`` module-level shape helpers.
This static stub reference carries the large factory-style function surface
that is implemented in the Part application module. Helper aliases and simple
module-level declarations that the callable surface depends on live here.
attributes:
- Point3: TypeAlias
- ShapeSequence: TypeAlias
- EdgeSequence: TypeAlias
- OCCError: type[Exception]
- OCCDomainError: type[Exception]
- OCCRangeError: type[Exception]
- OCCConstructionError: type[Exception]
- OCCDimensionError: type[Exception]
- _RevolutionShapeClass: TypeAlias
- _SingleShapeCompoundCreationPolicy: TypeAlias
- _FilledSupportPairs: TypeAlias
- _FilledOrderPairs: TypeAlias
- ExportUnits
functions:
- def open(name: str, /) -> None
doc:
Open one Part-supported file into the active document context.
- def insert(name: str, doc_name: str, /) -> None
doc:
Insert one Part-supported file into an existing document.
- def export(objects: Sequence[DocumentObject], name: str, /) -> None
doc:
Export document objects to one Part-supported file.
- def read(name: str, /) -> Shape
doc:
Read one Part-supported file and return the resulting shape.
- def show(shape: Shape, name: str='Shape', /) -> Feature
doc:
Create a document feature that shows one shape.
- def getFacets(shape: Shape, /) -> list[tuple[Point3, Point3, Point3]]
doc:
Return the triangulated facet vertices of one shape.
@overload
- def getShape(obj: DocumentObject, subname: str | None=None, mat: Matrix | None=None, needSubElement: bool=False, transform: bool=True, retType: Literal[0]=0, noElementMap: bool=False, refine: bool=False) -> Shape
doc:
Return only the resolved shape.
@overload
- def getShape(obj: DocumentObject, subname: str | None, mat: Matrix | None, needSubElement: bool, transform: bool, retType: Literal[1, 2], noElementMap: bool=False, refine: bool=False) -> tuple[Shape, Matrix, DocumentObject | None]
doc:
Return the shape together with placement and resolved subobject context.
@overload
- def getShape(obj: DocumentObject, subname: str | None=None, mat: Matrix | None=None, needSubElement: bool=False, transform: bool=True, retType: int=0, noElementMap: bool=False, refine: bool=False) -> Shape | tuple[Shape, Matrix, DocumentObject | None]
doc:
Accept any retType and reflect the broad union used at runtime.
- def cast_to_shape(shape: Shape, /) -> Shape
doc:
Normalize a shape-like proxy to the public `Shape` wrapper.
@overload
- def makeRevolution(curve: Geometry, vmin: float=..., vmax: float=..., angle: float=360, point: Vector | None=None, direction: Vector | None=None, type: _RevolutionShapeClass | None=None, /) -> Shape
doc:
Revolve a curve geometry into a shape, optionally choosing the result class.
@overload
- def makeRevolution(edge: Edge, vmin: float=..., vmax: float=..., angle: float=360, point: Vector | None=None, direction: Vector | None=None, type: _RevolutionShapeClass | None=None, /) -> Shape
doc:
Revolve an edge into a shape, optionally choosing the result class.
- def makeCompound(shapes: ShapeSequence, force: _SingleShapeCompoundCreationPolicy=..., op: str | None=None) -> Compound
doc:
Build a compound from one shape or a shape sequence.
- def makeShell(shapes: ShapeSequence, op: str | None=None) -> Shell
doc:
Build a shell from one shape or a shape sequence.
- def makeFace(shapes: ShapeSequence, class_name: str | None=None, op: str | None=None, *, noElementMap: bool=False) -> Face
doc:
Build a face from one shape or a compatible shape sequence.
- def makeFilledSurface(shapes: ShapeSequence, surface: Shape | None=None, supports: _FilledSupportPairs | None=None, orders: _FilledOrderPairs | None=None, degree: int=..., ptsOnCurve: int=..., numIter: int=..., anisotropy: bool=..., tol2d: float=..., tol3d: float=..., tolG1: float=..., tolG2: float=..., maxDegree: int=..., maxSegments: int=..., op: str | None=None) -> Face
doc:
Build a filled surface face from boundary shapes and optional supports.
- def makeFilledFace(shapes: ShapeSequence, surface: Shape | None=None, supports: _FilledSupportPairs | None=None, orders: _FilledOrderPairs | None=None, degree: int=..., ptsOnCurve: int=..., numIter: int=..., anisotropy: bool=..., tol2d: float=..., tol3d: float=..., tolG1: float=..., tolG2: float=..., maxDegree: int=..., maxSegments: int=..., op: str | None=None) -> Face
doc:
Build a filled face from boundary shapes and optional supports.
- def makeSolid(shape: Shape, op: str | None=None) -> Solid
doc:
Convert one shell-like shape into a solid.
- def makeRuledSurface(path: Edge | Wire, profile: Edge | Wire, orientation: int=0, op: str | None=None) -> Face | Shell
doc:
Create a ruled surface between two path shapes.
- def makeShellFromWires(shape: ShapeSequence, op: str | None=None) -> Shell
doc:
Create a shell from a compatible wire sequence.
- def makeTube(pshape: Shape, radius: float, scont: str='C0', maxdegree: int=3, maxsegment: int=30, /) -> Face
doc:
Create a tube surface around one path shape.
- def makeSweepSurface(path: Shape, profile: Shape, tolerance: float=0.001, fillMode: int=0, /) -> Shape
doc:
Sweep one profile along one path and return the resulting shape.
- def makeLoft(shapes: list[Shape], solid: bool=False, ruled: bool=False, closed: bool=False, max_degree: int=5, op: str | None=None) -> Shape
doc:
Loft a sequence of section shapes into a new shape.
@overload
- def makeWireString(intext: str | bytes, dir: str, fontfile: str, height: float, track: float=0, /) -> list[list[Wire]]
doc:
Use the legacy ``(text, fontdir, fontfile, ...)`` calling convention.
@overload
- def makeWireString(intext: str | bytes, fontspec: str, height: float, track: float=0, /) -> list[list[Wire]]
doc:
Use the newer ``(text, fontspec, ...)`` calling convention.
@overload
- def setStaticValue(name: str, cval: str, /) -> None
doc:
Set an OCC interface static from a string value.
@overload
- def setStaticValue(name: str, value: int | float, /) -> None
doc:
Set an OCC interface static from an integer or floating-point value.
- def makePlane(length: float, width: float, pPnt: Vector | None=None, pDirZ: Vector | None=None, pDirX: Vector | None=None, /) -> Face
doc:
Create a planar face from dimensions and optional orientation vectors.
- def makeBox(length: float, width: float, height: float, pPnt: Vector | None=None, pDir: Vector | None=None, /) -> Solid
doc:
Create a box solid from dimensions and optional placement.
- def makeWedge(xmin: float, ymin: float, zmin: float, z2min: float, x2min: float, xmax: float, ymax: float, zmax: float, z2max: float, x2max: float, pPnt: Vector | None=None, pDir: Vector | None=None, /) -> Solid
doc:
Create a wedge solid from the OCC wedge parameters.
- def makeLine(obj1: Vector | Point3, obj2: Vector | Point3, /) -> Edge
doc:
Create a line edge between two points.
- def makePolygon(pcObj: Sequence[Vector | Point3], pclosed: bool=False, /) -> Wire
doc:
Create a polygon wire from a point sequence.
- def makeCircle(radius: float, pPnt: Vector | None=None, pDir: Vector | None=None, angle1: float=0.0, angle2: float=360, /) -> Edge
doc:
Create a circular edge or arc.
- def makeSphere(radius: float, pPnt: Vector | None=None, pDir: Vector | None=None, angle1: float=-90, angle2: float=90, angle3: float=360, /) -> Solid
doc:
Create a sphere solid or spherical segment.
- def makeCylinder(radius: float, height: float, pPnt: Vector | None=None, pDir: Vector | None=None, angle: float=360, /) -> Solid
doc:
Create a cylinder solid or cylindrical segment.
- def makeCone(radius1: float, radius2: float, height: float, pPnt: Vector | None=None, pDir: Vector | None=None, angle: float=360, /) -> Solid
doc:
Create a cone or frustum solid.
- def makeTorus(radius1: float, radius2: float, pPnt: Vector | None=None, pDir: Vector | None=None, angle1: float=0.0, angle2: float=360, angle: float=360, /) -> Solid
doc:
Create a torus solid or toroidal segment.
- def makeHelix(pitch: float, height: float, radius: float, angle: float=-1.0, pleft: bool=False, pvertHeight: bool=False, /) -> Wire
doc:
Create a helix wire.
- def makeLongHelix(pitch: float, height: float, radius: float, angle: float=-1.0, pleft: bool=False, /) -> Wire
doc:
Create a long helix wire using the extended implementation.
- def makeThread(pitch: float, depth: float, height: float, radius: float, /) -> Wire
doc:
Create a thread-profile wire.
- def makeSplitShape(shape: Shape, splits: Sequence[tuple[Shape, Shape]], checkInterior: bool=True, /) -> tuple[list[Shape], list[Shape]]
doc:
Split a shape by splitter pairs and return outside and inside fragments.
- def exportUnits(unit: str | None=None, /) -> ExportUnits
doc:
Return the current Part export-unit configuration.
- def getSortedClusters(obj: EdgeSequence, /) -> list[list[Edge]]
doc:
Group edges into connected clusters.
- def __sortEdges__(obj: EdgeSequence, /) -> list[Edge]
doc:
Return one legacy sorted edge sequence.
- def sortEdges(obj: EdgeSequence, tol3d: float | None=None, /) -> list[list[Edge]]
doc:
Group and order connected edges with an optional tolerance override.
- def __toPythonOCC__(shape: Shape, /) -> object
doc:
Convert one Part shape to a PythonOCC proxy object.
- def __fromPythonOCC__(proxy: object, /) -> Shape
doc:
Convert one PythonOCC proxy object to a Part shape.
- def clearShapeCache() -> None
doc:
Clear the process-wide Part shape conversion cache.
- def splitSubname(subname: str, /) -> list[str]
doc:
Split one mapped subname string into its path components.
- def joinSubname(sub: str, mapped: str, element: str, /) -> str
doc:
Join mapped subname components into one canonical string.
MODULE Mod/Part/App/Part2DObject.pyi
classes:
class Part2DObject(PartFeature)
doc:
This object represents a 2D Shape in a 3D World
MODULE Mod/Part/App/PartFeature.pyi
classes:
class PartFeature(GeoFeature)
doc:
This is the father of all shape object classes
methods:
@constmethod
- def getElementHistory(self, name: str, *, recursive: bool=True, sameType: bool=False, showName: bool=False) -> Union[Tuple[DocumentObject, str, List[str]], List[Tuple[DocumentObject, str, List[str]]]]
doc:
getElementHistory(name,recursive=True,sameType=False,showName=False) - returns the element mapped name history
name: mapped element name belonging to this shape
recursive: if True, then track back the history through other objects till the origin
sameType: if True, then stop trace back when element type changes
showName: if False, return the owner object, or else return a tuple of object name and label
If not recursive, then return tuple(sourceObject, sourceElementName, [intermediateNames...]),
otherwise return a list of tuple.
MODULE Mod/Part/App/Plane.pyi
classes:
class Plane(GeometrySurface)
doc:
Describes an infinite plane
To create a plane there are several ways:
Part.Plane()
Creates a default plane with base (0,0,0) and normal (0,0,1)
Part.Plane(Plane)
Creates a copy of the given plane
Part.Plane(Plane, Distance)
Creates a plane parallel to given plane at a certain distance
Part.Plane(Location,Normal)
Creates a plane with a given location and normal
Part.Plane(Point1,Point2,Point3)
Creates a plane defined by three non-linear points
Part.Plane(A,B,C,D)
Creates a plane from its cartesian equation
Ax+By+Cz+D=0
attributes:
- Position: object
doc:
Returns the position point of this plane.
- Axis: object
doc:
Returns the axis of this plane.
MODULE Mod/Part/App/PlateSurface.pyi
classes:
class PlateSurface(GeometrySurface)
doc:
Represents a plate surface in FreeCAD-compatible runtime. Plate surfaces can be defined by specifying points or curves as constraints, and they can also be approximated to B-spline surfaces using the makeApprox method. This class is commonly used in CAD modeling for creating surfaces that represent flat or curved plates, such as sheet metal components or structural elements.
methods:
- def makeApprox(self, *, Tol3d: float=0, MaxSegments: int=0, MaxDegree: int=0, MaxDistance: float=0, CritOrder: int=0, Continuity: str='', EnlargeCoeff: float=0) -> None
doc:
Approximate the plate surface to a B-Spline surface
MODULE Mod/Part/App/Point.pyi
classes:
class Point(Geometry)
doc:
Describes a point
To create a point there are several ways:
Part.Point()
Creates a default point
Part.Point(Point)
Creates a copy of the given point
Part.Point(Vector)
Creates a line for the given coordinates
attributes:
- X: float
doc:
X component of this point.
- Y: float
doc:
Y component of this point.
- Z: float
doc:
Z component of this point.
methods:
@overload
- def __init__(self) -> None
@overload
- def __init__(self, other: 'Point') -> None
@overload
- def __init__(self, coordinates: Vector) -> None
@constmethod
- def toShape(self) -> object
doc:
Create a vertex from this point.
MODULE Mod/Part/App/RectangularTrimmedSurface.pyi
classes:
class RectangularTrimmedSurface(GeometrySurface)
doc:
Describes a portion of a surface (a patch) limited by two values of the
u parameter in the u parametric direction, and two values of the v parameter in the v parametric
direction. The domain of the trimmed surface must be within the domain of the surface being trimmed.
The trimmed surface is defined by:
- the basis surface, and
- the values (umin, umax) and (vmin, vmax) which limit it in the u and v parametric directions.
The trimmed surface is built from a copy of the basis surface. Therefore, when the basis surface
is modified the trimmed surface is not changed. Consequently, the trimmed surface does not
necessarily have the same orientation as the basis surface.
attributes:
- BasisSurface: Final[Any]
doc:
Represents the basis surface from which the trimmed surface is derived.
methods:
- def setTrim(self, params: Tuple[float, float, float, float], /) -> None
doc:
setTrim(self, params: (u1, u2, v1, v2)) -> None
Modifies this patch by changing the trim values applied to the original surface
MODULE Mod/Part/App/ShapeFix/ShapeFix_Edge.pyi
classes:
class ShapeFix_Edge(PyObjectBase)
doc:
Fixing invalid edge
methods:
- def fixRemovePCurve(self) -> bool
doc:
Removes the pcurve(s) of the edge if it does not match the
vertices
Check is done
Use : It is to be called when pcurve of an edge can be wrong
(e.g., after import from IGES)
Returns: True, if does not match, removed (status DONE)
False, (status OK) if matches or (status FAIL) if no pcurve,
nothing done.
- def fixRemoveCurve3d(self) -> bool
doc:
Removes 3d curve of the edge if it does not match the vertices
Returns: True, if does not match, removed (status DONE)
False, (status OK) if matches or (status FAIL) if no 3d curve,
nothing done.
- def fixAddPCurve(self) -> bool
doc:
Adds pcurve(s) of the edge if missing (by projecting 3d curve)
Parameter isSeam indicates if the edge is a seam.
The parameter 'prec' defines the precision for calculations.
If it is 0 (default), the tolerance of the edge is taken.
Remark : This method is rather for internal use since it accepts parameter
'surfana' for optimization of computations
Use : It is to be called after FixRemovePCurve (if removed) or in any
case when edge can have no pcurve
Returns: True if pcurve was added, else False
Status :
OK : Pcurve exists
FAIL1: No 3d curve
FAIL2: fail during projecting
DONE1: Pcurve was added
DONE2: specific case of pcurve going through degenerated point on
sphere encountered during projection (see class
ShapeConstruct_ProjectCurveOnSurface for more info).
- def fixAddCurve3d(self) -> bool
doc:
Tries to build 3d curve of the edge if missing
Use : It is to be called after FixRemoveCurve3d (if removed) or in any
case when edge can have no 3d curve
Returns: True if 3d curve was added, else False
Status :
OK : 3d curve exists
FAIL1: BRepLib::BuildCurve3d() has failed
DONE1: 3d curve was added.
- def fixVertexTolerance(self) -> bool
doc:
Increases the tolerances of the edge vertices to comprise
the ends of 3d curve and pcurve on the given face
(first method) or all pcurves stored in an edge (second one)
Returns: True, if tolerances have been increased, otherwise False
Status:
OK : the original tolerances have not been changed
DONE1: the tolerance of first vertex has been increased
DONE2: the tolerance of last vertex has been increased.
- def fixReversed2d(self) -> bool
doc:
Fixes edge if pcurve is directed opposite to 3d curve
Check is done by call to the function
ShapeAnalysis_Edge::CheckCurve3dWithPCurve()
Warning: For seam edge this method will check and fix the pcurve in only
one direction. Hence, it should be called twice for seam edge:
once with edge orientation FORWARD and once with REVERSED.
Returns: False if nothing done, True if reversed (status DONE)
Status: OK - pcurve OK, nothing done
FAIL1 - no pcurve
FAIL2 - no 3d curve
DONE1 - pcurve was reversed.
- def fixSameParameter(self) -> bool
doc:
Tries to make edge SameParameter and sets corresponding
tolerance and SameParameter flag.
First, it makes edge same range if SameRange flag is not set.
If flag SameParameter is set, this method calls the
function ShapeAnalysis_Edge::CheckSameParameter() that
calculates the maximal deviation of pcurves of the edge from
its 3d curve. If deviation > tolerance, the tolerance of edge
is increased to a value of deviation. If deviation < tolerance
nothing happens.
If flag SameParameter is not set, this method chooses the best
variant (one that has minimal tolerance), either
a. only after computing deviation (as above) or
b. after calling standard procedure BRepLib::SameParameter
and computing deviation (as above). If 'tolerance' > 0, it is
used as parameter for BRepLib::SameParameter, otherwise,
tolerance of the edge is used.
Use : Is to be called after all pcurves and 3d curve of the edge are
correctly computed
Remark : SameParameter flag is always set to True after this method
Returns: True, if something done, else False
Status : OK - edge was initially SameParameter, nothing is done
FAIL1 - computation of deviation of pcurves from 3d curve has failed
FAIL2 - BRepLib::SameParameter() has failed
DONE1 - tolerance of the edge was increased
DONE2 - flag SameParameter was set to True (only if
BRepLib::SameParameter() did not set it)
DONE3 - edge was modified by BRepLib::SameParameter() to SameParameter
DONE4 - not used anymore
DONE5 - if the edge resulting from BRepLib has been chosen, i.e. variant b. above
(only for edges with not set SameParameter).
MODULE Mod/Part/App/ShapeFix/ShapeFix_EdgeConnect.pyi
classes:
class ShapeFix_EdgeConnect(PyObjectBase)
doc:
Root class for fixing operations
methods:
@overload
- def add(self, edge1: TopoShapeEdge, edge2: TopoShapeEdge, /) -> None
@overload
- def add(self, shape: TopoShape, /) -> None
- def add(self, *args, **kwargs) -> None
doc:
add(edge, edge)
Adds information on connectivity between start vertex
of second edge and end vertex of first edge taking
edges orientation into account
add(shape)
Adds connectivity information for the whole shape.
- def build(self) -> None
doc:
Builds shared vertices, updates their positions and tolerances
- def clear(self) -> None
doc:
Clears internal data structure
MODULE Mod/Part/App/ShapeFix/ShapeFix_Face.pyi
classes:
class ShapeFix_Face(ShapeFix_Root)
doc:
Class for fixing operations on faces
attributes:
- FixWireMode: bool
doc:
Mode for applying fixes of ShapeFix_Wire
- FixOrientationMode: bool
doc:
Mode for applying fixes of orientation
If True, wires oriented to border limited square
- FixAddNaturalBoundMode: bool
doc:
If true, natural boundary is added on faces that miss them.
Default is False for faces with single wire (they are
handled by FixOrientation in that case) and True for others.
- FixMissingSeamMode: bool
doc:
If True, tries to insert seam if missing
- FixSmallAreaWireMode: bool
doc:
If True, drops small wires
- RemoveSmallAreaFaceMode: bool
doc:
If True, drops small wires
- FixIntersectingWiresMode: bool
doc:
Mode for applying fixes of intersecting wires
- FixLoopWiresMode: bool
doc:
Mode for applying fixes of loop wires
- FixSplitFaceMode: bool
doc:
Mode for applying fixes of split face
- AutoCorrectPrecisionMode: bool
doc:
Mode for applying auto-corrected precision
- FixPeriodicDegeneratedMode: bool
doc:
Mode for applying periodic degeneration
methods:
- def init(self) -> None
doc:
Initializes by face
- def fixWireTool(self)
doc:
Returns tool for fixing wires
- def clearModes(self) -> None
doc:
Sets all modes to default
- def add(self) -> None
doc:
Add a wire to current face using BRep_Builder.
Wire is added without taking into account orientation of face
(as if face were FORWARD)
- def fixOrientation(self) -> bool
doc:
Fixes orientation of wires on the face
It tries to make all wires lie outside all others (according
to orientation) by reversing orientation of some of them.
If face lying on sphere or torus has single wire and
AddNaturalBoundMode is True, that wire is not reversed in
any case (supposing that natural bound will be added).
Returns True if wires were reversed
- def fixAddNaturalBound(self) -> bool
doc:
Adds natural boundary on face if it is missing.
Two cases are supported:
- face has no wires
- face lies on geometrically double-closed surface
(sphere or torus) and none of wires is left-oriented
Returns True if natural boundary was added
- def fixMissingSeam(self) -> bool
doc:
Detects and fixes the special case when face on a closed
surface is given by two wires closed in 3d but with gap in 2d.
In that case it creates a new wire from the two, and adds a
missing seam edge
Returns True if missing seam was added
- def fixSmallAreaWire(self) -> bool
doc:
Detects wires with small area (that is less than
100*Precision.PConfusion(). Removes these wires if they are internal.
Returns True if at least one small wire removed, False nothing is done.
- def fixLoopWire(self) -> None
doc:
Detects if wire has a loop and fixes this situation by splitting on the few parts.
- def fixIntersectingWires(self) -> None
doc:
Detects and fixes the special case when face has more than one wire
and this wires have intersection point
- def fixWiresTwoCoincidentEdges(self) -> None
doc:
If wire contains two coincidence edges it must be removed
- def fixPeriodicDegenerated(self) -> None
doc:
Fixes topology for a specific case when face is composed
by a single wire belting a periodic surface. In that case
a degenerated edge is reconstructed in the degenerated pole
of the surface. Initial wire gets consistent orientation.
Must be used in couple and before FixMissingSeam routine
- def perform(self) -> None
doc:
Iterates on subshapes and performs fixes
- def face(self) -> TopoShapeFace
doc:
Returns a face which corresponds to the current state
- def result(self) -> Union[TopoShapeFace, TopoShapeShell]
doc:
Returns resulting shape (Face or Shell if split)
To be used instead of face() if FixMissingSeam involved
MODULE Mod/Part/App/ShapeFix/ShapeFix_FaceConnect.pyi
classes:
class ShapeFix_FaceConnect(PyObjectBase)
doc:
Rebuilds connectivity between faces in shell
methods:
- def add(self, face, /) -> None
doc:
add(face, face)
- def build(self, shell, sewtolerance, fixtolerance, /) -> None
doc:
build(shell, sewtolerance, fixtolerance)
- def clear(self) -> None
doc:
Clears internal data structure
MODULE Mod/Part/App/ShapeFix/ShapeFix_FixSmallFace.pyi
classes:
class ShapeFix_FixSmallFace(ShapeFix_Root)
doc:
Class for fixing operations on faces
methods:
- def init(self) -> None
doc:
Initializes by shape
- def perform(self) -> None
doc:
Fixing case of spot face
- def fixSpotFace(self) -> None
doc:
Fixing case of spot face, if tol = -1 used local tolerance
- def replaceVerticesInCaseOfSpot(self) -> None
doc:
Compute average vertex and replacing vertices by new one
- def removeFacesInCaseOfSpot(self) -> None
doc:
Remove spot face from compound
- def fixStripFace(self) -> None
doc:
Fixing case of strip face, if tol = -1 used local tolerance
- def removeFacesInCaseOfStrip(self) -> None
doc:
Remove strip face from compound
- def fixSplitFace(self) -> TopoShape
doc:
Fixes cases related to split faces within the given shape.
It may return a modified shape after fixing the issues.
- def fixFace(self) -> None
doc:
Fixes issues related to the specified face and returns the modified face.
- def fixShape(self) -> None
doc:
Fixes issues in the overall geometric shape.
This function likely encapsulates higher-level fixes that involve multiple faces or elements.
- def shape(self) -> TopoShape
doc:
Returns the current state of the geometric shape after potential modifications.
MODULE Mod/Part/App/ShapeFix/ShapeFix_FixSmallSolid.pyi
classes:
class ShapeFix_FixSmallSolid(ShapeFix_Root)
doc:
Fixing solids with small size
methods:
- def setFixMode(self, theMode: int, /) -> None
doc:
Set working mode for operator:
- theMode = 0 use both WidthFactorThreshold and VolumeThreshold parameters
- theMode = 1 use only WidthFactorThreshold parameter
- theMode = 2 use only VolumeThreshold parameter
- def setVolumeThreshold(self) -> None
doc:
Set or clear volume threshold for small solids
- def setWidthFactorThreshold(self) -> None
doc:
Set or clear width factor threshold for small solids
- def remove(self) -> None
doc:
Remove small solids from the given shape
- def merge(self) -> None
doc:
Merge small solids in the given shape to adjacent non-small ones
MODULE Mod/Part/App/ShapeFix/ShapeFix_FreeBounds.pyi
classes:
class ShapeFix_FreeBounds(PyObjectBase)
doc:
This class is intended to output free bounds of the shape
methods:
- def closedWires(self) -> TopoShapeCompound
doc:
Returns compound of closed wires out of free edges
- def openWires(self) -> TopoShapeCompound
doc:
Returns compound of open wires out of free edges
- def shape(self) -> TopoShape
doc:
Returns modified source shape
MODULE Mod/Part/App/ShapeFix/ShapeFix_Root.pyi
classes:
class ShapeFix_Root(PyObjectBase)
doc:
Root class for fixing operations
attributes:
- Precision: float
doc:
Basic precision value
- MinTolerance: float
doc:
Minimal allowed tolerance
- MaxTolerance: float
doc:
Maximal allowed tolerance
methods:
@constmethod
- def limitTolerance(self) -> float
doc:
Returns tolerance limited by [MinTolerance,MaxTolerance]
MODULE Mod/Part/App/ShapeFix/ShapeFix_Shape.pyi
classes:
class ShapeFix_Shape(ShapeFix_Root)
doc:
Class for fixing operations on shapes
attributes:
- FixSolidMode: bool
doc:
Mode for applying fixes of ShapeFix_Solid
- FixFreeShellMode: bool
doc:
Mode for applying fixes of ShapeFix_Shell
- FixFreeFaceMode: bool
doc:
Mode for applying fixes of ShapeFix_Face
- FixFreeWireMode: bool
doc:
Mode for applying fixes of ShapeFix_Wire
- FixSameParameterMode: bool
doc:
Mode for applying ShapeFix::SameParameter after all fixes
- FixVertexPositionMode: bool
doc:
Mode for applying ShapeFix::FixVertexPosition before all fixes
- FixVertexTolMode: bool
doc:
Mode for fixing tolerances of vertices on whole shape
methods:
- def init(self) -> None
doc:
Initializes by shape
- def perform(self) -> None
doc:
Iterates on sub- shape and performs fixes
- def shape(self) -> TopoShape
doc:
Returns resulting shape
- def fixSolidTool(self) -> object
doc:
Returns tool for fixing solids
- def fixShellTool(self) -> object
doc:
Returns tool for fixing shells
- def fixFaceTool(self) -> object
doc:
Returns tool for fixing faces
- def fixWireTool(self) -> object
doc:
Returns tool for fixing wires
- def fixEdgeTool(self) -> object
doc:
Returns tool for fixing edges
MODULE Mod/Part/App/ShapeFix/ShapeFix_ShapeTolerance.pyi
classes:
class ShapeFix_ShapeTolerance(PyObjectBase)
doc:
Modifies tolerances of sub-shapes (vertices, edges, faces)
methods:
@overload
- def limitTolerance(self, shape: TopoShape, tmin: float, /) -> None
@overload
- def limitTolerance(self, shape: TopoShape, tmin: float, tmax: float, ShapeEnum: str=None, /) -> None
- def limitTolerance(self, shape: TopoShape, tmin: float, tmax: float=0, ShapeEnum: str=None, /) -> None
doc:
limitTolerance(shape, tmin, [tmax=0, ShapeEnum=SHAPE])
@overload
- def setTolerance(self, shape: TopoShape, precision: float, /) -> None
@overload
- def setTolerance(self, shape: TopoShape, precision: float, ShapeEnum: str=None, /) -> None
- def setTolerance(self, shape: TopoShape, precision: float, ShapeEnum: str=None, /) -> None
doc:
setTolerance(shape, precision, [ShapeEnum=SHAPE])
MODULE Mod/Part/App/ShapeFix/ShapeFix_Shell.pyi
classes:
class ShapeFix_Shell(ShapeFix_Root)
doc:
Root class for fixing operations
attributes:
- FixOrientationMode: bool
doc:
Mode for applying fixes of orientation of faces
- FixFaceMode: bool
doc:
Mode for applying fixes using ShapeFix_Face
methods:
- def init(self) -> None
doc:
Initializes by shell
- def fixFaceTool(self) -> None
doc:
Returns tool for fixing faces
- def perform(self) -> None
doc:
Iterates on subshapes and performs fixes
- def shell(self) -> None
doc:
Returns fixed shell (or subset of oriented faces)
- def numberOfShells(self) -> None
doc:
Returns the number of obtained shells
- def shape(self) -> None
doc:
In case of multiconnexity returns compound of fixed shells and one shell otherwise
- def errorFaces(self) -> None
doc:
Returns not oriented subset of faces
- def fixFaceOrientation(self) -> None
doc:
Fixes orientation of faces in shell.
Changes orientation of face in the shell, if it is oriented opposite
to neighbouring faces. If it is not possible to orient all faces in the
shell (like in case of mebious band), this method orients only subset
of faces. Other faces are stored in Error compound.
Modes :
isAccountMultiConex - mode for account cases of multiconnexity.
If this mode is equal to Standard_True, separate shells will be created
in the cases of multiconnexity. If this mode is equal to Standard_False,
one shell will be created without account of multiconnexity. By default - Standard_True;
NonManifold - mode for creation of non-manifold shells.
If this mode is equal to Standard_True one non-manifold will be created from shell
contains multishared edges. Else if this mode is equal to Standard_False only
manifold shells will be created. By default - Standard_False.
- def setNonManifoldFlag(self) -> None
doc:
Sets NonManifold flag
MODULE Mod/Part/App/ShapeFix/ShapeFix_Solid.pyi
classes:
class ShapeFix_Solid(ShapeFix_Root)
doc:
Root class for fixing operations
attributes:
- FixShellMode: bool
doc:
Mode for applying fixes of ShapeFix_Shell
- FixShellOrientationMode: bool
doc:
Mode for applying analysis and fixes of
orientation of shells in the solid
- CreateOpenSolidMode: bool
doc:
Mode for creation of solids
methods:
- def init(self) -> None
doc:
Initializes by solid
- def perform(self) -> None
doc:
Iterates on subshapes and performs fixes
- def solidFromShell(self) -> None
doc:
Calls MakeSolid and orients the solid to be not infinite
- def solid(self) -> None
doc:
Returns resulting solid
- def shape(self) -> None
doc:
In case of multiconnexity returns compound of fixed solids
else returns one solid
- def fixShellTool(self) -> None
doc:
Returns tool for fixing shells
MODULE Mod/Part/App/ShapeFix/ShapeFix_SplitCommonVertex.pyi
classes:
class ShapeFix_SplitCommonVertex(ShapeFix_Root)
doc:
Class for fixing operations on shapes
methods:
- def init(self) -> None
doc:
Initializes by shape
- def perform(self) -> None
doc:
Iterates on sub- shape and performs fixes
- def shape(self) -> object
doc:
Returns resulting shape
MODULE Mod/Part/App/ShapeFix/ShapeFix_SplitTool.pyi
classes:
class ShapeFix_SplitTool(PyObjectBase)
doc:
Tool for splitting and cutting edges
methods:
- def splitEdge(self) -> None
doc:
Split edge on two new edges using new vertex
- def cutEdge(self) -> None
doc:
Cut edge by parameters pend and cut
MODULE Mod/Part/App/ShapeFix/ShapeFix_Wire.pyi
classes:
class ShapeFix_Wire(ShapeFix_Root)
doc:
Class for fixing operations on wires
attributes:
- ModifyTopologyMode: bool
doc:
Mode for modifying topology of the wire
- ModifyGeometryMode: bool
doc:
Mode for modifying geometry of vertexes and edges
- ModifyRemoveLoopMode: bool
doc:
Mode for modifying edges
- ClosedWireMode: bool
doc:
Mode which defines whether the wire
is to be closed (by calling methods like fixDegenerated()
and fixConnected() for last and first edges)
- PreferencePCurveMode: bool
doc:
Mode which defines whether the 2d 'True'
representation of the wire is preferable over 3d one in the
case of ambiguity in FixEdgeCurves
- FixGapsByRangesMode: bool
doc:
Mode which defines whether tool
tries to fix gaps first by changing curves ranges (i.e.
using intersection, extrema, projections) or not
- FixReorderMode: bool
doc:
Mode which performs an analysis and reorders edges in the wire using class WireOrder.
Flag 'theModeBoth' determines the use of miscible mode if necessary.
- FixSmallMode: bool
doc:
Mode which applies FixSmall(num) to all edges in the wire
- FixConnectedMode: bool
doc:
Mode which applies FixConnected(num) to all edges in the wire
Connection between first and last edges is treated only if
flag ClosedMode is True
If 'prec' is -1 then MaxTolerance() is taken.
- FixEdgeCurvesMode: bool
doc:
Mode which groups the fixes dealing with 3d and pcurves of the edges.
The order of the fixes and the default behaviour are:
ShapeFix_Edge::FixReversed2d
ShapeFix_Edge::FixRemovePCurve (only if forced)
ShapeFix_Edge::FixAddPCurve
ShapeFix_Edge::FixRemoveCurve3d (only if forced)
ShapeFix_Edge::FixAddCurve3d
FixSeam,
FixShifted,
ShapeFix_Edge::FixSameParameter
- FixDegeneratedMode: bool
doc:
Mode which applies FixDegenerated(num) to all edges in the wire
Connection between first and last edges is treated only if
flag ClosedMode is True
- FixSelfIntersectionMode: bool
doc:
Mode which applies FixSelfIntersectingEdge(num) and
FixIntersectingEdges(num) to all edges in the wire and
FixIntersectingEdges(num1, num2) for all pairs num1 and num2
and removes wrong edges if any
- FixLackingMode: bool
doc:
Mode which applies FixLacking(num) to all edges in the wire
Connection between first and last edges is treated only if
flag ClosedMode is True
If 'force' is False (default), test for connectness is done with
precision of vertex between edges, else it is done with minimal
value of vertex tolerance and Analyzer.Precision().
Hence, 'force' will lead to inserting lacking edges in replacement
of vertices which have big tolerances.
- FixGaps3dMode: bool
doc:
Mode which fixes gaps between ends of 3d curves on adjacent edges
myPrecision is used to detect the gaps.
- FixGaps2dMode: bool
doc:
Mode whixh fixes gaps between ends of pcurves on adjacent edges
myPrecision is used to detect the gaps.
- FixReversed2dMode: bool
doc:
Mode which fixes the reversed in 2d
- FixRemovePCurveMode: bool
doc:
Mode which removePCurve in 2d
- FixAddPCurveMode: bool
doc:
Mode which fixes addCurve in 2d
- FixRemoveCurve3dMode: bool
doc:
Mode which fixes removeCurve in 3d
- FixAddCurve3dMode: bool
doc:
Mode which fixes addCurve in 3d
- FixSeamMode: bool
doc:
Mode which fixes Seam
- FixShiftedMode: bool
doc:
Mode which fixes Shifted
- FixSameParameterMode: bool
doc:
Mode which fixes sameParameter in 2d
- FixVertexToleranceMode: bool
doc:
Mode which fixes VertexTolerence in 2d
- FixNotchedEdgesMode: bool
doc:
Mode which fixes NotchedEdges in 2d
- FixSelfIntersectingEdgeMode: bool
doc:
Mode which fixes SelfIntersectionEdge in 2d
- FixIntersectingEdgesMode: bool
doc:
Mode which fixes IntersectingEdges in 2d
- FixNonAdjacentIntersectingEdgesMode: bool
doc:
Mode which fixes NonAdjacentIntersectingEdges in 2d
- FixTailMode: bool
doc:
Mode which fixes Tails in 2d
methods:
- def init(self) -> None
doc:
Initializes by wire, face, precision
- def fixEdgeTool(self) -> None
doc:
Returns tool for fixing wires
- def clearModes(self) -> None
doc:
Sets all modes to default
- def clearStatuses(self) -> None
doc:
Clears all statuses
- def load(self) -> None
doc:
Load data for the wire, and drops all fixing statuses
- def setFace(self) -> None
doc:
Set working face for the wire
- def setSurface(self, surface: object, Placement: object=..., /) -> None
doc:
setSurface(surface, [Placement])
Set surface for the wire
- def setMaxTailAngle(self) -> None
doc:
Sets the maximal allowed angle of the tails in radians
- def setMaxTailWidth(self) -> None
doc:
Sets the maximal allowed width of the tails
- def isLoaded(self) -> None
doc:
Tells if the wire is loaded
- def isReady(self) -> None
doc:
Tells if the wire and face are loaded
- def numberOfEdges(self) -> None
doc:
Returns number of edges in the working wire
- def wire(self) -> None
doc:
Makes the resulting Wire (by basic Brep_Builder)
- def wireAPIMake(self) -> None
doc:
Makes the resulting Wire (by BRepAPI_MakeWire)
- def face(self) -> None
doc:
Returns working face
- def perform(self) -> None
doc:
Iterates on subshapes and performs fixes
- def fixReorder(self) -> None
doc:
Performs an analysis and reorders edges in the wire
- def fixSmall(self) -> None
doc:
Applies fixSmall(...) to all edges in the wire
- def fixConnected(self, num: int, /) -> None
doc:
Applies fixConnected(num) to all edges in the wire
Connection between first and last edges is treated only if
flag ClosedMode is True
If prec is -1 then maxTolerance() is taken.
- def fixEdgeCurves(self) -> None
doc:
Groups the fixes dealing with 3d and pcurves of the edges
- def fixDegenerated(self) -> None
doc:
Applies fixDegenerated(...) to all edges in the wire
- def fixSelfIntersection(self) -> None
doc:
Applies FixSelfIntersectingEdge(num) and
FixIntersectingEdges(num) to all edges in the wire and
FixIntersectingEdges(num1, num2) for all pairs num1 and num2
and removes wrong edges if any
- def fixLacking(self) -> None
doc:
Applies FixLacking(num) to all edges in the wire
Connection between first and last edges is treated only if
flag ClosedMode is True
If 'force' is False (default), test for connectness is done with
precision of vertex between edges, else it is done with minimal
value of vertex tolerance and Analyzer.Precision().
Hence, 'force' will lead to inserting lacking edges in replacement
of vertices which have big tolerances.
- def fixClosed(self) -> None
doc:
Fixes a wire to be well closed
- def fixGaps3d(self, num: int, /) -> None
doc:
Fixes gaps between ends of 3d curves on adjacent edges
- def fixGaps2d(self, num: int, /) -> None
doc:
Fixes gaps between ends of pcurves on adjacent edges
- def fixSeam(self) -> None
doc:
Fixes seam edges
- def fixShifted(self) -> None
doc:
Fixes edges which have pcurves shifted by whole parameter
range on the closed surface
- def fixNotchedEdges(self) -> None
doc:
Fixes Notch edges.Check if there are notch edges in 2d and fix it
- def fixGap3d(self, num: int, /) -> None
doc:
Fixes gap between ends of 3d curves on num-1 and num-th edges
- def fixGap2d(self, num: int, /) -> None
doc:
Fixes gap between ends of pcurves on num-1 and num-th edges
- def fixTails(self) -> None
doc:
Fixes issues related to 'tails' in the geometry.
Tails are typically small, undesired protrusions or deviations in the curves or edges that need correction.
This method examines the geometry and applies corrective actions to eliminate or reduce the presence of tails.
MODULE Mod/Part/App/ShapeFix/ShapeFix_WireVertex.pyi
classes:
class ShapeFix_WireVertex(PyObjectBase)
doc:
Fixing disconnected edges in the wire
methods:
- def init(self) -> None
doc:
Loads the wire, ininializes internal analyzer with the given precision
- def wire(self) -> object
doc:
Returns resulting wire
- def fixSame(self) -> int
doc:
Returns the count of fixed vertices, 0 if none
- def fix(self) -> int
doc:
Fixes all statuses except Disjoined, i.e. the cases in which a
common value has been set, with or without changing parameters
Returns the count of fixed vertices, 0 if none
MODULE Mod/Part/App/ShapeFix/ShapeFix_Wireframe.pyi
classes:
class ShapeFix_Wireframe(ShapeFix_Root)
doc:
Provides methods for fixing wireframe of shape
attributes:
- ModeDropSmallEdges: bool
doc:
Returns mode managing removing small edges
- LimitAngle: float
doc:
Limit angle for merging edges
methods:
- def clearStatuses(self) -> None
doc:
Clears all statuses
- def load(self) -> None
doc:
Loads a shape, resets statuses
- def fixWireGaps(self) -> None
doc:
Fixes gaps between ends of curves of adjacent edges
- def fixSmallEdges(self) -> None
doc:
Fixes small edges in shape by merging adjacent edges
- def shape(self) -> None
MODULE Mod/Part/App/ShapeUpgrade/UnifySameDomain.pyi
classes:
class UnifySameDomain(PyObjectBase)
doc:
This tool tries to unify faces and edges of the shape which lie on the same geometry.
methods:
- def initialize(self, **kwargs) -> None
doc:
Initializes with a shape and necessary flags
- def allowInternalEdges(self) -> None
doc:
Sets the flag defining whether it is allowed to create
internal edges inside merged faces in the case of non-manifold
topology. Without this flag merging through multi connected edge
is forbidden. Default value is false.
- def keepShape(self) -> None
doc:
Sets the shape for avoid merging of the faces/edges.
- def keepShapes(self) -> None
doc:
Sets the map of shapes for avoid merging of the faces/edges.
- def setSafeInputMode(self) -> None
doc:
Sets the flag defining the behavior of the algorithm regarding
modification of input shape.
If this flag is equal to True then the input (original) shape can't be
modified during modification process. Default value is true.
- def setLinearTolerance(self) -> None
doc:
Sets the linear tolerance
- def setAngularTolerance(self) -> None
doc:
Sets the angular tolerance
- def build(self) -> None
doc:
Performs unification and builds the resulting shape
@constmethod
- def shape(self) -> None
doc:
Gives the resulting shape
MODULE Mod/Part/App/Sphere.pyi
classes:
class Sphere(GeometrySurface)
doc:
Describes a sphere in 3D space
attributes:
- Radius: float
doc:
The radius of the sphere.
- Area: Final[float]
doc:
Compute the area of the sphere.
- Volume: Final[float]
doc:
Compute the volume of the sphere.
- Center: Vector
doc:
Center of the sphere.
- Axis: AxisPy
doc:
The axis direction of the circle
MODULE Mod/Part/App/SurfaceOfExtrusion.pyi
classes:
class SurfaceOfExtrusion(GeometrySurface)
doc:
Describes a surface of linear extrusion
attributes:
- Direction: Vector
doc:
Sets or gets the direction of revolution.
- BasisCurve: GeometryCurve
doc:
Sets or gets the basic curve.
MODULE Mod/Part/App/SurfaceOfRevolution.pyi
classes:
class SurfaceOfRevolution(GeometrySurface)
doc:
Describes a surface of revolution
attributes:
- Location: Placement
doc:
Sets or gets the location of revolution.
- Direction: Vector
doc:
Sets or gets the direction of revolution.
- BasisCurve: GeometryCurve
doc:
Sets or gets the basic curve.
methods:
@overload
- def __init__(self, location: Placement, direction: Vector, basis_curve: GeometryCurve) -> None
MODULE Mod/Part/App/TopoShape.pyi
classes:
class TopoShape(ComplexGeoData)
doc:
TopoShape is the OpenCasCade topological shape wrapper.
Sub-elements such as vertices, edges or faces are accessible as:
* Vertex#, where # is in range(1, number of vertices)
* Edge#, where # is in range(1, number of edges)
* Face#, where # is in range(1, number of faces)
attributes:
- ShapeType: Final[str]
doc:
Returns the type of the shape.
- Orientation: str
doc:
Returns the orientation of the shape.
- Faces: Final[List]
doc:
List of faces in this shape.
- Vertexes: Final[List]
doc:
List of vertexes in this shape.
- Shells: Final[List]
doc:
List of subsequent shapes in this shape.
- Solids: Final[List]
doc:
List of subsequent shapes in this shape.
- CompSolids: Final[List]
doc:
List of subsequent shapes in this shape.
- Edges: Final[List]
doc:
List of Edges in this shape.
- Wires: Final[List]
doc:
List of wires in this shape.
- Compounds: Final[List]
doc:
List of compounds in this shape.
- SubShapes: Final[List]
doc:
List of sub-shapes in this shape.
- Length: Final[float]
doc:
Total length of the edges of the shape.
- Area: Final[float]
doc:
Total area of the faces of the shape.
- Volume: Final[float]
doc:
Total volume of the solids of the shape.
methods:
@constmethod
- def dumps(self) -> str
doc:
Serialize the content of this shape to a string in BREP format.
- def loads(self, brep_str: str, /) -> None
doc:
Deserialize the content of this shape from a string in BREP format.
- def read(self, filename: str, /) -> None
doc:
Read in an IGES, STEP or BREP file.
read(filename)
@constmethod
- def writeInventor(self, *, Mode: int, Deviation: float, Angle: float, FaceColors: object) -> str
doc:
Write the mesh in OpenInventor format to a string.
writeInventor() -> string
@constmethod
- def exportIges(self, filename: str, /) -> None
doc:
Export the content of this shape to an IGES file.
exportIges(filename)
@constmethod
- def exportStep(self, filename: str, /) -> None
doc:
Export the content of this shape to an STEP file.
exportStep(filename)
@constmethod
- def exportBrep(self, filename: str, /) -> None
doc:
Export the content of this shape to an BREP file.
exportBrep(filename)
--
BREP is an OpenCasCade native format.
@constmethod
- def exportBinary(self, filename: str, /) -> None
doc:
Export the content of this shape in binary format to a file.
exportBinary(filename)
@constmethod
- def exportBrepToString(self) -> str
doc:
Export the content of this shape to a string in BREP format.
exportBrepToString() -> string
--
BREP is an OpenCasCade native format.
@constmethod
- def dumpToString(self) -> str
doc:
Dump information about the shape to a string.
dumpToString() -> string
@constmethod
- def exportStl(self, filename: str, /) -> None
doc:
Export the content of this shape to an STL mesh file.
exportStl(filename)
- def importBrep(self, filename: str, /) -> None
doc:
Load the shape from a file in BREP format.
importBrep(filename)
- def importBinary(self, filename: str, /) -> None
doc:
Import the content to this shape of a string in BREP format.
importBinary(filename)
- def importBrepFromString(self, s: str, displayProgressBar: bool=True, /) -> None
doc:
Load the shape from a string that keeps the content in BREP format.
importBrepFromString(string, [displayProgressBar=True])
--
importBrepFromString(str, False) to not display a progress bar.
@constmethod
- def extrude(self, vector: Vector, /) -> TopoShape
doc:
Extrude the shape along a vector.
extrude(vector) -> Shape
--
Shp2 = Shp1.extrude(App.Vector(0,0,10)) - extrude the shape 10 mm in the +Z direction.
@constmethod
- def revolve(self, base: Vector, direction: Vector, angle: float, /) -> TopoShape
doc:
Revolve the shape around an Axis to a given degree.
revolve(base, direction, angle)
--
Part.revolve(App.Vector(0,0,0),App.Vector(0,0,1),360) - revolves the shape around the Z Axis 360 degree.
Hints: Sometimes you want to create a rotation body out of a closed edge or wire.
Example:
from FreeCAD-compatible runtime import Base
import Part
V=Base.Vector
e=Part.Ellipse()
s=e.toShape()
r=s.revolve(V(0,0,0),V(0,1,0), 360)
Part.show(r)
However, you may possibly realize some rendering artifacts or that the mesh
creation seems to hang. This is because this way the surface is created twice.
Since the curve is a full ellipse it is sufficient to do a rotation of 180 degree
only, i.e. r=s.revolve(V(0,0,0),V(0,1,0), 180)
Now when rendering this object you may still see some artifacts at the poles. Now the
problem seems to be that the meshing algorithm doesn't like to rotate around a point
where there is no vertex.
The idea to fix this issue is that you create only half of the ellipse so that its shape
representation has vertexes at its start and end point.
from FreeCAD-compatible runtime import Base
import Part
V=Base.Vector
e=Part.Ellipse()
s=e.toShape(e.LastParameter/4,3*e.LastParameter/4)
r=s.revolve(V(0,0,0),V(0,1,0), 360)
Part.show(r)
@constmethod
- def check(self, runBopCheck: bool=False, /) -> bool
doc:
Checks the shape and report errors in the shape structure.
check([runBopCheck = False])
--
This is a more detailed check as done in isValid().
if runBopCheck is True, a BOPCheck analysis is also performed.
@constmethod
- def fuse(self, tools: Tuple[TopoShape, ...], tolerance: float=0.0, *, noElementMap: bool=False) -> TopoShape
doc:
Union of this and a given (list of) topo shape.
fuse(tool) -> Shape
or
fuse((tool1,tool2,...),[tolerance=0.0], noElementMap=False) -> Shape
--
Union of this and a given list of topo shapes.
Supports (OCCT 6.9.0 and above):
- Fuzzy Boolean operations (global tolerance for a Boolean operation)
- Support of multiple arguments for a single Boolean operation
- Parallelization of Boolean Operations algorithm
Beginning from OCCT 6.8.1 a tolerance value can be specified.
Set noElementMap=True for transient analysis geometry where stable
element naming is not needed.
@constmethod
- def multiFuse(self, tools: Tuple[TopoShape, ...], tolerance: float=0.0, *, noElementMap: bool=False) -> TopoShape
doc:
Union of this and a given list of topo shapes.
multiFuse((tool1,tool2,...),[tolerance=0.0], noElementMap=False) -> Shape
--
Supports (OCCT 6.9.0 and above):
- Fuzzy Boolean operations (global tolerance for a Boolean operation)
- Support of multiple arguments for a single Boolean operation
- Parallelization of Boolean Operations algorithm
Beginning from OCCT 6.8.1 a tolerance value can be specified.
Set noElementMap=True for transient analysis geometry where stable
element naming is not needed.
Deprecated: use fuse() instead.
@constmethod
- def common(self, tools: Tuple[TopoShape, ...], tolerance: float=0.0, /) -> TopoShape
doc:
Intersection of this and a given (list of) topo shape.
common(tool) -> Shape
or
common((tool1,tool2,...),[tolerance=0.0]) -> Shape
--
Supports:
- Fuzzy Boolean operations (global tolerance for a Boolean operation)
- Support of multiple arguments for a single Boolean operation (s1 AND (s2 OR s3))
- Parallelization of Boolean Operations algorithm
OCC 6.9.0 or later is required.
@constmethod
- def section(self, tool: Tuple[TopoShape, ...], tolerance: float=0.0, approximation: bool=False, /) -> TopoShape
doc:
Section of this with a given (list of) topo shape.
section(tool,[approximation=False]) -> Shape
or
section((tool1,tool2,...),[tolerance=0.0, approximation=False]) -> Shape
--
If approximation is True, section edges are approximated to a C1-continuous BSpline curve.
Supports:
- Fuzzy Boolean operations (global tolerance for a Boolean operation)
- Support of multiple arguments for a single Boolean operation (s1 AND (s2 OR s3))
- Parallelization of Boolean Operations algorithm
OCC 6.9.0 or later is required.
@constmethod
- def slices(self, direction: Vector, distancesList: List[float], /) -> List
doc:
Make slices of this shape.
slices(direction, distancesList) --> Wires
@constmethod
- def slice(self, direction: Vector, distance: float, /) -> List
doc:
Make single slice of this shape.
slice(direction, distance) --> Wires
@constmethod
- def cut(self, tool: Tuple[TopoShape, ...], tolerance: float=0.0, /) -> TopoShape
doc:
Difference of this and a given (list of) topo shape
cut(tool) -> Shape
or
cut((tool1,tool2,...),[tolerance=0.0]) -> Shape
--
Supports:
- Fuzzy Boolean operations (global tolerance for a Boolean operation)
- Support of multiple arguments for a single Boolean operation
- Parallelization of Boolean Operations algorithm
OCC 6.9.0 or later is required.
@constmethod
- def generalFuse(self, shapes: Tuple[TopoShape, ...], fuzzy_value: float=0.0, /) -> Tuple[TopoShape, List[List[TopoShape]]]
doc:
Run general fuse algorithm (GFA) between this and given shapes.
generalFuse(list_of_other_shapes, [fuzzy_value = 0.0]) -> (result, map)
--
list_of_other_shapes: shapes to run the algorithm against (the list is
effectively prepended by 'self').
fuzzy_value: extra tolerance to apply when searching for interferences, in
addition to tolerances of the input shapes.
Returns a tuple of 2: (result, map).
result is a compound containing all the pieces generated by the algorithm
(e.g., for two spheres, the pieces are three touching solids). Pieces that
touch share elements.
map is a list of lists of shapes, providing the info on which children of
result came from which argument. The length of list is equal to length of
list_of_other_shapes + 1. First element is a list of pieces that came from
shape of this, and the rest are those that come from corresponding shapes in
list_of_other_shapes.
hint: use isSame method to test shape equality
Parallelization of Boolean Operations algorithm
OCC 6.9.0 or later is required.
- def sewShape(self) -> None
doc:
Sew the shape if there is a gap.
sewShape()
@constmethod
- def childShapes(self, cumOri: bool=True, cumLoc: bool=True, /) -> List
doc:
Return a list of sub-shapes that are direct children of this shape.
childShapes([cumOri=True, cumLoc=True]) -> list
--
* If cumOri is true, the function composes all
sub-shapes with the orientation of this shape.
* If cumLoc is true, the function multiplies all
sub-shapes by the location of this shape, i.e. it applies to
each sub-shape the transformation that is associated with this shape.
@constmethod
- def ancestorsOfType(self, shape: TopoShape, shape_type: str, /) -> List
doc:
For a sub-shape of this shape get its ancestors of a type.
ancestorsOfType(shape, shape type) -> list
- def removeInternalWires(self, minimalArea: float, /) -> bool
doc:
Removes internal wires (also holes) from the shape.
removeInternalWires(minimalArea) -> bool
@constmethod
- def mirror(self, base: Vector, norm: Vector, /) -> TopoShape
doc:
Mirror this shape on a given plane.
mirror(base, norm) -> Shape
--
The plane is given with its base point and its normal direction.
@constmethod
- def transformGeometry(self, matrix: Matrix, /) -> TopoShape
doc:
Apply geometric transformation on this or a copy the shape.
transformGeometry(matrix) -> Shape
--
This method returns a new shape.
The transformation to be applied is defined as a 4x4 matrix.
The underlying geometry of the following shapes may change:
- a curve which supports an edge of the shape, or
- a surface which supports a face of the shape;
For example, a circle may be transformed into an ellipse when
applying an affinity transformation. It may also happen that
the circle then is represented as a B-spline curve.
The transformation is applied to:
- all the curves which support edges of the shape, and
- all the surfaces which support faces of the shape.
Note: If you want to transform a shape without changing the
underlying geometry then use the methods translate or rotate.
- def transformShape(self, matrix: Matrix, copy: bool=False, checkScale: bool=False, /) -> TopoShape
doc:
Apply a transformation on this shape in place and return self.
--
If copy is True the underlying geometry is duplicated and the transformation is baked into
it. If copy is False the transformation is applied as a location change without modifying
the underlying geometry (no bake-in). Note that scaling, mirroring, and non-uniform
transformations may force a copy regardless of this flag. If checkScale is True,
transformGeometry is used when non-uniform scaling is detected. To obtain a transformed copy
while leaving this shape untouched, use transformed() instead.
@constmethod
- def transformed(self, matrix: Matrix, *, copy: bool=False, checkScale: bool=False, op: str=None) -> TopoShape
doc:
Return a new shape with the transformation applied; leave self unchanged.
--
The copy and checkScale arguments have the same meaning as in transformShape(). op is
unused.
- def translate(self, vector: Vector, /) -> None
doc:
Apply the translation to the current location of this shape.
translate(vector)
@constmethod
- def translated(self, vector: Vector, /) -> TopoShape
doc:
Create a new shape with translation
translated(vector) -> shape
- def rotate(self, base: Vector, dir: Vector, degree: float, /) -> None
doc:
Apply the rotation (base, dir, degree) to the current location of this shape
rotate(base, dir, degree)
--
Shp.rotate(App.Vector(0,0,0), App.Vector(0,0,1), 180) - rotate the shape around the Z Axis 180 degrees.
@constmethod
- def rotated(self, base: Vector, dir: Vector, degree: float, /) -> TopoShape
doc:
Create a new shape with rotation.
rotated(base, dir, degree) -> shape
- def scale(self, factor: float, base: Vector=None, /) -> None
doc:
Apply scaling with point and factor to this shape.
scale(factor, [base=App.Vector(0,0,0)])
@constmethod
- def scaled(self, factor: float, base: Vector=None, /) -> TopoShape
doc:
Create a new shape with scale.
scaled(factor, [base=App.Vector(0,0,0)]) -> shape
@overload
@constmethod
- def makeFillet(self, radius: float, edgeList: List, /) -> TopoShape
@overload
@constmethod
- def makeFillet(self, radius1: float, radius2: float, edgeList: List, /) -> TopoShape
@constmethod
- def makeFillet(self, *args) -> TopoShape
doc:
Make fillet.
makeFillet(radius, edgeList) -> Shape
or
makeFillet(radius1, radius2, edgeList) -> Shape
@overload
@constmethod
- def makeChamfer(self, radius: float, edgeList: List, /) -> TopoShape
@overload
@constmethod
- def makeChamfer(self, radius1: float, radius2: float, edgeList: List, /) -> TopoShape
@constmethod
- def makeChamfer(self, *args) -> TopoShape
doc:
Make chamfer.
makeChamfer(radius, edgeList) -> Shape
or
makeChamfer(radius1, radius2, edgeList) -> Shape
@constmethod
- def makeThickness(self, faces: List, offset: float, tolerance: float, /) -> TopoShape
doc:
Hollow a solid according to given thickness and faces.
makeThickness(List of faces, Offset (Float), Tolerance (Float)) -> Shape
--
A hollowed solid is built from an initial solid and a set of faces on this solid,
which are to be removed. The remaining faces of the solid become the walls of
the hollowed solid, their thickness defined at the time of construction.
@constmethod
- def makeOffsetShape(self, offset: float, tolerance: float, *, inter: bool=False, self_inter: bool=False, offsetMode: int=0, join: int=0, fill: bool=False) -> TopoShape
doc:
Makes an offset shape (3d offsetting).
makeOffsetShape(offset, tolerance, [inter=False, self_inter=False, offsetMode=0, join=0, fill=False]) -> Shape
--
The function supports keyword arguments.
* offset: distance to expand the shape by. Negative value will shrink the shape.
* tolerance: precision of approximation.
* inter: (parameter to OCC routine; not implemented)
* self_inter: (parameter to OCC routine; not implemented)
* offsetMode: 0 = skin; 1 = pipe; 2 = recto-verso
* join: method of offsetting non-tangent joints. 0 = arcs, 1 = tangent, 2 =
intersection
* fill: if true, offsetting a shell is to yield a solid
Returns: result of offsetting.
@constmethod
- def makeOffset2D(self, offset: float, *, join: int=0, fill: bool=False, openResult: bool=False, intersection: bool=False) -> TopoShape
doc:
Makes an offset shape (2d offsetting).
makeOffset2D(offset, [join=0, fill=False, openResult=False, intersection=False]) -> Shape
--
The function supports keyword arguments.
Input shape (self) can be edge, wire, face, or a compound of those.
* offset: distance to expand the shape by. Negative value will shrink the shape.
* join: method of offsetting non-tangent joints. 0 = arcs, 1 = tangent, 2 = intersection
* fill: if true, the output is a face filling the space covered by offset. If
false, the output is a wire.
* openResult: affects the way open wires are processed. If False, an open wire
is made. If True, a closed wire is made from a double-sided offset, with rounds
around open vertices.
* intersection: affects the way compounds are processed. If False, all children
are offset independently. If True, and children are edges/wires, the children
are offset in a collective manner. If compounding is nested, collectiveness
does not spread across compounds (only direct children of a compound are taken
collectively).
Returns: result of offsetting (wire or face or compound of those). Compounding
structure follows that of source shape.
@constmethod
- def makeEvolved(self, Profile: TopoShape, Join: int, AxeProf: bool, *, Solid: bool, ProfOnSpine: bool, Tolerance: float) -> None
doc:
Profile along the spine
@constmethod
- def makeWires(self, op: str=None, /) -> TopoShape
doc:
Make wire(s) using the edges of this shape
makeWires([op=None])
--
The function will sort any edges inside the current shape, and connect them
into wire. If more than one wire is found, then it will make a compound out of
all found wires.
This function is element mapping aware. If the input shape has non-zero Tag,
it will map any edge and vertex element name inside the input shape into the
itself.
op: an optional string to be appended when auto generates element mapping.
- def reverse(self) -> None
doc:
Reverses the orientation of this shape.
reverse()
@constmethod
- def reversed(self) -> TopoShape
doc:
Reverses the orientation of a copy of this shape.
reversed() -> Shape
- def complement(self) -> None
doc:
Computes the complement of the orientation of this shape,
i.e. reverses the interior/exterior status of boundaries of this shape.
complement()
- def nullify(self) -> None
doc:
Destroys the reference to the underlying shape stored in this shape.
As a result, this shape becomes null.
nullify()
@constmethod
- def isClosed(self) -> bool
doc:
Checks if the shape is closed.
isClosed() -> bool
--
If the shape is a shell it returns True if it has no free boundaries (edges).
If the shape is a wire it returns True if it has no free ends (vertices).
(Internal and External sub-shapes are ignored in these checks)
If the shape is an edge it returns True if its vertices are the same.
@constmethod
- def isPartner(self, shape: TopoShape, /) -> bool
doc:
Checks if both shapes share the same geometry.
Placement and orientation may differ.
isPartner(shape) -> bool
@constmethod
- def isSame(self, shape: TopoShape, /) -> bool
doc:
Checks if both shapes share the same geometry
and placement. Orientation may differ.
isSame(shape) -> bool
@constmethod
- def isEqual(self, shape: TopoShape, /) -> bool
doc:
Checks if both shapes are equal.
This means geometry, placement and orientation are equal.
isEqual(shape) -> bool
@constmethod
- def isNull(self) -> bool
doc:
Checks if the shape is null.
isNull() -> bool
@constmethod
- def isValid(self) -> bool
doc:
Checks if the shape is valid, i.e. neither null, nor empty nor corrupted.
isValid() -> bool
@constmethod
- def isCoplanar(self, shape: TopoShape, tol: float=None, /) -> bool
doc:
Checks if this shape is coplanar with the given shape.
isCoplanar(shape,tol=None) -> bool
@constmethod
- def isInfinite(self) -> bool
doc:
Checks if this shape has an infinite expansion.
isInfinite() -> bool
@constmethod
- def findPlane(self, tol: float=None, /) -> TopoShape
doc:
Returns a plane if the shape is planar
findPlane(tol=None) -> Shape
- def fix(self, working_precision: float, minimum_precision: float, maximum_precision: float, /) -> bool
doc:
Tries to fix a broken shape.
fix(working precision, minimum precision, maximum precision) -> bool
--
True is returned if the operation succeeded, False otherwise.
@constmethod
- def hashCode(self) -> int
doc:
This value is computed from the value of the underlying shape reference and the location.
hashCode() -> int
--
Orientation is not taken into account.
@constmethod
- def tessellate(self) -> Tuple[List[Vector], List]
doc:
Tessellate the shape and return a list of vertices and face indices
tessellate() -> (vertex,facets)
@constmethod
- def project(self, shapeList: List[TopoShape], /) -> TopoShape
doc:
Project a list of shapes on this shape
project(shapeList) -> Shape
@constmethod
- def makeParallelProjection(self, shape: TopoShape, dir: Vector, /) -> TopoShape
doc:
Parallel projection of an edge or wire on this shape
makeParallelProjection(shape, dir) -> Shape
@constmethod
- def makePerspectiveProjection(self, shape: TopoShape, pnt: Vector, /) -> TopoShape
doc:
Perspective projection of an edge or wire on this shape
makePerspectiveProjection(shape, pnt) -> Shape
@constmethod
- def reflectLines(self, ViewDir: Vector, *, ViewPos: Vector=None, UpDir: Vector=None, EdgeType: str=None, Visible: bool=True, OnShape: bool=False) -> TopoShape
doc:
Build projection or reflect lines of a shape according to a view direction.
reflectLines(ViewDir, [ViewPos, UpDir, EdgeType, Visible, OnShape]) -> Shape (Compound of edges)
--
This algorithm computes the projection of the shape in the ViewDir direction.
If OnShape is False(default), the returned edges are flat on the XY plane defined by
ViewPos(origin) and UpDir(up direction).
If OnShape is True, the returned edges are the corresponding 3D reflect lines located on the shape.
EdgeType is a string defining the type of result edges :
- IsoLine : isoparametric line
- OutLine : outline (silhouette) edge
- Rg1Line : smooth edge of G1-continuity between two surfaces
- RgNLine : sewn edge of CN-continuity on one surface
- Sharp : sharp edge (of C0-continuity)
If Visible is True (default), only visible edges are returned.
If Visible is False, only invisible edges are returned.
- def makeShapeFromMesh(self, mesh: Tuple[List[Vector], List], tolerance: float, /) -> TopoShape
doc:
Make a compound shape out of mesh data.
makeShapeFromMesh((vertex,facets),tolerance) -> Shape
--
Note: This should be used for rather small meshes only.
@constmethod
- def toNurbs(self) -> TopoShape
doc:
Conversion of the complete geometry of a shape into NURBS geometry.
toNurbs() -> Shape
--
For example, all curves supporting edges of the basis shape are converted
into B-spline curves, and all surfaces supporting its faces are converted
into B-spline surfaces.
@constmethod
- def copy(self, copyGeom: bool=True, copyMesh: bool=False, *, noElementMap: bool=False) -> TopoShape
doc:
Create a copy of this shape
copy(copyGeom=True, copyMesh=False, noElementMap=False) -> Shape
--
If copyMesh is True, triangulation contained in original shape will be
copied along with geometry.
If copyGeom is False, only topological objects will be copied, while
geometry and triangulation will be shared with original shape.
Set noElementMap=True for transient geometry where stable element
naming is not needed.
@constmethod
- def cleaned(self) -> TopoShape
doc:
This creates a cleaned copy of the shape with the triangulation removed.
clean()
--
This can be useful to reduce file size when exporting as a BREP file.
Warning: Use the cleaned shape with care because certain algorithms may work incorrectly
if the shape has no internal triangulation any more.
@constmethod
- def replaceShape(self, tupleList: List[Tuple[TopoShape, TopoShape]], /) -> TopoShape
doc:
Replace a sub-shape with a new shape and return a new shape.
replaceShape(tupleList) -> Shape
--
The parameter is in the form list of tuples with the two shapes.
@constmethod
- def removeShape(self, shapeList: List[TopoShape], /) -> TopoShape
doc:
Remove a sub-shape and return a new shape.
removeShape(shapeList) -> Shape
--
The parameter is a list of shapes.
@constmethod
- def defeaturing(self, shapeList: List[TopoShape], /) -> TopoShape
doc:
Remove a feature defined by supplied faces and return a new shape.
defeaturing(shapeList) -> Shape
--
The parameter is a list of faces.
@constmethod
- def isInside(self, point: Vector, tolerance: float, checkFace: bool, /) -> bool
doc:
Checks whether a point is inside or outside the shape.
isInside(point, tolerance, checkFace) => Boolean
--
checkFace indicates if the point lying directly on a face is considered to be inside or not
@constmethod
- def removeSplitter(self) -> TopoShape
doc:
Removes redundant edges from the B-REP model
removeSplitter() -> Shape
@constmethod
- def proximity(self, shape: TopoShape, tolerance: float=None, /) -> Tuple[List[int], List[int]]
doc:
Returns two lists of Face indexes for the Faces involved in the intersection.
proximity(shape,[tolerance]) -> (selfFaces, shapeFaces)
@constmethod
- def distToShape(self, shape: TopoShape, tol: float=1e-07, /) -> Tuple[float, List[Tuple[Vector, Vector]], List[Tuple]]
doc:
Find the minimum distance to another shape.
distToShape(shape, tol=1e-7) -> (dist, vectors, infos)
--
dist is the minimum distance, in mm (float value).
vectors is a list of pairs of App.Vector. Each pair corresponds to solution.
Example: [(App.Vector(2.0, -1.0, 2.0), App.Vector(2.0, 0.0, 2.0)),
(App.Vector(2.0, -1.0, 2.0), App.Vector(2.0, -1.0, 3.0))]
First vector is a point on self, second vector is a point on s.
infos contains additional info on the solutions. It is a list of tuples:
(topo1, index1, params1, topo2, index2, params2)
topo1, topo2 are strings identifying type of BREP element: 'Vertex',
'Edge', or 'Face'.
index1, index2 are indexes of the elements (zero-based).
params1, params2 are parameters of internal space of the elements. For
vertices, params is None. For edges, params is one float, u. For faces,
params is a tuple (u,v).
@constmethod
- def getElement(self, elementName: str, silent: bool=False, /) -> TopoShape
doc:
Returns a SubElement
getElement(elementName, [silent = False]) -> Face | Edge | Vertex
elementName: SubElement name - i.e. 'Edge1', 'Face3' etc.
Accepts TNP mitigation mapped names as well
silent: True to suppress the exception throw if the shape isn't found.
@constmethod
- def countElement(self, type: str, /) -> int
doc:
Returns the count of a type of element
countElement(type) -> int
- def mapSubElement(self, shape: Union[TopoShape, Tuple[TopoShape, ...]], op: str='', /) -> None
doc:
mapSubElement(shape|[shape...], op='') - maps the sub element of other shape
shape: other shape or sequence of shapes to map the sub-elements
op: optional string prefix to append before the mapped sub element names
- def mapShapes(self, generated: List[Tuple[TopoShape, TopoShape]], modified: List[Tuple[TopoShape, TopoShape]], op: str='', /) -> None
doc:
mapShapes(generated, modified, op='')
generate element names with user defined mapping
generated: a list of tuple(src, dst) that indicating src shape or shapes
generates dst shape or shapes. Note that the dst shape or shapes
must be sub-shapes of this shape.
modified: a list of tuple(src, dst) that indicating src shape or shapes
modifies into dst shape or shapes. Note that the dst shape or
shapes must be sub-shapes of this shape.
op: optional string prefix to append before the mapped sub element names
@constmethod
- def getElementHistory(self, name: str, /) -> Union[Tuple[str, str, List[str]], None]
doc:
getElementHistory(name) - returns the element mapped name history
name: mapped element name belonging to this shape
Returns tuple(sourceShapeTag, sourceName, [intermediateNames...]),
or None if no history.
@constmethod
- def getTolerance(self, mode: int, ShapeType: str='Shape', /) -> float
doc:
Determines a tolerance from the ones stored in a shape
getTolerance(mode, ShapeType=Shape) -> float
--
mode = 0 : returns the average value between sub-shapes,
mode > 0 : returns the maximal found,
mode < 0 : returns the minimal found.
ShapeType defines what kinds of sub-shapes to consider:
Shape (default) : all : Vertex, Edge, Face,
Vertex : only vertices,
Edge : only edges,
Face : only faces,
Shell : combined Shell + Face, for each face (and containing
shell), also checks edge and Vertex
@constmethod
- def overTolerance(self, value: float, ShapeType: str='Shape', /) -> List[TopoShape]
doc:
Determines which shapes have a tolerance over the given value
overTolerance(value, [ShapeType=Shape]) -> ShapeList
--
ShapeType is interpreted as in the method getTolerance
@constmethod
- def inTolerance(self, valmin: float, valmax: float, ShapeType: str='Shape', /) -> List[TopoShape]
doc:
Determines which shapes have a tolerance within a given interval
inTolerance(valmin, valmax, [ShapeType=Shape]) -> ShapeList
--
ShapeType is interpreted as in the method getTolerance
@constmethod
- def globalTolerance(self, mode: int, /) -> float
doc:
Returns the computed tolerance according to the mode
globalTolerance(mode) -> float
--
mode = 0 : average
mode > 0 : maximal
mode < 0 : minimal
@constmethod
- def fixTolerance(self, value: float, ShapeType: str='Shape', /) -> None
doc:
Sets (enforces) tolerances in a shape to the given value
fixTolerance(value, [ShapeType=Shape])
--
ShapeType = Vertex : only vertices are set
ShapeType = Edge : only edges are set
ShapeType = Face : only faces are set
ShapeType = Wire : to have edges and their vertices set
ShapeType = other value : all (vertices,edges,faces) are set
@constmethod
- def limitTolerance(self, tmin: float, tmax: float=0, ShapeType: str='Shape', /) -> bool
doc:
Limits tolerances in a shape
limitTolerance(tmin, [tmax=0, ShapeType=Shape]) -> bool
--
tmin = tmax -> as fixTolerance (forces)
tmin = 0 -> maximum tolerance will be tmax
tmax = 0 or not given (more generally, tmax < tmin) ->
tmax ignored, minimum will be tmin
else, maximum will be max and minimum will be min
ShapeType = Vertex : only vertices are set
ShapeType = Edge : only edges are set
ShapeType = Face : only faces are set
ShapeType = Wire : to have edges and their vertices set
ShapeType = other value : all (vertices,edges,faces) are set
Returns True if at least one tolerance of the sub-shape has been modified
@constmethod
- def optimalBoundingBox(self, useTriangulation: bool=True, useShapeTolerance: bool=False, /) -> BoundBox
doc:
Get the optimal bounding box
optimalBoundingBox([useTriangulation = True, useShapeTolerance = False]) -> bound box
- def clearCache(self) -> None
doc:
Clear internal sub-shape cache
@constmethod
- def findSubShape(self, shape: TopoShape, /) -> Tuple[Union[str, None], int]
doc:
findSubShape(shape) -> (type_name, index)
Find sub shape and return the shape type name and index. If not found,
then return (None, 0)
@constmethod
- def findSubShapesWithSharedVertex(self, shape: TopoShape, *, needName: bool=False, checkGeometry: bool=True, tol: float=1e-07, atol: float=1e-12) -> Union[List[Tuple[str, TopoShape]], List[TopoShape]]
doc:
findSubShapesWithSharedVertex(shape, needName=False, checkGeometry=True, tol=1e-7, atol=1e-12) -> Shape
shape: input elementary shape, currently only support Face, Edge, or Vertex
needName: if True, return a list of tuple(name, shape), or else return a list
of shapes.
checkGeometry: whether to compare geometry
tol: distance tolerance
atol: angular tolerance
Search sub shape by checking vertex coordinates and comparing the underlying
geometries, This can find shapes that are copied. It currently only works with
elementary shapes, Face, Edge, Vertex.
@constmethod
- def getChildShapes(self, shapetype: str, avoidtype: str='', /) -> List[TopoShape]
doc:
getChildShapes(shapetype, avoidtype='') -> list(Shape)
Return a list of child sub-shapes of given type.
shapetype: the type of requesting sub shapes
avoidtype: optional shape type to skip when exploring
MODULE Mod/Part/App/TopoShapeCompSolid.pyi
classes:
class TopoShapeCompSolid(TopoShape)
doc:
TopoShapeCompSolid is the OpenCasCade topological compound solid wrapper
methods:
- def add(self, solid: TopoShape, /) -> None
doc:
Add a solid to the compound.
add(solid)
MODULE Mod/Part/App/TopoShapeCompound.pyi
classes:
class TopoShapeCompound(TopoShape)
doc:
Create a compound out of a list of shapes
methods:
@overload
- def __init__(self) -> None
@overload
- def __init__(self, shapes: TopoShape | Sequence[TopoShape], /) -> None
- def add(self, shape: TopoShape, /) -> None
doc:
Add a shape to the compound.
add(shape)
@constmethod
- def connectEdgesToWires(self, Shared: bool=True, Tolerance: float=1e-07, /) -> 'TopoShapeCompound'
doc:
Build a compound of wires out of the edges of this compound.
connectEdgesToWires([Shared = True, Tolerance = 1e-7]) -> Compound
--
If Shared is True connection is performed only when adjacent edges share the same vertex.
If Shared is False connection is performed only when ends of adjacent edges are at distance less than Tolerance.
- def setFaces(self) -> None
doc:
A shape is created from points and triangles and set to this object
MODULE Mod/Part/App/TopoShapeEdge.pyi
classes:
class TopoShapeEdge(TopoShape)
doc:
TopoShapeEdge is the OpenCasCade topological edge wrapper
attributes:
- Tolerance: float
doc:
Set or get the tolerance of the vertex
- Length: Final[float]
doc:
Returns the cartesian length of the curve
- ParameterRange: Final[Tuple[float, float]]
doc:
Returns a 2 tuple with the range of the primary parameter
defining the curve. This is the same as would be returned by
the FirstParameter and LastParameter properties, i.e.
(LastParameter,FirstParameter)
What the parameter is depends on what type of edge it is. For a
Line the parameter is simply its cartesian length. Some other
examples are shown below:
Type Parameter
---------------------------------------------------------------
Circle Angle swept by circle (or arc) in radians
BezierCurve Unitless number in the range 0.0 to 1.0
Helix Angle swept by helical turns in radians
- FirstParameter: Final[float]
doc:
Returns the start value of the range of the primary parameter
defining the curve.
What the parameter is depends on what type of edge it is. For a
Line the parameter is simply its cartesian length. Some other
examples are shown below:
Type Parameter
-----------------------------------------------------------
Circle Angle swept by circle (or arc) in radians
BezierCurve Unitless number in the range 0.0 to 1.0
Helix Angle swept by helical turns in radians
- LastParameter: Final[float]
doc:
Returns the end value of the range of the primary parameter
defining the curve.
What the parameter is depends on what type of edge it is. For a
Line the parameter is simply its cartesian length. Some other
examples are shown below:
Type Parameter
-----------------------------------------------------------
Circle Angle swept by circle (or arc) in radians
BezierCurve Unitless number in the range 0.0 to 1.0
Helix Angle swept by helical turns in radians
- Curve: Final[object]
doc:
Returns the 3D curve of the edge
- Closed: Final[bool]
doc:
Returns true if the edge is closed
- Degenerated: Final[bool]
doc:
Returns true if the edge is degenerated
- Mass: Final[object]
doc:
Returns the mass of the current system.
- CenterOfMass: Final[object]
doc:
Returns the center of mass of the current system.
If the gravitational field is uniform, it is the center of gravity.
The coordinates returned for the center of mass are expressed in the
absolute Cartesian coordinate system.
- MatrixOfInertia: Final[object]
doc:
Returns the matrix of inertia. It is a symmetrical matrix.
The coefficients of the matrix are the quadratic moments of
inertia.
| Ixx Ixy Ixz 0 |
| Ixy Iyy Iyz 0 |
| Ixz Iyz Izz 0 |
| 0 0 0 1 |
The moments of inertia are denoted by Ixx, Iyy, Izz.
The products of inertia are denoted by Ixy, Ixz, Iyz.
The matrix of inertia is returned in the central coordinate
system (G, Gx, Gy, Gz) where G is the centre of mass of the
system and Gx, Gy, Gz the directions parallel to the X(1,0,0)
Y(0,1,0) Z(0,0,1) directions of the absolute cartesian
coordinate system.
- StaticMoments: Final[object]
doc:
Returns Ix, Iy, Iz, the static moments of inertia of the
current system; i.e. the moments of inertia about the
three axes of the Cartesian coordinate system.
- PrincipalProperties: Final[Dict]
doc:
Computes the principal properties of inertia of the current system.
There is always a set of axes for which the products
of inertia of a geometric system are equal to 0; i.e. the
matrix of inertia of the system is diagonal. These axes
are the principal axes of inertia. Their origin is
coincident with the center of mass of the system. The
associated moments are called the principal moments of inertia.
This function computes the eigen values and the
eigen vectors of the matrix of inertia of the system.
- Continuity: Final[str]
doc:
Returns the continuity
methods:
@overload
- def __init__(self) -> None
@overload
- def __init__(self, curve: Geometry, first: float=..., last: float=..., /) -> None
@overload
- def __init__(self, shape: TopoShape, /) -> None
@overload
- def __init__(self, start: Vertex, end: Vertex, /) -> None
@constmethod
- def getParameterByLength(self, pos: float, tolerance: float=1e-07, /) -> float
doc:
Get the value of the primary parameter at the given distance along the cartesian length of the edge.
getParameterByLength(pos, [tolerance = 1e-7]) -> Float
--
Args:
pos (float or int): The distance along the length of the edge at which to
determine the primary parameter value. See help for the FirstParameter or
LastParameter properties for more information on the primary parameter.
If the given value is positive, the distance from edge start is used.
If the given value is negative, the distance from edge end is used.
tol (float): Computing tolerance. Optional, defaults to 1e-7.
Returns:
paramval (float): the value of the primary parameter defining the edge at the
given position along its cartesian length.
@constmethod
- def tangentAt(self, paramval: float, /) -> Vector
doc:
Get the tangent direction at the given primary parameter value along the Edge if it is defined
tangentAt(paramval) -> Vector
--
Args:
paramval (float or int): The parameter value along the Edge at which to
determine the tangent direction e.g:
x = Part.makeCircle(1, FreeCAD-compatible runtime.Vector(0,0,0), FreeCAD-compatible runtime.Vector(0,0,1), 0, 90)
y = x.tangentAt(x.FirstParameter + 0.5 * (x.LastParameter - x.FirstParameter))
y is the Vector (-0.7071067811865475, 0.7071067811865476, 0.0)
Values with magnitude greater than the Edge length return
values of the tangent on the curve extrapolated beyond its
length. This may not be valid for all Edges. Negative values
similarly return a tangent on the curve extrapolated backwards
(before the start point of the Edge). For example, using the
same shape as above:
>>> x.tangentAt(x.FirstParameter + 3.5*(x.LastParameter - x.FirstParameter))
Vector (0.7071067811865477, 0.7071067811865474, 0.0)
Which gives the same result as
>>> x.tangentAt(x.FirstParameter -0.5*(x.LastParameter - x.FirstParameter))
Vector (0.7071067811865475, 0.7071067811865476, 0.0)
Since it is a circle
Returns:
Vector: representing the tangent to the Edge at the given
location along its length (or extrapolated length)
@constmethod
- def valueAt(self, paramval: float, /) -> Vector
doc:
Get the value of the cartesian parameter value at the given parameter value along the Edge
valueAt(paramval) -> Vector
--
Args:
paramval (float or int): The parameter value along the Edge at which to
determine the value in terms of the main parameter defining
the edge, what the parameter value is depends on the type of
edge. See e.g:
For a circle value
x = Part.makeCircle(1, FreeCAD-compatible runtime.Vector(0,0,0), FreeCAD-compatible runtime.Vector(0,0,1), 0, 90)
y = x.valueAt(x.FirstParameter + 0.5 * (x.LastParameter - x.FirstParameter))
y is theVector (0.7071067811865476, 0.7071067811865475, 0.0)
Values with magnitude greater than the Edge length return
values on the curve extrapolated beyond its length. This may
not be valid for all Edges. Negative values similarly return
a parameter value on the curve extrapolated backwards (before the
start point of the Edge). For example, using the same shape
as above:
>>> x.valueAt(x.FirstParameter + 3.5*(x.LastParameter - x.FirstParameter))
Vector (0.7071067811865474, -0.7071067811865477, 0.0)
Which gives the same result as
>>> x.valueAt(x.FirstParameter -0.5*(x.LastParameter - x.FirstParameter))
Vector (0.7071067811865476, -0.7071067811865475, 0.0)
Since it is a circle
Returns:
Vector: representing the cartesian location on the Edge at the given
distance along its length (or extrapolated length)
@constmethod
- def parameters(self, face: object=..., /) -> List[float]
doc:
Get the list of parameters of the tessellation of an edge.
parameters([face]) -> list
--
If the edge is part of a face then this face is required as argument.
An exception is raised if the edge has no polygon.
@constmethod
- def parameterAt(self, vertex: object, /) -> float
doc:
Get the parameter at the given vertex if lying on the edge
parameterAt(Vertex) -> Float
@constmethod
- def normalAt(self, paramval: float, /) -> Vector
doc:
Get the normal direction at the given parameter value along the Edge if it is defined
normalAt(paramval) -> Vector
--
Args:
paramval (float or int): The parameter value along the Edge at which to
determine the normal direction e.g:
x = Part.makeCircle(1, FreeCAD-compatible runtime.Vector(0,0,0), FreeCAD-compatible runtime.Vector(0,0,1), 0, 90)
y = x.normalAt(x.FirstParameter + 0.5 * (x.LastParameter - x.FirstParameter))
y is the Vector (-0.7071067811865476, -0.7071067811865475, 0.0)
Values with magnitude greater than the Edge length return
values of the normal on the curve extrapolated beyond its
length. This may not be valid for all Edges. Negative values
similarly return a normal on the curve extrapolated backwards
(before the start point of the Edge). For example, using the
same shape as above:
>>> x.normalAt(x.FirstParameter + 3.5*(x.LastParameter - x.FirstParameter))
Vector (-0.7071067811865474, 0.7071067811865477, 0.0)
Which gives the same result as
>>> x.normalAt(x.FirstParameter -0.5*(x.LastParameter - x.FirstParameter))
Vector (-0.7071067811865476, 0.7071067811865475, 0.0)
Since it is a circle
Returns:
Vector: representing the normal to the Edge at the given
location along its length (or extrapolated length)
@constmethod
- def derivative1At(self, paramval: float, /) -> Vector
doc:
Get the first derivative at the given parameter value along the Edge if it is defined
derivative1At(paramval) -> Vector
--
Args:
paramval (float or int): The parameter value along the Edge at which to
determine the first derivative e.g:
x = Part.makeCircle(1, FreeCAD-compatible runtime.Vector(0,0,0), FreeCAD-compatible runtime.Vector(0,0,1), 0, 90)
y = x.derivative1At(x.FirstParameter + 0.5 * (x.LastParameter - x.FirstParameter))
y is the Vector (-0.7071067811865475, 0.7071067811865476, 0.0)
Values with magnitude greater than the Edge length return
values of the first derivative on the curve extrapolated
beyond its length. This may not be valid for all Edges.
Negative values similarly return a first derivative on the
curve extrapolated backwards (before the start point of the
Edge). For example, using the same shape as above:
>>> x.derivative1At(x.FirstParameter + 3.5*(x.LastParameter - x.FirstParameter))
Vector (0.7071067811865477, 0.7071067811865474, 0.0)
Which gives the same result as
>>> x.derivative1At(x.FirstParameter -0.5*(x.LastParameter - x.FirstParameter))
Vector (0.7071067811865475, 0.7071067811865476, 0.0)
Since it is a circle
Returns:
Vector: representing the first derivative to the Edge at the
given location along its length (or extrapolated length)
@constmethod
- def derivative2At(self, paramval: float, /) -> Vector
doc:
Get the second derivative at the given parameter value along the Edge if it is defined
derivative2At(paramval) -> Vector
--
Args:
paramval (float or int): The parameter value along the Edge at which to
determine the second derivative e.g:
x = Part.makeCircle(1, FreeCAD-compatible runtime.Vector(0,0,0), FreeCAD-compatible runtime.Vector(0,0,1), 0, 90)
y = x.derivative2At(x.FirstParameter + 0.5 * (x.LastParameter - x.FirstParameter))
y is the Vector (-0.7071067811865476, -0.7071067811865475, 0.0)
Values with magnitude greater than the Edge length return
values of the second derivative on the curve extrapolated
beyond its length. This may not be valid for all Edges.
Negative values similarly return a second derivative on the
curve extrapolated backwards (before the start point of the
Edge). For example, using the same shape as above:
>>> x.derivative2At(x.FirstParameter + 3.5*(x.LastParameter - x.FirstParameter))
Vector (-0.7071067811865474, 0.7071067811865477, 0.0)
Which gives the same result as
>>> x.derivative2At(x.FirstParameter -0.5*(x.LastParameter - x.FirstParameter))
Vector (-0.7071067811865476, 0.7071067811865475, 0.0)
Since it is a circle
Returns:
Vector: representing the second derivative to the Edge at the
given location along its length (or extrapolated length)
@constmethod
- def derivative3At(self, paramval: float, /) -> Vector
doc:
Get the third derivative at the given parameter value along the Edge if it is defined
derivative3At(paramval) -> Vector
--
Args:
paramval (float or int): The parameter value along the Edge at which to
determine the third derivative e.g:
x = Part.makeCircle(1, FreeCAD-compatible runtime.Vector(0,0,0), FreeCAD-compatible runtime.Vector(0,0,1), 0, 90)
y = x.derivative3At(x.FirstParameter + 0.5 * (x.LastParameter - x.FirstParameter))
y is the Vector (0.7071067811865475, -0.7071067811865476, -0.0)
Values with magnitude greater than the Edge length return
values of the third derivative on the curve extrapolated
beyond its length. This may not be valid for all Edges.
Negative values similarly return a third derivative on the
curve extrapolated backwards (before the start point of the
Edge). For example, using the same shape as above:
>>> x.derivative3At(x.FirstParameter + 3.5*(x.LastParameter - x.FirstParameter))
Vector (-0.7071067811865477, -0.7071067811865474, 0.0)
Which gives the same result as
>>> x.derivative3At(x.FirstParameter -0.5*(x.LastParameter - x.FirstParameter))
Vector (-0.7071067811865475, -0.7071067811865476, 0.0)
Since it is a circle
Returns:
Vector: representing the third derivative to the Edge at the
given location along its length (or extrapolated length)
@constmethod
- def curvatureAt(self, paramval: float, /) -> float
doc:
Get the curvature at the given parameter [First|Last] if defined
curvatureAt(paramval) -> Float
@constmethod
- def centerOfCurvatureAt(self, paramval: float, /) -> Vector
doc:
Get the center of curvature at the given parameter [First|Last] if defined
centerOfCurvatureAt(paramval) -> Vector
@constmethod
- def firstVertex(self, Orientation: bool=False, /) -> Vertex
doc:
Returns the Vertex of orientation FORWARD in this edge.
firstVertex([Orientation=False]) -> Vertex
--
If there is none a Null shape is returned.
Orientation = True : taking into account the edge orientation
@constmethod
- def lastVertex(self, Orientation: bool=False, /) -> Vertex
doc:
Returns the Vertex of orientation REVERSED in this edge.
lastVertex([Orientation=False]) -> Vertex
--
If there is none a Null shape is returned.
Orientation = True : taking into account the edge orientation
@constmethod
@overload
- def discretize(self, Number: int, First: float=..., Last: float=...) -> List[Vector]
@constmethod
@overload
- def discretize(self, QuasiNumber: int, First: float=..., Last: float=...) -> List[Vector]
@constmethod
@overload
- def discretize(self, Distance: float, First: float=..., Last: float=...) -> List[Vector]
@constmethod
@overload
- def discretize(self, Deflection: float, First: float=..., Last: float=...) -> List[Vector]
@constmethod
@overload
- def discretize(self, QuasiDeflection: float, First: float=..., Last: float=...) -> List[Vector]
@constmethod
@overload
- def discretize(self, Angular: float, Curvature: float, Minimum: int=..., First: float=..., Last: float=...) -> List[Vector]
@constmethod
- def discretize(self, **kwargs) -> List[Vector]
doc:
Discretizes the edge and returns a list of points.
discretize(kwargs) -> list
--
The function accepts keywords as argument:
discretize(Number=n) => gives a list of 'n' equidistant points
discretize(QuasiNumber=n) => gives a list of 'n' quasi equidistant points (is faster than the method above)
discretize(Distance=d) => gives a list of equidistant points with distance 'd'
discretize(Deflection=d) => gives a list of points with a maximum deflection 'd' to the edge
discretize(QuasiDeflection=d) => gives a list of points with a maximum deflection 'd' to the edge (faster)
discretize(Angular=a,Curvature=c,[Minimum=m]) => gives a list of points with an angular deflection of 'a'
and a curvature deflection of 'c'. Optionally a minimum number of points
can be set which by default is set to 2.
Optionally you can set the keywords 'First' and 'Last' to define a sub-range of the parameter range
of the edge.
If no keyword is given then it depends on whether the argument is an int or float.
If it's an int then the behaviour is as if using the keyword 'Number', if it's float
then the behaviour is as if using the keyword 'Distance'.
Example:
import Part
e=Part.makeCircle(5)
p=e.discretize(Number=50,First=3.14)
s=Part.Compound([Part.Vertex(i) for i in p])
Part.show(s)
p=e.discretize(Angular=0.09,Curvature=0.01,Last=3.14,Minimum=100)
s=Part.Compound([Part.Vertex(i) for i in p])
Part.show(s)
@constmethod
- def countNodes(self) -> int
doc:
Returns the number of nodes of the 3D polygon of the edge.
@constmethod
- def split(self, paramval: float, /) -> Wire
doc:
Splits the edge at the given parameter values and builds a wire out of it
split(paramval) -> Wire
--
Args:
paramval (float or list_of_floats): The parameter values along the Edge at which to
split it e.g:
edge = Part.makeCircle(1, FreeCAD-compatible runtime.Vector(0,0,0), FreeCAD-compatible runtime.Vector(0,0,1), 0, 90)
wire = edge.split([0.5, 1.0])
Returns:
Wire: wire made up of two Edges
@constmethod
- def isSeam(self, Face: object, /) -> bool
doc:
Checks whether the edge is a seam edge.
isSeam(Face)
@constmethod
- def curveOnSurface(self, idx: int, /) -> Tuple[object, object, object, float, float]
doc:
Returns the 2D curve, the surface, the placement and the parameter range of index idx.
curveOnSurface(idx) -> None or tuple
--
Returns None if index idx is out of range.
Returns a 5-items tuple of a curve, a surface, a placement, first parameter and last parameter.
MODULE Mod/Part/App/TopoShapeFace.pyi
classes:
class TopoShapeFace(TopoShape)
doc:
TopoShapeFace is the OpenCasCade topological face wrapper
attributes:
- Tolerance: float
doc:
Set or get the tolerance of the vertex
- ParameterRange: Final[Tuple]
doc:
Returns a 4 tuple with the parameter range
- Surface: Final[object]
doc:
Returns the geometric surface of the face
- Wire: Final[object]
doc:
The outer wire of this face
deprecated -- use OuterWire
- OuterWire: Final[object]
doc:
The outer wire of this face
- Mass: Final[object]
doc:
Returns the mass of the current system.
- CenterOfMass: Final[object]
doc:
Returns the center of mass of the current system.
If the gravitational field is uniform, it is the center of gravity.
The coordinates returned for the center of mass are expressed in the
absolute Cartesian coordinate system.
- MatrixOfInertia: Final[object]
doc:
Returns the matrix of inertia. It is a symmetrical matrix.
The coefficients of the matrix are the quadratic moments of
inertia.
| Ixx Ixy Ixz 0 |
| Ixy Iyy Iyz 0 |
| Ixz Iyz Izz 0 |
| 0 0 0 1 |
The moments of inertia are denoted by Ixx, Iyy, Izz.
The products of inertia are denoted by Ixy, Ixz, Iyz.
The matrix of inertia is returned in the central coordinate
system (G, Gx, Gy, Gz) where G is the centre of mass of the
system and Gx, Gy, Gz the directions parallel to the X(1,0,0)
Y(0,1,0) Z(0,0,1) directions of the absolute cartesian
coordinate system.
- StaticMoments: Final[object]
doc:
Returns Ix, Iy, Iz, the static moments of inertia of the
current system; i.e. the moments of inertia about the
three axes of the Cartesian coordinate system.
- PrincipalProperties: Final[Dict]
doc:
Computes the principal properties of inertia of the current system.
There is always a set of axes for which the products
of inertia of a geometric system are equal to 0; i.e. the
matrix of inertia of the system is diagonal. These axes
are the principal axes of inertia. Their origin is
coincident with the center of mass of the system. The
associated moments are called the principal moments of inertia.
This function computes the eigen values and the
eigen vectors of the matrix of inertia of the system.
methods:
@overload
- def __init__(self) -> None
@overload
- def __init__(self, shape: TopoShape, /) -> None
@overload
- def __init__(self, face: TopoShape, wire: TopoShape, /) -> None
@overload
- def __init__(self, wires: Sequence[TopoShape], /) -> None
- def addWire(self, wire: object, /) -> None
doc:
Adds a wire to the face.
addWire(wire)
@constmethod
- def makeOffset(self, dist: float, /) -> object
doc:
Offset the face by a given amount.
makeOffset(dist) -> Face
--
Returns Compound of Wires. Deprecated - use makeOffset2D instead.
@constmethod
- def makeEvolved(self, Profile: TopoShape, Join: int, *, AxeProf: bool, Solid: bool, ProfOnSpine: bool, Tolerance: float) -> TopoShape
doc:
Profile along the spine
@constmethod
- def getUVNodes(self) -> List[Tuple[float, float]]
doc:
Get the list of (u,v) nodes of the tessellation
getUVNodes() -> list
--
An exception is raised if the face is not triangulated.
@constmethod
- def tangentAt(self, u: float, v: float, /) -> Vector
doc:
Get the tangent in u and v isoparametric at the given point if defined
tangentAt(u,v) -> Vector
@constmethod
- def valueAt(self, u: float, v: float, /) -> Vector
doc:
Get the point at the given parameter [0|Length] if defined
valueAt(u,v) -> Vector
@constmethod
- def normalAt(self, pos: float, /) -> Vector
doc:
Get the normal vector at the given parameter [0|Length] if defined
normalAt(pos) -> Vector
@constmethod
- def derivative1At(self, u: float, v: float, /) -> Tuple[Vector, Vector]
doc:
Get the first derivative at the given parameter [0|Length] if defined
derivative1At(u,v) -> (vectorU,vectorV)
@constmethod
- def derivative2At(self, u: float, v: float, /) -> Tuple[Vector, Vector]
doc:
Vector = d2At(pos) - Get the second derivative at the given parameter [0|Length] if defined
derivative2At(u,v) -> (vectorU,vectorV)
@constmethod
- def curvatureAt(self, u: float, v: float, /) -> float
doc:
Get the curvature at the given parameter [0|Length] if defined
curvatureAt(u,v) -> Float
@constmethod
- def isPartOfDomain(self, u: float, v: float, /) -> bool
doc:
Check if a given (u,v) pair is inside the domain of a face
isPartOfDomain(u,v) -> bool
@constmethod
- def makeHalfSpace(self, pos: object, /) -> object
doc:
Make a half-space solid by this face and a reference point.
makeHalfSpace(pos) -> Shape
- def validate(self) -> None
doc:
Validate the face.
validate()
@constmethod
- def countNodes(self) -> int
doc:
Returns the number of nodes of the triangulation.
@constmethod
- def countTriangles(self) -> int
doc:
Returns the number of triangles of the triangulation.
@constmethod
- def curveOnSurface(self, Edge: object, /) -> Optional[Tuple[object, float, float]]
doc:
Returns the curve associated to the edge in the parametric space of the face.
curveOnSurface(Edge) -> (curve, min, max) or None
--
If this curve exists then a tuple of curve and parameter range is returned.
Returns None if this curve does not exist.
- def cutHoles(self, list_of_wires: List[object], /) -> None
doc:
Cut holes in the face.
cutHoles(list_of_wires)
MODULE Mod/Part/App/TopoShapeShell.pyi
classes:
class TopoShapeShell(TopoShape)
doc:
Create a shell out of a list of faces
attributes:
- Mass: Final[object]
doc:
Returns the mass of the current system.
- CenterOfMass: Final[object]
doc:
Returns the center of mass of the current system.
If the gravitational field is uniform, it is the center of gravity.
The coordinates returned for the center of mass are expressed in the
absolute Cartesian coordinate system.
- MatrixOfInertia: Final[object]
doc:
Returns the matrix of inertia. It is a symmetrical matrix.
The coefficients of the matrix are the quadratic moments of
inertia.
| Ixx Ixy Ixz 0 |
| Ixy Iyy Iyz 0 |
| Ixz Iyz Izz 0 |
| 0 0 0 1 |
The moments of inertia are denoted by Ixx, Iyy, Izz.
The products of inertia are denoted by Ixy, Ixz, Iyz.
The matrix of inertia is returned in the central coordinate
system (G, Gx, Gy, Gz) where G is the centre of mass of the
system and Gx, Gy, Gz the directions parallel to the X(1,0,0)
Y(0,1,0) Z(0,0,1) directions of the absolute cartesian
coordinate system.
- StaticMoments: Final[object]
doc:
Returns Ix, Iy, Iz, the static moments of inertia of the
current system; i.e. the moments of inertia about the
three axes of the Cartesian coordinate system.
- PrincipalProperties: Final[Dict]
doc:
Computes the principal properties of inertia of the current system.
There is always a set of axes for which the products
of inertia of a geometric system are equal to 0; i.e. the
matrix of inertia of the system is diagonal. These axes
are the principal axes of inertia. Their origin is
coincident with the center of mass of the system. The
associated moments are called the principal moments of inertia.
This function computes the eigen values and the
eigen vectors of the matrix of inertia of the system.
methods:
- def add(self, face: object, /) -> None
doc:
Add a face to the shell.
add(face)
@constmethod
- def getFreeEdges(self) -> object
doc:
Get free edges as compound.
getFreeEdges() -> compound
@constmethod
- def getBadEdges(self) -> object
doc:
Get bad edges as compound.
getBadEdges() -> compound
@constmethod
- def makeHalfSpace(self, point: object, /) -> object
doc:
Make a half-space solid by this shell and a reference point.
makeHalfSpace(point) -> Solid
MODULE Mod/Part/App/TopoShapeSolid.pyi
classes:
class TopoShapeSolid(TopoShape)
doc:
Part.Solid(shape): Create a solid out of shells of shape. If shape is a compsolid, the overall volume solid is created.
attributes:
- Mass: Final[float]
doc:
Returns the mass of the current system.
- CenterOfMass: Final[Vector]
doc:
Returns the center of mass of the current system.
If the gravitational field is uniform, it is the center of gravity.
The coordinates returned for the center of mass are expressed in the
absolute Cartesian coordinate system.
- MatrixOfInertia: Final[Matrix]
doc:
Returns the matrix of inertia. It is a symmetrical matrix.
The coefficients of the matrix are the quadratic moments of
inertia.
| Ixx Ixy Ixz 0 |
| Ixy Iyy Iyz 0 |
| Ixz Iyz Izz 0 |
| 0 0 0 1 |
The moments of inertia are denoted by Ixx, Iyy, Izz.
The products of inertia are denoted by Ixy, Ixz, Iyz.
The matrix of inertia is returned in the central coordinate
system (G, Gx, Gy, Gz) where G is the centre of mass of the
system and Gx, Gy, Gz the directions parallel to the X(1,0,0)
Y(0,1,0) Z(0,0,1) directions of the absolute cartesian
coordinate system.
- StaticMoments: Final[object]
doc:
Returns Ix, Iy, Iz, the static moments of inertia of the
current system; i.e. the moments of inertia about the
three axes of the Cartesian coordinate system.
- PrincipalProperties: Final[Dict[str, float]]
doc:
Computes the principal properties of inertia of the current system.
There is always a set of axes for which the products
of inertia of a geometric system are equal to 0; i.e. the
matrix of inertia of the system is diagonal. These axes
are the principal axes of inertia. Their origin is
coincident with the center of mass of the system. The
associated moments are called the principal moments of inertia.
This function computes the eigen values and the
eigen vectors of the matrix of inertia of the system.
- OuterShell: Final[TopoShape]
doc:
Returns the outer most shell of this solid or an null
shape if the solid has no shells
methods:
@constmethod
- def getMomentOfInertia(self, point: Vector, direction: Vector, /) -> float
doc:
computes the moment of inertia of the material system about the axis A.
getMomentOfInertia(point,direction) -> Float
@constmethod
- def getRadiusOfGyration(self, point: Vector, direction: Vector, /) -> float
doc:
Returns the radius of gyration of the current system about the axis A.
getRadiusOfGyration(point,direction) -> Float
@overload
@constmethod
- def offsetFaces(self, facesTuple: Tuple[TopoShape, ...], offset: float, /) -> TopoShape
@overload
@constmethod
- def offsetFaces(self, facesDict: Dict[TopoShape, float], /) -> TopoShape
@constmethod
- def offsetFaces(self, *args, **kwargs) -> TopoShape
doc:
Extrude single faces of the solid.
offsetFaces(facesTuple, offset) -> Solid
or
offsetFaces(dict) -> Solid
--
Example:
solid.offsetFaces((solid.Faces[0],solid.Faces[1]), 1.5)
solid.offsetFaces({solid.Faces[0]:1.0,solid.Faces[1]:2.0})
MODULE Mod/Part/App/TopoShapeVertex.pyi
classes:
class TopoShapeVertex(TopoShape)
doc:
TopoShapeVertex is the OpenCasCade topological vertex wrapper
attributes:
- X: Final[float]
doc:
X component of this Vertex.
- Y: Final[float]
doc:
Y component of this Vertex.
- Z: Final[float]
doc:
Z component of this Vertex.
- Point: Final[Vector]
doc:
Position of this Vertex as a Vector
- Tolerance: float
doc:
Set or get the tolerance of the vertex
methods:
@overload
- def __init__(self, x: float=..., y: float=..., z: float=..., /) -> None
@overload
- def __init__(self, coordinates: Vector, /) -> None
@overload
- def __init__(self, coordinates: tuple[float, float, float], /) -> None
@overload
- def __init__(self, point: Point, /) -> None
@overload
- def __init__(self, shape: TopoShape, /) -> None
MODULE Mod/Part/App/TopoShapeWire.pyi
classes:
class TopoShapeWire(TopoShape)
doc:
TopoShapeWire is the OpenCasCade topological wire wrapper
DeveloperDocu: TopoShapeWire is the OpenCasCade topological wire wrapper
attributes:
- Mass: Final[object]
doc:
Returns the mass of the current system.
- CenterOfMass: Final[object]
doc:
Returns the center of mass of the current system.
If the gravitational field is uniform, it is the center of gravity.
The coordinates returned for the center of mass are expressed in the
absolute Cartesian coordinate system.
- MatrixOfInertia: Final[object]
doc:
Returns the matrix of inertia. It is a symmetrical matrix.
The coefficients of the matrix are the quadratic moments of
inertia.
| Ixx Ixy Ixz 0 |
| Ixy Iyy Iyz 0 |
| Ixz Iyz Izz 0 |
| 0 0 0 1 |
The moments of inertia are denoted by Ixx, Iyy, Izz.
The products of inertia are denoted by Ixy, Ixz, Iyz.
The matrix of inertia is returned in the central coordinate
system (G, Gx, Gy, Gz) where G is the centre of mass of the
system and Gx, Gy, Gz the directions parallel to the X(1,0,0)
Y(0,1,0) Z(0,0,1) directions of the absolute cartesian
coordinate system.
- StaticMoments: Final[object]
doc:
Returns Ix, Iy, Iz, the static moments of inertia of the
current system; i.e. the moments of inertia about the
three axes of the Cartesian coordinate system.
- PrincipalProperties: Final[Dict]
doc:
Computes the principal properties of inertia of the current system.
There is always a set of axes for which the products
of inertia of a geometric system are equal to 0; i.e. the
matrix of inertia of the system is diagonal. These axes
are the principal axes of inertia. Their origin is
coincident with the center of mass of the system. The
associated moments are called the principal moments of inertia.
This function computes the eigen values and the
eigen vectors of the matrix of inertia of the system.
- OrderedEdges: Final[List]
doc:
List of ordered edges in this shape.
- Continuity: Final[str]
doc:
Returns the continuity
- OrderedVertexes: Final[List]
doc:
List of ordered vertexes in this shape.
methods:
@overload
- def __init__(self) -> None
@overload
- def __init__(self, shape: TopoShape, /) -> None
@overload
- def __init__(self, shapes: Sequence[TopoShape], /) -> None
@constmethod
- def makeOffset(self) -> object
doc:
Offset the shape by a given amount. DEPRECATED - use makeOffset2D instead.
- def add(self, edge: object, /) -> None
doc:
Add an edge to the wire
add(edge)
- def fixWire(self, face: Optional[object]=None, tolerance: Optional[float]=None, /) -> None
doc:
Fix wire
fixWire([face, tolerance])
--
A face and a tolerance can optionally be supplied to the algorithm:
@constmethod
- def makeHomogenousWires(self, wire: object, /) -> object
doc:
Make this and the given wire homogeneous to have the same number of edges
makeHomogenousWires(wire) -> Wire
@constmethod
- def makePipe(self, profile: object, /) -> object
doc:
Make a pipe by sweeping along a wire.
makePipe(profile) -> Shape
@constmethod
- def makePipeShell(self, shapeList: List[object], isSolid: bool=False, isFrenet: bool=False, transition: int=0, /) -> object
doc:
Make a loft defined by a list of profiles along a wire.
makePipeShell(shapeList,[isSolid=False,isFrenet=False,transition=0]) -> Shape
--
Transition can be 0 (default), 1 (right corners) or 2 (rounded corners).
@constmethod
- def makeEvolved(self, Profile: TopoShape, Join: int, *, AxeProf: bool, Solid: bool, ProfOnSpine: bool, Tolerance: float) -> TopoShape
doc:
Profile along the spine
@constmethod
- def approximate(self, Tol2d: float=None, Tol3d: float=0.0001, MaxSegments: int=10, MaxDegree: int=3) -> object
doc:
Approximate B-Spline-curve from this wire
approximate([Tol2d,Tol3d=1e-4,MaxSegments=10,MaxDegree=3]) -> BSpline
@overload
@constmethod
- def discretize(self, Number: int) -> List[object]
doc:
discretize(Number=n) -> list
@overload
@constmethod
- def discretize(self, QuasiNumber: int) -> List[object]
doc:
discretize(QuasiNumber=n) -> list
@overload
@constmethod
- def discretize(self, Distance: float) -> List[object]
doc:
discretize(Distance=d) -> list
@overload
@constmethod
- def discretize(self, Deflection: float) -> List[object]
doc:
discretize(Deflection=d) -> list
@overload
@constmethod
- def discretize(self, QuasiDeflection: float) -> List[object]
doc:
discretize(QuasiDeflection=d) -> list
@overload
@constmethod
- def discretize(self, Angular: float, Curvature: float, Minimum: int=2) -> List[object]
doc:
discretize(Angular=a,Curvature=c,[Minimum=m]) -> list
@constmethod
- def discretize(self, **kwargs) -> List[object]
doc:
Discretizes the wire and returns a list of points.
discretize(kwargs) -> list
--
The function accepts keywords as argument:
discretize(Number=n) => gives a list of 'n' equidistant points
discretize(QuasiNumber=n) => gives a list of 'n' quasi equidistant points (is faster than the method above)
discretize(Distance=d) => gives a list of equidistant points with distance 'd'
discretize(Deflection=d) => gives a list of points with a maximum deflection 'd' to the wire
discretize(QuasiDeflection=d) => gives a list of points with a maximum deflection 'd' to the wire (faster)
discretize(Angular=a,Curvature=c,[Minimum=m]) => gives a list of points with an angular deflection of 'a'
and a curvature deflection of 'c'. Optionally a minimum number of points
can be set which by default is set to 2.
Optionally you can set the keywords 'First' and 'Last' to define a sub-range of the parameter range
of the wire.
If no keyword is given then it depends on whether the argument is an int or float.
If it's an int then the behaviour is as if using the keyword 'Number', if it's float
then the behaviour is as if using the keyword 'Distance'.
Example:
import Part
V=App.Vector
e1=Part.makeCircle(5,V(0,0,0),V(0,0,1),0,180)
e2=Part.makeCircle(5,V(10,0,0),V(0,0,1),180,360)
w=Part.Wire([e1,e2])
p=w.discretize(Number=50)
s=Part.Compound([Part.Vertex(i) for i in p])
Part.show(s)
p=w.discretize(Angular=0.09,Curvature=0.01,Minimum=100)
s=Part.Compound([Part.Vertex(i) for i in p])
Part.show(s)
MODULE Mod/Part/App/Toroid.pyi
classes:
class Toroid(GeometrySurface)
doc:
Describes a toroid in 3D space
attributes:
- MajorRadius: float
doc:
The major radius of the toroid.
- MinorRadius: float
doc:
The minor radius of the toroid.
- Center: Vector
doc:
Center of the toroid.
- Axis: Vector
doc:
The axis direction of the toroid
- Area: Final[float]
doc:
Compute the area of the toroid.
- Volume: Final[float]
doc:
Compute the volume of the toroid.
MODULE Mod/Part/App/TrimmedCurve.pyi
classes:
class TrimmedCurve(BoundedCurve)
doc:
The abstract class TrimmedCurve is the root class of all trimmed curve objects.
methods:
- def setParameterRange(self, first: float, last: float, /) -> None
doc:
Re-trims this curve to the provided parameter range ([Float=First, Float=Last])
MODULE Mod/Part/Gui/ViewProviderPartExt.pyi
classes:
class ViewProviderPartExt(ViewProviderGeometryObject)
doc:
This is the ViewProvider geometry class
MODULE Mod/PartDesign/App/Body.pyi
classes:
class Body(BodyBase)
doc:
PartDesign body class
attributes:
- VisibleFeature: Final[object]
doc:
Return the visible feature of this body
methods:
- def insertObject(self, feature: object, target: object, after: bool=False, /) -> None
doc:
Insert the feature into the body after the given feature.
@param feature The feature to insert into the body
@param target The feature relative which one should be inserted the given.
If target is NULL than insert into the end if where is InsertBefore
and into the begin if where is InsertAfter.
@param after if true insert the feature after the target. Default is false.
@note the method doesn't modify the Tip unlike addObject()
MODULE Mod/PartDesign/App/Feature.pyi
classes:
class Feature(PartFeature)
doc:
This is the father of all PartDesign object classes
methods:
@overload
- def getBaseObject(self) -> Optional[object]
doc:
getBaseObject: returns feature this one fuses itself to, or None. Normally, this should be the same as BaseFeature property, except for legacy workflow. In legacy workflow, it will look up the support of referenced sketch.
- def getBaseObject(self) -> Optional[object]
doc:
getBaseObject: returns feature this one fuses itself to, or None. Normally, this should be the same as BaseFeature property, except for legacy workflow. In legacy workflow, it will look up the support of referenced sketch.
MODULE Mod/PartDesign/Gui/ViewProvider.pyi
classes:
class ViewProvider(ViewProviderPartExt)
doc:
This is the father of all PartDesign ViewProvider classes
methods:
- def setBodyMode(self, mode: bool, /) -> None
doc:
body mode means that the object is part of a body
and that the body is used to set the visual properties, not the features. Hence
setting body mode to true will hide most viewprovider properties.
- def makeTemporaryVisible(self, visible: bool, /) -> None
doc:
makes this viewprovider visible in the
scene graph without changing any properties, not the visibility one and also not
the display mode. This can be used to show the shape of this viewprovider from
other viewproviders without doing anything to the document and properties.
MODULE Mod/Points/App/Points.pyi
classes:
class Points(object)
doc:
Points() -- Create an empty points object.
This class allows one to manipulate the Points object by adding new points, deleting facets, importing from an STL file,
transforming and much more.
attributes:
- CountPoints: Final[int]
doc:
Return the number of vertices of the points object.
- Points: Final[list]
doc:
A collection of points
With this attribute it is possible to get access to the points of the object
for p in pnt.Points:
print p
methods:
@constmethod
- def copy(self) -> Any
doc:
Create a copy of this points object
- def read(self) -> Any
doc:
Read in a points object from file.
@constmethod
- def write(self) -> Any
doc:
Write the points object into file.
@constmethod
- def writeInventor(self) -> Any
doc:
Write the points in OpenInventor format to a string.
- def addPoints(self) -> Any
doc:
add one or more (list of) points to the object
@constmethod
- def fromSegment(self) -> Any
doc:
Get a new point object from a given segment
@constmethod
- def fromValid(self) -> Any
doc:
Get a new point object from points with valid coordinates (i.e. that are not NaN)
MODULE Mod/Sketcher/App/Constraint.pyi
classes:
class Constraint(Persistence)
doc:
With this object you can handle sketches
attributes:
- Type: Final[str]
doc:
Get the constraint type
- First: int
doc:
First geometry index the Constraint refers to
- FirstPos: int
doc:
Position of first geometry index the Constraint refers to
- Second: int
doc:
Second geometry index the Constraint refers to
- SecondPos: int
doc:
Position of second geometry index the Constraint refers to
- Third: int
doc:
Third geometry index the Constraint refers to
- ThirdPos: int
doc:
Position of third geometry index the Constraint refers to
- Value: Final[float]
doc:
Value of the Constraint
- Name: str
doc:
Name of the constraint
- Driving: Final[bool]
doc:
Driving Constraint
- InVirtualSpace: Final[bool]
doc:
Constraint in virtual space
- IsActive: Final[bool]
doc:
Returns whether the constraint active (enforced) or not
- LabelDistance: Final[float]
doc:
Label distance
- LabelPosition: Final[float]
doc:
Label position
MODULE Mod/Sketcher/App/ExternalGeometryExtension.pyi
classes:
class ExternalGeometryExtension(GeometryExtension)
doc:
Describes a ExternalGeometryExtension
attributes:
- Ref: str
doc:
Returns the reference string of this external geometry.
methods:
@constmethod
- def testFlag(self) -> bool
doc:
Returns a boolean indicating whether the given bit is set.
- def setFlag(self) -> None
doc:
Sets the given bit to true/false.
MODULE Mod/Sketcher/App/ExternalGeometryFacade.pyi
classes:
class ExternalGeometryFacade(BaseClass)
doc:
Describes a GeometryFacade
attributes:
- Ref: str
doc:
Returns the reference string of this external geometry.
- Id: int
doc:
Sets/returns the Internal Alignment Type of the Geometry.
- Construction: bool
doc:
Sets/returns this geometry as a construction one, which will not be part of a later built shape.
- GeometryLayerId: int
doc:
Returns the Id of the geometry Layer in which the geometry is located.
- InternalType: str
doc:
Sets/returns the Internal Alignment Type of the Geometry.
- Blocked: bool
doc:
Sets/returns whether the geometry is blocked or not.
- Tag: Final[str]
doc:
Gives the tag of the geometry as string.
- Geometry: object
doc:
Returns the underlying geometry object.
methods:
@constmethod
- def testFlag(self) -> bool
doc:
Returns a boolean indicating whether the given bit is set.
- def setFlag(self) -> None
doc:
Sets the given bit to true/false.
- def mirror(self) -> None
doc:
Performs the symmetrical transformation of this geometric object
- def rotate(self) -> None
doc:
Rotates this geometric object at angle Ang (in radians) about axis
- def scale(self) -> None
doc:
Applies a scaling transformation on this geometric object with a center and scaling factor
- def transform(self) -> None
doc:
Applies a transformation to this geometric object
- def translate(self) -> None
doc:
Translates this geometric object
@constmethod
- def hasExtensionOfType(self) -> bool
doc:
Returns a boolean indicating whether a geometry extension of the type indicated as a string exists.
@constmethod
- def hasExtensionOfName(self) -> bool
doc:
Returns a boolean indicating whether a geometry extension with the name indicated as a string exists.
@constmethod
- def getExtensionOfType(self) -> object
doc:
Gets the first geometry extension of the type indicated by the string.
@constmethod
- def getExtensionOfName(self) -> object
doc:
Gets the first geometry extension of the name indicated by the string.
- def setExtension(self) -> None
doc:
Sets a geometry extension of the indicated type.
- def deleteExtensionOfType(self) -> None
doc:
Deletes all extensions of the indicated type.
- def deleteExtensionOfName(self) -> None
doc:
Deletes all extensions of the indicated name.
@constmethod
- def getExtensions(self) -> List[object]
doc:
Returns a list with information about the geometry extensions.
MODULE Mod/Sketcher/App/GeometryFacade.pyi
classes:
class GeometryFacade(BaseClass)
doc:
Describes a GeometryFacade
attributes:
- Id: int
doc:
Sets/returns the Id of the SketchGeometryExtension.
- InternalType: str
doc:
Sets/returns the Internal Alignment Type of the Geometry.
- Blocked: bool
doc:
Sets/returns whether the geometry is blocked or not.
- Construction: bool
doc:
Sets/returns this geometry as a construction one, which will not be part of a later built shape.
- GeometryLayerId: int
doc:
Returns the Id of the geometry Layer in which the geometry is located.
- Tag: Final[str]
doc:
Gives the tag of the geometry as string.
- Geometry: object
doc:
Returns the underlying geometry object.
methods:
@constmethod
- def testGeometryMode(self) -> bool
doc:
Returns a boolean indicating whether the given bit is set.
- def setGeometryMode(self) -> None
doc:
Sets the given bit to true/false.
- def mirror(self) -> None
doc:
Performs the symmetrical transformation of this geometric object
- def rotate(self, Ang: float, axis: Axis, /) -> None
doc:
Rotates this geometric object at angle Ang (in radians) about axis
- def scale(self, center: CoordinateSystem, factor: float, /) -> None
doc:
Applies a scaling transformation on this geometric object with a center and scaling factor
- def transform(self, transformation: Placement, /) -> None
doc:
Applies a transformation to this geometric object
- def translate(self, offset: Vector, /) -> None
doc:
Translates this geometric object
@constmethod
- def hasExtensionOfType(self, type_str: str, /) -> bool
doc:
Returns a boolean indicating whether a geometry extension of the type indicated as a string exists.
@constmethod
- def hasExtensionOfName(self, name: str, /) -> bool
doc:
Returns a boolean indicating whether a geometry extension with the name indicated as a string exists.
@constmethod
- def getExtensionOfType(self, type_str: str, /) -> DocumentObjectExtension
doc:
Gets the first geometry extension of the type indicated by the string.
@constmethod
- def getExtensionOfName(self, name: str, /) -> DocumentObjectExtension
doc:
Gets the first geometry extension of the name indicated by the string.
- def setExtension(self, extension: DocumentObjectExtension, /) -> None
doc:
Sets a geometry extension of the indicated type.
- def deleteExtensionOfType(self, type_str: str, /) -> None
doc:
Deletes all extensions of the indicated type.
- def deleteExtensionOfName(self, name: str, /) -> None
doc:
Deletes all extensions of the indicated name.
@constmethod
- def getExtensions(self) -> List[DocumentObjectExtension]
doc:
Returns a list with information about the geometry extensions.
MODULE Mod/Sketcher/App/Sketch.pyi
classes:
class Sketch(Persistence)
doc:
With this objects you can handle constraint sketches
attributes:
- Constraint: Final[int]
doc:
0: exactly constraint, -1 under-constraint, 1 over-constraint
- Conflicts: Final[Tuple]
doc:
Tuple of conflicting constraints
- Redundancies: Final[Tuple]
doc:
Tuple of redundant constraints
- Geometries: Final[Tuple]
doc:
Tuple of all geometric elements in this sketch
- Shape: Final[object]
doc:
Resulting shape from the sketch geometry
methods:
- def solve(self) -> None
doc:
Solve the actual set of geometry and constraints
- def addGeometry(self) -> None
doc:
Add a geometric object to the sketch
- def addConstraint(self) -> None
doc:
Add an constraint object to the sketch
- def clear(self) -> None
doc:
Clear the sketch
- def moveGeometry(self, GeoIndex: int, PointPos: Vector, Vector: Vector, relative: bool=False, /) -> None
doc:
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.
MODULE Mod/Sketcher/App/SketchGeometryExtension.pyi
classes:
class SketchGeometryExtension(GeometryExtension)
doc:
Describes a SketchGeometryExtension
attributes:
- Id: int
doc:
Returns the Id of the SketchGeometryExtension.
- InternalType: str
doc:
Returns the Id of the SketchGeometryExtension.
- Blocked: bool
doc:
Sets/returns whether the geometry is blocked or not.
- Construction: bool
doc:
Sets/returns this geometry as a construction one, which will not be part of a later built shape.
- GeometryLayerId: int
doc:
Returns the Id of the geometry Layer in which the geometry is located.
methods:
@constmethod
- def testGeometryMode(self) -> bool
doc:
Returns a boolean indicating whether the given bit is set.
- def setGeometryMode(self) -> None
doc:
Sets the given bit to true/false.
MODULE Mod/Sketcher/App/SketchObject.pyi
classes:
class SketchObject(Part2DObject)
doc:
Represents a sketch object
attributes:
- MissingPointOnPointConstraints: List
doc:
Returns a list of (First FirstPos Second SecondPos Type) tuples with all the detected endpoint constraints.
- MissingVerticalHorizontalConstraints: List
doc:
Returns a list of (First FirstPos Second SecondPos Type) tuples with all the detected vertical/horizontal constraints.
- MissingLineEqualityConstraints: List
doc:
Returns a list of (First FirstPos Second SecondPos) tuples with all the detected line segment equality constraints.
- MissingRadiusConstraints: List
doc:
Returns a list of (First FirstPos Second SecondPos) tuples with all the detected radius constraints.
- OpenVertices: Final[List]
doc:
Returns a list of vertices positions.
- ConstraintCount: Final[int]
doc:
Number of Constraints in this sketch
- GeometryCount: Final[int]
doc:
Number of geometric objects in this sketch
- AxisCount: Final[int]
doc:
Return the number of construction lines in the sketch which can be used as axes
- GeometryFacadeList: List
doc:
Return a list of GeometryFacade objects corresponding to the PropertyGeometryList
- DoF: Final[int]
doc:
Return the DoFs of the current solved sketch
- ConflictingConstraints: Final[List]
doc:
Return a list of integers indicating the constraints detected as conflicting
- RedundantConstraints: Final[List]
doc:
Return a list of integers indicating the constraints detected as redundant
- PartiallyRedundantConstraints: Final[List]
doc:
Return a list of integers indicating the constraints detected as partially redundant
- MalformedConstraints: Final[List]
doc:
Return a list of integers indicating the constraints detected as malformed
methods:
- def solve(self) -> int
doc:
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, ...]]
doc:
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
doc:
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
doc:
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
doc:
Delete all the geometry objects from the sketch, except external geometry.
deleteAllGeometry()
- def detectDegeneratedGeometries(self, tolerance: float, /) -> int
doc:
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
doc:
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
doc:
Delete all the constraints from the sketch.
deleteAllConstraints()
- def toggleConstruction(self, geoId: int, /) -> None
doc:
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
doc:
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
doc:
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, ...]]
doc:
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
doc:
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
doc:
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
doc:
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
doc:
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
doc:
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
doc:
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
doc:
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
doc:
Delete an external geometry link from the sketch.
delExternal(extGeoId:int)
Args:
extGeoId: The zero-based index of the external geometry to remove.
- def delExternals(self, extGeoIds: List[int], /) -> None
doc:
Delete a list of external geometry links from the sketch.
delExternals(extGeoIds:List(int))
Args:
extGeoIds: A list of zero-based indices 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
doc:
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
doc:
Deletes all constraints referencing an external geometry.
- def setDatum(self, constraint: Union[int, str], value: Union[float, Quantity], /) -> None
doc:
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.
- def setTextAndFont(self, constraint: int, text: str, font: str, isheight: bool, isConstruction: bool) -> None
doc:
Set the text and font of a Text constraint.
setTextAndFont(constraint: int, text: str, font: str, isHeight: bool, isConstruction: bool)
Args:
constraint: The index of the Text constraint.
text: The text string to display.
font: The full path to the font file (.ttf, .otf, etc.).
isHeight: Is the line handle of the group the height of the text.
isConstruction: Are text geometry construction of not.
@constmethod
- def getDatum(self, constraint: Union[int, str], /) -> Quantity
doc:
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
doc:
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
doc:
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
doc:
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
doc:
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
doc:
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
doc:
Set the VirtualSpace status of a constraint
- def setVisibility(self) -> None
doc:
Set the visibility of a constraint
- def getVirtualSpace(self) -> bool
doc:
Get the VirtualSpace status of a constraint
- def toggleVirtualSpace(self) -> None
doc:
Toggle the VirtualSpace status of a constraint
- def setActive(self, constraintIndex: int, state: bool, /) -> None
doc:
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
doc:
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
doc:
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
doc:
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
doc:
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
doc:
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
doc:
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
doc:
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
doc:
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
doc:
Retrieve the vector of a point in the sketch.
getPoint(GeoIndex,PointPos)
@constmethod
- def getGeoVertexIndex(self, index: int, /) -> Tuple[int, int]
doc:
Retrieve the GeoId and PosId of a point in the sketch.
(geoId, posId) = getGeoVertexIndex(index)
@constmethod
- def getAxis(self) -> Axis
doc:
Return an axis based on the corresponding construction line
- def fillet(self) -> None
doc:
Create a fillet between two edges or at a point
- def trim(self) -> None
doc:
Trim a curve with a given id at a given reference point
- def extend(self) -> None
doc:
Extend a curve to new start and end positions
- def split(self) -> None
doc:
Split a curve with a given id at a given reference point
- def join(self) -> None
doc:
Join two curves at the given end points
- def addSymmetric(self) -> None
doc:
Add symmetric geometric objects to the sketch with respect to a reference point or line
- def addCopy(self) -> None
doc:
Add a copy of geometric objects to the sketch displaced by a vector3d
- def addMove(self) -> None
doc:
Move the geometric objects in the sketch displaced by a vector3d
- def addRectangularArray(self) -> None
doc:
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
doc:
Modifies constraints so that the shape is not forced to be aligned with axes.
- def ExposeInternalGeometry(self) -> None
doc:
Deprecated -- use exposeInternalGeometry
- def DeleteUnusedInternalGeometry(self) -> None
doc:
Deprecated -- use deleteUnusedInternalGeometry
- def exposeInternalGeometry(self) -> None
doc:
Exposes all internal geometry of an object supporting internal geometry
- def deleteUnusedInternalGeometry(self) -> None
doc:
Deletes all unused (not further constrained) internal geometry
- def convertToNURBS(self) -> None
doc:
Approximates the given geometry with a B-spline
- def increaseBSplineDegree(self) -> None
doc:
Increases the given B-spline Degree by a number of degrees
- def decreaseBSplineDegree(self) -> None
doc:
Decreases the given B-spline Degree by a number of degrees by approximating this curve
- def modifyBSplineKnotMultiplicity(self) -> None
doc:
Increases or reduces the given BSpline knot multiplicity
- def insertBSplineKnot(self) -> None
doc:
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
doc:
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
doc:
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
doc:
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
doc:
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]]
doc:
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
doc:
Automatic sketch constraining algorithm.
- def detectMissingPointOnPointConstraints(self) -> None
doc:
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
doc:
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
doc:
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
doc:
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
doc:
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
doc:
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
doc:
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
doc:
Check for constraints with invalid indexes. Returns True if invalid constraints are found, False otherwise.
@no_args
- def validateConstraints(self) -> None
doc:
Removes constraints with invalid indexes.
- def autoRemoveRedundants(self, arg: bool, /) -> None
doc:
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
doc:
Prints the commands that should be executed to recreate the Geometry and Constraints of the present sketch (excluding any External Geometry).
- def setGeometryId()
doc:
Sets the GeometryId of the SketchGeometryExtension of the geometry with the provided GeoId
- def setGeometryIds(GeoIdsToIds: List[Tuple[int, int]], /)
doc:
Sets the GeometryId of the SketchGeometryExtension of the geometries with the provided GeoIds
Expects a list of pairs (GeoId, id)
- def getGeometryId()
doc:
Gets the GeometryId of the SketchGeometryExtension of the geometry with the provided GeoId
MODULE Mod/Sketcher/App/SketchObjectSF.pyi
classes:
class SketchObjectSF(Part2DObject)
doc:
With this objects you can handle sketches
MODULE Mod/Sketcher/Gui/ViewProviderSketchGeometryExtension.pyi
classes:
class ViewProviderSketchGeometryExtension(GeometryExtension)
doc:
Describes a ViewProviderSketchGeometryExtension
attributes:
- VisualLayerId: int
doc:
Sets/returns this geometry's Visual Layer Id.
MODULE Mod/Spreadsheet/App/PropertyColumnWidths.pyi
classes:
class PropertyColumnWidths(Persistence)
doc:
Internal spreadsheet object
MODULE Mod/Spreadsheet/App/PropertyRowHeights.pyi
classes:
class PropertyRowHeights(Persistence)
doc:
Internal spreadsheet object
MODULE Mod/Spreadsheet/App/PropertySheet.pyi
classes:
class PropertySheet(Persistence)
doc:
Internal spreadsheet object
methods:
@constmethod
- def keys(self) -> Any
doc:
Get all cell names
MODULE Mod/Spreadsheet/App/Sheet.pyi
classes:
class Sheet(DocumentObject)
doc:
With this object you can manipulate spreadsheets
methods:
- def set(self) -> Any
doc:
Set data into a cell
- def get(self) -> Any
doc:
Get evaluated cell contents
- def getContents(self) -> Any
doc:
Get cell contents
- def clear(self) -> Any
doc:
Clear a cell
- def clearAll(self) -> Any
doc:
Clear all cells in the spreadsheet
- def importFile(self) -> Any
doc:
Import file into spreadsheet
- def exportFile(self) -> Any
doc:
Export file from spreadsheet
- def mergeCells(self) -> Any
doc:
Merge given cell area into one cell
- def splitCell(self) -> Any
doc:
Split a previously merged cell
- def insertColumns(self) -> Any
doc:
Insert a given number of columns into the spreadsheet.
- def removeColumns(self) -> Any
doc:
Remove a given number of columns from the spreadsheet.
- def insertRows(self) -> Any
doc:
Insert a given number of rows into the spreadsheet.
- def removeRows(self) -> Any
doc:
Remove a given number of rows from the spreadsheet.
- def setAlignment(self) -> Any
doc:
Set alignment of the cell
- def getAlignment(self) -> Any
doc:
Get alignment of the cell
- def setStyle(self) -> Any
doc:
Set style of the cell
- def getStyle(self) -> Any
doc:
Get style of the cell
- def setDisplayUnit(self) -> Any
doc:
Set display unit for cell
- def setAlias(self) -> Any
doc:
Set alias for cell address
- def getAlias(self) -> Any
doc:
Get alias for cell address
- def getCellFromAlias(self) -> Any
doc:
Get cell address given an alias
- def getDisplayUnit(self) -> Any
doc:
Get display unit for cell
- def setForeground(self) -> Any
doc:
Set foreground color of the cell
- def clearForeground(self) -> Any
doc:
Clears foreground color of the cell
- def getForeground(self) -> Any
doc:
Get foreground color of the cell
- def setBackground(self) -> Any
doc:
Set background color of the cell
- def clearBackground(self) -> Any
doc:
Clears background color of the cell
- def getBackground(self) -> Any
doc:
Get background color of the cell
- def setColumnWidth(self) -> Any
doc:
Set given spreadsheet column to given width
- def getColumnWidth(self) -> Any
doc:
Get given spreadsheet column width
- def setRowHeight(self) -> Any
doc:
Set given spreadsheet row to given height
- def getRowHeight(self) -> Any
doc:
Get given spreadsheet row height
- def touchCells(self, address: str, address_to: str | None=None, /) -> None
doc:
touch cells in the given range
- def recomputeCells(self, address: str, address_to: str | None=None, /) -> Any
doc:
Manually recompute cells in the given range with the given order without
following dependency order.
- def getUsedCells(self) -> list[str]
doc:
Get a list of the names of all cells that are marked as used. These cells may
or may not have a non-empty string content.
- def getNonEmptyCells(self) -> list[str]
doc:
Get a list of the names of all cells with data in them.
- def getUsedRange(self) -> tuple[str, str]
doc:
Get a the total range of the used cells in a sheet, as a pair of strings
representing the lowest row and column that are used, and the highest row and
column that are used (inclusive). Note that the actual first and last cell
of the block are not necessarily used.
- def getNonEmptyRange(self) -> tuple[str, str]
doc:
Get a the total range of the used cells in a sheet, as a pair of cell addresses
representing the lowest row and column that contain data, and the highest row and
column that contain data (inclusive). Note that the actual first and last cell
of the block do not necessarily contain anything.
MODULE Mod/Spreadsheet/Gui/ViewProviderSpreadsheet.pyi
classes:
class ViewProviderSpreadsheet(ViewProviderDocumentObject)
doc:
ViewProviderSheet class
methods:
- def getView(self) -> Any
doc:
Get access to the sheet view
- def showSheetMdi(self) -> None
doc:
Create (if necessary) and switch to the Spreadsheet MDI.
- def exportAsFile(self) -> None
doc:
Export the sheet as a file.
MODULE Mod/Surface/App/Blending/BlendCurve.pyi
classes:
class BlendCurve(PyObjectBase)
doc:
Create a BlendCurve that interpolate 2 BlendPoints.
curve = BlendCurve(BlendPoint1, BlendPoint2)
methods:
- def compute(self) -> Any
doc:
Return the BezierCurve that interpolate the input BlendPoints.
- def setSize(self) -> Any
doc:
Set the tangent size of the blendpoint at given index.
If relative is true, the size is considered relative to the distance between the two blendpoints.
myBlendCurve.setSize(idx, size, relative)
MODULE Mod/Surface/App/Blending/BlendPoint.pyi
classes:
class BlendPoint(PyObjectBase)
doc:
Create BlendPoint from a point and some derivatives.
myBlendPoint = BlendPoint([Point, D1, D2, ..., DN])
BlendPoint can also be constructed from an edge
myBlendPoint = BlendPoint(Edge, parameter = float, continuity = int)
attributes:
- Vectors: Final[list]
doc:
The list of vectors of this BlendPoint.
methods:
@constmethod
- def getSize(self) -> Any
doc:
Return BlendPoint first derivative length.
- def setSize(self) -> Any
doc:
Resizes the BlendPoint vectors,
by setting the length of the first derivative.
theBlendPoint.setSize(new_size)
- def setvectors(self) -> Any
doc:
Set the vectors of BlendPoint.
BlendPoint.setvectors([Point, D1, D2, ..., DN])
MODULE Mod/TechDraw/App/CenterLine.pyi
classes:
class CenterLine(PyObjectBase)
doc:
CenterLine specifies additional mark up edges in a View
attributes:
- Tag: Final[str]
doc:
Gives the tag of the CenterLine as string.
- Type: Final[int]
doc:
0 - face, 1 - 2 line, 2 - 2 point.
- Mode: int
doc:
0 - vert/ 1 - horiz/ 2 - aligned.
- Format: dict[str, Any]
doc:
The appearance attributes (style, color, weight, visible) for this CenterLine.
- HorizShift: float
doc:
The left/right offset for this CenterLine.
- VertShift: float
doc:
The up/down offset for this CenterLine.
- Rotation: float
doc:
The rotation of the Centerline in degrees.
- Extension: float
doc:
The additional length to be added to this CenterLine.
- Flip: bool
doc:
Reverse the order of points for 2 point CenterLine.
- Edges: list[Any]
doc:
The names of source edges for this CenterLine.
- Faces: list[Any]
doc:
The names of source Faces for this CenterLine.
- Points: list[Any]
doc:
The names of source Points for this CenterLine.
methods:
@constmethod
- def clone(self) -> Any
doc:
Create a clone of this centerline
@constmethod
- def copy(self) -> Any
doc:
Create a copy of this centerline
MODULE Mod/TechDraw/App/CosmeticEdge.pyi
attributes:
- PyCXXVector: TypeAlias
classes:
class CosmeticEdge(PyObjectBase)
doc:
CosmeticEdge specifies an extra (cosmetic) edge in Views
attributes:
- Tag: Final[str]
doc:
Gives the tag of the CosmeticEdge as string.
- Start: PyCXXVector
doc:
Gives the position of one end of this CosmeticEdge as vector.
- End: PyCXXVector
doc:
Gives the position of one end of this CosmeticEdge as vector.
- Center: PyCXXVector
doc:
Gives the position of center point of this CosmeticEdge as vector.
- Radius: float
doc:
Gives the radius of CosmeticEdge in mm.
- Format: dict
doc:
The appearance attributes (style, weight, color, visible) for this CosmeticEdge.
MODULE Mod/TechDraw/App/CosmeticExtension.pyi
classes:
class CosmeticExtension(DocumentObjectExtension)
doc:
This object represents cosmetic features for a DrawViewPart.
MODULE Mod/TechDraw/App/CosmeticVertex.pyi
classes:
class CosmeticVertex(PyObjectBase)
doc:
CosmeticVertex specifies an extra (cosmetic) vertex in Views
attributes:
- Tag: Final[str]
doc:
Gives the tag of the CosmeticVertex as string.
- Point: Any
doc:
Gives the position of this CosmeticVertex as vector.
- Show: bool
doc:
Show/hide the vertex.
- Color: Any
doc:
set/return the vertex's colour using a tuple (rgba).
- Size: Any
doc:
set/return the vertex's radius in mm.
- Style: Any
doc:
set/return the vertex's style as integer.
methods:
@constmethod
- def clone(self) -> Any
doc:
Create a clone of this CosmeticVertex
@constmethod
- def copy(self) -> Any
doc:
Create a copy of this CosmeticVertex
MODULE Mod/TechDraw/App/DrawBrokenView.pyi
classes:
class DrawBrokenView(DrawViewPart)
doc:
Feature for creating and manipulating Technical Drawing broken views
methods:
- def mapPoint3dToView(self) -> Any
doc:
point2d = mapPoint3dToView(point3d) - returns the position of the 3d point within the broken view.
- def mapPoint2dFromView(self) -> Any
doc:
point2d = mapPoint2dFromView(point3d) - returns the position of the 2d point within an unbroken view.
- def getCompressedCenter(self) -> Any
doc:
point3d = getCompressedCenter() - returns the geometric center of the source shapes after break cuts and gap compression.
MODULE Mod/TechDraw/App/DrawGeomHatch.pyi
classes:
class DrawGeomHatch(DocumentObject)
doc:
Feature for creating and manipulating Technical Drawing GeomHatch areas
methods:
- def translateLabel(self) -> Any
doc:
translateLabel(translationContext, objectBaseName, objectUniqueName).
No return value. Replace the current label with a translated version where possible.
MODULE Mod/TechDraw/App/DrawHatch.pyi
classes:
class DrawHatch(DocumentObject)
doc:
Feature for creating and manipulating Technical Drawing Hatch areas
methods:
- def translateLabel(self) -> Any
doc:
translateLabel(translationContext, objectBaseName, objectUniqueName).
No return value. Replace the current label with a translated version where possible.
MODULE Mod/TechDraw/App/DrawLeaderLine.pyi
classes:
class DrawLeaderLine(DrawView)
doc:
Feature for adding leaders to Technical Drawings
MODULE Mod/TechDraw/App/DrawPage.pyi
classes:
class DrawPage(DocumentObject)
doc:
Feature for creating and manipulating Technical Drawing Pages
attributes:
- PageWidth: Final[float]
doc:
Returns the width of this page
- PageHeight: Final[float]
doc:
Returns the height of this page
- PageOrientation: Final[str]
doc:
Returns the orientation of this page
methods:
- def addView(self) -> Any
doc:
addView(DrawView) - Add a View to this Page
- def removeView(self) -> Any
doc:
removeView(DrawView) - Remove a View to this Page
- def getViews(self) -> Any
doc:
getViews() - returns a list of all the views on page excluding Views inside Collections
- def getAllViews(self) -> Any
doc:
getAllViews() - returns a list of all the views on page including Views inside Collections
- def translateLabel(self) -> Any
doc:
translateLabel(translationContext, objectBaseName, objectUniqueName).
No return value. Replace the current label with a translated version where possible.
- def requestPaint(self) -> Any
doc:
Ask the Gui to redraw this page
MODULE Mod/TechDraw/App/DrawParametricTemplate.pyi
classes:
class DrawParametricTemplate(DrawTemplate)
doc:
Feature for creating and manipulating Technical Drawing Templates
attributes:
- GeometryCount: Final[int]
doc:
Number of geometry in template
methods:
- def drawLine(self) -> Any
doc:
Draw a line
MODULE Mod/TechDraw/App/DrawProjGroup.pyi
classes:
class DrawProjGroup(DrawViewCollection)
doc:
Feature for creating and manipulating Technical Drawing Projection Groups
methods:
- def addProjection(self) -> Any
doc:
addProjection(string projectionType) - Add a new Projection Item to this Group. Returns DocObj.
- def removeProjection(self) -> Any
doc:
removeProjection(string projectionType) - Remove specified Projection Item from this Group. Returns int number of views in Group.
- def purgeProjections(self) -> Any
doc:
purgeProjections() - Remove all Projection Items from this Group. Returns int number of views in Group (0).
- def getItemByLabel(self) -> Any
doc:
getItemByLabel(string projectionType) - return specified Projection Item
- def getXYPosition(self) -> Any
doc:
getXYPosition(string projectionType) - return the AutoDistribute position for specified Projection Item
MODULE Mod/TechDraw/App/DrawProjGroupItem.pyi
classes:
class DrawProjGroupItem(DrawViewPart)
doc:
Feature for creating and manipulating component Views Technical Drawing Projection Groups
methods:
- def autoPosition(self) -> Any
doc:
autoPosition() - Move to AutoDistribute/Unlocked position on Page. Returns none.
MODULE Mod/TechDraw/App/DrawRichAnno.pyi
classes:
class DrawRichAnno(DrawView)
doc:
Feature for adding rich annotation blocks to Technical Drawings
MODULE Mod/TechDraw/App/DrawSVGTemplate.pyi
classes:
class DrawSVGTemplate(DrawTemplate)
doc:
Feature for creating and manipulating Technical Drawing SVG Templates
methods:
- def getEditFieldContent(self) -> Any
doc:
getEditFieldContent(EditFieldName) - returns the content of a specific Editable Text Field
- def setEditFieldContent(self) -> Any
doc:
setEditFieldContent(EditFieldName, NewContent) - sets a specific Editable Text Field to a new value
- def translateLabel(self) -> Any
doc:
translateLabel(translationContext, objectBaseName, objectUniqueName).
No return value. Replace the current label with a translated version where possible.
MODULE Mod/TechDraw/App/DrawTemplate.pyi
classes:
class DrawTemplate(DocumentObject)
doc:
Feature for creating and manipulating Technical Drawing Templates
MODULE Mod/TechDraw/App/DrawTile.pyi
classes:
class DrawTile(DocumentObject)
doc:
Feature for adding tiles to leader lines
MODULE Mod/TechDraw/App/DrawTileWeld.pyi
classes:
class DrawTileWeld(DrawTile)
doc:
Feature for adding welding tiles to leader lines
MODULE Mod/TechDraw/App/DrawView.pyi
classes:
class DrawView(DocumentObject)
doc:
Feature for creating and manipulating Technical Drawing Views
methods:
- def translateLabel(self) -> Any
doc:
translateLabel(translationContext, objectBaseName, objectUniqueName).
No return value. Replace the current label with a translated version where possible.
@constmethod
- def getScale(self) -> Any
doc:
float scale = getScale(). Returns the correct scale for this view. Handles whether to
use this view's scale property or a parent's view (as in a projection group).
@constmethod
- def findParentPage(self) -> Any
doc:
DrawPage parent = findParentPage(). Returns the parent page that contains this view.
MODULE Mod/TechDraw/App/DrawViewAnnotation.pyi
classes:
class DrawViewAnnotation(DrawView)
doc:
Feature for creating and manipulating Technical Drawing Annotation Views
MODULE Mod/TechDraw/App/DrawViewClip.pyi
classes:
class DrawViewClip(DrawView)
doc:
Feature for creating and manipulating Technical Drawing Clip Views
methods:
- def addView(self) -> Any
doc:
addView(DrawView) - Add a View to this ClipView
- def removeView(self) -> Any
doc:
removeView(DrawView) - Remove specified View to this ClipView
- def getChildViewNames(self) -> Any
doc:
getChildViewNames() - get a list of the DrawViews in this ClipView
MODULE Mod/TechDraw/App/DrawViewCollection.pyi
classes:
class DrawViewCollection(DrawView)
doc:
Feature for creating and manipulating Technical Drawing View Collections
methods:
- def addView(self) -> Any
doc:
addView(DrawView object) - Add a new View to this Group. Returns count of views.
- def removeView(self) -> Any
doc:
removeView(DrawView object) - Remove specified Viewfrom this Group. Returns count of views in Group.
MODULE Mod/TechDraw/App/DrawViewDimExtent.pyi
classes:
class DrawViewDimExtent(DrawViewDimension)
doc:
Feature for creating and manipulating Technical Drawing DimExtents
methods:
- def tbd(self) -> Any
doc:
tbd() - returns tbd.
MODULE Mod/TechDraw/App/DrawViewDimension.pyi
classes:
class DrawViewDimension(DrawView)
doc:
Feature for creating and manipulating Technical Drawing Dimensions
methods:
- def getRawValue(self) -> Any
doc:
getRawValue() - returns Dimension value in mm.
- def getText(self) -> Any
doc:
getText() - returns Dimension text.
- def getLinearPoints(self) -> Any
doc:
getLinearPoints() - returns list of points for linear Dimension
- def getArcPoints(self) -> Any
doc:
getArcPoints() - returns list of points for circle/arc Dimension
- def getAnglePoints(self) -> Any
doc:
getAnglePoints() - returns list of points for angle Dimension
- def getAreaPoints(self) -> Any
doc:
getAreaPoints() - returns list of values (center, filled area, actual area) for area Dimension.
- def getArrowPositions(self) -> Any
doc:
getArrowPositions() - returns list of locations or Dimension Arrowheads. Locations are in unscaled coordinates of parent View
MODULE Mod/TechDraw/App/DrawViewPart.pyi
classes:
class DrawViewPart(DrawView)
doc:
Feature for creating and manipulating Technical Drawing Part Views
methods:
- def getVisibleEdges(self) -> Any
doc:
getVisibleEdges([conventionalCoords]) - get the visible edges in the View as Part::TopoShapeEdges. Edges are returned
in conventional coordinates if conventionalCoords is True. The default is to return Qt inverted Y coordinates.
- def getVisibleVertexes(self) -> Any
doc:
getVisibleVertexes() - get the visible vertexes as App.Vector in the View's coordinate system. App.Vectors are returned
in conventional coordinates if conventionalCoords is True. The default is to return Qt inverted Y coordinates.
- def getHiddenEdges(self) -> Any
doc:
getHiddenEdges([conventionalCoords]) - get the hidden edges in the View as Part::TopoShapeEdges. Edges are returned
in conventional coordinates if conventionalCoords is True. The default is to return Qt inverted Y coordinates.
- def getHiddenVertexes(self) -> Any
doc:
getHiddenVertexes() - get the hidden vertexes as App.Vector in the View's coordinate system. App.Vectors are returned
in conventional coordinates if conventionalCoords is True. The default is to return Qt inverted Y coordinates.
- def makeCosmeticVertex(self) -> Any
doc:
id = makeCosmeticVertex(p1) - add a CosmeticVertex at p1 (View coordinates). Returns unique id vertex.
- def makeCosmeticVertex3d(self) -> Any
doc:
id = makeCosmeticVertex3d(p1) - add a CosmeticVertex at p1 (3d model coordinates). Returns unique id vertex.
- def getCosmeticVertex(self) -> Any
doc:
cv = getCosmeticVertex(id) - returns CosmeticVertex with unique id.
- def getCosmeticVertexBySelection(self) -> Any
doc:
cv = getCosmeticVertexBySelection(name) - returns CosmeticVertex with name (Vertex6). Used in selections.
- def removeCosmeticVertex(self) -> Any
doc:
removeCosmeticVertex(cv) - remove CosmeticVertex from View. Returns None.
- def clearCosmeticVertices(self) -> Any
doc:
clearCosmeticVertices() - remove all CosmeticVertices from the View. Returns None.
- def makeCosmeticLine(self) -> Any
doc:
tag = makeCosmeticLine(p1, p2) - add a CosmeticEdge from p1 to p2(View coordinates). Returns tag of new CosmeticEdge.
- def makeCosmeticLine3D(self) -> Any
doc:
tag = makeCosmeticLine3D(p1, p2) - add a CosmeticEdge from p1 to p2(3D coordinates). Returns tag of new CosmeticEdge.
- def makeCosmeticCircle(self) -> Any
doc:
tag = makeCosmeticCircle(center, radius) - add a CosmeticEdge at center with radius radius(View coordinates). Returns tag of new CosmeticEdge.
- def makeCosmeticCircleArc(self) -> Any
doc:
tag = makeCosmeticCircleArc(center, radius, start, end) - add a CosmeticEdge at center with radius radius(View coordinates) from start angle to end angle. Returns tag of new CosmeticEdge.
- def makeCosmeticCircle3d(self) -> Any
doc:
tag = makeCosmeticCircle3d(center, radius) - add a CosmeticEdge at center (3d point) with radius. Returns tag of new CosmeticEdge.
- def makeCosmeticCircleArc3d(self) -> Any
doc:
tag = makeCosmeticCircleArc3d(center, radius, start, end) - add a CosmeticEdge at center (3d point) with radius from start angle to end angle. Returns tag of new CosmeticEdge.
- def getCosmeticEdge(self) -> Any
doc:
ce = getCosmeticEdge(id) - returns CosmeticEdge with unique id.
- def getCosmeticEdgeBySelection(self) -> Any
doc:
ce = getCosmeticEdgeBySelection(name) - returns CosmeticEdge by name (Edge25). Used in selections
- def removeCosmeticEdge(self) -> Any
doc:
removeCosmeticEdge(ce) - remove CosmeticEdge ce from View. Returns None.
- def makeCenterLine(self) -> Any
doc:
makeCenterLine(subNames, mode) - draw a center line on this viewPart. SubNames is a list of n Faces, 2 Edges or 2 Vertices (ex [Face1,Face2,Face3]. Returns unique tag of added CenterLine.
- def getCenterLine(self) -> Any
doc:
cl = getCenterLine(id) - returns CenterLine with unique id.
- def getCenterLineBySelection(self) -> Any
doc:
cl = getCenterLineBySelection(name) - returns CenterLine by name (Edge25). Used in selections
- def removeCenterLine(self) -> Any
doc:
removeCenterLine(cl) - remove CenterLine cl from View. Returns None.
- def clearCosmeticEdges(self) -> Any
doc:
clearCosmeticEdges() - remove all CosmeticLines from the View. Returns None.
- def clearCenterLines(self) -> Any
doc:
clearCenterLines() - remove all CenterLines from the View. Returns None.
- def clearGeomFormats(self) -> Any
doc:
clearGeomFormats() - remove all GeomFormats from the View. Returns None.
- def formatGeometricEdge(self) -> Any
doc:
formatGeometricEdge(index, style, weight, color, visible). Returns None.
- def getEdgeByIndex(self) -> Any
doc:
getEdgeByIndex(edgeIndex). Returns Part.TopoShape.
- def getEdgeBySelection(self) -> Any
doc:
getEdgeBySelection(edgeName). Returns Part.TopoShape.
- def getVertexByIndex(self) -> Any
doc:
getVertexByIndex(vertexIndex). Returns Part.TopoShape.
- def getVertexBySelection(self) -> Any
doc:
getVertexBySelection(vertexName). Returns Part.TopoShape.
- def projectPoint(self) -> Any
doc:
projectPoint(vector3d point, [bool invert]). Returns the projection of point in the
projection coordinate system of this DrawViewPart. Optionally inverts the Y coordinate of the
result.
- def getGeometricCenter(self) -> Any
doc:
point3d = getGeometricCenter() - returns the geometric center of the source shapes.
- def requestPaint(self) -> Any
doc:
requestPaint(). Redraw the graphic for this View.
MODULE Mod/TechDraw/App/DrawViewSymbol.pyi
classes:
class DrawViewSymbol(DrawView)
doc:
Feature for creating and manipulating Drawing SVG Symbol Views
methods:
- def dumpSymbol(self) -> Any
doc:
dumpSymbol(fileSpec) - dump the contents of Symbol to a file
MODULE Mod/TechDraw/App/DrawWeldSymbol.pyi
classes:
class DrawWeldSymbol(DrawView)
doc:
Feature for adding welding tiles to leader lines
MODULE Mod/TechDraw/App/GeomFormat.pyi
classes:
class GeomFormat(PyObjectBase)
doc:
GeomFormat specifies appearance parameters for TechDraw Geometry objects
attributes:
- Tag: Final[str]
doc:
Gives the tag of the GeomFormat as string.
methods:
@constmethod
- def clone(self) -> Any
doc:
Create a clone of this geomformat
@constmethod
- def copy(self) -> Any
doc:
Create a copy of this geomformat