Since Py3.11 the methods names __setstate__ and __getstate__ conflict with the method names added to the object class. Thus rename them to 'loads' and 'dumps'
1003 lines
36 KiB
XML
1003 lines
36 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<GenerateModel xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="generateMetaModel_Module.xsd">
|
|
<PythonExport
|
|
Father="ComplexGeoDataPy"
|
|
Name="TopoShapePy"
|
|
Twin="TopoShape"
|
|
TwinPointer="TopoShape"
|
|
Include="Mod/Part/App/TopoShape.h"
|
|
Namespace="Part"
|
|
FatherInclude="App/ComplexGeoDataPy.h"
|
|
FatherNamespace="Data"
|
|
Constructor="true">
|
|
<Documentation>
|
|
<Author Licence="LGPL" Name="Juergen Riegel" EMail="Juergen.Riegel@web.de" />
|
|
<UserDocu>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)</UserDocu>
|
|
</Documentation>
|
|
<Methode Name="dumps" Const="true">
|
|
<Documentation>
|
|
<UserDocu>Serialize the content of this shape to a string in BREP format.</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="loads">
|
|
<Documentation>
|
|
<UserDocu>Deserialize the content of this shape from a string in BREP format.</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="read">
|
|
<Documentation>
|
|
<UserDocu>Read in an IGES, STEP or BREP file.
|
|
read(filename)
|
|
</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="writeInventor" Const="true" Keyword="true">
|
|
<Documentation>
|
|
<UserDocu>Write the mesh in OpenInventor format to a string.
|
|
writeInventor() -> string
|
|
</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="exportIges" Const="true">
|
|
<Documentation>
|
|
<UserDocu>Export the content of this shape to an IGES file.
|
|
exportIges(filename)
|
|
</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="exportStep" Const="true">
|
|
<Documentation>
|
|
<UserDocu>Export the content of this shape to an STEP file.
|
|
exportStep(filename)
|
|
</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="exportBrep" Const="true">
|
|
<Documentation>
|
|
<UserDocu>Export the content of this shape to an BREP file.
|
|
exportBrep(filename)
|
|
--
|
|
BREP is an OpenCasCade native format.
|
|
</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="exportBinary" Const="true">
|
|
<Documentation>
|
|
<UserDocu>Export the content of this shape in binary format to a file.
|
|
exportBinary(filename)
|
|
</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="exportBrepToString" Const="true">
|
|
<Documentation>
|
|
<UserDocu>Export the content of this shape to a string in BREP format.
|
|
exportBrepToString() -> string
|
|
--
|
|
BREP is an OpenCasCade native format.</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="dumpToString" Const="true">
|
|
<Documentation>
|
|
<UserDocu>Dump information about the shape to a string.
|
|
dumpToString() -> string</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="exportStl" Const="true">
|
|
<Documentation>
|
|
<UserDocu>Export the content of this shape to an STL mesh file.
|
|
exportStl(filename)</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="importBrep">
|
|
<Documentation>
|
|
<UserDocu>Load the shape from a file in BREP format.
|
|
importBrep(filename)</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="importBinary">
|
|
<Documentation>
|
|
<UserDocu>Import the content to this shape of a string in BREP format.
|
|
importBinary(filename)</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="importBrepFromString">
|
|
<Documentation>
|
|
<UserDocu>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.
|
|
</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="extrude" Const="true">
|
|
<Documentation>
|
|
<UserDocu>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.</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="revolve" Const="true">
|
|
<Documentation>
|
|
<UserDocu>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 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 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)
|
|
</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="check" Const="true">
|
|
<Documentation>
|
|
<UserDocu>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.</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="fuse" Const="true">
|
|
<Documentation>
|
|
<UserDocu>Union of this and a given (list of) topo shape.
|
|
fuse(tool) -> Shape
|
|
or
|
|
fuse((tool1,tool2,...),[tolerance=0.0]) -> 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.</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="multiFuse" Const="true">
|
|
<Documentation>
|
|
<UserDocu>Union of this and a given list of topo shapes.
|
|
multiFuse((tool1,tool2,...),[tolerance=0.0]) -> 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.
|
|
Deprecated: use fuse() instead.</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="oldFuse" Const="true">
|
|
<Documentation>
|
|
<UserDocu>Union of this and a given topo shape (old algorithm).
|
|
oldFuse(tool) -> Shape
|
|
</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="common" Const="true">
|
|
<Documentation>
|
|
<UserDocu>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.</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="section" Const="true">
|
|
<Documentation>
|
|
<UserDocu>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.</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="slices" Const="true">
|
|
<Documentation>
|
|
<UserDocu>Make slices of this shape.
|
|
slices(direction, distancesList) --> Wires
|
|
</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="slice" Const="true">
|
|
<Documentation>
|
|
<UserDocu>Make single slice of this shape.
|
|
slice(direction, distance) --> Wires</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="cut" Const="true">
|
|
<Documentation>
|
|
<UserDocu>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.</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="generalFuse" Const="true">
|
|
<Documentation>
|
|
<UserDocu>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.
|
|
</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="sewShape">
|
|
<Documentation>
|
|
<UserDocu>Sew the shape if there is a gap.
|
|
sewShape()
|
|
</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="childShapes" Const="true">
|
|
<Documentation>
|
|
<UserDocu>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.
|
|
</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="ancestorsOfType" Const="true">
|
|
<Documentation>
|
|
<UserDocu>For a sub-shape of this shape get its ancestors of a type.
|
|
ancestorsOfType(shape, shape type) -> list
|
|
</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="removeInternalWires">
|
|
<Documentation>
|
|
<UserDocu>Removes internal wires (also holes) from the shape.
|
|
removeInternalWires(minimalArea) -> bool
|
|
</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="mirror" Const="true">
|
|
<Documentation>
|
|
<UserDocu>Mirror this shape on a given plane.
|
|
mirror(base, norm) -> Shape
|
|
--
|
|
The plane is given with its base point and its normal direction.</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="transformGeometry" Const="true">
|
|
<Documentation>
|
|
<UserDocu>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.
|
|
</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="transformShape">
|
|
<Documentation>
|
|
<UserDocu>Apply transformation on a shape without changing the underlying geometry.
|
|
transformShape(Matrix,[boolean copy=False, checkScale=False]) -> None
|
|
--
|
|
If checkScale is True, it will use transformGeometry if non-uniform
|
|
scaling is detected.</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="transformed" Const="true" Keyword="true">
|
|
<Documentation>
|
|
<UserDocu>Create a new transformed shape
|
|
transformed(Matrix,copy=False,checkScale=False,op=None) -> shape
|
|
</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="translate">
|
|
<Documentation>
|
|
<UserDocu>Apply the translation to the current location of this shape.
|
|
translate(vector)
|
|
</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="translated" Const="true">
|
|
<Documentation>
|
|
<UserDocu>Create a new shape with translation
|
|
translated(vector) -> shape
|
|
</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="rotate">
|
|
<Documentation>
|
|
<UserDocu>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.
|
|
</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="rotated" Const="true">
|
|
<Documentation>
|
|
<UserDocu>Create a new shape with rotation.
|
|
rotated(base,dir,degree) -> shape
|
|
</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="scale">
|
|
<Documentation>
|
|
<UserDocu>Apply scaling with point and factor to this shape.
|
|
scale(factor,[base=App.Vector(0,0,0)])
|
|
</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="scaled" Const="true">
|
|
<Documentation>
|
|
<UserDocu>Create a new shape with scale.
|
|
scaled(factor,[base=App.Vector(0,0,0)]) -> shape
|
|
</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="makeFillet" Const="true">
|
|
<Documentation>
|
|
<UserDocu>Make fillet.
|
|
makeFillet(radius,edgeList) -> Shape
|
|
or
|
|
makeFillet(radius1,radius2,edgeList) -> Shape
|
|
</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="makeChamfer" Const="true">
|
|
<Documentation>
|
|
<UserDocu>Make chamfer.
|
|
makeChamfer(radius,edgeList) -> Shape
|
|
or
|
|
makeChamfer(radius1,radius2,edgeList) -> Shape</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="makeThickness" Const="true">
|
|
<Documentation>
|
|
<UserDocu>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.</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="makeOffsetShape" Const="true" Keyword="true">
|
|
<Documentation>
|
|
<UserDocu>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.</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="makeOffset2D" Const="true" Keyword="true">
|
|
<Documentation>
|
|
<UserDocu>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.</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="makeWires" Const="true">
|
|
<Documentation>
|
|
<UserDocu>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.
|
|
</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="reverse">
|
|
<Documentation>
|
|
<UserDocu>Reverses the orientation of this shape.
|
|
reverse()
|
|
</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="reversed" Const="true">
|
|
<Documentation>
|
|
<UserDocu>Reverses the orientation of a copy of this shape.
|
|
reversed() -> Shape
|
|
</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="complement">
|
|
<Documentation>
|
|
<UserDocu>Computes the complement of the orientation of this shape,
|
|
i.e. reverses the interior/exterior status of boundaries of this shape.
|
|
complement()
|
|
</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="nullify">
|
|
<Documentation>
|
|
<UserDocu>Destroys the reference to the underlying shape stored in this shape.
|
|
As a result, this shape becomes null.
|
|
nullify()
|
|
</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="isClosed" Const="true">
|
|
<Documentation>
|
|
<UserDocu>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-shepes are ignored in these checks)
|
|
If the shape is an edge it returns True if its vertices are the same.
|
|
</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="isPartner" Const="true">
|
|
<Documentation>
|
|
<UserDocu>Checks if both shapes share the same geometry.
|
|
Placement and orientation may differ.
|
|
isPartner(shape) -> bool
|
|
</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="isSame" Const="true">
|
|
<Documentation>
|
|
<UserDocu>Checks if both shapes share the same geometry
|
|
and placement. Orientation may differ.
|
|
isSame(shape) -> bool
|
|
</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="isEqual" Const="true">
|
|
<Documentation>
|
|
<UserDocu>Checks if both shapes are equal.
|
|
This means geometry, placement and orientation are equal.
|
|
isEqual(shape) -> bool
|
|
</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="isNull" Const="true">
|
|
<Documentation>
|
|
<UserDocu>Checks if the shape is null.
|
|
isNull() -> bool</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="isValid" Const="true">
|
|
<Documentation>
|
|
<UserDocu>Checks if the shape is valid, i.e. neither null, nor empty nor corrupted.
|
|
isValid() -> bool
|
|
</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="isCoplanar" Const="true">
|
|
<Documentation>
|
|
<UserDocu>Checks if this shape is coplanar with the given shape.
|
|
isCoplanar(shape,tol=None) -> bool
|
|
</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="isInfinite" Const="true">
|
|
<Documentation>
|
|
<UserDocu>Checks if this shape has an infinite expansion.
|
|
isInfinite() -> bool
|
|
</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="findPlane" Const="true">
|
|
<Documentation>
|
|
<UserDocu>return a plane if the shape is planar
|
|
findPlane(tol=None) -> Shape
|
|
</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="fix">
|
|
<Documentation>
|
|
<UserDocu>Tries to fix a broken shape.
|
|
fix(working precision, minimum precision, maximum precision) -> bool
|
|
--
|
|
True is returned if the operation succeeded, False otherwise.
|
|
</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="hashCode" Const="true">
|
|
<Documentation>
|
|
<UserDocu>This value is computed from the value of the underlying shape reference and the location.
|
|
hashCode() -> int
|
|
--
|
|
Orientation is not taken into account.</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="tessellate" Const="true">
|
|
<Documentation>
|
|
<UserDocu>Tessellate the shape and return a list of vertices and face indices
|
|
tessellate() -> (vertex,facets)
|
|
</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="project" Const="true">
|
|
<Documentation>
|
|
<UserDocu>Project a list of shapes on this shape
|
|
project(shapeList) -> Shape
|
|
</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="makeParallelProjection" Const="true">
|
|
<Documentation>
|
|
<UserDocu>Parallel projection of an edge or wire on this shape
|
|
makeParallelProjection(shape, dir) -> Shape
|
|
</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="makePerspectiveProjection" Const="true">
|
|
<Documentation>
|
|
<UserDocu>Perspective projection of an edge or wire on this shape
|
|
makePerspectiveProjection(shape, pnt) -> Shape
|
|
</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="reflectLines" Const="true" Keyword="true">
|
|
<Documentation>
|
|
<UserDocu>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.
|
|
</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="makeShapeFromMesh">
|
|
<Documentation>
|
|
<UserDocu>Make a compound shape out of mesh data.
|
|
makeShapeFromMesh((vertex,facets),tolerance) -> Shape
|
|
--
|
|
Note: This should be used for rather small meshes only.</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="toNurbs" Const="true">
|
|
<Documentation>
|
|
<UserDocu>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.</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="copy" Const="true">
|
|
<Documentation>
|
|
<UserDocu>Create a copy of this shape
|
|
copy(copyGeom=True, copyMesh=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.
|
|
</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="cleaned" Const="true">
|
|
<Documentation>
|
|
<UserDocu>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.
|
|
</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="replaceShape" Const="true">
|
|
<Documentation>
|
|
<UserDocu>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.</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="removeShape" Const="true">
|
|
<Documentation>
|
|
<UserDocu>Remove a sub-shape and return a new shape.
|
|
removeShape(shapeList) -> Shape
|
|
--
|
|
The parameter is a list of shapes.</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="defeaturing" Const="true">
|
|
<Documentation>
|
|
<UserDocu>Remove a feature defined by supplied faces and return a new shape.
|
|
defeaturing(shapeList) -> Shape
|
|
--
|
|
The parameter is a list of faces.</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="isInside" Const="true">
|
|
<Documentation>
|
|
<UserDocu>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
|
|
</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="removeSplitter" Const="true">
|
|
<Documentation>
|
|
<UserDocu>Removes redundant edges from the B-REP model
|
|
removeSplitter() -> Shape
|
|
</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="proximity" Const="true">
|
|
<Documentation>
|
|
<UserDocu>Returns two lists of Face indexes for the Faces involved in the intersection.
|
|
proximity(shape,[tolerance]) -> (selfFaces, shapeFaces)
|
|
</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="distToShape" Const="true">
|
|
<Documentation>
|
|
<UserDocu>Find the minimum distance to another shape.
|
|
distToShape(shape) -> (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). </UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="getElement" Const="true">
|
|
<Documentation>
|
|
<UserDocu>Returns a SubElement
|
|
getElement(elementName) -> Face | Edge | Vertex
|
|
</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="countElement" Const="true">
|
|
<Documentation>
|
|
<UserDocu>Returns the count of a type of element
|
|
countElement(type) -> int
|
|
</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="getTolerance" Const="true">
|
|
<Documentation>
|
|
<UserDocu>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
|
|
</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="overTolerance" Const="true">
|
|
<Documentation>
|
|
<UserDocu>Determines which shapes have a tolerance over the given value
|
|
overTolerance(value, [ShapeType=Shape]) -> ShapeList
|
|
--
|
|
ShapeType is interpreted as in the method getTolerance
|
|
</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="inTolerance" Const="true">
|
|
<Documentation>
|
|
<UserDocu>Determines which shapes have a tolerance within a given interval
|
|
inTolerance(value, [ShapeType=Shape]) -> ShapeList
|
|
--
|
|
ShapeType is interpreted as in the method getTolerance
|
|
</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="globalTolerance" Const="true">
|
|
<Documentation>
|
|
<UserDocu>Returns the computed tolerance according to the mode
|
|
globalTolerance(mode) -> float
|
|
--
|
|
mode = 0 : average
|
|
mode > 0 : maximal
|
|
mode < 0 : minimal
|
|
</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="fixTolerance" Const="true">
|
|
<Documentation>
|
|
<UserDocu>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
|
|
</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="limitTolerance" Const="true">
|
|
<Documentation>
|
|
<UserDocu>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
|
|
</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="optimalBoundingBox" Const="true">
|
|
<Documentation>
|
|
<UserDocu>Get the optimal bounding box
|
|
optimalBoundingBox([useTriangulation = True, useShapeTolerance = False]) -> bound box
|
|
</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<!--
|
|
<Attribute Name="Location" ReadOnly="false">
|
|
<Documentation>
|
|
<UserDocu>Gets or sets the local coordinate system of this shape.</UserDocu>
|
|
</Documentation>
|
|
<Parameter Name="Location" Type="Object"/>
|
|
</Attribute>
|
|
-->
|
|
<Attribute Name="ShapeType" ReadOnly="true">
|
|
<Documentation>
|
|
<UserDocu>Returns the type of the shape.</UserDocu>
|
|
</Documentation>
|
|
<Parameter Name="ShapeType" Type="String"/>
|
|
</Attribute>
|
|
<Attribute Name="Orientation" ReadOnly="false">
|
|
<Documentation>
|
|
<UserDocu>Returns the orientation of the shape.</UserDocu>
|
|
</Documentation>
|
|
<Parameter Name="Orientation" Type="String"/>
|
|
</Attribute>
|
|
<Attribute Name="Faces" ReadOnly="true">
|
|
<Documentation>
|
|
<UserDocu>List of faces in this shape.</UserDocu>
|
|
</Documentation>
|
|
<Parameter Name="Faces" Type="List"/>
|
|
</Attribute>
|
|
<Attribute Name="Vertexes" ReadOnly="true">
|
|
<Documentation>
|
|
<UserDocu>List of vertexes in this shape.</UserDocu>
|
|
</Documentation>
|
|
<Parameter Name="Vertexes" Type="List"/>
|
|
</Attribute>
|
|
<Attribute Name="Shells" ReadOnly="true">
|
|
<Documentation>
|
|
<UserDocu>List of subsequent shapes in this shape.</UserDocu>
|
|
</Documentation>
|
|
<Parameter Name="Shells" Type="List"/>
|
|
</Attribute>
|
|
<Attribute Name="Solids" ReadOnly="true">
|
|
<Documentation>
|
|
<UserDocu>List of subsequent shapes in this shape.</UserDocu>
|
|
</Documentation>
|
|
<Parameter Name="Solids" Type="List"/>
|
|
</Attribute>
|
|
<Attribute Name="CompSolids" ReadOnly="true">
|
|
<Documentation>
|
|
<UserDocu>List of subsequent shapes in this shape.</UserDocu>
|
|
</Documentation>
|
|
<Parameter Name="CompSolids" Type="List"/>
|
|
</Attribute>
|
|
<Attribute Name="Edges" ReadOnly="true">
|
|
<Documentation>
|
|
<UserDocu>List of Edges in this shape.</UserDocu>
|
|
</Documentation>
|
|
<Parameter Name="Edges" Type="List"/>
|
|
</Attribute>
|
|
<Attribute Name="Wires" ReadOnly="true">
|
|
<Documentation>
|
|
<UserDocu>List of wires in this shape.</UserDocu>
|
|
</Documentation>
|
|
<Parameter Name="Wires" Type="List"/>
|
|
</Attribute>
|
|
<Attribute Name="Compounds" ReadOnly="true">
|
|
<Documentation>
|
|
<UserDocu>List of compounds in this shape.</UserDocu>
|
|
</Documentation>
|
|
<Parameter Name="Compounds" Type="List"/>
|
|
</Attribute>
|
|
<Attribute Name="SubShapes" ReadOnly="true">
|
|
<Documentation>
|
|
<UserDocu>List of sub-shapes in this shape.</UserDocu>
|
|
</Documentation>
|
|
<Parameter Name="SubShapes" Type="List"/>
|
|
</Attribute>
|
|
<Attribute Name="Length" ReadOnly="true">
|
|
<Documentation>
|
|
<UserDocu>Total length of the edges of the shape.</UserDocu>
|
|
</Documentation>
|
|
<Parameter Name="Length" Type="Float"/>
|
|
</Attribute>
|
|
<Attribute Name="Area" ReadOnly="true">
|
|
<Documentation>
|
|
<UserDocu>Total area of the faces of the shape.</UserDocu>
|
|
</Documentation>
|
|
<Parameter Name="Area" Type="Float"/>
|
|
</Attribute>
|
|
<Attribute Name="Volume" ReadOnly="true">
|
|
<Documentation>
|
|
<UserDocu>Total volume of the solids of the shape.</UserDocu>
|
|
</Documentation>
|
|
<Parameter Name="Volume" Type="Float"/>
|
|
</Attribute>
|
|
</PythonExport>
|
|
</GenerateModel>
|