* Update ShapeFix_EdgePy.xml Issue #11182 --------- Co-authored-by: Chris Hennes <chennes@pioneerlibrarysystem.org>
148 lines
6.0 KiB
XML
148 lines
6.0 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="PyObjectBase"
|
|
Name="ShapeFix_EdgePy"
|
|
PythonName="Part.ShapeFix.Edge"
|
|
Twin="ShapeFix_Edge"
|
|
TwinPointer="ShapeFix_Edge"
|
|
Include="ShapeFix_Edge.hxx"
|
|
Namespace="Part"
|
|
FatherInclude="Base/PyObjectBase.h"
|
|
FatherNamespace="Base"
|
|
Constructor="true"
|
|
Delete="false">
|
|
<Documentation>
|
|
<Author Licence="LGPL" Name="Werner Mayer" EMail="wmayer@users.sourceforge.net" />
|
|
<UserDocu>Fixing invalid edge</UserDocu>
|
|
</Documentation>
|
|
<Methode Name="fixRemovePCurve">
|
|
<Documentation>
|
|
<UserDocu> 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</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="fixRemoveCurve3d">
|
|
<Documentation>
|
|
<UserDocu>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
|
|
</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="fixAddPCurve">
|
|
<Documentation>
|
|
<UserDocu> 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)</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="fixAddCurve3d">
|
|
<Documentation>
|
|
<UserDocu>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</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="fixVertexTolerance">
|
|
<Documentation>
|
|
<UserDocu> 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</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="fixReversed2d">
|
|
<Documentation>
|
|
<UserDocu> 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</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="fixSameParameter">
|
|
<Documentation>
|
|
<UserDocu>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)</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<ClassDeclarations>
|
|
private:
|
|
Handle(ShapeFix_Edge) hEdge;
|
|
|
|
public:
|
|
void setHandle(Handle(ShapeFix_Edge) handle) {
|
|
setTwinPointer(handle.get());
|
|
hEdge = handle;
|
|
}
|
|
</ClassDeclarations>
|
|
</PythonExport>
|
|
</GenerateModel>
|