diff --git a/src/Mod/Part/App/ShapeFix/ShapeFix_EdgePy.xml b/src/Mod/Part/App/ShapeFix/ShapeFix_EdgePy.xml index f2899e35fc..602230b643 100644 --- a/src/Mod/Part/App/ShapeFix/ShapeFix_EdgePy.xml +++ b/src/Mod/Part/App/ShapeFix/ShapeFix_EdgePy.xml @@ -18,37 +18,118 @@ - Removes pcurve(s) if not matching vertices. + 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. - Removes 3d curve if not matching vertices. + 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. - Adds missing pcurve(s) by projecting 3d curve. + 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). - Tries to build missing 3d curve. + 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. - Increases tolerances of edge vertices. + 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. - Fixes edge if pcurve is opposite to 3d curve. + 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. - Makes edge SameParameter and sets tolerance. + 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).