From 85ac7f6f82d108ad249cddc92c0c398ea8f763a0 Mon Sep 17 00:00:00 2001 From: nbv Date: Thu, 22 Aug 2013 17:23:24 +0400 Subject: [PATCH] 0023675: P-curves of a face are out of the domain of the face. Analyzing of 2D-curves' boundaries. Tolerance range computing was changed. 1. Function Validate(...) returns BRepCheck_Status. 2. For faces, whose pcurves is out of domain, status BRepCheck_OutOfSurfaceBoundary is returned. 3. For edges, which is out of face's boundary, status BRepCheck_PCurveIsOutOfDomainFace is returned. 4. Print warning, if status is not defined. 5. BRepCheck_Face::SetStatus(...) and BRepCheck_Wire::SetStatus(...) functions added. 6. ShapeFix::RefineFace(...) function and it draw-commands (ffixpcu and sfixpcu) are added. Command "ffixpcu" fixes a face with BRepCheck_OutOfSurfaceBoundary status. Command "sfixpcu" fixes a shape, which contains a face with BRepCheck_OutOfSurfaceBoundary status. 7. Trimming algorithm for surfaces changed (ForceTrim method is added). 8. Small correction of output of "checkshape" command result. 9. MinMax() and RealMod() functions are added. 10. Fixing of some shapes from test base. --- src/BRep/BRep_Builder.cdl | 45 +- src/BRep/BRep_Builder.cxx | 233 ++++++- src/BRep/BRep_Builder.lxx | 5 +- src/BRepCheck/BRepCheck.cdl | 2 + src/BRepCheck/BRepCheck.cxx | 8 + src/BRepCheck/BRepCheck_Analyzer.cxx | 496 ++++++++------- src/BRepCheck/BRepCheck_Edge.cxx | 641 ++++++++++++-------- src/BRepCheck/BRepCheck_Face.cdl | 7 + src/BRepCheck/BRepCheck_Face.cxx | 9 + src/BRepCheck/BRepCheck_Wire.cxx | 6 +- src/BRepLib/BRepLib.cxx | 97 ++- src/BRepTest/BRepTest_CheckCommands.cxx | 126 ++-- src/Geom/Geom_RectangularTrimmedSurface.cdl | 57 ++ src/Geom/Geom_RectangularTrimmedSurface.cxx | 333 +++++++--- src/GeomTools/GeomTools_SurfaceSet.cxx | 12 + src/SWDRAW/SWDRAW_ShapeFix.cxx | 359 +++++++++-- src/ShapeBuild/ShapeBuild.cdl | 5 +- src/ShapeBuild/ShapeBuild_Edge.cdl | 14 +- src/ShapeBuild/ShapeBuild_Edge.cxx | 48 +- src/ShapeFix/ShapeFix.cdl | 33 +- src/ShapeFix/ShapeFix.cxx | 442 ++++++++++++-- src/ShapeFix/ShapeFix_ComposeShell.cxx | 237 +++++--- src/Standard/Standard_Integer.hxx | 14 + src/Standard/Standard_Real.cxx | 11 + src/Standard/Standard_Real.hxx | 17 + tests/blend/complex/C4 | 7 + tests/blend/complex/C6 | 7 + tests/blend/complex/C9 | 7 + tests/blend/complex/D3 | 7 + tests/blend/complex/D4 | 7 + tests/blend/complex/E1 | 7 + tests/blend/complex/E2 | 7 + tests/blend/complex/E7 | 7 + tests/blend/complex/E9 | 7 + tests/boolean/bcommon_complex/C2 | 9 +- tests/boolean/bcut_complex/A1 | 11 + tests/boolean/bcut_complex/A2 | 9 + tests/boolean/bcut_complex/E6 | 9 + tests/boolean/bcut_complex/E7 | 7 + tests/boolean/bcut_complex/E8 | 9 + tests/boolean/bcut_complex/F6 | 9 + tests/boolean/bcut_complex/F9 | 9 + tests/boolean/bcut_complex/G2 | 6 + tests/boolean/bcut_complex/G6 | 9 + tests/boolean/bcut_complex/G7 | 9 + tests/boolean/bcut_complex/G8 | 9 + tests/boolean/bcut_complex/H3 | 9 + tests/boolean/bcut_complex/H8 | 13 + tests/boolean/bcut_complex/I3 | 11 +- tests/boolean/bcut_complex/I6 | 9 + tests/boolean/bcut_complex/I7 | 9 + tests/boolean/bcut_complex/J1 | 9 + tests/boolean/bcut_complex/J4 | 9 + tests/boolean/bcut_complex/J5 | 9 + tests/boolean/bcut_complex/K8 | 9 + tests/boolean/bcut_complex/L6 | 9 + tests/boolean/bcut_complex/M2 | 7 + tests/boolean/bcut_complex/M4 | 9 + tests/boolean/bcut_complex/M5 | 9 + tests/boolean/bcut_complex/M6 | 9 + tests/boolean/bcut_complex/M9 | 9 + tests/boolean/bcut_complex/N1 | 9 + tests/boolean/bcut_complex/O8 | 7 + tests/boolean/bcut_complex/P2 | 9 + tests/boolean/bcut_complex/P4 | 7 + tests/boolean/bcut_complex/Q7 | 9 + tests/boolean/bfuse_complex/C7 | 9 + tests/boolean/bfuse_complex/C9 | 9 + tests/boolean/bfuse_complex/D4 | 10 + tests/boolean/bfuse_complex/D5 | 9 + tests/boolean/bfuse_complex/E2 | 9 + tests/boolean/bfuse_complex/E3 | 9 + tests/boolean/bfuse_complex/E6 | 7 + tests/boolean/bfuse_complex/E8 | 9 + tests/boolean/bfuse_complex/G2 | 10 + tests/boolean/bfuse_complex/G4 | 9 + tests/boolean/bfuse_complex/G9 | 8 + tests/boolean/bfuse_complex/I6 | 9 + tests/boolean/bfuse_complex/I9 | 9 + tests/boolean/bfuse_complex/K3 | 10 + tests/boolean/bfuse_complex/K4 | 9 + tests/boolean/bfuse_complex/K7 | 9 + tests/boolean/bfuse_complex/K9 | 9 + tests/boolean/bfuse_complex/L2 | 9 + tests/boolean/bfuse_complex/L6 | 9 + tests/boolean/bfuse_complex/L7 | 9 + tests/boolean/bfuse_complex/N1 | 9 + tests/boolean/bfuse_complex/N2 | 9 + tests/boolean/bfuse_complex/N4 | 11 + tests/boolean/bfuse_complex/N8 | 9 + tests/boolean/bfuse_complex/Q1 | 9 + tests/boolean/bfuse_complex/R1 | 8 + tests/boolean/bfuse_complex/R2 | 9 + tests/boolean/bfuse_complex/R7 | 10 + tests/boolean/bfuse_complex/R8 | 6 + tests/boolean/bopcommon_complex/D8 | 7 + tests/boolean/bopcommon_complex/D9 | 7 + tests/boolean/bopcommon_complex/E9 | 8 + tests/boolean/bopcommon_complex/F1 | 8 + tests/boolean/bopcut_complex/E1 | 7 + tests/boolean/bopcut_complex/E2 | 7 + tests/boolean/bopcut_complex/F2 | 7 + tests/boolean/bopcut_complex/F3 | 8 + tests/boolean/bopcut_complex/L9 | 9 + tests/boolean/bopcut_complex/M1 | 9 + tests/boolean/bopfuse_complex/C9 | 7 + tests/boolean/bopfuse_complex/D1 | 7 + tests/boolean/bopfuse_complex/E1 | 8 + tests/boolean/bopfuse_complex/E2 | 8 + tests/boolean/bopfuse_complex/J8 | 10 + tests/boolean/bopfuse_complex/K6 | 9 + tests/boolean/bopsection/A2 | 10 + tests/boolean/bopsection/A4 | 9 + tests/boolean/bopsection/A5 | 9 + tests/boolean/bopsection/B5 | 9 + tests/boolean/bsection/O8 | 10 + tests/bugs/heal/bug208 | 1 + tests/bugs/modalg_1/buc60708 | 6 + tests/bugs/modalg_1/buc60839 | 6 + tests/bugs/modalg_1/bug17357_1 | 9 + tests/bugs/modalg_1/bug17357_2 | 9 + tests/bugs/modalg_1/bug17357_3 | 9 + tests/bugs/modalg_1/bug17357_4 | 9 + tests/bugs/modalg_1/bug17357_5 | 9 + tests/bugs/modalg_2/bug22557 | 9 + tests/bugs/modalg_2/bug22770_10 | 10 + tests/bugs/modalg_2/bug22770_11 | 10 + tests/bugs/modalg_2/bug22770_12 | 10 + tests/bugs/modalg_2/bug22770_13 | 10 + tests/bugs/modalg_2/bug22770_14 | 10 + tests/bugs/modalg_2/bug22770_15 | 10 + tests/bugs/modalg_2/bug22770_23 | 9 + tests/bugs/modalg_2/bug22770_24 | 9 + tests/bugs/modalg_2/bug22770_25 | 9 + tests/bugs/modalg_2/bug22770_26 | 9 + tests/bugs/modalg_2/bug22770_27 | 9 + tests/bugs/modalg_2/bug22770_28 | 9 + tests/bugs/modalg_2/bug22770_29 | 9 + tests/bugs/modalg_2/bug22770_30 | 9 + tests/bugs/modalg_2/bug22770_8 | 10 + tests/bugs/modalg_2/bug22770_9 | 10 + tests/bugs/modalg_2/bug23530 | 4 + tests/bugs/modalg_2/bug263 | 6 + tests/bugs/modalg_2/bug264_1 | 4 + tests/bugs/modalg_2/bug264_11 | 4 + tests/bugs/modalg_2/bug264_7 | 4 + tests/bugs/modalg_2/bug269_1 | 6 + tests/bugs/modalg_2/bug269_3 | 6 + tests/bugs/modalg_2/bug287 | 5 + tests/bugs/modalg_2/bug302_3 | 4 + tests/bugs/modalg_2/bug337 | 4 + tests/bugs/modalg_2/bug347_1 | 4 + tests/bugs/modalg_2/bug347_2 | 5 + tests/bugs/modalg_2/bug416 | 5 + tests/bugs/modalg_2/bug446_2 | 5 + tests/bugs/modalg_2/bug446_3 | 5 + tests/bugs/modalg_2/bug452_2 | 7 + tests/bugs/modalg_2/bug452_3 | 5 + tests/bugs/modalg_2/bug472_1 | 5 + tests/bugs/modalg_2/bug472_2 | 5 + tests/bugs/modalg_2/bug472_3 | 5 + tests/bugs/modalg_2/bug476_1 | 6 + tests/bugs/modalg_2/bug476_2 | 6 + tests/bugs/modalg_2/bug476_3 | 6 + tests/bugs/modalg_2/bug476_4 | 6 + tests/bugs/modalg_2/bug476_5 | 6 + tests/bugs/modalg_2/bug476_6 | 6 + tests/bugs/modalg_2/bug476_7 | 6 + tests/bugs/modalg_2/bug476_8 | 6 + tests/bugs/modalg_2/bug481 | 4 + tests/bugs/modalg_2/bug485 | 5 + tests/bugs/modalg_4/bug6181 | 9 + tests/bugs/modalg_4/bug6182 | 6 + tests/bugs/modalg_4/bug620_1 | 5 + tests/bugs/modalg_4/bug620_2 | 5 + tests/bugs/modalg_4/bug6272_5 | 6 + tests/bugs/modalg_4/bug6272_6 | 7 + tests/bugs/modalg_4/bug6272_710 | 6 + tests/bugs/modalg_4/bug6272_77 | 6 + tests/bugs/modalg_4/bug6272_78 | 6 + tests/bugs/modalg_4/bug6272_79 | 6 + tests/bugs/modalg_4/bug714 | 4 + tests/bugs/modalg_4/bug774_1 | 5 + tests/bugs/modalg_4/bug774_2 | 6 + tests/bugs/modalg_4/bug778_1 | 5 + tests/bugs/modalg_4/bug778_2 | 5 + tests/bugs/modalg_4/bug951_1 | 6 + tests/bugs/modalg_4/bug951_2 | 6 + tests/bugs/modalg_4/bug951_3 | 6 + tests/bugs/modalg_4/bug951_31 | 6 + tests/bugs/modalg_4/bug951_32 | 6 + tests/bugs/modalg_4/bug951_4 | 6 + tests/bugs/modalg_4/bug951_41 | 6 + tests/bugs/modalg_4/bug951_42 | 6 + tests/bugs/modalg_4/bug951_5 | 6 + tests/bugs/modalg_4/bug951_51 | 6 + tests/bugs/modalg_4/bug951_52 | 6 + tests/bugs/modalg_4/bug951_6 | 6 + tests/bugs/modalg_4/bug951_61 | 6 + tests/bugs/modalg_4/bug951_62 | 6 + tests/bugs/modalg_4/bug951_71 | 6 + tests/bugs/modalg_4/bug951_72 | 6 + tests/bugs/modalg_5/bug23122 | 9 + tests/bugs/modalg_5/bug23933 | 6 + tests/bugs/moddata_1/bug107 | 6 + tests/bugs/moddata_1/bug15 | 5 +- tests/bugs/moddata_1/bug1651 | 4 + tests/bugs/moddata_1/bug17 | 4 + tests/bugs/moddata_1/bug183_6 | 6 + tests/bugs/moddata_1/bug211_1 | 5 + tests/bugs/moddata_1/bug211_2 | 5 + tests/bugs/moddata_2/bug228 | 5 + tests/bugs/moddata_2/bug25 | 5 + tests/bugs/moddata_2/bug258_1 | 4 + tests/bugs/moddata_2/bug258_2 | 4 + tests/bugs/moddata_2/bug26_1 | 5 + tests/bugs/moddata_2/bug26_2 | 6 + tests/bugs/moddata_2/bug368 | 4 + tests/bugs/moddata_2/bug496 | 4 + tests/bugs/moddata_2/bug8 | 4 + tests/bugs/xde/bug169 | 1 + tests/bugs/xde/bug22535_1 | 9 +- tests/bugs/xde/bug22535_2 | 7 + tests/de/step_1/E3 | 6 +- tests/draft/angle/L1 | 6 + tests/draft/angle/L2 | 6 + tests/draft/angle/M4 | 5 + tests/draft/angle/M5 | 5 + tests/feat/featlf/B8 | 6 + tests/feat/featprism/K1 | 9 + tests/feat/featprism/K2 | 9 + tests/feat/featprism/K7 | 7 + tests/feat/featprism/M4 | 12 + tests/feat/featprism/O6 | 9 + tests/feat/featprism/R1 | 6 + tests/feat/featprism/R6 | 10 + tests/feat/featrevol/B7 | 9 + tests/feat/featrevol/B8 | 9 + tests/heal/data/advanced/B6 | 5 + tests/heal/data/advanced/B8 | 5 + tests/heal/data/advanced/G1 | 5 + tests/heal/data/advanced/G8 | 5 + tests/heal/data/advanced/G9 | 5 +- tests/heal/data/advanced/H4 | 5 + tests/heal/data/advanced/H5 | 5 + tests/heal/data/advanced/H9 | 5 +- tests/heal/data/advanced/I4 | 5 +- tests/heal/data/advanced/I5 | 5 +- tests/heal/data/advanced/J6 | 5 + tests/heal/data/advanced/K1 | 5 + tests/heal/data/advanced/K5 | 5 + tests/heal/data/advanced/K8 | 5 + tests/heal/data/advanced/L3 | 5 + tests/heal/data/advanced/L5 | 5 + tests/heal/data/advanced/L6 | 5 + tests/heal/data/advanced/L8 | 5 + tests/heal/data/advanced/L9 | 5 + tests/heal/data/advanced/M1 | 5 + tests/heal/data/advanced/M5 | 5 + tests/heal/data/advanced/M6 | 5 + tests/heal/data/advanced/M7 | 5 +- tests/heal/data/advanced/N1 | 5 + tests/heal/data/advanced/N3 | 5 + tests/heal/data/advanced/N4 | 5 + tests/heal/data/advanced/N6 | 5 + tests/heal/data/advanced/N7 | 5 + tests/heal/data/advanced/S6 | 5 + tests/heal/data/advanced/U2 | 6 + tests/heal/data/advanced/ZF1 | 4 + tests/heal/data/advanced/ZF2 | 4 + tests/heal/data/advanced/ZF7 | 4 + tests/heal/data/advanced/ZF8 | 5 +- tests/heal/data/standard/F3 | 5 + tests/heal/data/standard/I1 | 5 + tests/heal/data/standard/I5 | 5 + tests/heal/data/standard/I9 | 5 + tests/heal/data/standard/J4 | 5 + tests/heal/data/standard/J9 | 5 + tests/heal/data/standard/K6 | 5 + tests/heal/data/standard/K7 | 5 + tests/heal/data/standard/K8 | 5 + tests/heal/data/standard/K9 | 5 + tests/heal/data/standard/M2 | 5 + tests/heal/data/standard/M3 | 5 + tests/heal/data/standard/M8 | 5 + tests/heal/data/standard/N1 | 5 + tests/heal/data/standard/P1 | 5 + tests/heal/data/standard/R5 | 7 + tests/heal/data/standard/T9 | 5 + tests/heal/data/standard/U6 | 5 + tests/heal/data/standard/V5 | 5 + tests/heal/data/standard/V6 | 5 + tests/heal/data/standard/V7 | 5 + tests/heal/data/standard/X8 | 5 + tests/heal/data/standard/Y5 | 5 + tests/heal/data/standard/Z5 | 5 + tests/heal/data/standard/ZB6 | 5 + tests/heal/data/standard/ZD1 | 5 + tests/heal/data/standard/ZD3 | 5 + tests/heal/data/standard/ZF4 | 5 + tests/heal/data/standard/ZI1 | 5 + tests/heal/data/standard/ZM4 | 5 + tests/heal/data/standard/ZQ2 | 5 + tests/heal/data/standard/ZR9 | 5 + tests/heal/data/standard/ZS1 | 5 + tests/heal/data/standard/ZT1 | 5 + tests/heal/data/standard/ZT3 | 5 + tests/heal/direct_faces/A3 | 5 + tests/heal/direct_faces/A9 | 6 + tests/heal/drop_small_edges/A1 | 5 + tests/heal/fix_face_size/end | 4 + tests/heal/fix_gaps/end | 4 + tests/heal/fix_shape/end | 5 + tests/heal/same_parameter/A1 | 5 + tests/heal/split_angle/A5 | 5 + tests/heal/split_angle/A9 | 6 + tests/heal/split_angle/B9 | 6 + tests/heal/split_angle/E3 | 6 + tests/heal/split_angle/E4 | 6 + tests/heal/split_angle/E5 | 6 + tests/heal/split_closed_faces/A1 | 1 + tests/heal/split_closed_faces/A9 | 6 + tests/heal/split_closed_faces/B4 | 6 + tests/heal/split_closed_faces/C4 | 6 + tests/heal/split_closed_faces/D5 | 6 + tests/heal/split_closed_faces/D6 | 6 + tests/heal/split_closed_faces/D7 | 6 + tests/heal/split_continuity/A4 | 6 + tests/heal/split_continuity/B2 | 6 + tests/heal/split_continuity/C1 | 6 + tests/heal/split_continuity/C3 | 5 + tests/heal/split_continuity/C8 | 6 + tests/heal/split_continuity/D1 | 6 + tests/heal/split_continuity/D2 | 6 + tests/heal/surface_to_bezier/B3 | 6 + tests/heal/surface_to_bezier/D1 | 6 + tests/heal/surface_to_bezier/E3 | 6 + tests/heal/surface_to_bspline/B1 | 5 + tests/heal/surface_to_bspline/B5 | 6 + tests/heal/surface_to_bspline/C5 | 6 + tests/heal/surface_to_bspline/C7 | 6 + tests/heal/surface_to_bspline/D6 | 6 + tests/heal/surface_to_bspline/D7 | 6 + tests/heal/surface_to_bspline/D8 | 6 + tests/offset/faces_type_a/A1 | 6 + tests/sewing/tol_0_01/K8 | 5 + tests/sewing/tol_0_01/L1 | 6 + tests/sewing/tol_0_01/L3 | 6 + tests/sewing/tol_0_01/L8 | 6 + tests/sewing/tol_0_01/P2 | 6 + tests/sewing/tol_0_01/R3 | 6 + tests/sewing/tol_0_01/S2 | 6 + tests/sewing/tol_0_01/T9 | 6 + tests/sewing/tol_0_01/U5 | 6 + tests/sewing/tol_0_01/U8 | 6 + tests/sewing/tol_0_01/V1 | 6 + tests/sewing/tol_0_01/V2 | 5 + tests/sewing/tol_0_01/V6 | 6 + tests/sewing/tol_0_01/W2 | 6 + tests/sewing/tol_1/B5 | 6 + tests/sewing/tol_1/D1 | 6 + tests/sewing/tol_1/D2 | 6 + tests/sewing/tol_1/D6 | 6 + tests/sewing/tol_1/E2 | 6 + tests/sewing/tol_1/J9 | 6 + tests/sewing/tol_1/K1 | 6 + tests/sewing/tol_1/N7 | 6 + tests/sewing/tol_1/O6 | 6 + tests/sewing/tol_1/P8 | 6 + tests/sewing/tol_1/P9 | 6 + tests/sewing/tol_1/Q4 | 6 + tests/sewing/tol_1/Q5 | 6 + tests/sewing/tol_1/Q6 | 6 + tests/sewing/tol_1/Q7 | 6 + tests/sewing/tol_1/U2 | 6 + tests/sewing/tol_1/V4 | 6 + tests/sewing/tol_1/V7 | 6 + tests/sewing/tol_1/X6 | 6 + tests/sewing/tol_1/Y4 | 6 + tests/sewing/tol_100/F1 | 6 + tests/sewing/tol_100/F6 | 6 + tests/sewing/tol_100/H1 | 6 + tests/sewing/tol_100/H4 | 6 + tests/sewing/tol_100/I1 | 6 + tests/sewing/tol_100/I7 | 6 + tests/sewing/tol_100/J7 | 6 + tests/sewing/tol_100/J9 | 6 + tests/sewing/tol_100/K9 | 6 + tests/sewing/tol_100/L6 | 6 + tests/sewing/tol_100/L9 | 6 + tests/sewing/tol_100/M1 | 6 + tests/sewing/tol_100/M2 | 6 + tests/sewing/tol_100/M5 | 6 + tests/sewing/tol_100/N2 | 6 + tests/sewing/tol_100/N9 | 6 + tests/sewing/tol_100/O1 | 6 + tests/sewing/tol_100/O2 | 6 + tests/sewing/tol_100/O3 | 6 + tests/sewing/tol_100/P2 | 6 + tests/sewing/tol_100/P3 | 6 + tests/sewing/tol_100/P4 | 6 + tests/sewing/tol_100/P9 | 6 + tests/sewing/tol_100/Q1 | 5 + tests/sewing/tol_100/S9 | 6 + tests/sewing/tol_100/T5 | 6 + tests/sewing/tol_100/T6 | 6 + tests/sewing/tol_100/U7 | 6 + tests/sewing/tol_100/U8 | 6 + tests/sewing/tol_100/U9 | 6 + tests/sewing/tol_100/V1 | 6 + tests/sewing/tol_100/W7 | 6 + tests/sewing/tol_100/W8 | 6 + tests/sewing/tol_100/X3 | 6 + tests/sewing/tol_100/X8 | 6 + tests/sewing/tol_100/Y3 | 6 + tests/sewing/tol_100/Z7 | 6 + tests/sewing/tol_100/Z8 | 6 + tests/xcaf/brep_add_CL/G8 | 7 + tests/xcaf/brep_to_dxc/G8 | 7 + tests/xcaf/brep_to_igs_add_CL/G8 | 7 + tests/xcaf/brep_to_stp_add_CL/G8 | 7 + tests/xcaf/dxc_add_CL/G8 | 7 + 422 files changed, 4892 insertions(+), 946 deletions(-) diff --git a/src/BRep/BRep_Builder.cdl b/src/BRep/BRep_Builder.cdl index 3eb0e27a12..e83868400b 100755 --- a/src/BRep/BRep_Builder.cdl +++ b/src/BRep/BRep_Builder.cdl @@ -238,11 +238,13 @@ is UpdateEdge(me; E : Edge from TopoDS; C1,C2 : Curve from Geom2d; F : Face from TopoDS; - Tol : Real); + Tol : Real; + theContinuity : Shape from GeomAbs = GeomAbs_C0); ---C++: inline - ---Purpose: Sets pcurves for the edge on the closed face. If - -- or is a null handle, remove any existing + ---Purpose: Sets pcurves (with theContinuity) for the edge on + -- the closed face. + -- If or is a null handle, remove any existing -- pcurve. UpdateEdge(me; E : Edge from TopoDS; @@ -254,7 +256,20 @@ is ---Purpose: Sets a pcurve for the edge on the face. -- If is a null handle, remove any existing pcurve. - UpdateEdge(me; E : Edge from TopoDS; + UpdateEdge(me; E : Edge from TopoDS; + C : Curve from Geom2d; + newSurf : Surface from Geom; + newL : Location from TopLoc; + theFace : Face from TopoDS; + Tol : Real from Standard); + + ---Purpose: Sets a pcurve for the edge on the face. + -- If is a null handle, remove any existing pcurve. + -- New edge will be in the face , which + -- based on surface newSurf. Old surface must be + -- deleted from later. + + UpdateEdge(me; E : Edge from TopoDS; C : Curve from Geom2d; S : Surface from Geom; L : Location from TopLoc; @@ -269,12 +284,28 @@ is C1,C2 : Curve from Geom2d; S : Surface from Geom; L : Location from TopLoc; - Tol : Real); + Tol : Real from Standard; + theContinuity : Shape from GeomAbs = GeomAbs_C0); - ---Purpose: Sets pcurves for the edge on the closed surface. - -- or is a null handle, remove any existing + ---Purpose: Sets pcurves (with theContinuity) for the edge on the + -- closed surface. + -- If or is a null handle, remove any existing -- pcurve. + UpdateEdge(me; E : Edge from TopoDS; + C1,C2 : Curve from Geom2d; + newSurf : Surface from Geom; + newL : Location from TopLoc; + theFace : Face from TopoDS; + Tol : Real from Standard); + + ---Purpose: Sets pcurves for the edge on the closed surface. + -- If or is a null handle, remove any + -- existing pcurve. + -- New edge will be in the face , which + -- based on surface newSurf. Old surface must be + -- deleted from later. + UpdateEdge(me; E : Edge from TopoDS; C1,C2 : Curve from Geom2d; S : Surface from Geom; diff --git a/src/BRep/BRep_Builder.cxx b/src/BRep/BRep_Builder.cxx index 5ab0f4ffc9..0d112543a6 100755 --- a/src/BRep/BRep_Builder.cxx +++ b/src/BRep/BRep_Builder.cxx @@ -233,7 +233,8 @@ static void UpdateCurves(BRep_ListOfCurveRepresentation& lcr, const Handle(Geom2d_Curve)& C1, const Handle(Geom2d_Curve)& C2, const Handle(Geom_Surface)& S, - const TopLoc_Location& L) + const TopLoc_Location& L, + const GeomAbs_Shape theContinuity = GeomAbs_C0) { BRep_ListIteratorOfListOfCurveRepresentation itcr(lcr); Handle(BRep_CurveRepresentation) cr; @@ -259,7 +260,7 @@ static void UpdateCurves(BRep_ListOfCurveRepresentation& lcr, if ( !C1.IsNull() && !C2.IsNull() ) { Handle(BRep_CurveOnClosedSurface) COS = - new BRep_CurveOnClosedSurface(C1,C2,S,L,GeomAbs_C0); + new BRep_CurveOnClosedSurface(C1,C2,S,L,theContinuity); // test if there is already a range if (!GC.IsNull()) { COS->SetRange(f,l); @@ -280,7 +281,8 @@ static void UpdateCurves(BRep_ListOfCurveRepresentation& lcr, const Handle(Geom_Surface)& S, const TopLoc_Location& L, const gp_Pnt2d& Pf, - const gp_Pnt2d& Pl) + const gp_Pnt2d& Pl, + const GeomAbs_Shape theContinuity = GeomAbs_C0) { BRep_ListIteratorOfListOfCurveRepresentation itcr(lcr); Handle(BRep_CurveRepresentation) cr; @@ -306,7 +308,7 @@ static void UpdateCurves(BRep_ListOfCurveRepresentation& lcr, if ( !C1.IsNull() && !C2.IsNull() ) { Handle(BRep_CurveOnClosedSurface) COS = - new BRep_CurveOnClosedSurface(C1,C2,S,L,GeomAbs_C0); + new BRep_CurveOnClosedSurface(C1,C2,S,L,theContinuity); // test if there is already a range if (!GC.IsNull()) { COS->SetRange(f,l); @@ -343,6 +345,167 @@ static void UpdateCurves(BRep_ListOfCurveRepresentation& lcr, } } +//======================================================================= +//function : UpdateCurves +//purpose : Insert two pcurves on surface with +// location in the list of curve representations . +// Deletes curves, which belong to because +// will not be used later (presumably). +// Remove the pcurves on from if or is null +//======================================================================= + +static void UpdateCurves(BRep_ListOfCurveRepresentation& lcr, + const Handle(Geom2d_Curve)& C1, + const Handle(Geom2d_Curve)& C2, + const Handle(Geom_Surface)& newSurf, + const TopLoc_Location& newL, + const Handle(Geom_Surface)& oldSurf, + const TopLoc_Location oldL, + const GeomAbs_Shape theContinuity = GeomAbs_C0) +{ + BRep_ListIteratorOfListOfCurveRepresentation itcr(lcr); + + Handle(BRep_GCurve) GC; + Standard_Real aFirst,aLast; + + Standard_Boolean rangeFound = Standard_False; + Standard_Boolean isModified = Standard_False; + + while (itcr.More()) + { + Handle(BRep_CurveRepresentation) cr = itcr.Value(); + GC = Handle(BRep_GCurve)::DownCast(cr); + + if ( !GC.IsNull() ) + { + GC->Range(aFirst, aLast); + + Standard_Boolean undefined = (Precision::IsPositiveInfinite(aLast) || + Precision::IsNegativeInfinite(aFirst)); + + if (!undefined) + { + rangeFound = Standard_True; + } + + Standard_Boolean cond = Standard_False; + cond = cond || GC->IsCurveOnSurface(oldSurf, oldL); + + if(!cond) + { + if(GC->IsCurveOnClosedSurface()) + { + Handle(BRep_CurveOnSurface) aCS = Handle(BRep_CurveOnSurface)::DownCast(GC); + cond = aCS->IsCurveOnSurface(oldSurf, oldL); + } + } + + if (cond) + { + lcr.Remove(itcr); + isModified = Standard_True; + } + else + { + itcr.Next(); + } + }//if ( !GC.IsNull() ) + else + { + if (cr->IsPolygonOnSurface(oldSurf, oldL)) + { + lcr.Remove(itcr); + isModified = Standard_True; + } + else + { + itcr.Next(); + } + } + } + + if ( !C1.IsNull() && !C2.IsNull() ) { + Handle(BRep_CurveOnClosedSurface) COS = + new BRep_CurveOnClosedSurface(C1,C2,newSurf,newL,theContinuity); + // test if there is already a range + if (rangeFound) { + COS->SetRange(aFirst,aLast); + } + lcr.Append(COS); + } +} + +//======================================================================= +//function : UpdateCurves +//purpose : Insert the pcurve on surface with +// location in the list of curve representations . +// Remove the pcurves on from if is null +//======================================================================= +static void UpdateCurves(BRep_ListOfCurveRepresentation& lcr, + const Handle(Geom2d_Curve)& C, + const Handle(Geom_Surface)& newSurf, + const TopLoc_Location& newL, + const Handle(Geom_Surface)& oldSurf, + const TopLoc_Location oldL) +{ + BRep_ListIteratorOfListOfCurveRepresentation itcr(lcr); + Handle(BRep_CurveRepresentation) cr; + Handle(BRep_GCurve) GC; + Standard_Real f,l; + Standard_Boolean rangeFound = Standard_False; + + // search the range of the 3d curve + // and remove any existing representation + + while (itcr.More()) { + GC = Handle(BRep_GCurve)::DownCast(itcr.Value()); + if (!GC.IsNull()) { + if (GC->IsCurve3D()) { + GC->Range(f, l); + Standard_Boolean undefined = (Precision::IsPositiveInfinite(l) || + Precision::IsNegativeInfinite(f)); + + if (!undefined) { + rangeFound = Standard_True; + } + } + if (GC->IsCurveOnSurface(oldSurf,oldL)) + { + GC->Range(f, l); + Standard_Boolean undefined = (Precision::IsPositiveInfinite(l) || + Precision::IsNegativeInfinite(f)); + + if (!undefined) + { + rangeFound = Standard_True; + } + + // remove existing curve on surface + // cr is used to keep a reference on the curve representation + // this avoid deleting it as its content may be referenced by C or S + cr = itcr.Value(); + lcr.Remove(itcr); + } + else { + itcr.Next(); + } + } + else { + itcr.Next(); + } + } + + if (! C.IsNull()) { + Handle(BRep_CurveOnSurface) COS = new BRep_CurveOnSurface(C,newSurf,newL); + // test if there is already a range + if (rangeFound) { + COS->SetRange(f,l); + } + lcr.Append(COS); + } +} + + static void UpdatePoints(BRep_ListOfPointRepresentation& lpr, Standard_Real p, const Handle(Geom_Curve)& C, @@ -578,6 +741,33 @@ void BRep_Builder::UpdateEdge(const TopoDS_Edge& E, TE->Modified(Standard_True); } +//======================================================================= +//function : UpdateEdge +//purpose : +//======================================================================= +void BRep_Builder::UpdateEdge(const TopoDS_Edge& E, + const Handle(Geom2d_Curve)& C, + const Handle(Geom_Surface)& newSurf, + const TopLoc_Location& newL, + const TopoDS_Face& theFace, + const Standard_Real Tol) const +{ + const Handle(BRep_TEdge)& TE = *((Handle(BRep_TEdge)*) &E.TShape()); + const TopLoc_Location l = newL.Predivided(E.Location()); + + const Handle(BRep_TFace)& TF = *((Handle(BRep_TFace)*) &theFace.TShape()); + const TopLoc_Location &L = theFace.Location() * TF->Location(); + const Handle(Geom_Surface) &S = TF->Surface(); + + //BRep_Tool::Degenerated(E); + + UpdateCurves(TE->ChangeCurves(), + C, newSurf, l, S, + L.Predivided(E.Location())); + + TE->UpdateTolerance(Tol); + TE->Modified(Standard_True); +} //======================================================================= //function : UpdateEdge @@ -612,12 +802,13 @@ void BRep_Builder::UpdateEdge(const TopoDS_Edge& E, const Handle(Geom2d_Curve)& C2, const Handle(Geom_Surface)& S, const TopLoc_Location& L, - const Standard_Real Tol) const + const Standard_Real Tol, + const GeomAbs_Shape theContinuity) const { const Handle(BRep_TEdge)& TE = *((Handle(BRep_TEdge)*) &E.TShape()); const TopLoc_Location l = L.Predivided(E.Location()); - UpdateCurves(TE->ChangeCurves(),C1,C2,S,l); + UpdateCurves(TE->ChangeCurves(),C1,C2,S,l,theContinuity); if (!C1.IsNull() && !C2.IsNull()) TE->Closed(C1->IsClosed() && C2->IsClosed()); @@ -899,6 +1090,36 @@ void BRep_Builder::UpdateEdge(const TopoDS_Edge& E, TE->Modified(Standard_True); } +//======================================================================= +//function : UpdateEdge +//purpose : +//======================================================================= +void BRep_Builder::UpdateEdge(const TopoDS_Edge& E, + const Handle(Geom2d_Curve)& C1, + const Handle(Geom2d_Curve)& C2, + const Handle(Geom_Surface)& newSurf, + const TopLoc_Location& newL, + const TopoDS_Face& theFace, + const Standard_Real Tol) const +{ + const Handle(BRep_TEdge)& TE = *((Handle(BRep_TEdge)*) &E.TShape()); + const TopLoc_Location l = newL.Predivided(E.Location()); + + const Handle(BRep_TFace)& TF = *((Handle(BRep_TFace)*) &theFace.TShape()); + const TopLoc_Location &L = theFace.Location() * TF->Location(); + const Handle(Geom_Surface) &S = TF->Surface(); + + + UpdateCurves(TE->ChangeCurves(), + C1,C2,newSurf,l,S, + L.Predivided(E.Location())); + + if (!C1.IsNull() && !C2.IsNull()) + TE->Closed(C1->IsClosed() && C2->IsClosed()); + + TE->UpdateTolerance(Tol); + TE->Modified(Standard_True); +} //======================================================================= //function : Continuity diff --git a/src/BRep/BRep_Builder.lxx b/src/BRep/BRep_Builder.lxx index dcb504ebb0..162a327a04 100755 --- a/src/BRep/BRep_Builder.lxx +++ b/src/BRep/BRep_Builder.lxx @@ -145,10 +145,11 @@ inline void BRep_Builder::UpdateEdge(const TopoDS_Edge& E, const Handle(Geom2d_Curve)& C1, const Handle(Geom2d_Curve)& C2, const TopoDS_Face& F, - const Standard_Real Tol) const + const Standard_Real Tol, + const GeomAbs_Shape theContinuity) const { TopLoc_Location l; - UpdateEdge(E,C1,C2,BRep_Tool::Surface(F,l),l,Tol); + UpdateEdge(E,C1,C2,BRep_Tool::Surface(F,l),l,Tol, theContinuity); } diff --git a/src/BRepCheck/BRepCheck.cdl b/src/BRepCheck/BRepCheck.cdl index 9928b17c7e..0a6e48cd5a 100755 --- a/src/BRepCheck/BRepCheck.cdl +++ b/src/BRepCheck/BRepCheck.cdl @@ -76,6 +76,7 @@ is FreeEdge, InvalidMultiConnexity, InvalidRange, + PCurveIsOutOfDomainFace, -- for wires @@ -85,6 +86,7 @@ is -- for faces NoSurface, + OutOfSurfaceBoundary, InvalidWire, RedundantWire, IntersectingWires, diff --git a/src/BRepCheck/BRepCheck.cxx b/src/BRepCheck/BRepCheck.cxx index 1eecf255d7..2229fd298f 100755 --- a/src/BRepCheck/BRepCheck.cxx +++ b/src/BRepCheck/BRepCheck.cxx @@ -181,7 +181,15 @@ void BRepCheck::Print(const BRepCheck_Status stat, case BRepCheck_CheckFail: OS << "BRepCheck_CheckFail\n"; break; + case BRepCheck_PCurveIsOutOfDomainFace: + OS << "BRepCheck_PCurveIsOutOfDomainFace\n"; + break; + case BRepCheck_OutOfSurfaceBoundary: + OS << "BRepCheck_OutOfSurfaceBoundary\n"; + break; + default: + OS << "BRepCheck::Print(...): Undefined status!\n"; break; } } diff --git a/src/BRepCheck/BRepCheck_Analyzer.cxx b/src/BRepCheck/BRepCheck_Analyzer.cxx index 3e13829679..436d3002ea 100755 --- a/src/BRepCheck/BRepCheck_Analyzer.cxx +++ b/src/BRepCheck/BRepCheck_Analyzer.cxx @@ -109,57 +109,64 @@ void BRepCheck_Analyzer::Put(const TopoDS_Shape& S, void BRepCheck_Analyzer::Perform(const TopoDS_Shape& S) { - for(TopoDS_Iterator theIterator(S);theIterator.More();theIterator.Next()) { + for(TopoDS_Iterator theIterator(S);theIterator.More();theIterator.Next()) Perform(theIterator.Value()); - } + // TopAbs_ShapeEnum styp; TopExp_Explorer exp; // styp = S.ShapeType(); - switch (styp) { - case TopAbs_VERTEX: + + switch (styp) + { + case TopAbs_VERTEX: // modified by NIZHNY-MKK Wed May 19 16:56:16 2004.BEGIN // There is no need to check anything. // if (myShape.IsSame(S)) { // myMap(S)->Blind(); // } // modified by NIZHNY-MKK Wed May 19 16:56:23 2004.END - + break; - case TopAbs_EDGE: { + case TopAbs_EDGE: + { // Modified by skv - Tue Apr 27 11:38:08 2004 Begin // There is no need to check anything except vertices on single edge. // if (myShape.IsSame(S)) { // myMap(S)->Blind(); // } // Modified by skv - Tue Apr 27 11:38:09 2004 End - TopTools_MapOfShape MapS; - - for (exp.Init(S,TopAbs_VERTEX);exp.More(); exp.Next()) { - const TopoDS_Shape& aVertex = exp.Current(); - try { - OCC_CATCH_SIGNALS - if (MapS.Add(aVertex)) { - myMap(aVertex)->InContext(S); - } - } - catch(Standard_Failure) { + + TopTools_MapOfShape MapS; + for (exp.Init(S,TopAbs_VERTEX);exp.More(); exp.Next()) + { + const TopoDS_Shape& aVertex = exp.Current(); + try + { + OCC_CATCH_SIGNALS + if (MapS.Add(aVertex)) + myMap(aVertex)->InContext(S); + } + catch(Standard_Failure) + { #ifdef DEB - cout<<"BRepCheck_Analyzer : "; - Standard_Failure::Caught()->Print(cout); - cout<Print(cout); + cout<SetFailStatus(S); - } - Handle(BRepCheck_Result) aRes = myMap(aVertex); - if ( ! aRes.IsNull() ) { - aRes->SetFailStatus(aVertex); - aRes->SetFailStatus(S); - } - } - } + if ( ! myMap(S).IsNull() ) + myMap(S)->SetFailStatus(S); + + Handle(BRepCheck_Result) aRes = myMap(aVertex); + + if ( ! aRes.IsNull() ) + { + aRes->SetFailStatus(aVertex); + aRes->SetFailStatus(S); + } + }//catch(Standard_Failure) + }//for (exp.Init(S,TopAbs_VERTEX);exp.More(); exp.Next()) } break; case TopAbs_WIRE: @@ -177,257 +184,234 @@ void BRepCheck_Analyzer::Perform(const TopoDS_Shape& S) case TopAbs_FACE: { TopTools_MapOfShape MapS; - for (exp.Init(S,TopAbs_VERTEX);exp.More(); exp.Next()) { - try { - OCC_CATCH_SIGNALS - if (MapS.Add(exp.Current())) { - myMap(exp.Current())->InContext(S); - } - } - catch(Standard_Failure) { + for (exp.Init(S,TopAbs_VERTEX);exp.More(); exp.Next()) + { + try + { + OCC_CATCH_SIGNALS + if (MapS.Add(exp.Current())) + myMap(exp.Current())->InContext(S); + } + catch(Standard_Failure) + { #ifdef DEB - cout<<"BRepCheck_Analyzer : "; - Standard_Failure::Caught()->Print(cout); - cout<Print(cout); + cout<SetFailStatus(S); - } - Handle(BRepCheck_Result) aRes = myMap(exp.Current()); + if ( ! myMap(S).IsNull() ) + myMap(S)->SetFailStatus(S); + + Handle(BRepCheck_Result) aRes = myMap(exp.Current()); + + if ( ! aRes.IsNull() ) + { + aRes->SetFailStatus(exp.Current()); + aRes->SetFailStatus(S); + } + }//catch(Standard_Failure) + }//for (exp.Init(S,TopAbs_VERTEX);exp.More(); exp.Next()) - if ( ! aRes.IsNull() ) { - aRes->SetFailStatus(exp.Current()); - aRes->SetFailStatus(S); - } - } - } Standard_Boolean performwire = Standard_True; + Standard_Boolean isFaceOutBoundary = Standard_False; + MapS.Clear(); - for (exp.Init(S,TopAbs_EDGE);exp.More(); exp.Next()) { - try { - OCC_CATCH_SIGNALS - if (MapS.Add(exp.Current())) { - Handle(BRepCheck_Result)& res = myMap(exp.Current()); - res->InContext(S); - if (performwire) { - for (res->InitContextIterator(); - res->MoreShapeInContext(); - res->NextShapeInContext()) { - if(res->ContextualShape().IsSame(S)) { - break; - } - } - BRepCheck_ListIteratorOfListOfStatus itl(res->StatusOnShape()); - for (; itl.More(); itl.Next()) { - BRepCheck_Status ste = itl.Value(); - if (ste == BRepCheck_NoCurveOnSurface || - ste == BRepCheck_InvalidCurveOnSurface || - ste == BRepCheck_InvalidRange || - ste == BRepCheck_InvalidCurveOnClosedSurface) { - performwire = Standard_False; - break; - } - } - } - } - } - catch(Standard_Failure) { + for (exp.Init(S,TopAbs_EDGE);exp.More(); exp.Next()) + { + try + { + OCC_CATCH_SIGNALS + if (MapS.Add(exp.Current())) + { + Handle(BRepCheck_Result)& res = myMap(exp.Current()); + res->InContext(S); + if (performwire) + { + for (res->InitContextIterator(); + res->MoreShapeInContext(); + res->NextShapeInContext()) + { + if(res->ContextualShape().IsSame(S)) + break; + } + + BRepCheck_ListIteratorOfListOfStatus itl(res->StatusOnShape()); + for (; itl.More(); itl.Next()) + { + BRepCheck_Status ste = itl.Value(); + if (ste == BRepCheck_NoCurveOnSurface || + ste == BRepCheck_InvalidCurveOnSurface || + ste == BRepCheck_InvalidRange || + ste == BRepCheck_InvalidCurveOnClosedSurface) + { + performwire = Standard_False; + break; + } + + if(ste == BRepCheck_PCurveIsOutOfDomainFace) + { + isFaceOutBoundary = Standard_True; + break; + } + }//for (; itl.More(); itl.Next()) + }//if (performwire) + }//if (MapS.Add(exp.Current())) + } + catch(Standard_Failure) + { #ifdef DEB - cout<<"BRepCheck_Analyzer : "; - Standard_Failure::Caught()->Print(cout); - cout<Print(cout); + cout<SetFailStatus(S); + + Handle(BRepCheck_Result) aRes = myMap(exp.Current()); - if ( ! myMap(S).IsNull() ) { - myMap(S)->SetFailStatus(S); - } - Handle(BRepCheck_Result) aRes = myMap(exp.Current()); + if ( ! aRes.IsNull() ) + { + aRes->SetFailStatus(exp.Current()); + aRes->SetFailStatus(S); + } + }//catch(Standard_Failure) + }//for (exp.Init(S,TopAbs_EDGE);exp.More(); exp.Next()) - if ( ! aRes.IsNull() ) { - aRes->SetFailStatus(exp.Current()); - aRes->SetFailStatus(S); - } - } - } Standard_Boolean orientofwires = performwire; - for (exp.Init(S,TopAbs_WIRE);exp.More(); exp.Next()) { - try { - OCC_CATCH_SIGNALS - Handle(BRepCheck_Result)& res = myMap(exp.Current()); - res->InContext(S); - if (orientofwires) { - for (res->InitContextIterator(); - res->MoreShapeInContext(); - res->NextShapeInContext()) { - if(res->ContextualShape().IsSame(S)) { - break; - } - } - BRepCheck_ListIteratorOfListOfStatus itl(res->StatusOnShape()); - for (; itl.More(); itl.Next()) { - BRepCheck_Status ste = itl.Value(); - if (ste != BRepCheck_NoError) { - orientofwires = Standard_False; - break; - } - } - } - } - catch(Standard_Failure) { -#ifdef DEB - cout<<"BRepCheck_Analyzer : "; - Standard_Failure::Caught()->Print(cout); - cout<SetFailStatus(S); - } - Handle(BRepCheck_Result) aRes = myMap(exp.Current()); + for (exp.Init(S,TopAbs_WIRE);exp.More(); exp.Next()) + { + try + { + OCC_CATCH_SIGNALS + Handle(BRepCheck_Result)& res = myMap(exp.Current()); + res->InContext(S); + if (orientofwires) + { + for (res->InitContextIterator(); + res->MoreShapeInContext(); + res->NextShapeInContext()) + { + if(res->ContextualShape().IsSame(S)) + break; + } - if ( ! aRes.IsNull() ) { - aRes->SetFailStatus(exp.Current()); - aRes->SetFailStatus(S); - } - } - } - - try { + BRepCheck_ListIteratorOfListOfStatus itl(res->StatusOnShape()); + for (; itl.More(); itl.Next()) + { + BRepCheck_Status ste = itl.Value(); + if (ste != BRepCheck_NoError) + { + orientofwires = Standard_False; + break; + } + } + }//if (orientofwires) + } + catch(Standard_Failure) + { +#ifdef DEB + cout<<"BRepCheck_Analyzer : "; + Standard_Failure::Caught()->Print(cout); + cout<SetFailStatus(S); + + Handle(BRepCheck_Result) aRes = myMap(exp.Current()); + + if ( ! aRes.IsNull() ) + { + aRes->SetFailStatus(exp.Current()); + aRes->SetFailStatus(S); + } + } + }//for (exp.Init(S,TopAbs_WIRE);exp.More(); exp.Next()) + + try + { OCC_CATCH_SIGNALS - if (performwire) { - if (orientofwires) { - Handle(BRepCheck_Face)::DownCast(myMap(S))-> - OrientationOfWires(Standard_True);// on enregistre - } - // else { - // Handle(BRepCheck_Face)::DownCast(myMap(S))-> - // IntersectWires(Standard_True); // on enregistre - // } - else { - Handle(BRepCheck_Face)::DownCast(myMap(S))->SetUnorientable(); - } - } - else { - Handle(BRepCheck_Face)::DownCast(myMap(S))->SetUnorientable(); - } + if (performwire) + { + if (isFaceOutBoundary) + Handle(BRepCheck_Face)::DownCast(myMap(S))-> + SetStatus(BRepCheck_OutOfSurfaceBoundary); + else if (orientofwires) + Handle(BRepCheck_Face)::DownCast(myMap(S))-> + OrientationOfWires(Standard_True);// on enregistre + else + Handle(BRepCheck_Face)::DownCast(myMap(S))-> + SetUnorientable(); + }//if (performwire) + else + Handle(BRepCheck_Face)::DownCast(myMap(S))-> + SetUnorientable(); } - catch(Standard_Failure) { + catch(Standard_Failure) + { #ifdef DEB - cout<<"BRepCheck_Analyzer : "; - Standard_Failure::Caught()->Print(cout); - cout<Print(cout); + cout<SetFailStatus(S); - } - - for (exp.Init(S,TopAbs_WIRE);exp.More(); exp.Next()) { - Handle(BRepCheck_Result) aRes = myMap(exp.Current()); + if ( ! myMap(S).IsNull() ) + { + myMap(S)->SetFailStatus(S); + } - if ( ! aRes.IsNull() ) { - aRes->SetFailStatus(exp.Current()); - aRes->SetFailStatus(S); - myMap(S)->SetFailStatus(exp.Current()); - } - } - } + for (exp.Init(S,TopAbs_WIRE);exp.More(); exp.Next()) + { + Handle(BRepCheck_Result) aRes = myMap(exp.Current()); + + if ( ! aRes.IsNull() ) + { + aRes->SetFailStatus(exp.Current()); + aRes->SetFailStatus(S); + myMap(S)->SetFailStatus(exp.Current()); + } + }//for (exp.Init(S,TopAbs_WIRE);exp.More(); exp.Next()) + }//catch(Standard_Failure) } break; - - case TopAbs_SHELL: + case TopAbs_SHELL: //modified by NIZNHY-PKV Mon Oct 13 14:23:53 2008f - /* { - Standard_Boolean VerifyOrientation, bFlag; - // - VerifyOrientation = Standard_True; - // - exp.Init(S,TopAbs_FACE); - for (; exp.More(); exp.Next()) { - const TopoDS_Shape& aF=exp.Current(); - try { - OCC_CATCH_SIGNALS - bFlag= !(Handle(BRepCheck_Face)::DownCast(myMap(aF))->IsUnorientable()); - VerifyOrientation = (VerifyOrientation && bFlag); - } - catch(Standard_Failure) { -#ifdef DEB - cout<<"BRepCheck_Analyzer : "; - Standard_Failure::Caught()->Print(cout); - cout<SetFailStatus(S); - } - Handle(BRepCheck_Result) aRes = myMap(exp.Current()); - - if ( ! aRes.IsNull() ) { - aRes->SetFailStatus(exp.Current()); - aRes->SetFailStatus(S); - } - } - } // - try { - OCC_CATCH_SIGNALS - if (VerifyOrientation) { - Handle(BRepCheck_Shell)::DownCast(myMap(S))->Orientation(Standard_True); - } - else { - Handle(BRepCheck_Shell)::DownCast(myMap(S))->SetUnorientable(); - } - } - catch(Standard_Failure) { -#ifdef DEB - cout<<"BRepCheck_Analyzer : "; - Standard_Failure::Caught()->Print(cout); - cout<SetFailStatus(S); - } - exp.Init(S,TopAbs_FACE); - for (; exp.More(); exp.Next()) { - Handle(BRepCheck_Result) aRes = myMap(exp.Current()); - if ( ! aRes.IsNull() ) { - aRes->SetFailStatus(exp.Current()); - aRes->SetFailStatus(S); - myMap(S)->SetFailStatus(exp.Current()); - } - } - } - } - */ //modified by NIZNHY-PKV Mon Oct 13 14:24:04 2008t break; - // - case TopAbs_SOLID: { - exp.Init(S,TopAbs_SHELL); - for (; exp.More(); exp.Next()) { - const TopoDS_Shape& aShell=exp.Current(); - try { - OCC_CATCH_SIGNALS - myMap(aShell)->InContext(S); - } - catch(Standard_Failure) { + + case TopAbs_SOLID: + { + exp.Init(S,TopAbs_SHELL); + for (; exp.More(); exp.Next()) + { + const TopoDS_Shape& aShell=exp.Current(); + try + { + OCC_CATCH_SIGNALS + myMap(aShell)->InContext(S); + } + catch(Standard_Failure) + { #ifdef DEB - cout<<"BRepCheck_Analyzer : "; - Standard_Failure::Caught()->Print(cout); - cout<Print(cout); + cout<SetFailStatus(S); - } - // - Handle(BRepCheck_Result) aRes = myMap(aShell); - if (!aRes.IsNull() ) { - aRes->SetFailStatus(exp.Current()); - aRes->SetFailStatus(S); - } - } + if ( ! myMap(S).IsNull() ) + { + myMap(S)->SetFailStatus(S); + } + + // + Handle(BRepCheck_Result) aRes = myMap(aShell); + if (!aRes.IsNull() ) + { + aRes->SetFailStatus(exp.Current()); + aRes->SetFailStatus(S); + } + }//catch(Standard_Failure) + }//for (; exp.More(); exp.Next()) } - } - break;//case TopAbs_SOLID + break;//case TopAbs_SOLID default: break; }//switch (styp) { diff --git a/src/BRepCheck/BRepCheck_Edge.cxx b/src/BRepCheck/BRepCheck_Edge.cxx index efe5ace99e..b937d5edf9 100755 --- a/src/BRepCheck/BRepCheck_Edge.cxx +++ b/src/BRepCheck/BRepCheck_Edge.cxx @@ -64,12 +64,14 @@ #include -//modified by NIZNHY-PKV Thu May 05 09:01:57 2011f static - Standard_Boolean Validate(const Adaptor3d_Curve&, - const Adaptor3d_CurveOnSurface&, - const Standard_Real, - const Standard_Boolean); + BRepCheck_Status Validate(const Adaptor3d_Curve&, + const Adaptor3d_CurveOnSurface&, + const Standard_Real, + const Standard_Boolean, + const Standard_Boolean theSurfIsUPeriodic, + const Standard_Boolean theSurfIsVPeriodic); + static void PrintProblematicPoint(const gp_Pnt&, const Standard_Real, @@ -83,13 +85,9 @@ static static Standard_Real PrecSurface(const Adaptor3d_CurveOnSurface& aACS); -//static Standard_Boolean Validate(const Adaptor3d_Curve&, -// const Adaptor3d_Curve&, -// const Standard_Real, -// const Standard_Boolean); //modified by NIZNHY-PKV Thu May 05 09:02:01 2011t -#define NCONTROL 23 +static const Standard_Integer aNbControl = 23; //======================================================================= //function : BRepCheck_Edge @@ -219,9 +217,9 @@ void BRepCheck_Edge::Minimum() void BRepCheck_Edge::InContext(const TopoDS_Shape& S) { - if (myMap.IsBound(S)) { + if (myMap.IsBound(S)) return; - } + BRepCheck_ListOfStatus thelist; myMap.Bind(S, thelist); BRepCheck_ListOfStatus& lst = myMap(S); @@ -230,191 +228,238 @@ void BRepCheck_Edge::InContext(const TopoDS_Shape& S) Standard_Real Tol = BRep_Tool::Tolerance(TopoDS::Edge(myShape)); TopAbs_ShapeEnum styp = S.ShapeType(); -// for (TopExp_Explorer exp(S,TopAbs_EDGE); exp.More(); exp.Next()) { TopExp_Explorer exp(S,TopAbs_EDGE) ; - for ( ; exp.More(); exp.Next()) { - if (exp.Current().IsSame(myShape)) { + for ( ; exp.More(); exp.Next()) + { + if (exp.Current().IsSame(myShape)) break; - } } - if (!exp.More()) { + + if (!exp.More()) + { BRepCheck::Add(lst,BRepCheck_SubshapeNotInShape); return; } - - switch (styp) { - case TopAbs_FACE: - if (!myCref.IsNull()) { - - Standard_Boolean SameParameter = TE->SameParameter(); - Standard_Boolean SameRange = TE->SameRange(); -// Modified by skv - Tue Apr 27 11:48:13 2004 Begin - if (!SameParameter || !SameRange) { - if (!SameParameter) - BRepCheck::Add(lst,BRepCheck_InvalidSameParameterFlag); - if (!SameRange) - BRepCheck::Add(lst,BRepCheck_InvalidSameRangeFlag); - return; - } -// Modified by skv - Tue Apr 27 11:48:14 2004 End - Standard_Real First = myHCurve->FirstParameter(); - Standard_Real Last = myHCurve->LastParameter(); + switch (styp) + { + case TopAbs_FACE: + if (myCref.IsNull()) + break; - Handle(BRep_TFace)& TF = *((Handle(BRep_TFace)*) &S.TShape()); - const TopLoc_Location& Floc = S.Location(); - const TopLoc_Location& TFloc = TF->Location(); - const Handle(Geom_Surface)& Su = TF->Surface(); - TopLoc_Location L = (Floc * TFloc).Predivided(myShape.Location()); - Standard_Boolean pcurvefound = Standard_False; + { + Standard_Boolean SameParameter = TE->SameParameter(); + Standard_Boolean SameRange = TE->SameRange(); - BRep_ListIteratorOfListOfCurveRepresentation itcr(TE->Curves()); - while (itcr.More()) { - const Handle(BRep_CurveRepresentation)& cr = itcr.Value(); - if (cr != myCref && cr->IsCurveOnSurface(Su,L)) { - pcurvefound = Standard_True; - const Handle(BRep_GCurve)& GC = *((Handle(BRep_GCurve)*)&cr); - Standard_Real f,l; - GC->Range(f,l); - // gka OCC -// Modified by skv - Tue Apr 27 11:50:35 2004 Begin -// if (SameRange && (fabs(f-First) > Precision::PConfusion() || fabs(l-Last)> Precision::PConfusion())) { //f != First || l != Last)) { gka OCC - if (fabs(f-First) > Precision::PConfusion() || - fabs(l-Last) > Precision::PConfusion()) { - BRepCheck::Add(lst,BRepCheck_InvalidSameRangeFlag); - BRepCheck::Add(lst,BRepCheck_InvalidSameParameterFlag); -// if (SameParameter) { -// BRepCheck::Add(lst,BRepCheck_InvalidSameParameterFlag); -// } - } -// Modified by skv - Tue Apr 27 11:50:37 2004 End - if (myGctrl) { - Handle(Geom_Surface) Sb = cr->Surface(); - Sb = Handle(Geom_Surface)::DownCast -// (Su->Transformed(L.Transformation())); - (Su->Transformed(/*L*/(Floc * TFloc).Transformation())); - Handle(Geom2d_Curve) PC = cr->PCurve(); - Handle(GeomAdaptor_HSurface) GAHS = new GeomAdaptor_HSurface(Sb); - Handle(Geom2dAdaptor_HCurve) GHPC = new Geom2dAdaptor_HCurve(PC,f,l); - Adaptor3d_CurveOnSurface ACS(GHPC,GAHS); - Standard_Boolean ok = - Validate(myHCurve->Curve(),ACS,Tol,SameParameter); - if (!ok) { - if (cr->IsCurveOnClosedSurface()) { - BRepCheck::Add(lst,BRepCheck_InvalidCurveOnClosedSurface); - } - else { - BRepCheck::Add(lst,BRepCheck_InvalidCurveOnSurface); - } -// Modified by skv - Tue Apr 27 11:53:00 2004 Begin - BRepCheck::Add(lst,BRepCheck_InvalidSameParameterFlag); -// if (SameParameter) { -// BRepCheck::Add(lst,BRepCheck_InvalidSameParameterFlag); -// } -// Modified by skv - Tue Apr 27 11:53:01 2004 End - } - if (cr->IsCurveOnClosedSurface()) { - GHPC->ChangeCurve2d().Load(cr->PCurve2(),f,l); // same bounds - ACS.Load(GAHS); // sans doute inutile - ACS.Load(GHPC); // meme remarque... - ok = Validate(myHCurve->Curve(),ACS,Tol,SameParameter); - if (!ok) { - BRepCheck::Add(lst,BRepCheck_InvalidCurveOnClosedSurface); -// Modified by skv - Tue Apr 27 11:53:20 2004 Begin - if (SameParameter) { - BRepCheck::Add(lst,BRepCheck_InvalidSameParameterFlag); - } -// Modified by skv - Tue Apr 27 11:53:23 2004 End - } - } - } - } - itcr.Next(); - } + if (!SameParameter || !SameRange) + { + if (!SameParameter) + BRepCheck::Add(lst,BRepCheck_InvalidSameParameterFlag); - if (!pcurvefound) { - Handle(Geom_Plane) P; - Handle(Standard_Type) dtyp = Su->DynamicType(); - if (dtyp == STANDARD_TYPE(Geom_RectangularTrimmedSurface)) { - P = Handle(Geom_Plane)::DownCast - (Handle(Geom_RectangularTrimmedSurface):: - DownCast(Su)->BasisSurface()); - } - else { - P = Handle(Geom_Plane)::DownCast(Su); - } - if (P.IsNull()) { // not a plane - BRepCheck::Add(lst,BRepCheck_NoCurveOnSurface); - } - else { // on fait la projection a la volee, comme BRep_Tool - // plan en position - if (myGctrl) { - P = Handle(Geom_Plane):: - DownCast(P->Transformed(/*L*/(Floc * TFloc).Transformation()));// eap occ332 - //on projette Cref sur ce plan - Handle(GeomAdaptor_HSurface) GAHS = new GeomAdaptor_HSurface(P); + if (!SameRange) + BRepCheck::Add(lst,BRepCheck_InvalidSameRangeFlag); - // Dub - Normalement myHCurve est une GeomAdaptor_HCurve - GeomAdaptor_Curve& Gac = - Handle(GeomAdaptor_HCurve)::DownCast(myHCurve)->ChangeCurve(); - Handle(Geom_Curve) C3d = Gac.Curve(); - Handle(Geom_Curve) ProjOnPlane = - GeomProjLib::ProjectOnPlane(new Geom_TrimmedCurve(C3d,First,Last), - P, P->Position().Direction(), - Standard_True); - Handle(GeomAdaptor_HCurve) aHCurve = - new GeomAdaptor_HCurve(ProjOnPlane); + return; + }//if (!SameParameter || !SameRange) - ProjLib_ProjectedCurve proj(GAHS,aHCurve); - Handle(Geom2d_Curve) PC = Geom2dAdaptor::MakeCurve(proj); - Handle(Geom2dAdaptor_HCurve) GHPC = - new Geom2dAdaptor_HCurve(PC, - myHCurve->FirstParameter(), - myHCurve->LastParameter()); + const Standard_Real First = myHCurve->FirstParameter(); + const Standard_Real Last = myHCurve->LastParameter(); - Adaptor3d_CurveOnSurface ACS(GHPC,GAHS); - - Standard_Boolean ok = Validate(myHCurve->Curve(),ACS, - Tol,Standard_True); // voir dub... - if (!ok) { - BRepCheck::Add(lst,BRepCheck_InvalidCurveOnSurface); - } - } - } + Handle(BRep_TFace)& TF = *((Handle(BRep_TFace)*) &S.TShape()); + const TopLoc_Location& Floc = S.Location(); + const TopLoc_Location& TFloc = TF->Location(); + const Handle(Geom_Surface)& Su = TF->Surface(); + TopLoc_Location L = (Floc * TFloc).Predivided(myShape.Location()); + Standard_Boolean pcurvefound = Standard_False; + + BRep_ListIteratorOfListOfCurveRepresentation itcr(TE->Curves()); + + while (itcr.More()) + { + const Handle(BRep_CurveRepresentation)& cr = itcr.Value(); + if (cr != myCref && cr->IsCurveOnSurface(Su,L)) + { + pcurvefound = Standard_True; + const Handle(BRep_GCurve)& GC = *((Handle(BRep_GCurve)*)&cr); + Standard_Real f,l; + GC->Range(f,l); + + if (fabs(f-First) > Precision::PConfusion() || + fabs(l-Last) > Precision::PConfusion()) + { + BRepCheck::Add(lst,BRepCheck_InvalidSameRangeFlag); + BRepCheck::Add(lst,BRepCheck_InvalidSameParameterFlag); + } + + if (myGctrl) + { + Handle(Geom_Surface) Sb = cr->Surface(); + { + Standard_Real U1Su, U2Su, V1Su, V2Su; + Standard_Real U1Sb, U2Sb, V1Sb, V2Sb; + + Standard_Boolean isTrimU, isTrimV; + if(Su->DynamicType() == STANDARD_TYPE(Geom_RectangularTrimmedSurface)) + { + Handle(Geom_RectangularTrimmedSurface) TS = + Handle(Geom_RectangularTrimmedSurface)::DownCast(Su); + + TS->GetTrimmedFlags(isTrimU, isTrimV); + } + + Su->Bounds(U1Su, U2Su, V1Su, V2Su); + Sb = Handle(Geom_Surface)::DownCast + (Su->Transformed((Floc * TFloc).Transformation())); + + Sb->Bounds(U1Sb, U2Sb, V1Sb, V2Sb); + Standard_Boolean isUtr = ((Abs(U1Su - U1Sb) + Abs(U2Su - U2Sb)) > Precision::PConfusion()), + isVtr = ((Abs(V1Su - V1Sb) + Abs(V2Su - V2Sb)) > Precision::PConfusion()); + + if(isUtr || isVtr) + { + Handle(Geom_Surface) St = Handle(Geom_RectangularTrimmedSurface)::DownCast(Sb)->BasisSurface(); + Sb = new Geom_RectangularTrimmedSurface(St, isTrimU || isUtr, isVtr || isTrimV, U1Su, U2Su, V1Su, V2Su); + } + } + + Handle(Geom2d_Curve) PC = cr->PCurve(); + Handle(GeomAdaptor_HSurface) GAHS = new GeomAdaptor_HSurface(Sb); + Handle(Geom2dAdaptor_HCurve) GHPC = new Geom2dAdaptor_HCurve(PC,f,l); + Adaptor3d_CurveOnSurface ACS(GHPC,GAHS); + BRepCheck_Status aStatus = Validate(myHCurve->Curve(),ACS,Tol,SameParameter, + Sb->IsUPeriodic(),Sb->IsVPeriodic()); + + if(aStatus == BRepCheck_PCurveIsOutOfDomainFace) + BRepCheck::Add(lst,BRepCheck_PCurveIsOutOfDomainFace); + else if(aStatus == BRepCheck_InvalidCurveOnSurface) + { + if (cr->IsCurveOnClosedSurface()) + BRepCheck::Add(lst,BRepCheck_InvalidCurveOnClosedSurface); + else + BRepCheck::Add(lst,BRepCheck_InvalidCurveOnSurface); + + BRepCheck::Add(lst,BRepCheck_InvalidSameParameterFlag); + } + else if(aStatus != BRepCheck_NoError) + BRepCheck::Add(lst,aStatus); + + if (cr->IsCurveOnClosedSurface()) + { + GHPC->ChangeCurve2d().Load(cr->PCurve2(),f,l); // same bounds + ACS.Load(GAHS); // sans doute inutile + ACS.Load(GHPC); // meme remarque... + aStatus = Validate(myHCurve->Curve(),ACS,Tol,SameParameter, + Sb->IsUPeriodic(),Sb->IsVPeriodic()); + + if(aStatus == BRepCheck_PCurveIsOutOfDomainFace) + BRepCheck::Add(lst,BRepCheck_PCurveIsOutOfDomainFace); + else if(aStatus == BRepCheck_InvalidCurveOnSurface) + { + BRepCheck::Add(lst,BRepCheck_InvalidCurveOnClosedSurface); + if (SameParameter) + BRepCheck::Add(lst,BRepCheck_InvalidSameParameterFlag); + } + else if(aStatus != BRepCheck_NoError) + BRepCheck::Add(lst,aStatus); + }//if (cr->IsCurveOnClosedSurface()) + }//if (myGctrl) + }//if (cr != myCref && cr->IsCurveOnSurface(Su,L)) + itcr.Next(); + }//while (itcr.More()) + + if (!pcurvefound) + { + Handle(Geom_Plane) P; + Handle(Standard_Type) dtyp = Su->DynamicType(); + if (dtyp == STANDARD_TYPE(Geom_RectangularTrimmedSurface)) + { + P = Handle(Geom_Plane)::DownCast + (Handle(Geom_RectangularTrimmedSurface):: + DownCast(Su)->BasisSurface()); + } + else + P = Handle(Geom_Plane)::DownCast(Su); + + if (P.IsNull()) // not a plane + BRepCheck::Add(lst,BRepCheck_NoCurveOnSurface); + else + { + // on fait la projection a la volee, comme BRep_Tool plan en position + if (myGctrl) + { + P = Handle(Geom_Plane)::DownCast( + P->Transformed((Floc * TFloc).Transformation()));// eap occ332 + + //on projette Cref sur ce plan + Handle(GeomAdaptor_HSurface) GAHS = new GeomAdaptor_HSurface(P); + + // Dub - Normalement myHCurve est une GeomAdaptor_HCurve + GeomAdaptor_Curve& Gac = + Handle(GeomAdaptor_HCurve)::DownCast(myHCurve)->ChangeCurve(); + + Handle(Geom_Curve) C3d = Gac.Curve(); + Handle(Geom_Curve) ProjOnPlane = + GeomProjLib::ProjectOnPlane(new Geom_TrimmedCurve(C3d,First,Last), + P, P->Position().Direction(),Standard_True); + + Handle(GeomAdaptor_HCurve) aHCurve = + new GeomAdaptor_HCurve(ProjOnPlane); + + ProjLib_ProjectedCurve proj(GAHS,aHCurve); + Handle(Geom2d_Curve) PC = Geom2dAdaptor::MakeCurve(proj); + Handle(Geom2dAdaptor_HCurve) GHPC = new Geom2dAdaptor_HCurve(PC, + myHCurve->FirstParameter(), + myHCurve->LastParameter()); + + Adaptor3d_CurveOnSurface ACS(GHPC,GAHS); + + BRepCheck_Status aStatus = Validate(myHCurve->Curve(),ACS,Tol, + Standard_True, P->IsUPeriodic(),P->IsVPeriodic()); // voir dub... + + if (aStatus != BRepCheck_NoError) + BRepCheck::Add(lst,aStatus); + }//if (myGctrl) + }//else of "if (P.IsNull())" condition + }//if (!pcurvefound) + + break; } - } - break; - case TopAbs_SOLID: - { - // on verifie que l`edge est bien connectee 2 fois (pas de bord libre) - Standard_Integer nbconnection = 0; - //TopExp_Explorer exp; - for (exp.Init(S,TopAbs_FACE); exp.More(); exp.Next()) { - const TopoDS_Face& fac = TopoDS::Face(exp.Current()); - TopExp_Explorer exp2; - for (exp2.Init(fac,TopAbs_EDGE); exp2.More(); exp2.Next()) { - if (exp2.Current().IsSame(myShape)) { - nbconnection++; - } - } + case TopAbs_SOLID: + { + // on verifie que l`edge est bien connectee 2 fois (pas de bord libre) + Standard_Integer nbconnection = 0; + + //TopExp_Explorer exp; + for (exp.Init(S,TopAbs_FACE); exp.More(); exp.Next()) + { + const TopoDS_Face& fac = TopoDS::Face(exp.Current()); + TopExp_Explorer exp2; + + for (exp2.Init(fac,TopAbs_EDGE); exp2.More(); exp2.Next()) + { + if (exp2.Current().IsSame(myShape)) + nbconnection++; + }//for (exp2.Init(fac,TopAbs_EDGE); exp2.More(); exp2.Next()) + }//for (exp.Init(S,TopAbs_FACE); exp.More(); exp.Next()) + + if (nbconnection < 2 && !TE->Degenerated()) + BRepCheck::Add(myMap(S),BRepCheck_FreeEdge); + else if (nbconnection > 2) + { + BRepCheck::Add(myMap(S),BRepCheck_InvalidMultiConnexity); + } + else + BRepCheck::Add(myMap(S),BRepCheck_NoError); + } - if (nbconnection < 2 && !TE->Degenerated()) { - BRepCheck::Add(myMap(S),BRepCheck_FreeEdge); - } - else if (nbconnection > 2) { - BRepCheck::Add(myMap(S),BRepCheck_InvalidMultiConnexity); - } - else { - BRepCheck::Add(myMap(S),BRepCheck_NoError); - } - } - break; - default: - break; - } - if (myMap(S).IsEmpty()) { + break; + + default: + break; + }//switch (styp) + + if (myMap(S).IsEmpty()) myMap(S).Append(BRepCheck_NoError); - } } @@ -536,8 +581,8 @@ Standard_Real BRepCheck_Edge::Tolerance() Standard_Real dist2, tol2, tolCal=0., prm; gp_Pnt center, othP; Standard_Integer i, imax; - for (i= 0; i< NCONTROL; i++) { - prm = ((NCONTROL-1-i)*First + i*Last)/(NCONTROL-1); + for (i= 0; i< aNbControl; i++) { + prm = ((aNbControl-1-i)*First + i*Last)/(aNbControl-1); tol2=dist2=0.; center=(*(Handle(Adaptor3d_HCurve)*)&theRep(1))->Value(prm); for (iRep=2; iRep<=nbRep; iRep++) { @@ -556,132 +601,224 @@ Standard_Real BRepCheck_Edge::Tolerance() //======================================================================= //function : Validate -//purpose : +//purpose : +//Remark : If the original surface is not periodic in U or V direction +// (for example, rectangular trimmed on periodic surface), +// the surface that contains +// can be periodic. +// To use true values of flags, the parameters +// and have been added. //======================================================================= -Standard_Boolean Validate(const Adaptor3d_Curve& CRef, - const Adaptor3d_CurveOnSurface& Other, - const Standard_Real Tol, - const Standard_Boolean SameParameter) -{ - Standard_Boolean Status, proj; +BRepCheck_Status Validate (const Adaptor3d_Curve& CRef, + const Adaptor3d_CurveOnSurface& Other, + const Standard_Real Tol, + const Standard_Boolean SameParameter, + const Standard_Boolean theSurfIsUPeriodic, + const Standard_Boolean theSurfIsVPeriodic) + { + BRepCheck_Status Status; + Standard_Boolean proj; Standard_Real aPC, First, Last, Error; gp_Pnt problematic_point ; + // - Status = Standard_True; + Status = BRepCheck_NoError; Error = 0.; First = CRef.FirstParameter(); Last = CRef.LastParameter(); // + aPC=Precision::PConfusion(); - proj = (!SameParameter || - fabs(Other.FirstParameter()-First) > aPC || - fabs( Other.LastParameter()-Last) > aPC); - if (!proj) { + proj = (!SameParameter || + fabs(Other.FirstParameter()-First) > aPC || + fabs( Other.LastParameter()-Last) > aPC); + + if (!proj) + { Standard_Integer i; Standard_Real Tol2, prm, dD; gp_Pnt pref, pother; + //modified by NIZNHY-PKV Thu May 05 09:06:41 2011f //OCC22428 dD=Prec(CRef, Other);//3.e-15; Tol2=Tol+dD; Tol2=Tol2*Tol2; + //Tol2=Tol*Tol; //modified by NIZNHY-PKV Thu May 05 09:06:47 2011t + + const Handle(Adaptor3d_HSurface) aHS = Other.GetSurface(); - for (i = 0; i< NCONTROL; ++i) { - prm = ((NCONTROL-1-i)*First + i*Last)/(NCONTROL-1); + Standard_Real uf = aHS->FirstUParameter (); + Standard_Real ul = aHS->LastUParameter (); + Standard_Real vf = aHS->FirstVParameter(); + Standard_Real vl = aHS->LastVParameter(); + + //(for Rectangular trimmed surface for example) + const Standard_Boolean isBaseSurfUPeriodic = aHS->IsUPeriodic(); + const Standard_Boolean isBaseSurfVPeriodic = aHS->IsVPeriodic(); + + const Standard_Boolean isUPeriodic = isBaseSurfUPeriodic || theSurfIsUPeriodic; + const Standard_Boolean isVPeriodic = isBaseSurfVPeriodic || theSurfIsVPeriodic; + + + const Standard_Real UResSt = aHS->UResolution(Max(Tol,1.0)); + const Standard_Real VResSt = aHS->VResolution(Max(Tol,1.0)); + + const Standard_Real + URes = isUPeriodic? Max(Precision::PConfusion(),aHS->UResolution(Tol)) : UResSt, + VRes = isVPeriodic? Max(Precision::PConfusion(),aHS->VResolution(Tol)) : VResSt; + + for (i = 0; i < aNbControl; ++i) + { + prm = ((aNbControl-1-i)*First + i*Last)/(aNbControl-1); pref = CRef.Value(prm); pother = Other.Value(prm); - if (pref.SquareDistance(pother) > Tol2) { - problematic_point = pref ; - Status = Standard_False; - Error = pref.Distance(pother); - PrintProblematicPoint(problematic_point, Error, Tol); - return Status; + + if (pref.SquareDistance(pother) > Tol2) + { + problematic_point = pref ; + Status = BRepCheck_InvalidCurveOnSurface; + Error = pref.Distance(pother); + PrintProblematicPoint(problematic_point, Error, Tol); + return Status; //goto FINISH ; } - } + + gp_Pnt2d CP = Other.GetCurve()->Value(prm); + + Standard_Boolean isUbound = ( (uf-URes <= CP.X()) && + (CP.X() <= ul+URes)); + Standard_Boolean isVbound = ( (vf-VRes <= CP.Y()) && + (CP.Y() <= vl+VRes)); + + //Point CP is in surface boundary. + if(isUbound && isVbound) + continue; + +#ifdef DEB + if(!isUbound) + { + cout << endl << "++++\nFunction Validate(...); file: " + "BRepCheck_Edge.cxx" << endl; + if(isUPeriodic) + cout << "(U-periodic)" << endl; + + cout << "Point #"<< i << "(prm = " << prm << "): (" << + CP.X() << "; " << CP.Y() <<")." << endl; + cout << "u = (" << uf << ")...(" << ul << "). " + "Delta = " << Max(uf - CP.X(),CP.X()-ul) << + " Tol3D = " << Tol <<". URes = " << URes << "\n-----"<< endl; + } + + if(!isVbound) + { + cout << endl << "++++\nFunction Validate(...); file: " + "BRepCheck_Edge.cxx" << endl; + if(isVPeriodic) + cout << "(V-periodic)" << endl; + + cout << "Point #"<< i << "(prm = " << prm << "): (" << + CP.X() << "; " << CP.Y() <<")." << endl; + cout << "v = (" << vf << ")...(" << vl << "). " + "Delta = " << Max(vf - CP.Y(),CP.Y()-vl) << + " Tol3D = " << Tol <<". VRes = " << VRes << "\n-----"<< endl; } - else { +#endif + + Status = BRepCheck_PCurveIsOutOfDomainFace; + return Status; + }//for (i = 0; i< NCONTROL; ++i) + }//if (!proj) + else + { Extrema_LocateExtPC refd,otherd; Standard_Real OFirst = Other.FirstParameter(); Standard_Real OLast = Other.LastParameter(); gp_Pnt pd = CRef.Value(First); gp_Pnt pdo = Other.Value(OFirst); Standard_Real distt = pd.SquareDistance(pdo); - if (distt > Tol*Tol) { + + if (distt > Tol*Tol) + { problematic_point = pd ; - Status = Standard_False ; + Status = BRepCheck_InvalidCurveOnSurface ; Error = Sqrt(distt); PrintProblematicPoint(problematic_point, Error, Tol); return Status; //goto FINISH ; - } + } + pd = CRef.Value(Last); pdo = Other.Value(OLast); distt = pd.SquareDistance(pdo); - if (distt > Tol*Tol) { + + if (distt > Tol*Tol) + { problematic_point = pd ; - Status = Standard_False ; + Status = BRepCheck_InvalidCurveOnSurface ; Error = Sqrt(distt); PrintProblematicPoint(problematic_point, Error, Tol); return Status; //goto FINISH ; - } + } refd.Initialize(CRef,First,Last,CRef.Resolution(Tol)); otherd.Initialize(Other,OFirst,OLast,Other.Resolution(Tol)); - for (Standard_Integer i = 2; i< NCONTROL-1; i++) { - Standard_Real rprm = ((NCONTROL-1-i)*First + i*Last)/(NCONTROL-1); + + for (Standard_Integer i = 2; i< aNbControl-1; i++) + { + Standard_Real rprm = ((aNbControl-1-i)*First + i*Last)/(aNbControl-1); gp_Pnt pref = CRef.Value(rprm); - Standard_Real oprm = ((NCONTROL-1-i)*OFirst + i*OLast)/(NCONTROL-1); + Standard_Real oprm = ((aNbControl-1-i)*OFirst + i*OLast)/(aNbControl-1); gp_Pnt pother = Other.Value(oprm); refd.Perform(pother,rprm); - if (!refd.IsDone() || refd.SquareDistance() > Tol * Tol) { - problematic_point = pref ; - Status = Standard_False ; - if (refd.IsDone()) { - Error = sqrt (refd.SquareDistance()); - } - else { - Error = RealLast(); - } - PrintProblematicPoint(problematic_point, Error, Tol); - return Status; + + if (!refd.IsDone() || refd.SquareDistance() > Tol * Tol) + { + problematic_point = pref ; + Status = BRepCheck_InvalidCurveOnSurface ; + + if (refd.IsDone()) + { + Error = sqrt (refd.SquareDistance()); + } + else + { + Error = RealLast(); + } + + PrintProblematicPoint(problematic_point, Error, Tol); + return Status; //goto FINISH ; - } + } + otherd.Perform(pref,oprm); - if (!otherd.IsDone() || otherd.SquareDistance() > Tol * Tol) { - problematic_point = pref ; - Status = Standard_False ; - if (otherd.IsDone()) { - Error = sqrt (otherd.SquareDistance()); - } - else { - Error = RealLast(); - } - PrintProblematicPoint(problematic_point, Error, Tol); - return Status; - //goto FINISH ; + + if (!otherd.IsDone() || otherd.SquareDistance() > Tol * Tol) + { + problematic_point = pref ; + Status = BRepCheck_InvalidCurveOnSurface ; + if (otherd.IsDone()) + { + Error = sqrt (otherd.SquareDistance()); + } + else + { + Error = RealLast(); + } + + PrintProblematicPoint(problematic_point, Error, Tol); + return Status; + //goto FINISH ; + } } } - } - //FINISH : -/* -#ifdef DEB - if (! Status) { - cout << " **** probleme de SameParameter au point :" << endl; - cout << " " << problematic_point.Coord(1) << " " - << problematic_point.Coord(2) << " " - << problematic_point.Coord(3) << endl ; - cout << " Erreur detectee :" << Error << " Tolerance :" << Tol << endl; - } -#endif -*/ return Status ; - } + //======================================================================= //function : Prec //purpose : diff --git a/src/BRepCheck/BRepCheck_Face.cdl b/src/BRepCheck/BRepCheck_Face.cdl index ea7f5ff5c3..3ea7d0e1c5 100755 --- a/src/BRepCheck/BRepCheck_Face.cdl +++ b/src/BRepCheck/BRepCheck_Face.cdl @@ -73,6 +73,13 @@ is is static; + SetStatus(me: mutable; + theStatus:Status from BRepCheck) + + --- Purpose: Sets status of Face; + is static; + + IsUnorientable(me) diff --git a/src/BRepCheck/BRepCheck_Face.cxx b/src/BRepCheck/BRepCheck_Face.cxx index 14a6e10e18..e97afc4bac 100755 --- a/src/BRepCheck/BRepCheck_Face.cxx +++ b/src/BRepCheck/BRepCheck_Face.cxx @@ -451,6 +451,15 @@ void BRepCheck_Face::SetUnorientable() BRepCheck::Add(myMap(myShape),BRepCheck_UnorientableShape); } +//======================================================================= +//function : SetStatus +//purpose : +//======================================================================= + +void BRepCheck_Face::SetStatus(const BRepCheck_Status theStatus) +{ + BRepCheck::Add(myMap(myShape),theStatus); +} //======================================================================= //function : IsUnorientable diff --git a/src/BRepCheck/BRepCheck_Wire.cxx b/src/BRepCheck/BRepCheck_Wire.cxx index 25610f02f4..87da8f5e22 100755 --- a/src/BRepCheck/BRepCheck_Wire.cxx +++ b/src/BRepCheck/BRepCheck_Wire.cxx @@ -388,7 +388,7 @@ Standard_Boolean IsDistanceIn3DTolerance (const BRepAdaptor_Surface& /*aFaceSurf #ifdef DEB cout << endl; cout << "--------Function IsDistanceIn3DTolerance(...)----------" << endl; - cout << "--- BRepCheck Wire: Closed3d -> Error" << endl; + cout << "--- BRepCheck Wire: Not closed in 3D" << endl; cout << "--- Dist (" << Dist << ") > Tol3d (" << aTol3d << ")" << endl; cout << "Pnt1(" << thePnt_f.X() << "; " << thePnt_f.Y() << "; " << thePnt_f.Z() << ")" << endl; cout << "Pnt2(" << thePnt_l.X() << "; " << thePnt_l.Y() << "; " << thePnt_l.Z() << ")" << endl; @@ -421,7 +421,7 @@ Standard_Boolean IsDistanceIn2DTolerance (const BRepAdaptor_Surface& aFaceSurfac { cout << endl; cout << "--------Function IsDistanceIn2DTolerance(...)----------" << endl; - cout << "--- BRepCheck Wire: Not closed in 2d" << endl; + cout << "--- BRepCheck Wire: Not closed in 2D" << endl; cout << "*****************************************************" << endl; cout << "*dumin = " << dumin << "; dumax = " << dumax << endl; cout << "* dvmin = " << dvmin << "; dvmax = " << dvmax << endl; @@ -470,7 +470,7 @@ Standard_Boolean IsDistanceIn2DTolerance (const BRepAdaptor_Surface& aFaceSurfac { cout << endl; cout << "--------Function IsDistanceIn2DTolerance(...)----------" << endl; - cout << "--- BRepCheck Wire: Not closed in 2d" << endl; + cout << "--- BRepCheck Wire: Not closed in 2D" << endl; cout << "*****************************************************" << endl; cout << "* Dist = " << Dist << " > Tol2d = " << aTol2d << endl; cout << "*****************************************************" << endl; diff --git a/src/BRepLib/BRepLib.cxx b/src/BRepLib/BRepLib.cxx index a397553197..e51155dcd9 100755 --- a/src/BRepLib/BRepLib.cxx +++ b/src/BRepLib/BRepLib.cxx @@ -21,72 +21,49 @@ //pmn 26/09/97 Add parameters of approximation in BuildCurve3d // Modified by skv - Thu Jun 3 12:39:19 2004 OCC5898 - #include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include +#include #include +#include #include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include #include #include +#include #include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - +#include +#include +#include +#include +#include +#include // TODO - not thread-safe static variables static Standard_Real thePrecision = Precision::Confusion(); @@ -1776,5 +1753,3 @@ void BRepLib::ReverseSortFaces (const TopoDS_Shape& Sh, LF.Append(LCon); LF.Append(LCyl ); LF.Append(LPlan); } - - diff --git a/src/BRepTest/BRepTest_CheckCommands.cxx b/src/BRepTest/BRepTest_CheckCommands.cxx index 1d35f7962e..0a91549d10 100755 --- a/src/BRepTest/BRepTest_CheckCommands.cxx +++ b/src/BRepTest/BRepTest_CheckCommands.cxx @@ -80,6 +80,12 @@ # include #endif +//Number of BRepCheck_Statuses in BRepCheck_Status.hxx file +//(BRepCheck_NoError is not considered, i.e. general status +//is smaller by one specified in file) +static const Standard_Integer NumberOfStatus = 35; + + static char* checkfaultyname = NULL; Standard_EXPORT void BRepTest_CheckCommands_SetFaultyName(const char* name) { @@ -515,40 +521,46 @@ static void FillProblems(const BRepCheck_Status stat, NbProblems->SetValue(14,NbProblems->Value(14)+1); break; case BRepCheck_InvalidRange: NbProblems->SetValue(15,NbProblems->Value(15)+1); break; - case BRepCheck_EmptyWire: + case BRepCheck_PCurveIsOutOfDomainFace: NbProblems->SetValue(16,NbProblems->Value(16)+1); break; - case BRepCheck_RedundantEdge: + case BRepCheck_EmptyWire: NbProblems->SetValue(17,NbProblems->Value(17)+1); break; - case BRepCheck_SelfIntersectingWire: + case BRepCheck_RedundantEdge: NbProblems->SetValue(18,NbProblems->Value(18)+1); break; - case BRepCheck_NoSurface: + case BRepCheck_SelfIntersectingWire: NbProblems->SetValue(19,NbProblems->Value(19)+1); break; - case BRepCheck_InvalidWire: + case BRepCheck_NoSurface: NbProblems->SetValue(20,NbProblems->Value(20)+1); break; - case BRepCheck_RedundantWire: + case BRepCheck_OutOfSurfaceBoundary: NbProblems->SetValue(21,NbProblems->Value(21)+1); break; - case BRepCheck_IntersectingWires: + case BRepCheck_InvalidWire: NbProblems->SetValue(22,NbProblems->Value(22)+1); break; - case BRepCheck_InvalidImbricationOfWires: + case BRepCheck_RedundantWire: NbProblems->SetValue(23,NbProblems->Value(23)+1); break; - case BRepCheck_EmptyShell: + case BRepCheck_IntersectingWires: NbProblems->SetValue(24,NbProblems->Value(24)+1); break; - case BRepCheck_RedundantFace: + case BRepCheck_InvalidImbricationOfWires: NbProblems->SetValue(25,NbProblems->Value(25)+1); break; - case BRepCheck_UnorientableShape: + case BRepCheck_EmptyShell: NbProblems->SetValue(26,NbProblems->Value(26)+1); break; - case BRepCheck_NotClosed: + case BRepCheck_RedundantFace: NbProblems->SetValue(27,NbProblems->Value(27)+1); break; - case BRepCheck_NotConnected: + case BRepCheck_UnorientableShape: NbProblems->SetValue(28,NbProblems->Value(28)+1); break; - case BRepCheck_SubshapeNotInShape: + case BRepCheck_NotClosed: NbProblems->SetValue(29,NbProblems->Value(29)+1); break; - case BRepCheck_BadOrientation: + case BRepCheck_NotConnected: NbProblems->SetValue(30,NbProblems->Value(30)+1); break; - case BRepCheck_BadOrientationOfSubshape: + case BRepCheck_SubshapeNotInShape: NbProblems->SetValue(31,NbProblems->Value(31)+1); break; - case BRepCheck_CheckFail: + case BRepCheck_BadOrientation: NbProblems->SetValue(32,NbProblems->Value(32)+1); break; + case BRepCheck_BadOrientationOfSubshape: + NbProblems->SetValue(33,NbProblems->Value(33)+1); break; + case BRepCheck_InvalidToleranceValue: + NbProblems->SetValue(34,NbProblems->Value(34)+1); break; + case BRepCheck_CheckFail: + NbProblems->SetValue(35,NbProblems->Value(35)+1); break; default: break; } @@ -674,8 +686,9 @@ void StructuralDump(Draw_Interpretor& theCommands, theCommands<<" Check Count"<<"\n"; theCommands<<" ------------------------------------------------"<<"\n"; - Handle(TColStd_HArray1OfInteger) NbProblems = new TColStd_HArray1OfInteger(1,32); - for(i=1; i<=32; i++) NbProblems->SetValue(i,0); + Handle(TColStd_HArray1OfInteger) NbProblems = new + TColStd_HArray1OfInteger(1,NumberOfStatus); + for(i=1; i<=NumberOfStatus; i++) NbProblems->SetValue(i,0); Handle(TopTools_HSequenceOfShape) sl,slv,sle,slw,slf,sls,slo; sl = new TopTools_HSequenceOfShape(); theMap.Clear(); @@ -728,55 +741,64 @@ void StructuralDump(Draw_Interpretor& theCommands, theCommands<<" Invalid Range ............................ "<Value(15)<<"\n"; //cout<<" Invalid Range ............................ "<Value(15)<Value(16)>0) - theCommands<<" Empty Wire ............................... "<Value(16)<<"\n"; - //cout<<" Empty Wire ............................... "<Value(16)<Value(16)<<"\n"; + //cout<<" Invalid Range ............................ "<Value(15)<Value(17)>0) - theCommands<<" Redundant Edge ........................... "<Value(17)<<"\n"; - //cout<<" Redundant Edge ........................... "<Value(17)<Value(17)<<"\n"; + //cout<<" Empty Wire ............................... "<Value(16)<Value(18)>0) - theCommands<<" Self Intersecting Wire ................... "<Value(18)<<"\n"; - //cout<<" Self Intersecting Wire ................... "<Value(18)<Value(18)<<"\n"; + //cout<<" Redundant Edge ........................... "<Value(17)<Value(19)>0) - theCommands<<" No Surface ............................... "<Value(19)<<"\n"; - //cout<<" No Surface ............................... "<Value(19)<Value(19)<<"\n"; + //cout<<" Self Intersecting Wire ................... "<Value(18)<Value(20)>0) - theCommands<<" Invalid Wire ............................. "<Value(20)<<"\n"; - //cout<<" Invalid Wire ............................. "<Value(20)<Value(20)<<"\n"; + //cout<<" No Surface ............................... "<Value(19)<Value(21)>0) - theCommands<<" Redundant Wire ........................... "<Value(21)<<"\n"; - //cout<<" Redundant Wire ........................... "<Value(21)<Value(21)<<"\n"; + //cout<<" Invalid Wire ............................. "<Value(20)<Value(22)>0) - theCommands<<" Intersecting Wires ....................... "<Value(22)<<"\n"; - //cout<<" Intersecting Wires ....................... "<Value(22)<Value(22)<<"\n"; + //cout<<" Invalid Wire ............................. "<Value(20)<Value(23)>0) - theCommands<<" Invalid Imbrication of Wires ............. "<Value(23)<<"\n"; - //cout<<" Invalid Imbrication of Wires ............. "<Value(23)<Value(23)<<"\n"; + //cout<<" Redundant Wire ........................... "<Value(21)<Value(24)>0) - theCommands<<" Empty Shell .............................. "<Value(24)<<"\n"; - //cout<<" Empty Shell .............................. "<Value(24)<Value(24)<<"\n"; + //cout<<" Intersecting Wires ....................... "<Value(22)<Value(25)>0) - theCommands<<" Redundant Face ........................... "<Value(25)<<"\n"; - //cout<<" Redundant Face ........................... "<Value(25)<Value(25)<<"\n"; + //cout<<" Invalid Imbrication of Wires ............. "<Value(23)<Value(26)>0) - theCommands<<" Unorientable Shape ....................... "<Value(26)<<"\n"; - //cout<<" Unorientable Shape ....................... "<Value(26)<Value(26)<<"\n"; + //cout<<" Empty Shell .............................. "<Value(24)<Value(27)>0) - theCommands<<" Not Closed ............................... "<Value(27)<<"\n"; - //cout<<" Not Closed ............................... "<Value(27)<Value(27)<<"\n"; + //cout<<" Redundant Face ........................... "<Value(25)<Value(28)>0) - theCommands<<" Not Connected ............................ "<Value(28)<<"\n"; - //cout<<" Not Connected ............................ "<Value(28)<Value(28)<<"\n"; + //cout<<" Unorientable Shape ....................... "<Value(26)<Value(29)>0) - theCommands<<" Subshape not in Shape .................... "<Value(29)<<"\n"; - //cout<<" Subshape not in Shape .................... "<Value(29)<Value(29)<<"\n"; + //cout<<" Not Closed ............................... "<Value(27)<Value(30)>0) - theCommands<<" Bad Orientation .......................... "<Value(30)<<"\n"; - //cout<<" Bad Orientation .......................... "<Value(30)<Value(30)<<"\n"; + //cout<<" Not Connected ............................ "<Value(28)<Value(31)>0) - theCommands<<" Bad Orientation of Subshape .............. "<Value(31)<<"\n"; - //cout<<" Bad Orientation of Subshape .............. "<Value(31)<Value(31)<<"\n"; + //cout<<" Subshape not in Shape .................... "<Value(29)<Value(32)>0) - theCommands<<" checkshape failure......... .............. "<Value(32)<<"\n"; + theCommands<<" Bad Orientation .......................... "<Value(32)<<"\n"; + //cout<<" Bad Orientation .......................... "<Value(30)<Value(33)>0) + theCommands<<" Bad Orientation of Subshape .............. "<Value(33)<<"\n"; + //cout<<" Bad Orientation of Subshape .............. "<Value(31)<Value(34)>0) + theCommands<<" Invalid tolerance......................... "<Value(34)<<"\n"; + //cout<<" checkshape failure......... .............. "<Value(32)<Value(35)>0) + theCommands<<" checkshape failure........................ "<Value(35)<<"\n"; //cout<<" checkshape failure......... .............. "<Value(32)< and members values. + fields basisSurf : Surface from Geom; diff --git a/src/Geom/Geom_RectangularTrimmedSurface.cxx b/src/Geom/Geom_RectangularTrimmedSurface.cxx index d47be5b076..dfd999239b 100755 --- a/src/Geom/Geom_RectangularTrimmedSurface.cxx +++ b/src/Geom/Geom_RectangularTrimmedSurface.cxx @@ -87,6 +87,45 @@ Handle(Geom_Geometry) Geom_RectangularTrimmedSurface::Copy () const { return S; } +//======================================================================= +//function : Geom_RectangularTrimmedSurface +//purpose : +//======================================================================= + +Geom_RectangularTrimmedSurface::Geom_RectangularTrimmedSurface( + const Handle(Geom_Surface)& S, + const Standard_Boolean isUTrim, + const Standard_Boolean isVTrim, + const Standard_Real U1, + const Standard_Real U2, + const Standard_Real V1, + const Standard_Real V2): utrim1(U1), + vtrim1(V1), + utrim2(U2), + vtrim2(V2), + isutrimmed (isUTrim), + isvtrimmed (isVTrim) +{ + // kill trimmed basis surfaces + Handle(Geom_RectangularTrimmedSurface) T = + Handle(Geom_RectangularTrimmedSurface)::DownCast(S); + if (!T.IsNull()) + basisSurf = Handle(Surface)::DownCast(T->BasisSurface()->Copy()); + else + basisSurf = Handle(Surface)::DownCast(S->Copy()); + + Handle(Geom_OffsetSurface) O = + Handle(Geom_OffsetSurface)::DownCast(basisSurf); + if (!O.IsNull()) + { + Handle(Geom_RectangularTrimmedSurface) S2 = + new Geom_RectangularTrimmedSurface( O->BasisSurface(),U1,U2, V1, V2, isUTrim, isVTrim); + Handle(Geom_OffsetSurface) OS = new Geom_OffsetSurface(S2, O->Offset()); + basisSurf = Handle(Surface)::DownCast(OS); + } + + ForceTrim( U1, U2, V1, V2, isUTrim, isVTrim); +} //======================================================================= //function : Geom_RectangularTrimmedSurface @@ -168,6 +207,172 @@ Geom_RectangularTrimmedSurface::Geom_RectangularTrimmedSurface ( SetTrim(Param1, Param2, UTrim, Sense); } +//======================================================================= +//function : SetUTrim +//purpose : +//======================================================================= +void Geom_RectangularTrimmedSurface::SetUTrim(const Standard_Real theU1, + const Standard_Real theU2) +{ + const Standard_Real Udeb = utrim1, Ufin = utrim2; + + utrim1 = theU1; + utrim2 = theU2; + + if ( utrim1 == utrim2) + Standard_ConstructionError::Raise + ("Geom_RectangularTrimmedSurface::U1==U2"); + + if (basisSurf->IsUPeriodic()) + { + ElCLib::AdjustPeriodic(Udeb, Ufin, + Min(Abs(utrim2-utrim1)/2,Precision::PConfusion()), utrim1, utrim2); + }//if (basisSurf->IsUPeriodic()) + else + { + if (utrim1 > utrim2) + { + //change some places of theUTrim1 and theUTrim2 + Standard_Real ut = utrim1; + utrim1 = utrim2; + utrim2 = ut; + } + + if ( (Udeb-utrim1 > Precision::PConfusion()) || + (utrim2-Ufin > Precision::PConfusion())) + { + Standard_ConstructionError::Raise + ("Geom_RectangularTrimmedSurface::Uparameters out of range"); + } + } +} + +//======================================================================= +//function : SetVTrim +//purpose : +//======================================================================= +void Geom_RectangularTrimmedSurface::SetVTrim(const Standard_Real theV1, + const Standard_Real theV2) +{ + const Standard_Real Vdeb = vtrim1, Vfin = vtrim2; + + vtrim1 = theV1; + vtrim2 = theV2; + + if ( vtrim1 == vtrim2) + Standard_ConstructionError::Raise + ("Geom_RectangularTrimmedSurface::V1==V2"); + + if (basisSurf->IsVPeriodic()) + { + ElCLib::AdjustPeriodic(Vdeb, Vfin, + Min(Abs(vtrim2-vtrim1)/2,Precision::PConfusion()),vtrim1, vtrim2); + }//if (basisSurf->IsVPeriodic()) + else + { + if (vtrim1 > vtrim2) + { + Standard_Real vt = vtrim1; + vtrim1 = vtrim2; + vtrim2 = vt; + } + + if ( (Vdeb-vtrim1 > Precision::PConfusion()) || + (vtrim2-Vfin > Precision::PConfusion())) + { + Standard_ConstructionError::Raise + ("Geom_RectangularTrimmedSurface::V parameters out of range"); + } + } +} + +//======================================================================= +//function : ForceTrim +//purpose : +//======================================================================= +void Geom_RectangularTrimmedSurface::ForceTrim(const Standard_Real theU1, + const Standard_Real theU2, + const Standard_Real theV1, + const Standard_Real theV2, + const Standard_Boolean isUTrim, + const Standard_Boolean isVTrim) +{ + basisSurf->Bounds(utrim1, utrim2, vtrim1, vtrim2); + + isutrimmed = isUTrim; + isvtrimmed = isVTrim; + + // Trimming along U-Direction + if (isutrimmed) + { + utrim1 = theU1; + utrim2 = theU2; + + if((utrim1 > utrim2) || !(basisSurf->IsUPeriodic())) + { + //Standard_ConstructionError::Raise + // ("Geom_RectangularTrimmedSurface::ForceTrim(...). " + // "utrim1 > utrim2"); + + SetUTrim(theU1,theU2); + } + else + { + const Standard_Real aTolPeriodicFactor = 1.0e-7; + const Standard_Real aT = basisSurf->UPeriod(); + const Standard_Real aTol = aTolPeriodicFactor * aT; + if(utrim2 - utrim1 - aT > 2.0*aTol) + { + Standard_Integer n = RealToInt((utrim2 - utrim1)/aT); + utrim2 -= (n * aT); + + if(utrim2 - utrim1 < aTol) + utrim2 += aT; + } + + //if(utrim2 - utrim1 < aTol) + // Standard_ConstructionError::Raise + // ("Geom_RectangularTrimmedSurface::SetTrim(...)." + // "ERROR in adjust U-parameter!"); + } + } + + // Trimming along V-Direction + if (isvtrimmed) + { + vtrim1 = theV1; + vtrim2 = theV2; + + if ((vtrim1 > vtrim2) || !(basisSurf->IsVPeriodic())) + { + //Standard_ConstructionError::Raise + // ("Geom_RectangularTrimmedSurface::ForceTrim(...). " + // "vtrim1 > vtrim2"); + + SetVTrim(theV1,theV2); + } + else + { + const Standard_Real aTolPeriodicFactor = 1.0e-7; + const Standard_Real aT = basisSurf->VPeriod(); + const Standard_Real aTol = aTolPeriodicFactor * aT; + + if(vtrim2 - vtrim1 - aT > 2.0*aTol) + { + Standard_Integer n = RealToInt((vtrim2 - vtrim1)/aT); + vtrim2 -= (n * aT); + + if(vtrim2 - vtrim1 < aTol) + vtrim2 += aT; + } + + //if(vtrim2 - vtrim1 < aTol) + // Standard_ConstructionError::Raise + // ("Geom_RectangularTrimmedSurface::SetTrim(...)." + // "ERROR in adjust V-parameter!"); + } + } +} //======================================================================= //function : SetTrim @@ -221,107 +426,36 @@ void Geom_RectangularTrimmedSurface::SetTrim (const Standard_Real Param1, //purpose : //======================================================================= -void Geom_RectangularTrimmedSurface::SetTrim(const Standard_Real U1, - const Standard_Real U2, - const Standard_Real V1, - const Standard_Real V2, - const Standard_Boolean UTrim, - const Standard_Boolean VTrim, - const Standard_Boolean USense, - const Standard_Boolean VSense) { - - Standard_Boolean UsameSense = Standard_True; - Standard_Boolean VsameSense = Standard_True; - Standard_Real Udeb, Ufin, Vdeb, Vfin; +void Geom_RectangularTrimmedSurface::SetTrim( + const Standard_Real theU1, + const Standard_Real theU2, + const Standard_Real theV1, + const Standard_Real theV2, + const Standard_Boolean isUTrim, + const Standard_Boolean isVTrim, + const Standard_Boolean isUSense, + const Standard_Boolean isVSense) +{ + Standard_Boolean UsameSense = !(isUSense && (theU1 > theU2)); + Standard_Boolean VsameSense = !(isVSense && (theV1 > theV2)); - basisSurf->Bounds(Udeb, Ufin, Vdeb, Vfin); + basisSurf->Bounds(utrim1, utrim2, vtrim1, vtrim2); + + isutrimmed = isUTrim; + isvtrimmed = isVTrim; // Trimming the U-Direction - isutrimmed = UTrim; - if (!UTrim) { - utrim1 = Udeb; - utrim2 = Ufin; - } - else { - if ( U1 == U2) - Standard_ConstructionError::Raise - ("Geom_RectangularTrimmedSurface::U1==U2"); - - if (basisSurf->IsUPeriodic()) { - UsameSense = USense; - - // set uTrim1 in the range Udeb , Ufin - // set uTrim2 in the range uTrim1 , uTrim1 + Period() - utrim1 = U1; - utrim2 = U2; - ElCLib::AdjustPeriodic(Udeb, Ufin, - Min(Abs(utrim2-utrim1)/2,Precision::PConfusion()), - utrim1, utrim2); - } - else { - if (U1 < U2) { - UsameSense = USense; - utrim1 = U1; - utrim2 = U2; - } - else { - UsameSense = !USense; - utrim1 = U2; - utrim2 = U1; - } - - if ((Udeb-utrim1 > Precision::PConfusion()) || - (utrim2-Ufin > Precision::PConfusion())) - Standard_ConstructionError::Raise - ("Geom_RectangularTrimmedSurface::U parameters out of range"); - - } - } + if (isutrimmed) + SetUTrim(theU1,theU2); // Trimming the V-Direction - isvtrimmed = VTrim; - if (!VTrim) { - vtrim1 = Vdeb; - vtrim2 = Vfin; - } - else { - if ( V1 == V2) - Standard_ConstructionError::Raise - ("Geom_RectangularTrimmedSurface::V1==V2"); + if (isvtrimmed) + SetVTrim(theV1,theV2); - if (basisSurf->IsVPeriodic()) { - VsameSense = VSense; - - // set vTrim1 in the range Vdeb , Vfin - // set vTrim2 in the range vTrim1 , vTrim1 + Period() - vtrim1 = V1; - vtrim2 = V2; - ElCLib::AdjustPeriodic(Vdeb, Vfin, - Min(Abs(vtrim2-vtrim1)/2,Precision::PConfusion()), - vtrim1, vtrim2); - } - else { - if (V1 < V2) { - VsameSense = VSense; - vtrim1 = V1; - vtrim2 = V2; - } - else { - VsameSense = !VSense; - vtrim1 = V2; - vtrim2 = V1; - } - - if ((Vdeb-vtrim1 > Precision::PConfusion()) || - (vtrim2-Vfin > Precision::PConfusion())) - Standard_ConstructionError::Raise - ("Geom_RectangularTrimmedSurface::V parameters out of range"); - - } - } - - if (!UsameSense) UReverse(); - if (!VsameSense) VReverse(); + if (!UsameSense) + UReverse(); + if (!VsameSense) + VReverse(); } @@ -666,3 +800,12 @@ gp_GTrsf2d Geom_RectangularTrimmedSurface::ParametricTransformation return basisSurf->ParametricTransformation(T); } +//======================================================================= +//function : GetTrimmedFlags +//purpose : +//======================================================================= +void Geom_RectangularTrimmedSurface::GetTrimmedFlags(Standard_Boolean& isU, Standard_Boolean& isV) const +{ + isU = isutrimmed; + isV = isvtrimmed; +} \ No newline at end of file diff --git a/src/GeomTools/GeomTools_SurfaceSet.cxx b/src/GeomTools/GeomTools_SurfaceSet.cxx index ec321c2213..a07c104a01 100755 --- a/src/GeomTools/GeomTools_SurfaceSet.cxx +++ b/src/GeomTools/GeomTools_SurfaceSet.cxx @@ -528,7 +528,19 @@ static void Print(const Handle(Geom_RectangularTrimmedSurface)& S, if (compact) OS << RECTANGULAR << " "; else + { OS << "RectangularTrimmedSurface"; + + Standard_Boolean isUtr, isVtr; + S->GetTrimmedFlags(isUtr, isVtr); + + OS << " (uTrim = " << isUtr << ", vTrim = " << isVtr << ")"; + } + + Standard_Boolean isUtr, isVtr; + S->GetTrimmedFlags(isUtr, isVtr); + + OS << " (uTrim = " << isUtr << ", vTrim = " << isVtr << ")"; Standard_Real U1,U2,V1,V2; S->Bounds(U1,U2,V1,V2); diff --git a/src/SWDRAW/SWDRAW_ShapeFix.cxx b/src/SWDRAW/SWDRAW_ShapeFix.cxx index a5051beedc..c7070dfcb8 100755 --- a/src/SWDRAW/SWDRAW_ShapeFix.cxx +++ b/src/SWDRAW/SWDRAW_ShapeFix.cxx @@ -20,55 +20,51 @@ #include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include #include +#include #include +#include +#include +#include +#include #include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include #include #include -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include #include -#include -#include -#include - -#include -#include -#include -#include -#include #include +#include +#include +#include +#include +#include +#include +#include #ifdef AIX #include @@ -756,6 +752,277 @@ static Standard_Integer connectedges(Draw_Interpretor& di, Standard_Integer n, c } +//======================================================================= +//function : FixPCurveOfFace +//purpose : +//======================================================================= +static Standard_Integer FixPCurveOfFace(Draw_Interpretor& theDI, + Standard_Integer theNArg, + const char** theArg) +{ + if(theNArg < 2) + { + theDI << "use \"ffixpcu face [-f] [-s]\".\n"; + return 1; + } + + Standard_Boolean isForsing = Standard_False; + Standard_Boolean isSplitForbidden = Standard_True; + + if(theNArg > 2) + { + for (Standard_Integer i = 2; i < theNArg; i++) + { + if(theArg[i][0] == '-') + { + switch(theArg[i][1]) + { + case 'f': + isForsing = Standard_True; + break; + case 's': + isSplitForbidden = Standard_False; + break; + } + } + } + } + + TopoDS_Shape aS=DBRep::Get(theArg[1]); + if (aS.IsNull()) { + theDI << "null shapes is not allowed here\n"; + return 1; + } + + if (aS.ShapeType()!=TopAbs_FACE) { + char buff[256]; + Sprintf ( buff, "shape %s must be a face\n", theArg[1]); + theDI << buff; + return 1; + } + + TopoDS_Face aF=*((TopoDS_Face*)&aS); + + BRepCheck_Analyzer anAna(aF); + + if(anAna.IsValid()) + { + theDI << "Face is valid!\n"; + return 0; + } + + BRepCheck_ListIteratorOfListOfStatus itl; + itl.Initialize(anAna.Result(aF)->Status()); + + if (itl.Value() != BRepCheck_OutOfSurfaceBoundary) + { + theDI << "Other Status!\n"; + return 0; + } + + TopoDS_Shape aNS = TopoDS_Shape(); + ShapeFix::RefineFace(aF, aNS, isForsing, isSplitForbidden); + + if(aNS.IsNull()) + DBRep::Set(theArg[1], aF); + else + DBRep::Set(theArg[1], aNS); + + // + return 0; +} + +//======================================================================= +//function : FixPCurveOfShape +//purpose : +//======================================================================= +static Standard_Integer FixPCurveOfShape(Draw_Interpretor& theDI, + Standard_Integer theNArg, + const char** theArg) +{ + if(theNArg < 3) + { + theDI << "use \"sfixpcu result shape [-f] [-s]\".\n"; + return 1; + } + + Standard_Boolean isForsing = Standard_False; + Standard_Boolean isSplitForbidden = Standard_True; + + if(theNArg > 3) + { + for (Standard_Integer i = 3; i < theNArg; i++) + { + if(theArg[i][0] == '-') + { + switch(theArg[i][1]) + { + case 'f': + isForsing = Standard_True; + break; + case 's': + isSplitForbidden = Standard_False; + break; + } + } + } + } + + TopoDS_Shape aS=DBRep::Get(theArg[2]); + + if (aS.IsNull()) { + theDI << "null shapes is not allowed here\n"; + return 1; + } + + Standard_Boolean doCompound = Standard_False; + BRep_Builder aBuilder; + TopoDS_Compound aSt; + aBuilder.MakeCompound(aSt); + aSt.Free(Standard_True); + + TopExp_Explorer exp; + for (exp.Init(aS,TopAbs_FACE); exp.More();exp.Next()) + { + const TopoDS_Shape& aS1 = exp.Current(); + TopoDS_Face aF=*((TopoDS_Face*)&aS1); + + BRepCheck_Analyzer anAna(aF); + if(anAna.IsValid()) + { + aBuilder.Add(aSt,aF); + continue; + } + + BRepCheck_ListIteratorOfListOfStatus itl; + itl.Initialize(anAna.Result(aF)->Status()); + if (itl.Value() != BRepCheck_OutOfSurfaceBoundary) + { + aBuilder.Add(aSt,aF); + continue; + } + + TopoDS_Shape aNS = TopoDS_Shape(); + ShapeFix::RefineFace(aF, aNS, isForsing,isSplitForbidden); + + if(!aNS.IsNull()) + { + aBuilder.Add(aSt,aNS); + doCompound = Standard_True; + } + else + { + aBuilder.Add(aSt,aF); + } + } + + if(doCompound) + { + aSt.Free(aS.Free()); + DBRep::Set(theArg[1],aSt); + } + else + { + DBRep::Set(theArg[1],aS); + } + + return 0; +} + +////======================================================================= +////function : splitfix +////purpose : +////======================================================================= +//static Standard_Integer splitfix(Draw_Interpretor& theDI, +// Standard_Integer theNArg, +// const char** theArg) +//{ +// if (theNArg < 3) { +// theDI << "use: splitface result face [-p]\n"; +// return 1; +// } +// +// TopoDS_Face aFace; +// { +// TopoDS_Shape aShape = DBRep::Get(theArg[2]) ; +// if (aShape.IsNull()) +// { +// theDI << "null shapes is not allowed here\n"; +// return 1; +// } +// +// aFace = TopoDS::Face ( aShape ); +// } +// +// if ( aFace.IsNull() ) { +// theDI << theArg[2] << " is not Face\n"; +// return 1; +// } +// +// Standard_Real anUFf, anUFl, aVFf, aVFl; +// BRepTools::UVBounds(aFace, anUFf, anUFl, aVFf, aVFl); +// +// Standard_Real anUSf, anUSl, aVSf, aVSl; +// Handle(Geom_Surface) aSurf = BRep_Tool::Surface(aFace); +// +// if (aSurf->DynamicType() == STANDARD_TYPE(Geom_RectangularTrimmedSurface)) +// { +// Handle(Geom_RectangularTrimmedSurface) TS = +// Handle(Geom_RectangularTrimmedSurface)::DownCast(aSurf); +// +// aSurf = TS->BasisSurface(); +// } +// +// aSurf->Bounds(anUSf, anUSl, aVSf, aVSl); +// +// Standard_Real anURem = 0.0, aVRem = 0.0; +// Standard_Integer aNU = 1, aNV = 1; +// +// TopoDS_Shape aNewSh = TopoDS_Shape(); +// Standard_Boolean isSplitByU, isSplitByV; +// +// const Standard_Real duf = anUFl - anUFf; +// const Standard_Real dus = anUSl - anUSf; +// const Standard_Real dvf = aVFl - aVFf; +// const Standard_Real dvs = aVSl - aVSf; +// +// isSplitByU = /*aSurf->IsUPeriodic() && */ +// duf > dus; +// isSplitByV = /*aSurf->IsVPeriodic() && */ +// dvf > dvs; +// +// if(isSplitByU) +// { +// theDI << "Splitting by U: " << anUSf << ", " << anUSl << "\n"; +// aNU += 2; +// anURem = RealMod(duf,dus); +// } +// +// if(isSplitByV) +// { +// theDI << "Splitting by V: " << aVSf << ", " << aVSl << "\n"; +// aNV += 2; +// aVRem = RealMod(dvf,dvs); +// } +// +// if (!(isSplitByU || isSplitByV)) +// { +// theDI << "No splitting required!\n"; +// return 0; +// } +// +// ShapeFix::SplittingFace(aFace, aNewSh, aSurf, dus/2.0, dvs/2.0, anUFf, aVFf, +// anURem, aVRem, isSplitByU, isSplitByV); +// +// if(!aNewSh.IsNull()) +// DBRep::Set(theArg[1], aNewSh); +// else +// theDI << "No splitting result was found!\n"; +// +// return 0; +//} + + //======================================================================= //function : InitCommands //purpose : @@ -792,6 +1059,14 @@ static Standard_Integer connectedges(Draw_Interpretor& di, Standard_Integer n, c __FILE__,checkfclass2d,g); theCommands.Add ("connectedges","res shape [toler shared]", __FILE__,connectedges,g); - + theCommands.Add ("ffixpcu"," ffixpcu face [-f] [-s] (to fix face with " + "\"BRepCheck_OutOfSurfaceBoundary\" status) ", __FILE__,FixPCurveOfFace,g); + + theCommands.Add ("sfixpcu"," sfixpcu result shape [-f] [-s] (to fix shape, which contains face with " + "\"BRepCheck_OutOfSurfaceBoundary\" status) ", __FILE__,FixPCurveOfShape,g); + + //theCommands.Add ("splitfix"," splitfix result face [u usplit1 usplit2...] " + // "[v vsplit1 vsplit2 ...]",__FILE__,splitfix,g); + } diff --git a/src/ShapeBuild/ShapeBuild.cdl b/src/ShapeBuild/ShapeBuild.cdl index 9a44547bb1..e63a73c336 100755 --- a/src/ShapeBuild/ShapeBuild.cdl +++ b/src/ShapeBuild/ShapeBuild.cdl @@ -35,8 +35,9 @@ uses TopTools, BRep, ShapeExtend, - BRepTools - + BRepTools, + GeomAbs + is class Vertex; diff --git a/src/ShapeBuild/ShapeBuild_Edge.cdl b/src/ShapeBuild/ShapeBuild_Edge.cdl index eea0989c94..463fb4321b 100755 --- a/src/ShapeBuild/ShapeBuild_Edge.cdl +++ b/src/ShapeBuild/ShapeBuild_Edge.cdl @@ -33,7 +33,8 @@ uses Location from TopLoc, Vertex from TopoDS, Face from TopoDS, - Edge from TopoDS + Edge from TopoDS, + Shape from GeomAbs is @@ -86,14 +87,15 @@ is -- only pcurve corresponding to the orientation of the edge is -- replaced - ReassignPCurve (me; edge: Edge from TopoDS; - old, sub: Face from TopoDS) + ReassignPCurve (me; edge: Edge from TopoDS; + old, sub: Face from TopoDS; + theContinuity : Shape from GeomAbs = GeomAbs_C0) returns Boolean; - ---Purpose: Reassign edge pcurve lying on face to another face . - -- If edge has two pcurves on face, only one of them will be + ---Purpose: Reassign edge pcurve lying on face to another face . + -- If edge has two pcurves on face, only one of them will be -- reassigned, and other will left alone. Similarly, if edge already -- had a pcurve on face , it will have two pcurves on it. - -- Returns True if succeeded, False if no pcurve lying on found. + -- Returns True if succeeded, False if no pcurve lying on found. TransformPCurve(me; pcurve: Curve from Geom2d; trans : Trsf2d from gp; diff --git a/src/ShapeBuild/ShapeBuild_Edge.cxx b/src/ShapeBuild/ShapeBuild_Edge.cxx index 313040055f..e148c6f80d 100755 --- a/src/ShapeBuild/ShapeBuild_Edge.cxx +++ b/src/ShapeBuild/ShapeBuild_Edge.cxx @@ -407,14 +407,13 @@ void ShapeBuild_Edge::ReplacePCurve (const TopoDS_Edge& edge, } //======================================================================= -//function : ReassignPCurve -//purpose : +//function : CountPCurves +//purpose : Count exact number of pcurves STORED in edge for face +// This makes difference for faces based on plane surfaces +// where pcurves can be not stored but returned by +// BRep_Tools::CurveOnSurface //======================================================================= - -// Count exact number of pcurves STORED in edge for face -// This makes difference for faces based on plane surfaces where pcurves can be -// not stored but returned by BRep_Tools::CurveOnSurface -static Standard_Integer CountPCurves (const TopoDS_Edge &edge, +static Standard_Integer CountPCurves(const TopoDS_Edge &edge, const TopoDS_Face &face) { TopLoc_Location L; @@ -430,9 +429,15 @@ static Standard_Integer CountPCurves (const TopoDS_Edge &edge, return 0; } -Standard_Boolean ShapeBuild_Edge::ReassignPCurve (const TopoDS_Edge& edge, - const TopoDS_Face& old, - const TopoDS_Face& sub) const +//======================================================================= +//function : ReassignPCurve +//purpose : +//======================================================================= +Standard_Boolean + ShapeBuild_Edge::ReassignPCurve(const TopoDS_Edge& edge, + const TopoDS_Face& old, + const TopoDS_Face& sub, + const GeomAbs_Shape theContinuity) const { Standard_Integer npcurves = CountPCurves ( edge, old ); //if ( npcurves <1 ) return Standard_False; //gka @@ -440,14 +445,16 @@ Standard_Boolean ShapeBuild_Edge::ReassignPCurve (const TopoDS_Edge& edge, Standard_Real f, l; Handle(Geom2d_Curve) pc; pc = BRep_Tool::CurveOnSurface ( edge, old, f, l ); - if ( pc.IsNull() ) return Standard_False; - else if( npcurves == 0) npcurves =1; //gka - - + if (pc.IsNull()) + return Standard_False; + else if(npcurves == 0) + npcurves =1; //gka + BRep_Builder B; // if the pcurve was only one, remove; else leave second one - if ( npcurves >1 ) { + if ( npcurves >1 ) + { //smh#8 Porting AIX TopoDS_Shape tmpshape = edge.Reversed(); TopoDS_Edge erev = TopoDS::Edge (tmpshape); @@ -455,11 +462,13 @@ Standard_Boolean ShapeBuild_Edge::ReassignPCurve (const TopoDS_Edge& edge, B.UpdateEdge ( edge, pc2, old, 0. ); B.Range ( edge, old, f, l ); } - else RemovePCurve ( edge, old ); + else + RemovePCurve ( edge, old ); // if edge does not have yet pcurves on sub, just add; else add as first Standard_Integer npcs = CountPCurves ( edge, sub ); - if ( npcs <1 ) B.UpdateEdge ( edge, pc, sub, 0. ); + if ( npcs < 1 ) + B.UpdateEdge ( edge, pc, sub, 0. ); else { //smh#8 Porting AIX TopoDS_Shape tmpshape = edge.Reversed(); @@ -467,8 +476,9 @@ Standard_Boolean ShapeBuild_Edge::ReassignPCurve (const TopoDS_Edge& edge, Standard_Real cf, cl; Handle(Geom2d_Curve) pcs = BRep_Tool::CurveOnSurface ( erev, sub, cf, cl ); if ( edge.Orientation() == TopAbs_REVERSED ) // because B.UpdateEdge does not check edge orientation - B.UpdateEdge ( edge, pcs, pc, sub, 0. ); - else B.UpdateEdge ( edge, pc, pcs, sub, 0. ); + B.UpdateEdge ( edge, pcs, pc, sub, 0., theContinuity); + else + B.UpdateEdge ( edge, pc, pcs, sub, 0., theContinuity); } B.Range ( edge, sub, f, l ); diff --git a/src/ShapeFix/ShapeFix.cdl b/src/ShapeFix/ShapeFix.cdl index b74ab11e3b..2d2f3ce8e7 100755 --- a/src/ShapeFix/ShapeFix.cdl +++ b/src/ShapeFix/ShapeFix.cdl @@ -154,6 +154,37 @@ is LeastEdgeSize(theshape: in out Shape from TopoDS) returns Real; ---Purpose: Calculate size of least edge; - + RefineFace (theF : Face from TopoDS; + theNewShape : in out Shape from TopoDS; + flForce : Boolean from Standard = Standard_False; + flDoNotSplit : Boolean from Standard = Standard_True); + ---Purpose: It is created for fixing faces with + -- BRepCheck_OutOfSurfaceBoundary status. + -- If source face is based on not RectangularTrimmed + -- surface and after this method calling it should be + -- based on RectangularTrimmed surface (for successfull + -- fixing), then fixing will be executed if and only if + -- flForce == Standard_True. + -- If it is necessary to do splitting, flForce allows to + -- ignore periodic of source surface, which theF based on. + -- flDoNotSplit forbids to split principial. + + ReTrimmedFace(theF : in out Face from TopoDS; + theNewRTSurf: RectangularTrimmedSurface from Geom) + + ---Purpose: Replace the surface in theF with theNewRTSurf. + is private; + + SplittingFace(theF : Face from TopoDS; + theNewShape : in out Shape from TopoDS; + theS : Surface from Geom; + theDeltaBU2, theDeltaBV2, + theUFf, theVFf, + theUReminder, theVReminder : Real from Standard; + isSplitByU, isSplitByV : Boolean from Standard) + + ---Purpose: Make split. + is private; + end ShapeFix; diff --git a/src/ShapeFix/ShapeFix.cxx b/src/ShapeFix/ShapeFix.cxx index 2a0b39c95a..5e8130cdcf 100755 --- a/src/ShapeFix/ShapeFix.cxx +++ b/src/ShapeFix/ShapeFix.cxx @@ -17,9 +17,6 @@ // purpose or non-infringement. Please see the License for the specific terms // and conditions governing the rights and limitations under the License. - - -#include //:k2 abv 16.12.98: eliminating code duplication //pdn 18.12.98: checking deviation for SP edges //: abv 22.02.99: method FillFace() removed since PRO13123 is fixed @@ -27,54 +24,50 @@ //szv#9:S4244:19Aug99: Added method FixWireGaps //szv#10:S4244:23Aug99: Added method FixFaceGaps +#include #include #include - -#include +#include +#include #include - +#include +#include +#include +#include +#include +#include +#include +#include #include - +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include #include - +#include +#include +#include #include #include #include #include #include -#include - -//:i2 -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include #include -#include -#include -#include - -#include -#include #include -#include -#include -#include -#include -#include #include -#include - -#include +#include +#include +#include +#include //======================================================================= //function : SameParameter @@ -718,3 +711,378 @@ Standard_Real ShapeFix::LeastEdgeSize(TopoDS_Shape& theShape) aRes = sqrt(aRes); return aRes; } + + +//static void Boundaries2D(const TopoDS_Face& theF, +// const Handle(Geom_Surface)& theS, +// Standard_Real& UMin, +// Standard_Real& UMax, +// Standard_Real& VMin, +// Standard_Real& VMax) +//{ +// const Standard_Integer NBPoints = 23; +// TopoDS_Face aF = theF; +// aF.Orientation(TopAbs_FORWARD); +// +// Standard_Real anUF = 0.0, anUL = 0.0, aVF = 0.0, aVL = 0.0; +// +// Bnd_Box2d Baux; +// TopExp_Explorer ex(aF,TopAbs_EDGE); +// for (;ex.More();ex.Next()) +// { +// Standard_Real pf, pl; +// TopoDS_Edge anE = TopoDS::Edge(ex.Current()); +// const Handle(Geom2d_Curve) aCur = BRep_Tool::CurveOnSurface(anE, theF, pf, pl); +// +// if (aCur.IsNull()) +// continue; +// +// MinMax(pf,pl); +// +// if (Precision::IsNegativeInfinite(pf) || +// Precision::IsPositiveInfinite(pf)) +// continue; +// +// if (Precision::IsNegativeInfinite(pl) || +// Precision::IsPositiveInfinite(pl)) +// continue; +// +// +// Geom2dAdaptor_Curve anAC(aCur,pf,pl); +// +// gp_Pnt2d aP; +// +// anAC.D0(pf, aP); +// Baux.Add(aP); +// +// anAC.D0(pl, aP); +// Baux.Add(aP); +// +// if (anAC.GetType() == GeomAbs_Line) +// { +// continue; +// } +// +// Standard_Real prm = pf; +// const Standard_Real step = (pl - pf) / NBPoints; +// for(Standard_Integer i = 1; i < NBPoints; i++) +// { +// prm += step; +// anAC.D0(prm, aP); +// Baux.Add(aP); +// } +// } +// +// if(!Baux.IsVoid()) +// Baux.Get(UMin, VMin, UMax, VMax); +// else +// theS->Bounds(UMin, UMax, VMin, VMax); +// +//#ifdef DEB +// cout << "++Boundaries2D: U = ( " << UMin << ")...(" << UMax << "); " +// "V = ( " << VMin << ")...(" << VMax << ").--" << endl; +//#endif +//} + +//======================================================================= +//function : RefineFace +//purpose : +//======================================================================= +void ShapeFix::RefineFace(const TopoDS_Face& theF, + TopoDS_Shape& theNewShape, + const Standard_Boolean flForce, + const Standard_Boolean flDoNotSplit) +{ + Standard_Real anUFf, anUFl, aVFf, aVFl; + + Standard_Boolean isUtrim = Standard_False, + isVtrim = Standard_False; + + Standard_Boolean isUtrimmed = Standard_False, + isVtrimmed = Standard_False; + + TopoDS_Face aF = theF; + + Handle(Geom_Surface) aS=BRep_Tool::Surface(aF); + Standard_Boolean isRectangularTrimmed = (aS->DynamicType() == STANDARD_TYPE(Geom_RectangularTrimmedSurface)); + + if (isRectangularTrimmed) + { + Handle(Geom_RectangularTrimmedSurface) TS = + Handle(Geom_RectangularTrimmedSurface)::DownCast(aS); + + TS->GetTrimmedFlags(isUtrimmed, isVtrimmed); + + aS = TS->BasisSurface(); + } + + //Boundaries2D(theF, aS, aU1, aU2, aV1, aV2); + BRepTools::UVBounds(aF, anUFf, anUFl, aVFf, aVFl); + + Standard_Boolean isURunAway, isVRunAway; + Standard_Boolean isSplitByU = Standard_False, + isSplitByV = Standard_False; + + { + Standard_Real uf, ul, vf, vl; + aS->Bounds(uf, ul, vf, vl); + + const Standard_Real duf = anUFl - anUFf; + const Standard_Real dus = ul - uf; + const Standard_Real dvf = aVFl - aVFf; + const Standard_Real dvs = vl - vf; + + + isSplitByU = !flDoNotSplit && (aS->IsUPeriodic() || flForce) && (duf > dus); + isSplitByV = !flDoNotSplit && (aS->IsVPeriodic() || flForce) && (dvf > dvs); + +#ifdef DEB + cout << "isSplitByU = " << isSplitByU << "; isSplitByV = " << isSplitByV < ul + Precision::PConfusion()); + isVRunAway = (aVFf < vf - Precision::PConfusion()) || + (aVFl > vl + Precision::PConfusion()); + } + + if(!(flForce || isRectangularTrimmed)) + { +#ifdef DEB + cout << "The surface is not \"RectangularTrimmed\". " + "Try to use \"force\" flag."<< endl; +#endif + + return; + } + + if(aS->IsUPeriodic()) + { + const Standard_Real aT = aS->UPeriod(); + const Standard_Real dU = anUFl - anUFf; + +#ifdef DEB + if(dU > aT) + { + cout << "dU = " << dU << " > T = " << aT << ". Delta = " << dU - aT << endl; + } +#endif + + anUFl = anUFf + aT; + + isUtrim = isURunAway || isUtrimmed; + } + + if(aS->IsVPeriodic()) + { + const Standard_Real aT = aS->VPeriod(); + const Standard_Real dv = aVFl - aVFf; + +#ifdef DEB + if(dv > aT) + { + cout << "++dV = " << dv << " > T = " << aT << ". Delta = " << dv - aT << endl; + } + +#endif + + aVFl = aVFf + aT; + + isVtrim = isVRunAway || isVtrimmed; + } + + if(!(isUtrim || isVtrim)) + return; + +#ifdef DEB + if(isUtrim) + cout << "Trimming U: (" << anUFf << ")...(" << anUFl << ")" << endl; + + if(isVtrim) + cout << "Trimming V: (" << aVFf << ")...(" << aVFl << ")" << endl; +#endif + + Handle(Geom_RectangularTrimmedSurface) aRTS=new Geom_RectangularTrimmedSurface(aS,isUtrim, + isVtrim, anUFf, anUFl, aVFf, aVFl); + + ReTrimmedFace(aF, aRTS); +} + +//======================================================================= +//function : RefineFace +//purpose : +//======================================================================= +void ShapeFix::ReTrimmedFace(TopoDS_Face& theF, + const Handle(Geom_RectangularTrimmedSurface)& theNewRTSurf) +{ +#ifdef DEB + cout << "ShapeFix::ReTrimmedFace(...) is executed." << endl; +#endif + + TopExp_Explorer aExp; + TopTools_MapOfShape aME; + BRep_Builder aBB; + + aExp.Init(theF, TopAbs_EDGE); + for (; aExp.More(); aExp.Next()) + { + Standard_Real aT1, aT2; + const TopoDS_Edge& aE=*((TopoDS_Edge*)&aExp.Current()); + if (!aME.Add(aE)) + continue; + + TopLoc_Location aLocE; + Standard_Real aTolE=BRep_Tool::Tolerance(aE); + Handle(Geom2d_Curve) aC2D1=BRep_Tool::CurveOnSurface(aE, theF, aT1, aT2); + Standard_Boolean bIsClosed = BRep_Tool::IsClosed(aE, theF); + + if (!bIsClosed) + { + aBB.UpdateEdge(aE, aC2D1, theNewRTSurf, aLocE, theF, aTolE); + } + else + { + Standard_Boolean bIsLeft; + Standard_Real aScPr; + Handle(Geom2d_Curve) aC2D2; + TopoDS_Edge aE2; + aE2=aE; + aE2.Reverse(); + aC2D2=BRep_Tool::CurveOnSurface(aE2, theF, aT1, aT2); + { + Standard_Real aT, aU1, aU2; + gp_Pnt2d aP2D1, aP2D2; + gp_Vec2d aV2D1, aV2D2; + + const Standard_Real PAR_T = 0.43213918; + aT=(1.-PAR_T)*aT1 + PAR_T*aT2; + aC2D1->D1(aT, aP2D1, aV2D1); + aC2D2->D1(aT, aP2D2, aV2D2); + + aU1=aP2D1.X(); + aU2=aP2D2.X(); + bIsLeft=(aU1NbEdges(); jL++ ) { + for(Standard_Integer jL=1; jL <= sbwd->NbEdges(); jL++ ) + { TopoDS_Edge E = sbwd->Edge(jL); - if ( E.Orientation() == TopAbs_REVERSED && BRep_Tool::IsClosed(E,myFace) ) { + + if(E.Orientation() == TopAbs_REVERSED && BRep_Tool::IsClosed(E,myFace)) + { Standard_Real f1,l1, f2, l2; Handle(Geom2d_Curve) c21 = BRep_Tool::CurveOnSurface(E,myFace,f1,l1); TopoDS_Shape dummy = E.Reversed(); @@ -2554,12 +2560,13 @@ void ShapeFix_ComposeShell::DispatchWires (TopTools_SequenceOfShape &faces, gp_Pnt2d pl1 = c21->Value(l1); gp_Pnt2d pf2 = c22->Value(f2); gp_Pnt2d pl2 = c22->Value(l2); - if ( c21 == c22 || pf1.SquareDistance(pf2) < dPreci || - pl1.SquareDistance(pl2) < dPreci ) { + if ((c21 == c22) || (pf1.SquareDistance(pf2) < dPreci) || + pl1.SquareDistance(pl2) < dPreci ) + { gp_Vec2d shift(0.,0.); - if ( myUClosed && Abs ( pf2.X() - pl2.X() ) < ::Precision::PConfusion() ) + if( myUClosed && Abs ( pf2.X() - pl2.X() ) < ::Precision::PConfusion() ) shift.SetX(myUPeriod); - if ( myVClosed && Abs ( pf2.Y() - pl2.Y() ) < ::Precision::PConfusion() ) + if( myVClosed && Abs ( pf2.Y() - pl2.Y() ) < ::Precision::PConfusion() ) shift.SetY(myVPeriod); c22->Translate(shift); } @@ -2567,15 +2574,18 @@ void ShapeFix_ComposeShell::DispatchWires (TopTools_SequenceOfShape &faces, } } - for ( i=1; i <= wires.Length(); i++ ) { + for ( i=1; i <= wires.Length(); i++ ) + { if(wires(i).IsVertex()) continue; + Handle(ShapeExtend_WireData) sbwd = wires(i).WireData(); //: abv 30.08.01: torHalf2.sat: if wire contains single degenerated // edge, skip that wire - if ( sbwd->NbEdges() <=0 || - ( sbwd->NbEdges() ==1 && BRep_Tool::Degenerated(sbwd->Edge(1)) ) ) { + if ( sbwd->NbEdges() <=0 || + ( sbwd->NbEdges() ==1 && BRep_Tool::Degenerated(sbwd->Edge(1)))) + { wires.Remove(i--); continue; } @@ -2585,11 +2595,12 @@ void ShapeFix_ComposeShell::DispatchWires (TopTools_SequenceOfShape &faces, // force recomputation of degenerated edges (clear pcurves) ShapeBuild_Edge sbe; - for (Standard_Integer jL=1; jL <= sbwd->NbEdges(); jL++ ) { - if ( BRep_Tool::Degenerated(sbwd->Edge(jL)) ) + for (Standard_Integer jL=1; jL <= sbwd->NbEdges(); jL++ ) + { + if(BRep_Tool::Degenerated(sbwd->Edge(jL))) sbe.RemovePCurve(sbwd->Edge(jL),myFace); - // sfw.FixDegenerated(jL); } + sfw.FixDegenerated(); } } @@ -2615,18 +2626,22 @@ void ShapeFix_ComposeShell::DispatchWires (TopTools_SequenceOfShape &faces, Standard_Real U1,U2,V1,V2; myGrid->Bounds(U1,U2,V1,V2); - for ( i = 1; i <= nb; i++ ) { - + for ( i = 1; i <= nb; i++ ) + { gp_Pnt2d pnt = mPnts(i); Standard_Real ush =0., vsh=0.; - if(myUClosed) { + + if(myUClosed) + { ush = ShapeAnalysis::AdjustToPeriod(pnt.X(),U1,U2); pnt.SetX(pnt.X()+ush); } + if(myVClosed) { vsh = ShapeAnalysis::AdjustToPeriod(pnt.Y(),V1,V2); pnt.SetY(pnt.Y()+vsh); } + mPnts(i) = pnt; Standard_Integer indU = myGrid->LocateUParameter ( pnt.X() ); Standard_Integer indV = myGrid->LocateVParameter ( pnt.Y() ); @@ -2635,19 +2650,23 @@ void ShapeFix_ComposeShell::DispatchWires (TopTools_SequenceOfShape &faces, gp_Trsf2d T; Standard_Real uFact=1.; Standard_Boolean needT = myGrid->GlobalToLocalTransformation ( indU, indV, uFact, T ); - if ( ush != 0. || vsh != 0. ) { + + if ( ush != 0. || vsh != 0. ) + { gp_Trsf2d Sh; Sh.SetTranslation ( gp_Vec2d ( ush, vsh ) ); T.Multiply ( Sh ); needT = Standard_True; } + if(wires(i).IsVertex()) continue; Handle(Geom_Surface) surf = myGrid->Patch ( indU, indV ); TopoDS_Face face; B.MakeFace ( face, surf, myLoc, ::Precision::Confusion() ); Handle(ShapeExtend_WireData) sewd = wires(i).WireData(); - for ( Standard_Integer j = 1; j <= sewd->NbEdges(); j++ ) { + for ( Standard_Integer j = 1; j <= sewd->NbEdges(); j++ ) + { // Standard_Integer nsplit = ApplyContext ( sewd, j, context ); // if ( nsplit <1 ) { j--; continue; } @@ -2660,70 +2679,91 @@ void ShapeFix_ComposeShell::DispatchWires (TopTools_SequenceOfShape &faces, TopoDS_Edge anInitEdge = edge; Standard_Boolean ismanifold = (edge.Orientation() == TopAbs_FORWARD || edge.Orientation() == TopAbs_REVERSED); - if ( rs.IsRecorded ( edge ) ) { + + if (rs.IsRecorded(edge)) + { //smh#8 - TopoDS_Shape tmpNE = rs.Value(edge); - newEdge = TopoDS::Edge ( tmpNE ); - } - else { - - if(!ismanifold) - anInitEdge.Orientation(TopAbs_FORWARD); + TopoDS_Shape tmpNE = rs.Value(edge); + newEdge = TopoDS::Edge ( tmpNE ); + } + else + { + if(!ismanifold) + anInitEdge.Orientation(TopAbs_FORWARD); + + newEdge = sbe.Copy ( anInitEdge, Standard_False ); - newEdge = sbe.Copy ( anInitEdge, Standard_False ); - if(!ismanifold) - newEdge.Orientation(edge.Orientation()); - rs.Replace ( edge, newEdge ); - Context()->Replace ( edge, newEdge ); + if(!ismanifold) + newEdge.Orientation(edge.Orientation()); + + rs.Replace ( edge, newEdge ); + Context()->Replace ( edge, newEdge ); } - sbe.ReassignPCurve ( newEdge, myFace, face ); + sbe.ReassignPCurve ( newEdge, myFace, face, GeomAbs_CN); // transform pcurve to parametric space of patch - if ( needT ) { - Standard_Real f, l; - Handle(Geom2d_Curve) c2d; - if ( sae.PCurve ( newEdge, face, c2d, f, l, Standard_False ) ) { - Standard_Real newf = f, newl = l; - Handle(Geom2d_Curve) c2dnew = sbe.TransformPCurve ( c2d, T, uFact, newf, newl ); - if ( BRep_Tool::IsClosed ( newEdge, face ) ) { - Standard_Real cf, cl; - Handle(Geom2d_Curve) c2d2; + if (needT) + { + Standard_Real f, l; + Handle(Geom2d_Curve) c2d; + + if(sae.PCurve(newEdge, face, c2d, f, l, Standard_False)) + { + Standard_Real newf = f, newl = l; + Handle(Geom2d_Curve) c2dnew = sbe.TransformPCurve(c2d, T, uFact, newf, newl); + + if(BRep_Tool::IsClosed(newEdge, face)) + { + Standard_Real cf, cl; + Handle(Geom2d_Curve) c2d2; //smh#8 - TopoDS_Shape tmpE = newEdge.Reversed(); - TopoDS_Edge e2 = TopoDS::Edge (tmpE ); - if ( sae.PCurve ( e2, face, c2d2, cf, cl, Standard_False ) ) { - if ( newEdge.Orientation() == TopAbs_FORWARD ) - B.UpdateEdge ( newEdge, c2dnew, c2d2, face, 0. ); - else B.UpdateEdge ( newEdge, c2d2, c2dnew, face, 0. ); - } - else B.UpdateEdge ( newEdge, c2dnew, face, 0. ); - } - else B.UpdateEdge ( newEdge, c2dnew, face, 0. ); - B.Range ( newEdge, face, newf, newl ); - if ( (newf != f || newl != l) && !BRep_Tool::Degenerated(newEdge) ) - B.SameRange ( newEdge, Standard_False ); - } + TopoDS_Shape tmpE = newEdge.Reversed(); + TopoDS_Edge e2 = TopoDS::Edge (tmpE ); + if(sae.PCurve(e2, face, c2d2, cf, cl, Standard_False)) + { + if(newEdge.Orientation() == TopAbs_FORWARD) + B.UpdateEdge(newEdge, c2dnew, c2d2, face, 0., GeomAbs_CN); + else + B.UpdateEdge(newEdge, c2d2, c2dnew, face, 0., GeomAbs_CN); + } + else + B.UpdateEdge ( newEdge, c2dnew, face, 0. ); + } + else + B.UpdateEdge ( newEdge, c2dnew, face, 0. ); + + B.Range ( newEdge, face, newf, newl ); + + if(((newf != f) || (newl != l)) && !BRep_Tool::Degenerated(newEdge)) + B.SameRange ( newEdge, Standard_False ); + } } + + if(!BRep_Tool::SameRange(newEdge)) + { + TopoDS_Edge etmp; + if(!ismanifold) + { + TopoDS_Edge afe = TopoDS::Edge(newEdge.Oriented(TopAbs_FORWARD)); + etmp = sbe.Copy (afe , Standard_False ); + } + else + etmp = sbe.Copy ( newEdge, Standard_False ); + + sfe->FixAddCurve3d ( etmp ); + Standard_Real cf, cl; + Handle(Geom_Curve) c3d; + + if(sae.Curve3d(etmp,c3d,cf,cl,Standard_False)) + { + B.UpdateEdge ( newEdge, c3d, 0. ); + sbe.SetRange3d ( newEdge, cf, cl ); + } + } + else + sfe->FixAddCurve3d ( newEdge ); - if(!BRep_Tool::SameRange(newEdge)) { - TopoDS_Edge etmp; - if(!ismanifold) { - TopoDS_Edge afe = TopoDS::Edge(newEdge.Oriented(TopAbs_FORWARD)); - etmp = sbe.Copy (afe , Standard_False ); - } - else - etmp = sbe.Copy ( newEdge, Standard_False ); - sfe->FixAddCurve3d ( etmp ); - Standard_Real cf, cl; - Handle(Geom_Curve) c3d; - if(sae.Curve3d(etmp,c3d,cf,cl,Standard_False)) { - B.UpdateEdge ( newEdge, c3d, 0. ); - sbe.SetRange3d ( newEdge, cf, cl ); - } - } - else - sfe->FixAddCurve3d ( newEdge ); sewd->Set ( newEdge, j ); } } @@ -2731,29 +2771,42 @@ void ShapeFix_ComposeShell::DispatchWires (TopTools_SequenceOfShape &faces, // Collect wires in packets lying on same surface and dispatch them TColStd_Array1OfBoolean used ( 1, nb ); used.Init ( Standard_False ); - for(;;) { - TopTools_SequenceOfShape loops; + for(;;) + { + TopTools_SequenceOfShape loops; + Handle(Geom_Surface) Surf; - for ( i = 1; i <= nb; i++ ) { - if ( used(i) ) continue; - Handle(Geom_Surface) S = myGrid->Patch ( mPnts(i) ); - if ( Surf.IsNull() ) Surf = S; - else if ( S != Surf ) continue; + for ( i = 1; i <= nb; i++ ) + { + if(used(i)) continue; + + Handle(Geom_Surface) S = myGrid->Patch(mPnts(i)); + + if(Surf.IsNull()) + Surf = S; + else if(S != Surf) + continue; + used(i) = Standard_True; ShapeFix_WireSegment aSeg = wires(i); - if(aSeg.IsVertex()) { - TopoDS_Vertex aVert = aSeg.GetVertex(); - if(aVert.Orientation() == TopAbs_INTERNAL) - loops.Append(wires(i).GetVertex()); + if(aSeg.IsVertex()) + { + TopoDS_Vertex aVert = aSeg.GetVertex(); + if(aVert.Orientation() == TopAbs_INTERNAL) + loops.Append(wires(i).GetVertex()); } - else { - Handle(ShapeExtend_WireData) aWD = aSeg.WireData(); - if(!aWD.IsNull()) - loops.Append ( aWD->Wire() ); + else + { + Handle(ShapeExtend_WireData) aWD = aSeg.WireData(); + + if(!aWD.IsNull()) + loops.Append(aWD->Wire()); } } - if ( Surf.IsNull() ) break; + + if(Surf.IsNull()) + break; MakeFacesOnPatch ( faces, Surf, loops ); } diff --git a/src/Standard/Standard_Integer.hxx b/src/Standard/Standard_Integer.hxx index 5c4fec225e..eb6b4a4644 100755 --- a/src/Standard/Standard_Integer.hxx +++ b/src/Standard/Standard_Integer.hxx @@ -138,6 +138,20 @@ inline Standard_Integer Min (const Standard_Integer Val1, return Val1 <= Val2 ? Val1 : Val2; } +// ------------------------------------------------------------------ +// MinMax : Replaces theParMIN = MIN(theParMIN, theParMAX), +// theParMAX = MAX(theParMIN, theParMAX). +// ------------------------------------------------------------------ +inline void MinMax(Standard_Integer& theParMIN, Standard_Integer& theParMAX) +{ + if(theParMIN > theParMAX) + { + const Standard_Integer aux = theParMAX; + theParMAX = theParMIN; + theParMIN = aux; + } +} + // ------------------------------------------------------------------ // Modulus : Returns the remainder of division between two integers // ------------------------------------------------------------------ diff --git a/src/Standard/Standard_Real.cxx b/src/Standard/Standard_Real.cxx index 81a4504f04..31e9baa17c 100755 --- a/src/Standard/Standard_Real.cxx +++ b/src/Standard/Standard_Real.cxx @@ -308,3 +308,14 @@ Standard_Real Sqrt (const Standard_Real Value) return sqrt(Value); } +//======================================================================= +//function : RealMod +//purpose : Returns the remainder of theDivident on theDivisor. +// Quotient is always integer number. +//======================================================================= +Standard_Real RealMod(const Standard_Real theDivident, + const Standard_Real theDivisor) +{ + const Standard_Integer n = RealToInt(theDivident/theDivisor); + return theDivident - n * theDivisor; +} diff --git a/src/Standard/Standard_Real.hxx b/src/Standard/Standard_Real.hxx index f1cf7f4b01..da638c17cd 100755 --- a/src/Standard/Standard_Real.hxx +++ b/src/Standard/Standard_Real.hxx @@ -63,6 +63,8 @@ __Standard_API Standard_Real ATanh (const Standard_Real ); __Standard_API Standard_Real ACosh (const Standard_Real ); __Standard_API Standard_Real Log (const Standard_Real ); __Standard_API Standard_Real Sqrt (const Standard_Real ); +__Standard_API Standard_Real RealMod (const Standard_Real theDivident, + const Standard_Real theDivisor); //class Standard_OStream; //void ShallowDump(const Standard_Real, Standard_OStream& ); @@ -265,6 +267,21 @@ inline Standard_Real Min (const Standard_Real Val1, return Val1 <= Val2 ? Val1 : Val2; } +// ------------------------------------------------------------------ +// MinMax : Replaces theParMIN = MIN(theParMIN, theParMAX), +// theParMAX = MAX(theParMIN, theParMAX). +// ------------------------------------------------------------------ +inline void MinMax(Standard_Real& theParMIN, Standard_Real& theParMAX) +{ + if(theParMIN > theParMAX) + { + const Standard_Real aux = theParMAX; + theParMAX = theParMIN; + theParMIN = aux; + } +} + + //------------------------------------------------------------------- // Pow : Returns a real to a given power //------------------------------------------------------------------- diff --git a/tests/blend/complex/C4 b/tests/blend/complex/C4 index 29465333b5..7082a3ede9 100644 --- a/tests/blend/complex/C4 +++ b/tests/blend/complex/C4 @@ -4,7 +4,14 @@ ## Comment : from pro5545 ## ==================================== +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CFI_pro5545.rle] a + +sfixpcu a a -f +checkshape a + encoderegularity a 1 tscale a 0 0 0 1000 nexplode a e diff --git a/tests/blend/complex/C6 b/tests/blend/complex/C6 index 0fa3afbac1..e31c1a7fcc 100644 --- a/tests/blend/complex/C6 +++ b/tests/blend/complex/C6 @@ -4,7 +4,14 @@ ## Comment : from pro6944 ## ==================================== +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CFI_pro6944.rle] a + +sfixpcu a a -f +checkshape a + tscale a 0 0 0 1000 nexplode a e blend result a 12 a_16 12 a_15 12 a_17 diff --git a/tests/blend/complex/C9 b/tests/blend/complex/C9 index ab6c53c45f..2dafed2dc0 100644 --- a/tests/blend/complex/C9 +++ b/tests/blend/complex/C9 @@ -4,7 +4,14 @@ ## Comment : from ? ## ==================================== +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file cfi900H2.rle] a + +sfixpcu a a -f +checkshape a + nexplode a e blend result a 1 a_66 diff --git a/tests/blend/complex/D3 b/tests/blend/complex/D3 index 73430d6ec5..135ed98156 100644 --- a/tests/blend/complex/D3 +++ b/tests/blend/complex/D3 @@ -4,7 +4,14 @@ ## Comment : from fra60610 ## ==================================== +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CFI_fra60610.rle] a + +sfixpcu a a -f +checkshape a + nexplode a e blend result a 2 a_69 diff --git a/tests/blend/complex/D4 b/tests/blend/complex/D4 index 238ff3fa50..c0c12bbd62 100644 --- a/tests/blend/complex/D4 +++ b/tests/blend/complex/D4 @@ -4,7 +4,14 @@ ## Comment : from ## ==================================== +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CFI_cfi90fjc.rle] a + +sfixpcu a a -f +checkshape a + nexplode a e blend result a 5 a_5 5 a_13 5 a_28 diff --git a/tests/blend/complex/E1 b/tests/blend/complex/E1 index b8e5992256..956c344492 100644 --- a/tests/blend/complex/E1 +++ b/tests/blend/complex/E1 @@ -4,7 +4,14 @@ ## Comment : from pro8783 ## ==================================== +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CFI_pro8783.rle] a + +sfixpcu a a -f +checkshape a + explode a e mkevol result a updatevol a_4 0 15 0.5 9 1 5 diff --git a/tests/blend/complex/E2 b/tests/blend/complex/E2 index ed3742eb35..9d209822b0 100644 --- a/tests/blend/complex/E2 +++ b/tests/blend/complex/E2 @@ -4,7 +4,14 @@ ## Comment : from pro8792 ## ==================================== +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CFI_pro8792.rle] a + +sfixpcu a a -f +checkshape a + explode a e mkevol result a updatevol a_20 0 15 0.5 20 1 5 diff --git a/tests/blend/complex/E7 b/tests/blend/complex/E7 index cfa9cdcf76..27e8ee9f27 100644 --- a/tests/blend/complex/E7 +++ b/tests/blend/complex/E7 @@ -4,7 +4,14 @@ ## Comment : from pro11850 ## ==================================== +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CFI_pro11850.rle] a + +sfixpcu a a -f +checkshape a + explode a e blend result a 3 a_22 diff --git a/tests/blend/complex/E9 b/tests/blend/complex/E9 index 019310ec01..adb55b0ad7 100644 --- a/tests/blend/complex/E9 +++ b/tests/blend/complex/E9 @@ -4,7 +4,14 @@ ## Comment : from pro10117 ## ==================================== +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CFI_pro10117.rle] a + +sfixpcu a a -f +checkshape a + explode a e blend result a 2 a_128 1 a_10 diff --git a/tests/boolean/bcommon_complex/C2 b/tests/boolean/bcommon_complex/C2 index e2252083a7..8d1fdb15e5 100644 --- a/tests/boolean/bcommon_complex/C2 +++ b/tests/boolean/bcommon_complex/C2 @@ -1,12 +1,19 @@ # Original bug : cts21453 # Date : 15sept98 +# for "sfixpcu" command +pload XSDRAW restore [locate_data_file CTO900_cts21453a.rle] a restore [locate_data_file CTO900_cts21453b.rle] b +sfixpcu a a -f +sfixpcu b b -f + +checkshape a +checkshape b + bcommon result a b - set square 16681.4 diff --git a/tests/boolean/bcut_complex/A1 b/tests/boolean/bcut_complex/A1 index 77119f6111..c618893c61 100644 --- a/tests/boolean/bcut_complex/A1 +++ b/tests/boolean/bcut_complex/A1 @@ -1,7 +1,18 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CIN900_cts20hlh.rle] a restore [locate_data_file CIN900_cts20hli.rle] b restore [locate_data_file CIN900_cts20hlj.rle] c +sfixpcu a a -f +sfixpcu b b -f +sfixpcu c c -f + +checkshape a +checkshape b +checkshape c + bcut rab a b bcut result rab c diff --git a/tests/boolean/bcut_complex/A2 b/tests/boolean/bcut_complex/A2 index a4df46bb65..2a19b9631d 100644 --- a/tests/boolean/bcut_complex/A2 +++ b/tests/boolean/bcut_complex/A2 @@ -1,6 +1,15 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CIN900_cts21hlq.rle] a restore [locate_data_file CIN900_cts21hlr.rle] b +sfixpcu a a -f +sfixpcu b b -f + +checkshape a +checkshape b + bcut result a b set square 330507 diff --git a/tests/boolean/bcut_complex/E6 b/tests/boolean/bcut_complex/E6 index a4fcf33a77..bb50074c9c 100644 --- a/tests/boolean/bcut_complex/E6 +++ b/tests/boolean/bcut_complex/E6 @@ -1,9 +1,18 @@ # Original bug : ger60043 # Date : 11mar98 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_ger60043-part.rle] part restore [locate_data_file CTO900_ger60043-tool.rle] tool +sfixpcu part part -f +sfixpcu tool tool -f + +checkshape part +checkshape tool + bcut result part tool diff --git a/tests/boolean/bcut_complex/E7 b/tests/boolean/bcut_complex/E7 index bc2857ace5..822d97374e 100644 --- a/tests/boolean/bcut_complex/E7 +++ b/tests/boolean/bcut_complex/E7 @@ -1,9 +1,16 @@ # Original bug : ger60065 # Date : 11mar98 +# for "sfixpcu" command +pload XSDRAW + + restore [locate_data_file CTO900_ger60065-part.rle] part restore [locate_data_file CTO900_ger60065-tool.rle] tool +sfixpcu part part -f +sfixpcu tool tool -f + bcut result part tool diff --git a/tests/boolean/bcut_complex/E8 b/tests/boolean/bcut_complex/E8 index 6853474ee4..d88186d1b8 100644 --- a/tests/boolean/bcut_complex/E8 +++ b/tests/boolean/bcut_complex/E8 @@ -1,9 +1,18 @@ # Original bug : jap60038 # Date : 11mar98 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_jap60038-part.rle] part restore [locate_data_file jap60038-tool.rle] tool +sfixpcu part part -f +sfixpcu tool tool -f + +checkshape part +checkshape tool + bcut result part tool set square 173510 diff --git a/tests/boolean/bcut_complex/F6 b/tests/boolean/bcut_complex/F6 index 46ef396684..0134c6ba38 100644 --- a/tests/boolean/bcut_complex/F6 +++ b/tests/boolean/bcut_complex/F6 @@ -1,9 +1,18 @@ # Original bug : pro11828 # Date : +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_pro11828-part.rle] part restore [locate_data_file CTO900_pro11828-tool.rle] tool +sfixpcu part part -f +sfixpcu tool tool -f + +checkshape part +checkshape tool + bcut result part tool diff --git a/tests/boolean/bcut_complex/F9 b/tests/boolean/bcut_complex/F9 index 61a1ac95bb..39de4ef2c1 100644 --- a/tests/boolean/bcut_complex/F9 +++ b/tests/boolean/bcut_complex/F9 @@ -1,9 +1,18 @@ # Original bug : fra60656 # Date : 23mar98 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_fra60656-part.rle] part restore [locate_data_file CTO900_fra60656-tool.rle] tool +sfixpcu part part -f +sfixpcu tool tool -f + +checkshape part +checkshape tool + bcut result part tool set square 1.21042e+06 diff --git a/tests/boolean/bcut_complex/G2 b/tests/boolean/bcut_complex/G2 index 08b9141cb1..60429bb1ce 100644 --- a/tests/boolean/bcut_complex/G2 +++ b/tests/boolean/bcut_complex/G2 @@ -1,9 +1,15 @@ # Original bug : pro12663 # Date : 24mar98 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_pro12663-part.rle] part restore [locate_data_file CTO900_pro12663-tool.rle] tool +sfixpcu part part -f +sfixpcu tool tool -f + bcut result part tool diff --git a/tests/boolean/bcut_complex/G6 b/tests/boolean/bcut_complex/G6 index 87a283cafa..36f54038c7 100644 --- a/tests/boolean/bcut_complex/G6 +++ b/tests/boolean/bcut_complex/G6 @@ -1,9 +1,18 @@ # Original bug : cts19305 # Date : 30mar98 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_cts19305-part.rle] part restore [locate_data_file CTO900_cts19305-tool.rle] tool +sfixpcu part part -f +sfixpcu tool tool -f + +checkshape part +checkshape tool + bcut result part tool diff --git a/tests/boolean/bcut_complex/G7 b/tests/boolean/bcut_complex/G7 index 5e88d2738c..60cdfc6bb5 100644 --- a/tests/boolean/bcut_complex/G7 +++ b/tests/boolean/bcut_complex/G7 @@ -1,9 +1,18 @@ # Original bug : fra60810 # Date : 30mar98 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_fra60810-part.rle] part restore [locate_data_file CTO900_fra60810-tool.rle] tool +sfixpcu part part -f +sfixpcu tool tool -f + +checkshape part +checkshape tool + bcut result part tool diff --git a/tests/boolean/bcut_complex/G8 b/tests/boolean/bcut_complex/G8 index 3b3ae1392a..c526e03aff 100644 --- a/tests/boolean/bcut_complex/G8 +++ b/tests/boolean/bcut_complex/G8 @@ -1,11 +1,20 @@ # Original bug : ger60598 # Date : 18Sept98 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_ger60598c.rle] base restore [locate_data_file ger60598d.rle] prism +sfixpcu base base -f +sfixpcu prism prism -f + fsameparameter base +checkshape base +checkshape prism + bcut result prism base set square 16596 diff --git a/tests/boolean/bcut_complex/H3 b/tests/boolean/bcut_complex/H3 index 13233647fc..d74661a6d3 100644 --- a/tests/boolean/bcut_complex/H3 +++ b/tests/boolean/bcut_complex/H3 @@ -1,9 +1,18 @@ # Original bug : cts20374 # Date : 24mar98 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_cts20374-part.rle] part restore [locate_data_file cts20374-tool.rle] tool +sfixpcu part part -f +sfixpcu tool tool -f + +checkshape part +checkshape tool + bcut result part tool diff --git a/tests/boolean/bcut_complex/H8 b/tests/boolean/bcut_complex/H8 index b574030360..1b21d9a732 100644 --- a/tests/boolean/bcut_complex/H8 +++ b/tests/boolean/bcut_complex/H8 @@ -1,14 +1,27 @@ # Original bug : cts20736 # Date : 28Sept97 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_cts20736a.rle] part restore [locate_data_file cts20736b.rle] aface +sfixpcu part part -f +sfixpcu aface aface -f + +checkshape aface + btolx part btolx aface +checkshape aface + prism tool aface 0 0 -12 +checkshape part +checkshape tool + bcut result part tool set square 36087.8 diff --git a/tests/boolean/bcut_complex/I3 b/tests/boolean/bcut_complex/I3 index 4dcc916f75..155a66dc74 100644 --- a/tests/boolean/bcut_complex/I3 +++ b/tests/boolean/bcut_complex/I3 @@ -1,8 +1,17 @@ # Original bug : cts20150 # Date : 13Mai98 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO901_cts20150_base.rle] base -restore [locate_data_file CTO901_cts20150_outil.rle] outil +restore [locate_data_file CTO901_cts20150_outil.rle] outil + +sfixpcu base base -f +sfixpcu outil outil -f + +checkshape base +checkshape outil bcut result base outil diff --git a/tests/boolean/bcut_complex/I6 b/tests/boolean/bcut_complex/I6 index 08ef17f41d..0c7f2f622a 100644 --- a/tests/boolean/bcut_complex/I6 +++ b/tests/boolean/bcut_complex/I6 @@ -2,9 +2,18 @@ # Date : 13Mai98 # A6.gif +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO902_cts20455-part.rle] part restore [locate_data_file CTO902_cts20455-tool.rle] tool +sfixpcu part part -f +sfixpcu tool tool -f + +checkshape part +checkshape tool + bcut result part tool diff --git a/tests/boolean/bcut_complex/I7 b/tests/boolean/bcut_complex/I7 index 568e9ecd6a..e3777374e7 100644 --- a/tests/boolean/bcut_complex/I7 +++ b/tests/boolean/bcut_complex/I7 @@ -2,9 +2,18 @@ # Date : 13Mai98 # A7.gif +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO902_cts20459-part.rle] part restore [locate_data_file CTO902_cts20459-tool.rle] tool +sfixpcu part part -f +sfixpcu tool tool -f + +checkshape part +checkshape tool + bcut result part tool diff --git a/tests/boolean/bcut_complex/J1 b/tests/boolean/bcut_complex/J1 index a838cff2f3..6306ca6da4 100644 --- a/tests/boolean/bcut_complex/J1 +++ b/tests/boolean/bcut_complex/J1 @@ -2,9 +2,18 @@ # Date : 13Mai98 # B8.gif +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO902_cts20503-part.rle] part restore [locate_data_file CTO902_cts20503-tool.rle] tool +sfixpcu part part -f +sfixpcu tool tool -f + +checkshape part +checkshape tool + bcut result part tool diff --git a/tests/boolean/bcut_complex/J4 b/tests/boolean/bcut_complex/J4 index 8020468fc0..6db36b5345 100644 --- a/tests/boolean/bcut_complex/J4 +++ b/tests/boolean/bcut_complex/J4 @@ -2,9 +2,18 @@ # Date : 13Mai98 # C7 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO902_cts20498-part.rle] part restore [locate_data_file CTO902_cts20498-tool.rle] tool +sfixpcu part part -f +sfixpcu tool tool -f + +checkshape part +checkshape tool + bcut result part tool diff --git a/tests/boolean/bcut_complex/J5 b/tests/boolean/bcut_complex/J5 index e1b89c01f4..dd5637b894 100644 --- a/tests/boolean/bcut_complex/J5 +++ b/tests/boolean/bcut_complex/J5 @@ -2,9 +2,18 @@ # Date : 13Mai98 # C8 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO902_cts20489-part.rle] part restore [locate_data_file CTO902_cts20489-tool.rle] tool +sfixpcu part part -f +sfixpcu tool tool -f + +checkshape part +checkshape tool + bcut result part tool diff --git a/tests/boolean/bcut_complex/K8 b/tests/boolean/bcut_complex/K8 index 2dc0cca5c2..5eb1a62b91 100644 --- a/tests/boolean/bcut_complex/K8 +++ b/tests/boolean/bcut_complex/K8 @@ -1,9 +1,18 @@ # Original bug : cts20551 # Date : 4June98 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO902_cts20551b.rle] a restore [locate_data_file cts20551-tool.rle] b +sfixpcu a a -f +sfixpcu b b -f + +checkshape a +checkshape b + bcut result a b set square 430968 diff --git a/tests/boolean/bcut_complex/L6 b/tests/boolean/bcut_complex/L6 index 9292dd8d06..5aeb3f1229 100644 --- a/tests/boolean/bcut_complex/L6 +++ b/tests/boolean/bcut_complex/L6 @@ -1,9 +1,18 @@ # Original bug : pro13495 # Date : 4June98 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO904_pro13495a.rle] a restore [locate_data_file pro13495b.rle] b +sfixpcu a a -f +sfixpcu b b -f + +checkshape a +checkshape b + bcut result a b set square 63800.8 diff --git a/tests/boolean/bcut_complex/M2 b/tests/boolean/bcut_complex/M2 index d3c36f8e4d..2ed1c5de34 100644 --- a/tests/boolean/bcut_complex/M2 +++ b/tests/boolean/bcut_complex/M2 @@ -1,9 +1,16 @@ # Original bug : fra61199 # Date : 29June98 + +# for "sfixpcu" command +pload XSDRAW + cpulimit 3000 restore [locate_data_file CTO904_fra61199a.rle] a restore [locate_data_file CTO904_fra61199b.rle] b +sfixpcu a a -f +sfixpcu b b -f + bcut result a b set square 1.21952e+06 diff --git a/tests/boolean/bcut_complex/M4 b/tests/boolean/bcut_complex/M4 index f136024d14..1cfdadbd06 100644 --- a/tests/boolean/bcut_complex/M4 +++ b/tests/boolean/bcut_complex/M4 @@ -1,9 +1,18 @@ # Original bug : cts21200 # Date : 16July98 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file cts21200a.rle] a restore [locate_data_file cts21200b.rle] skface +sfixpcu a a -f +sfixpcu skface skface -f + +checkshape a +checkshape skface + prism b skface 0 0 -230 bcut result a b diff --git a/tests/boolean/bcut_complex/M5 b/tests/boolean/bcut_complex/M5 index e6edc7c009..9692c16406 100644 --- a/tests/boolean/bcut_complex/M5 +++ b/tests/boolean/bcut_complex/M5 @@ -1,9 +1,18 @@ # Original bug : cts21208 # Date : 16July98 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO904_cts21208a.rle] a restore [locate_data_file cts21208b.rle] b +sfixpcu a a -f +sfixpcu b b -f + +checkshape a +checkshape b + bcut result a b set square 1383.02 diff --git a/tests/boolean/bcut_complex/M6 b/tests/boolean/bcut_complex/M6 index 459784b7a6..111131a828 100644 --- a/tests/boolean/bcut_complex/M6 +++ b/tests/boolean/bcut_complex/M6 @@ -1,9 +1,18 @@ # Original bug : cts21210 # Date : 16July98 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO904_cts21210a.rle] a restore [locate_data_file cts21210b.rle] b +sfixpcu a a -f +sfixpcu b b -f + +checkshape a +checkshape b + bcut result a b set square 1660.64 diff --git a/tests/boolean/bcut_complex/M9 b/tests/boolean/bcut_complex/M9 index 806d2cbefb..1c6ede7b1d 100644 --- a/tests/boolean/bcut_complex/M9 +++ b/tests/boolean/bcut_complex/M9 @@ -1,9 +1,18 @@ # Original bug : hkg60150 # Date : 16July98 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO904_hkg60150a.rle] a restore [locate_data_file CTO904_hkg60150b.rle] b +sfixpcu a a -f +sfixpcu b b -f + +checkshape a +checkshape b + bcut result a b set square 2167.4 diff --git a/tests/boolean/bcut_complex/N1 b/tests/boolean/bcut_complex/N1 index a31f3ce9ed..0765436fa8 100644 --- a/tests/boolean/bcut_complex/N1 +++ b/tests/boolean/bcut_complex/N1 @@ -1,9 +1,18 @@ # Original bug : hkg60156 # Date : 16July98 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO904_hkg60156a.rle] a restore [locate_data_file CTO904_hkg60156b.rle] b +sfixpcu a a -f +sfixpcu b b -f + +checkshape a +checkshape b + bcut result a b set square 1927.45 diff --git a/tests/boolean/bcut_complex/O8 b/tests/boolean/bcut_complex/O8 index 2b084db988..be69d29da2 100644 --- a/tests/boolean/bcut_complex/O8 +++ b/tests/boolean/bcut_complex/O8 @@ -1,7 +1,14 @@ ## cts20461 puts "TODO #22911 ALL: Error : The area of the resulting shape is" +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file cts20461.rle] a + +sfixpcu a a -f +checkshape a + nexplode a f mksurface surf a_26 nexplode a_26 e diff --git a/tests/boolean/bcut_complex/P2 b/tests/boolean/bcut_complex/P2 index f16415b8e6..99569f0913 100644 --- a/tests/boolean/bcut_complex/P2 +++ b/tests/boolean/bcut_complex/P2 @@ -1,8 +1,17 @@ ## CTS19305 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_cts19305-part.rle] a restore [locate_data_file CTO900_cts19305-tool.rle] b +sfixpcu a a -f +sfixpcu b b -f + +checkshape a +checkshape b + bcut result a b set square 76632.9 diff --git a/tests/boolean/bcut_complex/P4 b/tests/boolean/bcut_complex/P4 index b03073734e..8434c79d28 100644 --- a/tests/boolean/bcut_complex/P4 +++ b/tests/boolean/bcut_complex/P4 @@ -1,7 +1,14 @@ # cts21347 + +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO909_part_1.brep] a restore [locate_data_file CTO909_tool_2.brep] b +sfixpcu a a -f +sfixpcu b b -f + bcut result a b set square 1.64215e+06 diff --git a/tests/boolean/bcut_complex/Q7 b/tests/boolean/bcut_complex/Q7 index cee2555a32..f33380b2b0 100644 --- a/tests/boolean/bcut_complex/Q7 +++ b/tests/boolean/bcut_complex/Q7 @@ -2,9 +2,18 @@ puts "ID260084" puts "Cut" puts "" +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file id260084a.rle] a restore [locate_data_file id260084b.rle] b +sfixpcu a a -f +sfixpcu b b -f + +checkshape a +checkshape b + # Cut prism tool b 0 0 10 bcut result a tool diff --git a/tests/boolean/bfuse_complex/C7 b/tests/boolean/bfuse_complex/C7 index b4c8457218..ec4b774b2f 100644 --- a/tests/boolean/bfuse_complex/C7 +++ b/tests/boolean/bfuse_complex/C7 @@ -1,6 +1,9 @@ # Original bug : pro7637 (#3 with restore from Designer shape) # Date : 16apr97 +# for "sfixpcu" command +pload XSDRAW + dset SCALE 100 ## restore the Prismed oblong created in Designer K1-2 (size 200 mm) @@ -11,6 +14,12 @@ tscale p1 0 0 0 1*SCALE restore [locate_data_file CTO900_pro7637c_box_dsg.rle] p2 tscale p2 0 0 0 1*SCALE +sfixpcu p1 p1 -f +sfixpcu p2 p2 -f + +checkshape p1 +checkshape p2 + bfuse result p2 p1 set square 1.85425e+09 diff --git a/tests/boolean/bfuse_complex/C9 b/tests/boolean/bfuse_complex/C9 index b27e30afae..83b5ebea85 100644 --- a/tests/boolean/bfuse_complex/C9 +++ b/tests/boolean/bfuse_complex/C9 @@ -1,9 +1,18 @@ # Original bug : cts16184 # Date : 11mar98 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_cts16184a.rle] a restore [locate_data_file cts16184b.brep] b +sfixpcu a a -f +sfixpcu b b -f + +checkshape a +checkshape b + bfuse result a b diff --git a/tests/boolean/bfuse_complex/D4 b/tests/boolean/bfuse_complex/D4 index dc9b889f5f..bc5231ebb7 100644 --- a/tests/boolean/bfuse_complex/D4 +++ b/tests/boolean/bfuse_complex/D4 @@ -3,11 +3,21 @@ puts "TODO #22911 Mandriva2010: Faulty shapes in variables faulty_1 to faulty_2" +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file ger60054a.rle] a restore [locate_data_file CTO900_ger60054b.rle] b + +sfixpcu a a -f +sfixpcu b b -f + fsameparameter a fsameparameter b +checkshape a +checkshape b + bfuse result a b set square 22058 diff --git a/tests/boolean/bfuse_complex/D5 b/tests/boolean/bfuse_complex/D5 index e196be47c9..1758e2f159 100644 --- a/tests/boolean/bfuse_complex/D5 +++ b/tests/boolean/bfuse_complex/D5 @@ -1,9 +1,18 @@ # Original bug : ksi0014 # Date : 11mar98 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_ksi0014a.rle] a restore [locate_data_file ksi0014b.rle] b +sfixpcu a a -f +sfixpcu b b -f + +checkshape a +checkshape b + bfuse result a b diff --git a/tests/boolean/bfuse_complex/E2 b/tests/boolean/bfuse_complex/E2 index e19aa8b769..f6efa8a22a 100644 --- a/tests/boolean/bfuse_complex/E2 +++ b/tests/boolean/bfuse_complex/E2 @@ -1,10 +1,19 @@ # Original bug : cts60005 # Date : 19mar98 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file cts60005a.rle] a fsameparameter a restore [locate_data_file CTO900_cts60005b.rle] b +sfixpcu a a -f +sfixpcu b b -f + +checkshape a +checkshape b + bfuse result a b diff --git a/tests/boolean/bfuse_complex/E3 b/tests/boolean/bfuse_complex/E3 index 585ada82c1..eb97611d51 100644 --- a/tests/boolean/bfuse_complex/E3 +++ b/tests/boolean/bfuse_complex/E3 @@ -1,9 +1,18 @@ # Original bug : pro8934 # Date : 19mar98 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_pro8934a.rle] a restore [locate_data_file CTO900_pro8934b.rle] b +sfixpcu a a -f +sfixpcu b b -f + +checkshape a +checkshape b + bfuse result a b set square 20480.4 diff --git a/tests/boolean/bfuse_complex/E6 b/tests/boolean/bfuse_complex/E6 index 9822946a3c..b51279fd12 100644 --- a/tests/boolean/bfuse_complex/E6 +++ b/tests/boolean/bfuse_complex/E6 @@ -1,9 +1,16 @@ # Original bug : pro10505 # Date : 20mar98 +# for "sfixpcu" command +pload XSDRAW + + restore [locate_data_file CTO900_pro10505a.rle] a restore [locate_data_file CTO900_pro10505b.rle] b +sfixpcu a a -f +sfixpcu b b -f + bfuse result a b set square 302396 diff --git a/tests/boolean/bfuse_complex/E8 b/tests/boolean/bfuse_complex/E8 index aca5f4db10..6e1172732e 100644 --- a/tests/boolean/bfuse_complex/E8 +++ b/tests/boolean/bfuse_complex/E8 @@ -1,9 +1,18 @@ # Original bug : ger60239 # Date : 23mar98 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_ger60239a.rle] a restore [locate_data_file CTO900_ger60239b.rle] b +sfixpcu a a -f +sfixpcu b b -f + +checkshape a +checkshape b + bfuse result a b set square 3468.6 diff --git a/tests/boolean/bfuse_complex/G2 b/tests/boolean/bfuse_complex/G2 index 20afba9504..e887218a68 100644 --- a/tests/boolean/bfuse_complex/G2 +++ b/tests/boolean/bfuse_complex/G2 @@ -1,8 +1,18 @@ # Original bug : cts21180 # Date : 21 Sept 98 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_cts21180c.rle] part restore [locate_data_file CTO900_cts21180d.rle] tool + +sfixpcu part part -f +sfixpcu tool tool -f + +checkshape part +checkshape tool + updatetolerance tool 1 bfuse result part tool diff --git a/tests/boolean/bfuse_complex/G4 b/tests/boolean/bfuse_complex/G4 index b2e6592c2d..2cc953a4b2 100644 --- a/tests/boolean/bfuse_complex/G4 +++ b/tests/boolean/bfuse_complex/G4 @@ -1,9 +1,18 @@ # Original bug : cts20171 # Date : 13Mai98 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO901_cts20171_base.rle] base restore [locate_data_file CTO901_cts20171_outil.rle] outil +sfixpcu base base -f +sfixpcu outil outil -f + +checkshape base +checkshape outil + bfuse result base outil set square 47886.5 diff --git a/tests/boolean/bfuse_complex/G9 b/tests/boolean/bfuse_complex/G9 index 1b6bac80d3..7d3db9f434 100644 --- a/tests/boolean/bfuse_complex/G9 +++ b/tests/boolean/bfuse_complex/G9 @@ -2,9 +2,17 @@ # Date : 13Mai98 # A1.gi +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO902_cts20452a.rle] a restore [locate_data_file CTO902_cts20452b.rle] b +sfixpcu a a -f +sfixpcu b b -f + +checkshape a +checkshape b bfuse result a b diff --git a/tests/boolean/bfuse_complex/I6 b/tests/boolean/bfuse_complex/I6 index 52ac576cac..74b9bde316 100644 --- a/tests/boolean/bfuse_complex/I6 +++ b/tests/boolean/bfuse_complex/I6 @@ -2,9 +2,18 @@ # Date : 13Mai98 # D2 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file cts20551-tool.rle] a restore [locate_data_file CTO902_cts20551b.rle] b +sfixpcu a a -f +sfixpcu b b -f + +checkshape a +checkshape b + bfuse result a b diff --git a/tests/boolean/bfuse_complex/I9 b/tests/boolean/bfuse_complex/I9 index c9163babbf..7a7b0f4d27 100644 --- a/tests/boolean/bfuse_complex/I9 +++ b/tests/boolean/bfuse_complex/I9 @@ -1,9 +1,18 @@ # Original bug : pro12956 # Date : 18Mai98 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file pro12956a.rle] a restore [locate_data_file CTO904_pro12956b.rle] b +sfixpcu a a -f +sfixpcu b b -f + +checkshape a +checkshape b + bfuse result a b diff --git a/tests/boolean/bfuse_complex/K3 b/tests/boolean/bfuse_complex/K3 index 22fbc0b938..8e265b495b 100644 --- a/tests/boolean/bfuse_complex/K3 +++ b/tests/boolean/bfuse_complex/K3 @@ -1,8 +1,18 @@ # Original bug : fra60275 # Date : 4June98 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO904_fra60275a.rle] s restore [locate_data_file fra60275b.rle] c + +sfixpcu s s -f +sfixpcu c c -f + +checkshape s +checkshape c + tcopy c w mkplane f w diff --git a/tests/boolean/bfuse_complex/K4 b/tests/boolean/bfuse_complex/K4 index c39267e3d2..82f89a9d12 100644 --- a/tests/boolean/bfuse_complex/K4 +++ b/tests/boolean/bfuse_complex/K4 @@ -1,9 +1,18 @@ # Original bug : pro13494 # Date : 4June98 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file pro13494a.rle] a restore [locate_data_file pro13494b.rle] b +sfixpcu a a -f +sfixpcu b b -f + +checkshape a +checkshape b + # pkv f explode a so #bfuse result a b diff --git a/tests/boolean/bfuse_complex/K7 b/tests/boolean/bfuse_complex/K7 index befaf9fd26..74fed08459 100644 --- a/tests/boolean/bfuse_complex/K7 +++ b/tests/boolean/bfuse_complex/K7 @@ -1,10 +1,19 @@ # Original bug : cts20974 # Date : 12June98 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO904_cts20974a.rle] a fsameparameter a restore [locate_data_file CTO904_cts20974b.rle] b +sfixpcu a a -f +sfixpcu b b -f + +checkshape a +checkshape b + bfuse result a b set square 3362.81 diff --git a/tests/boolean/bfuse_complex/K9 b/tests/boolean/bfuse_complex/K9 index f5c850f966..8009acb331 100644 --- a/tests/boolean/bfuse_complex/K9 +++ b/tests/boolean/bfuse_complex/K9 @@ -1,9 +1,18 @@ # Original bug : pro13555 # Date : 12June98 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO904_pro13555a.rle] a restore [locate_data_file pro13555b.rle] b +sfixpcu a a -f +sfixpcu b b -f + +checkshape a +checkshape b + bfuse result a b set square 3479.01 diff --git a/tests/boolean/bfuse_complex/L2 b/tests/boolean/bfuse_complex/L2 index 242408454d..fb87aee569 100644 --- a/tests/boolean/bfuse_complex/L2 +++ b/tests/boolean/bfuse_complex/L2 @@ -1,9 +1,18 @@ # Original bug : cts21044 # Date : 24June98 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_cts21453a.rle] a restore [locate_data_file CTO900_cts21453b.rle] b +sfixpcu a a -f +sfixpcu b b -f + +checkshape a +checkshape b + bfuse result a b set square 163507 diff --git a/tests/boolean/bfuse_complex/L6 b/tests/boolean/bfuse_complex/L6 index 2bc25eb781..0ca5fb63df 100644 --- a/tests/boolean/bfuse_complex/L6 +++ b/tests/boolean/bfuse_complex/L6 @@ -1,9 +1,18 @@ # Original bug : cts20907 # Date : 24June98 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO904_cts20907a.rle] a restore [locate_data_file cts20907b.rle] b +sfixpcu a a -f +sfixpcu b b -f + +checkshape a +checkshape b + bfuse result a b set square 486.413 diff --git a/tests/boolean/bfuse_complex/L7 b/tests/boolean/bfuse_complex/L7 index 0ff80a753a..f03d97a2f9 100644 --- a/tests/boolean/bfuse_complex/L7 +++ b/tests/boolean/bfuse_complex/L7 @@ -1,9 +1,18 @@ # Original bug : cts21124 # Date : 24June98 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO904_cts21124a.rle] a restore [locate_data_file cts21124b.rle] b +sfixpcu a a -f +sfixpcu b b -f + +checkshape a +checkshape b + bfuse result a b set square 48061.7 diff --git a/tests/boolean/bfuse_complex/N1 b/tests/boolean/bfuse_complex/N1 index 6cc1ae4054..337e4249ad 100644 --- a/tests/boolean/bfuse_complex/N1 +++ b/tests/boolean/bfuse_complex/N1 @@ -1,9 +1,18 @@ # Original bug : pro14893 # Date : 16July98 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO904_pro14893a.rle] a restore [locate_data_file pro14893b.rle] b +sfixpcu a a -f +sfixpcu b b -f + +checkshape a +checkshape b + bfuse result a b set square 22717.7 diff --git a/tests/boolean/bfuse_complex/N2 b/tests/boolean/bfuse_complex/N2 index b467df10ba..1a10369fb2 100644 --- a/tests/boolean/bfuse_complex/N2 +++ b/tests/boolean/bfuse_complex/N2 @@ -1,9 +1,18 @@ # Original bug : cts20960 # Date : 16July98 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO904_cts20960a.rle] a restore [locate_data_file cts20960b.rle] b +sfixpcu a a -f +sfixpcu b b -f + +checkshape a +checkshape b + bfuse result a b set square 38854 diff --git a/tests/boolean/bfuse_complex/N4 b/tests/boolean/bfuse_complex/N4 index 0133dd471d..2fc3971683 100644 --- a/tests/boolean/bfuse_complex/N4 +++ b/tests/boolean/bfuse_complex/N4 @@ -1,11 +1,22 @@ # Original bug : pro14892 # Date : 16July98 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file pro14892a.rle] a restore [locate_data_file pro14892b.rle] aface +sfixpcu a a -f +sfixpcu aface aface -f + +checkshape a +checkshape aface + prism b aface 0 0 -50 +checkshape b + bfuse result a b set square 601864 diff --git a/tests/boolean/bfuse_complex/N8 b/tests/boolean/bfuse_complex/N8 index b56136da08..eec1e29832 100644 --- a/tests/boolean/bfuse_complex/N8 +++ b/tests/boolean/bfuse_complex/N8 @@ -1,9 +1,18 @@ # Original bug : cts21364 # Date : 26Aout98 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO904_cts21364a.rle] a restore [locate_data_file CTO904_cts21364b.rle] b +sfixpcu a a -f +sfixpcu b b -f + +checkshape a +checkshape b + bfuse result a b set square 46682.1 diff --git a/tests/boolean/bfuse_complex/Q1 b/tests/boolean/bfuse_complex/Q1 index 43a215c04b..80315d2e1a 100644 --- a/tests/boolean/bfuse_complex/Q1 +++ b/tests/boolean/bfuse_complex/Q1 @@ -1,8 +1,17 @@ #ger60239 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_ger60239a.rle] c restore [locate_data_file CTO900_ger60239b.rle] d +sfixpcu c c -f +sfixpcu d d -f + +checkshape c +checkshape d + bfuse result c d set square 3468.6 diff --git a/tests/boolean/bfuse_complex/R1 b/tests/boolean/bfuse_complex/R1 index f4f5832c75..ff22ddc600 100644 --- a/tests/boolean/bfuse_complex/R1 +++ b/tests/boolean/bfuse_complex/R1 @@ -2,10 +2,18 @@ puts "ITA60531" puts "Fuse" puts "" +# for "sfixpcu" command +pload XSDRAW restore [locate_data_file ita60531a.rle] b restore [locate_data_file ita60531b.rle] f +sfixpcu b b -f +sfixpcu f f -f + +checkshape b +checkshape f + # Operation booleenne -> shape pas valide prism tool f 0 0 1 diff --git a/tests/boolean/bfuse_complex/R2 b/tests/boolean/bfuse_complex/R2 index 67e3607f13..dd7a9b2d7b 100644 --- a/tests/boolean/bfuse_complex/R2 +++ b/tests/boolean/bfuse_complex/R2 @@ -3,9 +3,18 @@ puts "PRO16252" puts "Fuse" puts "" +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file pro16252a.brep] a restore [locate_data_file pro16252b.brep] b +sfixpcu a a -f +sfixpcu b b -f + +checkshape a +checkshape b + fsameparameter b maxtolerance a maxtolerance b diff --git a/tests/boolean/bfuse_complex/R7 b/tests/boolean/bfuse_complex/R7 index 17d0d0c431..67c54f209b 100644 --- a/tests/boolean/bfuse_complex/R7 +++ b/tests/boolean/bfuse_complex/R7 @@ -3,9 +3,19 @@ puts "PRO16261" puts "Fuse" puts "" +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file pro16261-1.brep] s restore [locate_data_file pro16261-2.brep] t +sfixpcu s s -f +sfixpcu t t -f + +checkshape s +checkshape t + + maxtolerance s #face tangente diff --git a/tests/boolean/bfuse_complex/R8 b/tests/boolean/bfuse_complex/R8 index cf50989098..bb68894265 100644 --- a/tests/boolean/bfuse_complex/R8 +++ b/tests/boolean/bfuse_complex/R8 @@ -2,9 +2,15 @@ puts "PRO16769" puts "Fuse" puts "" +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CFE900_pro16gff.rle] base restore [locate_data_file pro16769b.rle] tool +sfixpcu base base -f +sfixpcu tool tool -f + bfuse result base tool fsameparameter result diff --git a/tests/boolean/bopcommon_complex/D8 b/tests/boolean/bopcommon_complex/D8 index f0cb078c9e..6c79ef2561 100644 --- a/tests/boolean/bopcommon_complex/D8 +++ b/tests/boolean/bopcommon_complex/D8 @@ -1,6 +1,13 @@ puts "TODO #22911 ALL: Error : The area of the resulting shape is" +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC228.brep] sh + +sfixpcu sh sh -f +checkshape sh + explode sh bop sh_1 sh_2 diff --git a/tests/boolean/bopcommon_complex/D9 b/tests/boolean/bopcommon_complex/D9 index 46c9c167ce..f2b482deaf 100644 --- a/tests/boolean/bopcommon_complex/D9 +++ b/tests/boolean/bopcommon_complex/D9 @@ -1,6 +1,13 @@ puts "TODO #22911 ALL: Error : The area of the resulting shape is" +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC228.brep] sh + +sfixpcu sh sh -f +checkshape sh + explode sh bop sh_2 sh_1 diff --git a/tests/boolean/bopcommon_complex/E9 b/tests/boolean/bopcommon_complex/E9 index ce5c9048ed..b9be514198 100644 --- a/tests/boolean/bopcommon_complex/E9 +++ b/tests/boolean/bopcommon_complex/E9 @@ -1,4 +1,12 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC337.brep] sh + +sfixpcu sh sh -f +fixshape sh sh +checkshape sh + explode sh bop sh_1 sh_2 diff --git a/tests/boolean/bopcommon_complex/F1 b/tests/boolean/bopcommon_complex/F1 index 043cd81c11..3342984bfd 100644 --- a/tests/boolean/bopcommon_complex/F1 +++ b/tests/boolean/bopcommon_complex/F1 @@ -1,4 +1,12 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC337.brep] sh + +sfixpcu sh sh -f +fixshape sh sh +checkshape sh + explode sh bop sh_2 sh_1 diff --git a/tests/boolean/bopcut_complex/E1 b/tests/boolean/bopcut_complex/E1 index 3e696b1bad..145fa225bc 100644 --- a/tests/boolean/bopcut_complex/E1 +++ b/tests/boolean/bopcut_complex/E1 @@ -1,6 +1,13 @@ puts "TODO #22911 ALL: Error : The bopcut cannot be built." +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC228.brep] sh + +sfixpcu sh sh -f +checkshape sh + explode sh bop sh_1 sh_2 diff --git a/tests/boolean/bopcut_complex/E2 b/tests/boolean/bopcut_complex/E2 index 9ebb2dad97..a5891be9f9 100644 --- a/tests/boolean/bopcut_complex/E2 +++ b/tests/boolean/bopcut_complex/E2 @@ -1,6 +1,13 @@ puts "TODO #22911 ALL: Error : The bopcut is not valid" +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC228.brep] sh + +sfixpcu sh sh -f +checkshape sh + explode sh bop sh_2 sh_1 diff --git a/tests/boolean/bopcut_complex/F2 b/tests/boolean/bopcut_complex/F2 index 209cd4e332..bdfeab0fd0 100644 --- a/tests/boolean/bopcut_complex/F2 +++ b/tests/boolean/bopcut_complex/F2 @@ -1,4 +1,11 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC337.brep] sh +sfixpcu sh sh -f +fixshape sh sh +checkshape sh + explode sh bop sh_1 sh_2 diff --git a/tests/boolean/bopcut_complex/F3 b/tests/boolean/bopcut_complex/F3 index 1b8672acf4..01cc61bec8 100644 --- a/tests/boolean/bopcut_complex/F3 +++ b/tests/boolean/bopcut_complex/F3 @@ -1,4 +1,12 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC337.brep] sh + +sfixpcu sh sh -f +fixshape sh sh +checkshape sh + explode sh bop sh_2 sh_1 diff --git a/tests/boolean/bopcut_complex/L9 b/tests/boolean/bopcut_complex/L9 index 750f5d706f..4bee334802 100644 --- a/tests/boolean/bopcut_complex/L9 +++ b/tests/boolean/bopcut_complex/L9 @@ -1,9 +1,18 @@ # Original bug : pro13075 # Date : 19Mai98 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO904_pro13075a.rle] a restore [locate_data_file CTO904_pro13075b.rle] b +sfixpcu a a -f +sfixpcu b b -f + +checkshape a +checkshape b + bop a b bopcut result diff --git a/tests/boolean/bopcut_complex/M1 b/tests/boolean/bopcut_complex/M1 index 0f86fa6445..f40a1134c6 100644 --- a/tests/boolean/bopcut_complex/M1 +++ b/tests/boolean/bopcut_complex/M1 @@ -1,9 +1,18 @@ # Original bug : pro13495 # Date : 19Mai98 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO904_pro13495a.rle] a restore [locate_data_file pro13495b.rle] b +sfixpcu a a -f +sfixpcu b b -f + +checkshape a +checkshape b + bop a b bopcut result diff --git a/tests/boolean/bopfuse_complex/C9 b/tests/boolean/bopfuse_complex/C9 index 7d28456e64..1cca615ab6 100644 --- a/tests/boolean/bopfuse_complex/C9 +++ b/tests/boolean/bopfuse_complex/C9 @@ -1,6 +1,13 @@ puts "TODO #22911 ALL: Error : The bopfuse cannot be built." +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC228.brep] sh + +sfixpcu sh sh -f +checkshape sh + explode sh bop sh_1 sh_2 diff --git a/tests/boolean/bopfuse_complex/D1 b/tests/boolean/bopfuse_complex/D1 index 54c0cf4da4..cf0dddd681 100644 --- a/tests/boolean/bopfuse_complex/D1 +++ b/tests/boolean/bopfuse_complex/D1 @@ -1,6 +1,13 @@ puts "TODO #22911 ALL: Error : The bopfuse cannot be built." +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC228.brep] sh + +sfixpcu sh sh -f +checkshape sh + explode sh bop sh_2 sh_1 diff --git a/tests/boolean/bopfuse_complex/E1 b/tests/boolean/bopfuse_complex/E1 index 5cbc776112..b459545833 100644 --- a/tests/boolean/bopfuse_complex/E1 +++ b/tests/boolean/bopfuse_complex/E1 @@ -1,4 +1,12 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC337.brep] sh + +sfixpcu sh sh -f +fixshape sh sh +checkshape sh + explode sh bop sh_1 sh_2 diff --git a/tests/boolean/bopfuse_complex/E2 b/tests/boolean/bopfuse_complex/E2 index 35b1ff4470..986158860e 100644 --- a/tests/boolean/bopfuse_complex/E2 +++ b/tests/boolean/bopfuse_complex/E2 @@ -1,4 +1,12 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC337.brep] sh + +sfixpcu sh sh -f +fixshape sh sh +checkshape sh + explode sh bop sh_2 sh_1 diff --git a/tests/boolean/bopfuse_complex/J8 b/tests/boolean/bopfuse_complex/J8 index d876991df1..1d865e4ad1 100644 --- a/tests/boolean/bopfuse_complex/J8 +++ b/tests/boolean/bopfuse_complex/J8 @@ -1,8 +1,18 @@ # Original bug : fra60275 # Date : 19Mai98 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO904_fra60275a.rle] a restore [locate_data_file fra60275b.rle] b + +sfixpcu a a -f +sfixpcu b b -f + +checkshape a +checkshape b + tcopy b w mkplane f w diff --git a/tests/boolean/bopfuse_complex/K6 b/tests/boolean/bopfuse_complex/K6 index 2920983f19..1a70be5b6a 100644 --- a/tests/boolean/bopfuse_complex/K6 +++ b/tests/boolean/bopfuse_complex/K6 @@ -1,9 +1,18 @@ # Original bug : cts20280 # Date : 4June98 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO904_cts20280a.rle] a restore [locate_data_file CTO904_cts20280b.rle] b +sfixpcu a a -f +sfixpcu b b -f + +checkshape a +checkshape b + bop a b bopfuse result diff --git a/tests/boolean/bopsection/A2 b/tests/boolean/bopsection/A2 index 86be9b147f..b53dd6d918 100644 --- a/tests/boolean/bopsection/A2 +++ b/tests/boolean/bopsection/A2 @@ -1,8 +1,18 @@ # Original bug : fra60275 # Date : 19Mai98 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO904_fra60275a.rle] a restore [locate_data_file fra60275b.rle] b + +sfixpcu a a -f +sfixpcu b b -f + +checkshape a +checkshape b + tcopy b w mkplane f w diff --git a/tests/boolean/bopsection/A4 b/tests/boolean/bopsection/A4 index 6827fbdbe7..a289ce5be7 100644 --- a/tests/boolean/bopsection/A4 +++ b/tests/boolean/bopsection/A4 @@ -1,9 +1,18 @@ # Original bug : pro13075 # Date : 19Mai98 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO904_pro13075a.rle] a restore [locate_data_file CTO904_pro13075b.rle] b +sfixpcu a a -f +sfixpcu b b -f + +checkshape a +checkshape b + bop a b bopsection result diff --git a/tests/boolean/bopsection/A5 b/tests/boolean/bopsection/A5 index 2588e1a711..bcdb3f0a3a 100644 --- a/tests/boolean/bopsection/A5 +++ b/tests/boolean/bopsection/A5 @@ -1,9 +1,18 @@ # Original bug : pro13495 # Date : 19Mai98 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO904_pro13495a.rle] a restore [locate_data_file pro13495b.rle] b +sfixpcu a a -f +sfixpcu b b -f + +checkshape a +checkshape b + bop a b bopsection result diff --git a/tests/boolean/bopsection/B5 b/tests/boolean/bopsection/B5 index 0b39b5d9dc..c4a19a997e 100644 --- a/tests/boolean/bopsection/B5 +++ b/tests/boolean/bopsection/B5 @@ -1,9 +1,18 @@ # Original bug : cts20280 # Date : 4June98 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO904_cts20280a.rle] a restore [locate_data_file CTO904_cts20280b.rle] b +sfixpcu a a -f +sfixpcu b b -f + +checkshape a +checkshape b + bop a b bopsection result diff --git a/tests/boolean/bsection/O8 b/tests/boolean/bsection/O8 index 0b8fb047b9..cce464447e 100644 --- a/tests/boolean/bsection/O8 +++ b/tests/boolean/bsection/O8 @@ -1,5 +1,15 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CIN900_cts21hlq.rle] a restore [locate_data_file CIN900_cts21hlr.rle] b + +sfixpcu a a -f +sfixpcu b b -f + +checkshape a +checkshape b + bsection result a b set length 79.1327 diff --git a/tests/bugs/heal/bug208 b/tests/bugs/heal/bug208 index 35ea345138..6735ca22a8 100755 --- a/tests/bugs/heal/bug208 +++ b/tests/bugs/heal/bug208 @@ -9,6 +9,7 @@ puts "========" restore [locate_data_file OCC208.brep] a fixshape result a 0.01 0.01 +sfixpcu result result -f checkshape result set 2dviewer 0 diff --git a/tests/bugs/modalg_1/buc60708 b/tests/bugs/modalg_1/buc60708 index 906f393778..6ea376adc7 100755 --- a/tests/bugs/modalg_1/buc60708 +++ b/tests/bugs/modalg_1/buc60708 @@ -3,9 +3,15 @@ puts "===========" puts "BUC60708" puts "===========" +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file buc60708a.brep] a +sfixpcu a a -f checkshape a + restore [locate_data_file buc60708b.brep] b +sfixpcu b b -f checkshape b bcommon result a b diff --git a/tests/bugs/modalg_1/buc60839 b/tests/bugs/modalg_1/buc60839 index cad2dbf042..7e502b6530 100755 --- a/tests/bugs/modalg_1/buc60839 +++ b/tests/bugs/modalg_1/buc60839 @@ -4,9 +4,15 @@ puts "BUC60839" puts "============" puts "" +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file BUC60839-1.brep] a +sfixpcu a a -f checkshape a + restore [locate_data_file BUC60839-2.brep] b +sfixpcu b b -f checkshape b puts "Starting fuse operation" diff --git a/tests/bugs/modalg_1/bug17357_1 b/tests/bugs/modalg_1/bug17357_1 index 1824e6723f..d8f9affb12 100755 --- a/tests/bugs/modalg_1/bug17357_1 +++ b/tests/bugs/modalg_1/bug17357_1 @@ -6,9 +6,18 @@ puts "" # Any boolean operation is impossible between attached shapes ####################################################################### +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC17357-1.brep] b1 restore [locate_data_file OCC17357-2.brep] b2 +sfixpcu b1 b1 -f +sfixpcu b2 b2 -f + +checkshape b1 +checkshape b2 + bop b1 b2 bopcommon result diff --git a/tests/bugs/modalg_1/bug17357_2 b/tests/bugs/modalg_1/bug17357_2 index 7d49291e77..670fa1153e 100755 --- a/tests/bugs/modalg_1/bug17357_2 +++ b/tests/bugs/modalg_1/bug17357_2 @@ -6,9 +6,18 @@ puts "" # Any boolean operation is impossible between attached shapes ####################################################################### +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC17357-1.brep] b1 restore [locate_data_file OCC17357-2.brep] b2 +sfixpcu b1 b1 -f +sfixpcu b2 b2 -f + +checkshape b1 +checkshape b2 + bop b1 b2 bopfuse result diff --git a/tests/bugs/modalg_1/bug17357_3 b/tests/bugs/modalg_1/bug17357_3 index 3e7b43055b..6c8cb74299 100755 --- a/tests/bugs/modalg_1/bug17357_3 +++ b/tests/bugs/modalg_1/bug17357_3 @@ -6,9 +6,18 @@ puts "" # Any boolean operation is impossible between attached shapes ####################################################################### +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC17357-1.brep] b1 restore [locate_data_file OCC17357-2.brep] b2 +sfixpcu b1 b1 -f +sfixpcu b2 b2 -f + +checkshape b1 +checkshape b2 + bop b1 b2 bopcut result diff --git a/tests/bugs/modalg_1/bug17357_4 b/tests/bugs/modalg_1/bug17357_4 index 2083ce5f33..24d5d8b58b 100755 --- a/tests/bugs/modalg_1/bug17357_4 +++ b/tests/bugs/modalg_1/bug17357_4 @@ -6,9 +6,18 @@ puts "" # Any boolean operation is impossible between attached shapes ####################################################################### +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC17357-1.brep] b1 restore [locate_data_file OCC17357-2.brep] b2 +sfixpcu b1 b1 -f +sfixpcu b2 b2 -f + +checkshape b1 +checkshape b2 + bop b1 b2 boptuc result diff --git a/tests/bugs/modalg_1/bug17357_5 b/tests/bugs/modalg_1/bug17357_5 index 179c395dd0..c076b49354 100755 --- a/tests/bugs/modalg_1/bug17357_5 +++ b/tests/bugs/modalg_1/bug17357_5 @@ -6,9 +6,18 @@ puts "" # Any boolean operation is impossible between attached shapes ####################################################################### +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC17357-1.brep] b1 restore [locate_data_file OCC17357-2.brep] b2 +sfixpcu b1 b1 -f +sfixpcu b2 b2 -f + +checkshape b1 +checkshape b2 + bop b1 b2 bopsection result diff --git a/tests/bugs/modalg_2/bug22557 b/tests/bugs/modalg_2/bug22557 index 4913814064..bc148e3306 100755 --- a/tests/bugs/modalg_2/bug22557 +++ b/tests/bugs/modalg_2/bug22557 @@ -8,12 +8,21 @@ puts "" set BugNumber OCC22557 +# for "sfixpcu" command +pload XSDRAW + puts "Load first shape ..." restore [locate_data_file bug22557_Bloc_racine_70deg.brep] b1 puts "Load second shape ..." restore [locate_data_file bug22557_PaveEntree.brep] b2 +sfixpcu b1 b1 -f +sfixpcu b2 b2 -f + +checkshape b1 +checkshape b2 + puts "Prepare boolean operation ..." bop b1 b2 diff --git a/tests/bugs/modalg_2/bug22770_10 b/tests/bugs/modalg_2/bug22770_10 index a3cf744931..e3e567b7fb 100755 --- a/tests/bugs/modalg_2/bug22770_10 +++ b/tests/bugs/modalg_2/bug22770_10 @@ -8,8 +8,18 @@ puts "" set BugNumber OCC22770 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file 22770-tramp.brep] a restore [locate_data_file 22770-trans.brep] b + +sfixpcu a a -f +sfixpcu b b -f + +checkshape a +checkshape b + sewing result +t 0.01 a b +mint 0.01 -a set square 1.88469e+07 diff --git a/tests/bugs/modalg_2/bug22770_11 b/tests/bugs/modalg_2/bug22770_11 index 66c4e02873..c784760f8d 100755 --- a/tests/bugs/modalg_2/bug22770_11 +++ b/tests/bugs/modalg_2/bug22770_11 @@ -8,8 +8,18 @@ puts "" set BugNumber OCC22770 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file 22770-tramp.brep] a restore [locate_data_file 22770-trans.brep] b + +sfixpcu a a -f +sfixpcu b b -f + +checkshape a +checkshape b + sewing result +t 0.01 a b +mint 0.01 +s set square 1.88469e+07 diff --git a/tests/bugs/modalg_2/bug22770_12 b/tests/bugs/modalg_2/bug22770_12 index 1175d274f4..6c47bfe450 100755 --- a/tests/bugs/modalg_2/bug22770_12 +++ b/tests/bugs/modalg_2/bug22770_12 @@ -8,8 +8,18 @@ puts "" set BugNumber OCC22770 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file 22770-tramp.brep] a restore [locate_data_file 22770-trans.brep] b + +sfixpcu a a -f +sfixpcu b b -f + +checkshape a +checkshape b + sewing result a b -c set square 1.8847e+07 diff --git a/tests/bugs/modalg_2/bug22770_13 b/tests/bugs/modalg_2/bug22770_13 index a8a71313f9..8397dfe2ed 100755 --- a/tests/bugs/modalg_2/bug22770_13 +++ b/tests/bugs/modalg_2/bug22770_13 @@ -18,8 +18,18 @@ catch { pload XDE } # Open a transaction # NewCommand D +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file 22770-tramp.brep] a restore [locate_data_file 22770-trans.brep] b + +sfixpcu a a -f +sfixpcu b b -f + +checkshape a +checkshape b + sewing result a b +c set square 1.8847e+07 diff --git a/tests/bugs/modalg_2/bug22770_14 b/tests/bugs/modalg_2/bug22770_14 index 5adb151355..aae9f8db43 100755 --- a/tests/bugs/modalg_2/bug22770_14 +++ b/tests/bugs/modalg_2/bug22770_14 @@ -8,8 +8,18 @@ puts "" set BugNumber OCC22770 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file 22770-tramp.brep] a restore [locate_data_file 22770-trans.brep] b + +sfixpcu a a -f +sfixpcu b b -f + +checkshape a +checkshape b + sewing result a b +c -f set square 1.8847e+07 diff --git a/tests/bugs/modalg_2/bug22770_15 b/tests/bugs/modalg_2/bug22770_15 index 6e18d39952..581ffff375 100755 --- a/tests/bugs/modalg_2/bug22770_15 +++ b/tests/bugs/modalg_2/bug22770_15 @@ -18,8 +18,18 @@ catch { pload XDE } # Open a transaction # NewCommand D +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file 22770-tramp.brep] a restore [locate_data_file 22770-trans.brep] b + +sfixpcu a a -f +sfixpcu b b -f + +checkshape a +checkshape b + sewing result a b -p set square 1.8847e+07 diff --git a/tests/bugs/modalg_2/bug22770_23 b/tests/bugs/modalg_2/bug22770_23 index bc31bc4fb6..367161c308 100755 --- a/tests/bugs/modalg_2/bug22770_23 +++ b/tests/bugs/modalg_2/bug22770_23 @@ -8,9 +8,18 @@ puts "" set BugNumber OCC22770 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file 22770-tramp.brep] a restore [locate_data_file 22770-trans.brep] b +sfixpcu a a -f +sfixpcu b b -f + +checkshape a +checkshape b + sewing result 0.1 a b set square 1.8847e+07 diff --git a/tests/bugs/modalg_2/bug22770_24 b/tests/bugs/modalg_2/bug22770_24 index 514f25b65a..2dfda9e05a 100755 --- a/tests/bugs/modalg_2/bug22770_24 +++ b/tests/bugs/modalg_2/bug22770_24 @@ -10,9 +10,18 @@ puts "" set BugNumber OCC22770 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file 22770-tramp.brep] a restore [locate_data_file 22770-trans.brep] b +sfixpcu a a -f +sfixpcu b b -f + +checkshape a +checkshape b + sewing result 0.1 a b +mint 0.01 set square 1.88469e+07 diff --git a/tests/bugs/modalg_2/bug22770_25 b/tests/bugs/modalg_2/bug22770_25 index b598450d54..2cdb20a5f6 100755 --- a/tests/bugs/modalg_2/bug22770_25 +++ b/tests/bugs/modalg_2/bug22770_25 @@ -10,9 +10,18 @@ puts "" set BugNumber OCC22770 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file 22770-tramp.brep] a restore [locate_data_file 22770-trans.brep] b +sfixpcu a a -f +sfixpcu b b -f + +checkshape a +checkshape b + sewing result 0.1 a b +mint 0.01 -a set square 1.88469e+07 diff --git a/tests/bugs/modalg_2/bug22770_26 b/tests/bugs/modalg_2/bug22770_26 index 458b9bbf1b..f2f6fa0a8d 100755 --- a/tests/bugs/modalg_2/bug22770_26 +++ b/tests/bugs/modalg_2/bug22770_26 @@ -10,9 +10,18 @@ puts "" set BugNumber OCC22770 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file 22770-tramp.brep] a restore [locate_data_file 22770-trans.brep] b +sfixpcu a a -f +sfixpcu b b -f + +checkshape a +checkshape b + sewing result 0.1 a b +mint 0.01 +s set square 1.88469e+07 diff --git a/tests/bugs/modalg_2/bug22770_27 b/tests/bugs/modalg_2/bug22770_27 index 434392e1e7..0e691686a3 100755 --- a/tests/bugs/modalg_2/bug22770_27 +++ b/tests/bugs/modalg_2/bug22770_27 @@ -8,9 +8,18 @@ puts "" set BugNumber OCC22770 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file 22770-tramp.brep] a restore [locate_data_file 22770-trans.brep] b +sfixpcu a a -f +sfixpcu b b -f + +checkshape a +checkshape b + sewing result 0.1 a b -c set square 1.8847e+07 diff --git a/tests/bugs/modalg_2/bug22770_28 b/tests/bugs/modalg_2/bug22770_28 index 3ea3fffc4e..4a0fd57c42 100755 --- a/tests/bugs/modalg_2/bug22770_28 +++ b/tests/bugs/modalg_2/bug22770_28 @@ -8,9 +8,18 @@ puts "" set BugNumber OCC22770 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file 22770-tramp.brep] a restore [locate_data_file 22770-trans.brep] b +sfixpcu a a -f +sfixpcu b b -f + +checkshape a +checkshape b + sewing result 0.1 a b +c set square 1.8847e+07 diff --git a/tests/bugs/modalg_2/bug22770_29 b/tests/bugs/modalg_2/bug22770_29 index dd81aead93..f1863601d1 100755 --- a/tests/bugs/modalg_2/bug22770_29 +++ b/tests/bugs/modalg_2/bug22770_29 @@ -8,9 +8,18 @@ puts "" set BugNumber OCC22770 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file 22770-tramp.brep] a restore [locate_data_file 22770-trans.brep] b +sfixpcu a a -f +sfixpcu b b -f + +checkshape a +checkshape b + sewing result 0.1 a b +c -f set square 1.8847e+07 diff --git a/tests/bugs/modalg_2/bug22770_30 b/tests/bugs/modalg_2/bug22770_30 index 41710a7d22..1b7512f933 100755 --- a/tests/bugs/modalg_2/bug22770_30 +++ b/tests/bugs/modalg_2/bug22770_30 @@ -8,9 +8,18 @@ puts "" set BugNumber OCC22770 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file 22770-tramp.brep] a restore [locate_data_file 22770-trans.brep] b +sfixpcu a a -f +sfixpcu b b -f + +checkshape a +checkshape b + sewing result 0.1 a b -p set square 1.8847e+07 diff --git a/tests/bugs/modalg_2/bug22770_8 b/tests/bugs/modalg_2/bug22770_8 index af0acc45fb..58fbb6712e 100755 --- a/tests/bugs/modalg_2/bug22770_8 +++ b/tests/bugs/modalg_2/bug22770_8 @@ -10,8 +10,18 @@ puts "" set BugNumber OCC22770 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file 22770-tramp.brep] a restore [locate_data_file 22770-trans.brep] b + +sfixpcu a a -f +sfixpcu b b -f + +checkshape a +checkshape b + sewing result +t 0.01 a b set square 1.88469e+07 diff --git a/tests/bugs/modalg_2/bug22770_9 b/tests/bugs/modalg_2/bug22770_9 index 41b7b405f9..87a2482805 100755 --- a/tests/bugs/modalg_2/bug22770_9 +++ b/tests/bugs/modalg_2/bug22770_9 @@ -8,8 +8,18 @@ puts "" set BugNumber OCC22770 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file 22770-tramp.brep] a restore [locate_data_file 22770-trans.brep] b + +sfixpcu a a -f +sfixpcu b b -f + +checkshape a +checkshape b + sewing result +t 0.01 a b +mint 0.01 set square 1.88469e+07 diff --git a/tests/bugs/modalg_2/bug23530 b/tests/bugs/modalg_2/bug23530 index ae2158e407..4667e126e0 100755 --- a/tests/bugs/modalg_2/bug23530 +++ b/tests/bugs/modalg_2/bug23530 @@ -6,7 +6,11 @@ puts "" ## Error in Draw command "checkshape": invalid face is not recognized ################################################## +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file bug23530_BadFace.brep] result +sfixpcu result result -f pcurve result decho off diff --git a/tests/bugs/modalg_2/bug263 b/tests/bugs/modalg_2/bug263 index 35d5f52d13..18b7afa43b 100755 --- a/tests/bugs/modalg_2/bug263 +++ b/tests/bugs/modalg_2/bug263 @@ -1,12 +1,18 @@ puts "TODO OCC11111 ALL: Faulty OCC263: here is shading problem" puts "TODO OCC11111 ALL: Error : The square of result shape is" +# for "sfixpcu" command +pload XSDRAW + + puts "========" puts "OCC263" puts "========" restore [locate_data_file OCC263.brep] result +sfixpcu result result -f + isos result 0 tclean result diff --git a/tests/bugs/modalg_2/bug264_1 b/tests/bugs/modalg_2/bug264_1 index 83974cb1b2..cffc32ea19 100755 --- a/tests/bugs/modalg_2/bug264_1 +++ b/tests/bugs/modalg_2/bug264_1 @@ -6,7 +6,11 @@ puts "OCC264" puts " (case 1)" puts "========" +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC264_01.brep] result +sfixpcu result result -f checkshape result tclean result diff --git a/tests/bugs/modalg_2/bug264_11 b/tests/bugs/modalg_2/bug264_11 index 0d0348eb7a..01c429373a 100755 --- a/tests/bugs/modalg_2/bug264_11 +++ b/tests/bugs/modalg_2/bug264_11 @@ -6,7 +6,11 @@ puts "OCC264" puts " (case 11)" puts "========" +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC264_11.brep] result +sfixpcu result result -f checkshape result tclean result diff --git a/tests/bugs/modalg_2/bug264_7 b/tests/bugs/modalg_2/bug264_7 index f129ed91c0..48542e96d3 100755 --- a/tests/bugs/modalg_2/bug264_7 +++ b/tests/bugs/modalg_2/bug264_7 @@ -4,7 +4,11 @@ puts "OCC264" puts " (case 7)" puts "========" +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC264_07.brep] result +sfixpcu result result -f checkshape result tclean result diff --git a/tests/bugs/modalg_2/bug269_1 b/tests/bugs/modalg_2/bug269_1 index db76719f71..ef9c011b63 100755 --- a/tests/bugs/modalg_2/bug269_1 +++ b/tests/bugs/modalg_2/bug269_1 @@ -1,8 +1,14 @@ puts "======== OCC269 ========" +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC269-1.brep] result + +sfixpcu result result -f checkshape result + isos result 0 tclean result diff --git a/tests/bugs/modalg_2/bug269_3 b/tests/bugs/modalg_2/bug269_3 index 0c73a2ee92..ee8eeb1569 100755 --- a/tests/bugs/modalg_2/bug269_3 +++ b/tests/bugs/modalg_2/bug269_3 @@ -1,8 +1,14 @@ puts "======== OCC269 ========" +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC269-3.brep] result + +sfixpcu result result -f checkshape result + isos result 0 tclean result diff --git a/tests/bugs/modalg_2/bug287 b/tests/bugs/modalg_2/bug287 index e7d41ac308..27ba390d89 100755 --- a/tests/bugs/modalg_2/bug287 +++ b/tests/bugs/modalg_2/bug287 @@ -5,7 +5,12 @@ puts "========================" puts " OCC287 " puts "========================" +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file shading_170.brep] result + +sfixpcu result result -f checkshape result tclean result diff --git a/tests/bugs/modalg_2/bug302_3 b/tests/bugs/modalg_2/bug302_3 index cc6d332634..0562dae529 100755 --- a/tests/bugs/modalg_2/bug302_3 +++ b/tests/bugs/modalg_2/bug302_3 @@ -8,7 +8,11 @@ puts "" ## but I believe that orientation of this face is correct. ################################################################# +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC302c.brep] result +fixshape result result set che [checkshape result r] if { [regexp {OK} $che] !=1 } { diff --git a/tests/bugs/modalg_2/bug337 b/tests/bugs/modalg_2/bug337 index 0d821463b4..cf7b4307f8 100755 --- a/tests/bugs/modalg_2/bug337 +++ b/tests/bugs/modalg_2/bug337 @@ -7,7 +7,11 @@ puts "" ## It's impossible to fuse two solids in the file attached. ############################################ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC337_clone1.brep] a +sfixpcu a a -f explode a set che [checkshape a_1] diff --git a/tests/bugs/modalg_2/bug347_1 b/tests/bugs/modalg_2/bug347_1 index 3471512529..c2d63bde3a 100755 --- a/tests/bugs/modalg_2/bug347_1 +++ b/tests/bugs/modalg_2/bug347_1 @@ -5,7 +5,11 @@ puts " OCC347 " puts " (case 1) " puts "========================" +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC347a.brep] result +sfixpcu result result -f checkshape result tclean result diff --git a/tests/bugs/modalg_2/bug347_2 b/tests/bugs/modalg_2/bug347_2 index 635521d079..615f1d934c 100755 --- a/tests/bugs/modalg_2/bug347_2 +++ b/tests/bugs/modalg_2/bug347_2 @@ -5,7 +5,12 @@ puts " OCC347 " puts " (case 2) " puts "========================" +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC347b.brep] result + +sfixpcu result result -f checkshape result tclean result diff --git a/tests/bugs/modalg_2/bug416 b/tests/bugs/modalg_2/bug416 index 82e9091d50..71e919642f 100755 --- a/tests/bugs/modalg_2/bug416 +++ b/tests/bugs/modalg_2/bug416 @@ -5,10 +5,15 @@ puts "CTS19305" puts "========================" puts "" +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_cts19305-part.rle] part +sfixpcu part part -f checkshape part restore [locate_data_file CTO900_cts19305-tool.rle] tool +sfixpcu tool tool -f checkshape tool bcut result part tool diff --git a/tests/bugs/modalg_2/bug446_2 b/tests/bugs/modalg_2/bug446_2 index f6fcfd0ebf..5938c51db1 100755 --- a/tests/bugs/modalg_2/bug446_2 +++ b/tests/bugs/modalg_2/bug446_2 @@ -9,8 +9,13 @@ puts "" ## As result I have fail on shape that it is not closed. ###################################### +# for "ffixpcu" command +pload XSDRAW + restore [locate_data_file OCC446b.brep] result +ffixpcu result -f -s + set che [checkshape result] if { [regexp {Faulty} $che ] == 1} { puts "Faulty OCC446 (case 2): Source shape is NotClosed" diff --git a/tests/bugs/modalg_2/bug446_3 b/tests/bugs/modalg_2/bug446_3 index cf1efa8ae9..83e84a9d52 100755 --- a/tests/bugs/modalg_2/bug446_3 +++ b/tests/bugs/modalg_2/bug446_3 @@ -9,8 +9,13 @@ puts "" ## As result I have fail on shape that it is not closed. ###################################### +# for "ffixpcu" command +pload XSDRAW + restore [locate_data_file OCC446c.brep] result +ffixpcu result -f -s + set che [checkshape result] if { [regexp {Faulty} $che ] == 1} { puts "Faulty OCC446 (case 3): Source shape is NotClosed" diff --git a/tests/bugs/modalg_2/bug452_2 b/tests/bugs/modalg_2/bug452_2 index a938728c05..a7642ca22f 100755 --- a/tests/bugs/modalg_2/bug452_2 +++ b/tests/bugs/modalg_2/bug452_2 @@ -6,7 +6,11 @@ puts "(case 2)" puts "========" puts "" +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file mds-part1.rle] a +sfixpcu a a -f set che [checkshape a] if { [regexp {Faulty} $che ] == 1 } { puts "Faulty OCC452 (shape 1): Source shape is invalid. It was detected by Checkshape command" @@ -15,6 +19,7 @@ if { [regexp {Faulty} $che ] == 1 } { } restore [locate_data_file mds-part2.rle] b +sfixpcu b b -f set che [checkshape b] if { [regexp {Faulty} $che ] == 1 } { puts "Faulty OCC452 (shape 2): Source shape is invalid. It was detected by Checkshape command" @@ -23,6 +28,7 @@ if { [regexp {Faulty} $che ] == 1 } { } restore [locate_data_file CTO900_ger60239a.rle] c +sfixpcu c c -f set che [checkshape c] if { [regexp {Faulty} $che ] == 1 } { puts "Faulty OCC452 (shape 3): Source shape is invalid. It was detected by Checkshape command" @@ -31,6 +37,7 @@ if { [regexp {Faulty} $che ] == 1 } { } restore [locate_data_file CTO900_ger60239b.rle] d +sfixpcu d d -f set che [checkshape d] if { [regexp {Faulty} $che ] == 1 } { puts "Faulty OCC452 (shape 4): Source shape is invalid. It was detected by Checkshape command" diff --git a/tests/bugs/modalg_2/bug452_3 b/tests/bugs/modalg_2/bug452_3 index 3ec86b68f2..b0426dd3d0 100755 --- a/tests/bugs/modalg_2/bug452_3 +++ b/tests/bugs/modalg_2/bug452_3 @@ -6,7 +6,11 @@ puts "(case 3)" puts "========" puts "" +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_ger60239a.rle] a +sfixpcu a a -f set che [checkshape a] if { [regexp {Faulty} $che ] == 1 } { puts "Faulty OCC452 (shape 5): Source shape is invalid. It was detected by Checkshape command" @@ -15,6 +19,7 @@ if { [regexp {Faulty} $che ] == 1 } { } restore [locate_data_file CTO900_ger60239b.rle] b +sfixpcu b b -f set che [checkshape b] if { [regexp {Faulty} $che ] == 1 } { puts "Faulty OCC452 (shape 6): Source shape is invalid. It was detected by Checkshape command" diff --git a/tests/bugs/modalg_2/bug472_1 b/tests/bugs/modalg_2/bug472_1 index bc835520cf..e06498de26 100755 --- a/tests/bugs/modalg_2/bug472_1 +++ b/tests/bugs/modalg_2/bug472_1 @@ -10,10 +10,15 @@ puts "" ## Bad result of Fuse Operation (Cut&Common - bad too). SAM1470 (#2634) ##################################################### +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC472a.brep] b1 +sfixpcu b1 b1 -f checkshape b1 restore [locate_data_file OCC472b.brep] b2 +sfixpcu b2 b2 -f checkshape b2 bcut result b1 b2 diff --git a/tests/bugs/modalg_2/bug472_2 b/tests/bugs/modalg_2/bug472_2 index 4860fd4b15..5b049d7620 100755 --- a/tests/bugs/modalg_2/bug472_2 +++ b/tests/bugs/modalg_2/bug472_2 @@ -8,10 +8,15 @@ puts "" ## Bad result of Fuse Operation (Cut&Common - bad too). SAM1470 (#2634) ##################################################### +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC472a.brep] b1 +sfixpcu b1 b1 -f checkshape b1 restore [locate_data_file OCC472b.brep] b2 +sfixpcu b2 b2 -f checkshape b2 bcommon result b1 b2 diff --git a/tests/bugs/modalg_2/bug472_3 b/tests/bugs/modalg_2/bug472_3 index ab4d5b556f..5dcee9ee3c 100755 --- a/tests/bugs/modalg_2/bug472_3 +++ b/tests/bugs/modalg_2/bug472_3 @@ -11,10 +11,15 @@ puts "" ## Bad result of Fuse Operation (Cut&Common - bad too). SAM1470 (#2634) ##################################################### +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC472a.brep] b1 +sfixpcu b1 b1 -f checkshape b1 restore [locate_data_file OCC472b.brep] b2 +sfixpcu b2 b2 -f checkshape b2 bfuse result b1 b2 diff --git a/tests/bugs/modalg_2/bug476_1 b/tests/bugs/modalg_2/bug476_1 index e05d8c9dc0..6801af0a6f 100755 --- a/tests/bugs/modalg_2/bug476_1 +++ b/tests/bugs/modalg_2/bug476_1 @@ -6,9 +6,15 @@ puts "" # Regression on reading e3i files with respect of OCC30 and OCC40 ###################################################### +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC485b.brep] s1 restore [locate_data_file OCC485a.brep] s2 +sfixpcu s1 s1 -f +sfixpcu s2 s2 -f + checkshape s1 checkshape s2 diff --git a/tests/bugs/modalg_2/bug476_2 b/tests/bugs/modalg_2/bug476_2 index 892685e680..ba0506cc96 100755 --- a/tests/bugs/modalg_2/bug476_2 +++ b/tests/bugs/modalg_2/bug476_2 @@ -6,9 +6,15 @@ puts "" # Regression on reading e3i files with respect of OCC30 and OCC40 ###################################################### +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC485b.brep] s1 restore [locate_data_file OCC485a.brep] s2 +sfixpcu s1 s1 -f +sfixpcu s2 s2 -f + checkshape s1 checkshape s2 diff --git a/tests/bugs/modalg_2/bug476_3 b/tests/bugs/modalg_2/bug476_3 index ef5d6ff58b..d3c7f95347 100755 --- a/tests/bugs/modalg_2/bug476_3 +++ b/tests/bugs/modalg_2/bug476_3 @@ -6,9 +6,15 @@ puts "" # Regression on reading e3i files with respect of OCC30 and OCC40 ###################################################### +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC485b.brep] s1 restore [locate_data_file OCC485a.brep] s2 +sfixpcu s1 s1 -f +sfixpcu s2 s2 -f + checkshape s1 checkshape s2 diff --git a/tests/bugs/modalg_2/bug476_4 b/tests/bugs/modalg_2/bug476_4 index 55739ac89c..4338257282 100755 --- a/tests/bugs/modalg_2/bug476_4 +++ b/tests/bugs/modalg_2/bug476_4 @@ -6,9 +6,15 @@ puts "" # Regression on reading e3i files with respect of OCC30 and OCC40 ###################################################### +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC485b.brep] s1 restore [locate_data_file OCC485a.brep] s2 +sfixpcu s1 s1 -f +sfixpcu s2 s2 -f + checkshape s1 checkshape s2 diff --git a/tests/bugs/modalg_2/bug476_5 b/tests/bugs/modalg_2/bug476_5 index b7a375c85a..c75ef637fa 100755 --- a/tests/bugs/modalg_2/bug476_5 +++ b/tests/bugs/modalg_2/bug476_5 @@ -6,9 +6,15 @@ puts "" # Regression on reading e3i files with respect of OCC30 and OCC40 ###################################################### +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC485b.brep] s1 restore [locate_data_file OCC485a.brep] s2 +sfixpcu s1 s1 -f +sfixpcu s2 s2 -f + checkshape s1 checkshape s2 diff --git a/tests/bugs/modalg_2/bug476_6 b/tests/bugs/modalg_2/bug476_6 index a43243998f..f2bd7e36b9 100755 --- a/tests/bugs/modalg_2/bug476_6 +++ b/tests/bugs/modalg_2/bug476_6 @@ -6,9 +6,15 @@ puts "" # Regression on reading e3i files with respect of OCC30 and OCC40 ###################################################### +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC485b.brep] s1 restore [locate_data_file OCC485a.brep] s2 +sfixpcu s1 s1 -f +sfixpcu s2 s2 -f + checkshape s1 checkshape s2 diff --git a/tests/bugs/modalg_2/bug476_7 b/tests/bugs/modalg_2/bug476_7 index e8c9a7efb9..cadf193133 100755 --- a/tests/bugs/modalg_2/bug476_7 +++ b/tests/bugs/modalg_2/bug476_7 @@ -6,9 +6,15 @@ puts "" # Regression on reading e3i files with respect of OCC30 and OCC40 ###################################################### +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC485b.brep] s1 restore [locate_data_file OCC485a.brep] s2 +sfixpcu s1 s1 -f +sfixpcu s2 s2 -f + checkshape s1 checkshape s2 diff --git a/tests/bugs/modalg_2/bug476_8 b/tests/bugs/modalg_2/bug476_8 index f519b5abb6..cf7b4fe7e9 100755 --- a/tests/bugs/modalg_2/bug476_8 +++ b/tests/bugs/modalg_2/bug476_8 @@ -6,9 +6,15 @@ puts "" # Regression on reading e3i files with respect of OCC30 and OCC40 ###################################################### +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC485b.brep] s1 restore [locate_data_file OCC485a.brep] s2 +sfixpcu s1 s1 -f +sfixpcu s2 s2 -f + checkshape s1 checkshape s2 diff --git a/tests/bugs/modalg_2/bug481 b/tests/bugs/modalg_2/bug481 index 367af52bcb..33780a56ac 100755 --- a/tests/bugs/modalg_2/bug481 +++ b/tests/bugs/modalg_2/bug481 @@ -7,7 +7,11 @@ puts "" ##Attached shape could not be displayed in the Shading mode. ########################################## +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC481.rle] result +sfixpcu result result -f checkshape result tclean result diff --git a/tests/bugs/modalg_2/bug485 b/tests/bugs/modalg_2/bug485 index b33b0806cb..b46b1d35ae 100755 --- a/tests/bugs/modalg_2/bug485 +++ b/tests/bugs/modalg_2/bug485 @@ -7,10 +7,15 @@ puts "" ## Draw hangs up during performing fuse operation ####################################### +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC485a.brep] a_1 +sfixpcu a_1 a_1 -f checkshape a_1 restore [locate_data_file OCC485a.brep] a_2 +sfixpcu a_2 a_2 -f checkshape a_2 if [catch {bfuse result a_1 a_2 } result] { diff --git a/tests/bugs/modalg_4/bug6181 b/tests/bugs/modalg_4/bug6181 index 5a5667d9e1..3697723624 100755 --- a/tests/bugs/modalg_4/bug6181 +++ b/tests/bugs/modalg_4/bug6181 @@ -8,9 +8,18 @@ puts "" set BugNumber OCC6181 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC6181_A.brep] s1 restore [locate_data_file OCC6181_B.brep] s2 +sfixpcu s1 s1 -f +sfixpcu s2 s2 -f + +checkshape s1 +checkshape s2 + decho off set che_s1 [checkshape s1] set che_s2 [checkshape s2] diff --git a/tests/bugs/modalg_4/bug6182 b/tests/bugs/modalg_4/bug6182 index f0b12771a4..bb31f67fc8 100755 --- a/tests/bugs/modalg_4/bug6182 +++ b/tests/bugs/modalg_4/bug6182 @@ -8,9 +8,15 @@ puts "" set BugNumber OCC6182 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC6182_A.brep] s1 restore [locate_data_file OCC6182_B.brep] s2 +sfixpcu s1 s1 -f +sfixpcu s2 s2 -f + decho off set che_s1 [checkshape s1] set che_s2 [checkshape s2] diff --git a/tests/bugs/modalg_4/bug620_1 b/tests/bugs/modalg_4/bug620_1 index cdf6464683..1c1693e53d 100755 --- a/tests/bugs/modalg_4/bug620_1 +++ b/tests/bugs/modalg_4/bug620_1 @@ -7,9 +7,14 @@ puts "" ## No possibility to cut the shapes. ############################ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC620a.brep] a +sfixpcu a a -f checkshape a restore [locate_data_file OCC620b.brep] b +sfixpcu b b -f checkshape b bop a b diff --git a/tests/bugs/modalg_4/bug620_2 b/tests/bugs/modalg_4/bug620_2 index 94eb0c211b..2ddd1972c0 100755 --- a/tests/bugs/modalg_4/bug620_2 +++ b/tests/bugs/modalg_4/bug620_2 @@ -7,9 +7,14 @@ puts "" ## No possibility to cut the shapes. ############################ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC620a.brep] a +sfixpcu a a -f checkshape a restore [locate_data_file OCC620b.brep] b +sfixpcu b b -f checkshape b bop a b diff --git a/tests/bugs/modalg_4/bug6272_5 b/tests/bugs/modalg_4/bug6272_5 index fc46efeeb1..b69ef16cf1 100755 --- a/tests/bugs/modalg_4/bug6272_5 +++ b/tests/bugs/modalg_4/bug6272_5 @@ -8,8 +8,14 @@ puts "" set BugNumber OCC6272 +# for "sfixpcu" command +pload XSDRAW + + restore [locate_data_file OCC6272_bridge2.brep] a1 +sfixpcu a1 a1 -f + explode a1 bop a1_1 a1_2 diff --git a/tests/bugs/modalg_4/bug6272_6 b/tests/bugs/modalg_4/bug6272_6 index 4bc54718e4..5734eb9767 100755 --- a/tests/bugs/modalg_4/bug6272_6 +++ b/tests/bugs/modalg_4/bug6272_6 @@ -11,9 +11,16 @@ puts "" set BugNumber OCC6272 +# for "sfixpcu" command +pload XSDRAW + + restore [locate_data_file OCC6272_bridge2.brep] a1 restore [locate_data_file OCC6272_revolution.brep] a2 +sfixpcu a1 a1 -f +sfixpcu a2 a2 -f + bop a1 a2 bopfuse result diff --git a/tests/bugs/modalg_4/bug6272_710 b/tests/bugs/modalg_4/bug6272_710 index 12b3ca8ffb..bd7803920b 100755 --- a/tests/bugs/modalg_4/bug6272_710 +++ b/tests/bugs/modalg_4/bug6272_710 @@ -8,8 +8,14 @@ puts "" set BugNumber OCC6272 +# for "sfixpcu" command +pload XSDRAW + + restore [locate_data_file OCC6272_bridge2.brep] a1 +sfixpcu a1 a1 -f + # # a1 is compound. It containes a_3, a_5, a_1, a_2, a_4, a_6 solids # diff --git a/tests/bugs/modalg_4/bug6272_77 b/tests/bugs/modalg_4/bug6272_77 index 05d7c48819..6d95c6406f 100755 --- a/tests/bugs/modalg_4/bug6272_77 +++ b/tests/bugs/modalg_4/bug6272_77 @@ -8,8 +8,14 @@ puts "" set BugNumber OCC6272 +# for "sfixpcu" command +pload XSDRAW + + restore [locate_data_file OCC6272_bridge2.brep] a1 +sfixpcu a1 a1 -f + # # a1 is compound. It containes a_3, a_5, a_1, a_2, a_4, a_6 solids # diff --git a/tests/bugs/modalg_4/bug6272_78 b/tests/bugs/modalg_4/bug6272_78 index 7ed242a4f8..31438c0f32 100755 --- a/tests/bugs/modalg_4/bug6272_78 +++ b/tests/bugs/modalg_4/bug6272_78 @@ -8,8 +8,14 @@ puts "" set BugNumber OCC6272 +# for "sfixpcu" command +pload XSDRAW + + restore [locate_data_file OCC6272_bridge2.brep] a1 +sfixpcu a1 a1 -f + # # a1 is compound. It containes a_3, a_5, a_1, a_2, a_4, a_6 solids # diff --git a/tests/bugs/modalg_4/bug6272_79 b/tests/bugs/modalg_4/bug6272_79 index 987aa25e56..fcd537b42e 100755 --- a/tests/bugs/modalg_4/bug6272_79 +++ b/tests/bugs/modalg_4/bug6272_79 @@ -8,8 +8,14 @@ puts "" set BugNumber OCC6272 +# for "sfixpcu" command +pload XSDRAW + + restore [locate_data_file OCC6272_bridge2.brep] a1 +sfixpcu a1 a1 -f + # # a1 is compound. It containes a_3, a_5, a_1, a_2, a_4, a_6 solids # diff --git a/tests/bugs/modalg_4/bug714 b/tests/bugs/modalg_4/bug714 index 41152a8658..fd1b868c88 100755 --- a/tests/bugs/modalg_4/bug714 +++ b/tests/bugs/modalg_4/bug714 @@ -7,7 +7,11 @@ puts "" ## After command sew in DRAW on attached shape free wires are disappeared. #################################################### +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC714.brep] a +sfixpcu a a -f checkshape a set nb_info1 [nbshapes a] diff --git a/tests/bugs/modalg_4/bug774_1 b/tests/bugs/modalg_4/bug774_1 index b8a4a1a21e..b81ebb7d64 100755 --- a/tests/bugs/modalg_4/bug774_1 +++ b/tests/bugs/modalg_4/bug774_1 @@ -9,7 +9,12 @@ puts "" ## It's impossible to cut one shape from another. ################################# +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC774.brep] a +sfixpcu a a -f + explode a checkshape a_1 checkshape a_2 diff --git a/tests/bugs/modalg_4/bug774_2 b/tests/bugs/modalg_4/bug774_2 index 8d902616ce..e4da6eaddc 100755 --- a/tests/bugs/modalg_4/bug774_2 +++ b/tests/bugs/modalg_4/bug774_2 @@ -9,7 +9,13 @@ puts "========" puts "" ################################# ## + +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC774.brep] a +sfixpcu a a -f + explode a checkshape a_1 checkshape a_2 diff --git a/tests/bugs/modalg_4/bug778_1 b/tests/bugs/modalg_4/bug778_1 index 8dfba8f219..d7abc7396e 100755 --- a/tests/bugs/modalg_4/bug778_1 +++ b/tests/bugs/modalg_4/bug778_1 @@ -9,7 +9,12 @@ puts "" ## Incorrect result of cut of the cylinder from the shape. ###################################### +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC778.brep] a +sfixpcu a a -f + explode a checkshape a_1 checkshape a_2 diff --git a/tests/bugs/modalg_4/bug778_2 b/tests/bugs/modalg_4/bug778_2 index 0fead207eb..2e319ea09d 100755 --- a/tests/bugs/modalg_4/bug778_2 +++ b/tests/bugs/modalg_4/bug778_2 @@ -9,7 +9,12 @@ puts "" ## Incorrect result of cut of the cylinder from the shape ##################################### +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC778.brep] a +sfixpcu a a -f + explode a checkshape a_1 checkshape a_2 diff --git a/tests/bugs/modalg_4/bug951_1 b/tests/bugs/modalg_4/bug951_1 index ea45927a6d..7b8a8cd563 100755 --- a/tests/bugs/modalg_4/bug951_1 +++ b/tests/bugs/modalg_4/bug951_1 @@ -10,9 +10,15 @@ puts "" ## (section) ###################################################### +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC951_1.brep] b restore [locate_data_file OCC951_2.brep] a +sfixpcu a a -f +sfixpcu b b -f + checkshape b checkshape a diff --git a/tests/bugs/modalg_4/bug951_2 b/tests/bugs/modalg_4/bug951_2 index fd39ccdf8d..b2932c163a 100755 --- a/tests/bugs/modalg_4/bug951_2 +++ b/tests/bugs/modalg_4/bug951_2 @@ -10,9 +10,15 @@ puts "" ## (bopsection) ###################################################### +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC951_1.brep] b restore [locate_data_file OCC951_2.brep] a +sfixpcu a a -f +sfixpcu b b -f + checkshape b checkshape a diff --git a/tests/bugs/modalg_4/bug951_3 b/tests/bugs/modalg_4/bug951_3 index bf8f0a239d..3a94121dc1 100755 --- a/tests/bugs/modalg_4/bug951_3 +++ b/tests/bugs/modalg_4/bug951_3 @@ -10,9 +10,15 @@ puts "" ## (section) ###################################################### +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC951_1.brep] b restore [locate_data_file OCC951_2.brep] a +sfixpcu a a -f +sfixpcu b b -f + checkshape b checkshape a diff --git a/tests/bugs/modalg_4/bug951_31 b/tests/bugs/modalg_4/bug951_31 index 0cbdd41ef4..688ba28413 100755 --- a/tests/bugs/modalg_4/bug951_31 +++ b/tests/bugs/modalg_4/bug951_31 @@ -10,9 +10,15 @@ puts "" ## (section) ###################################################### +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC951_1.brep] b restore [locate_data_file OCC951_2.brep] a +sfixpcu a a -f +sfixpcu b b -f + checkshape b checkshape a diff --git a/tests/bugs/modalg_4/bug951_32 b/tests/bugs/modalg_4/bug951_32 index 8d181b16eb..7a5e9bc4e7 100755 --- a/tests/bugs/modalg_4/bug951_32 +++ b/tests/bugs/modalg_4/bug951_32 @@ -10,9 +10,15 @@ puts "" ## (section) ###################################################### +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC951_1.brep] b restore [locate_data_file OCC951_2.brep] a +sfixpcu a a -f +sfixpcu b b -f + checkshape b checkshape a diff --git a/tests/bugs/modalg_4/bug951_4 b/tests/bugs/modalg_4/bug951_4 index 3dd6465216..a722b8e035 100755 --- a/tests/bugs/modalg_4/bug951_4 +++ b/tests/bugs/modalg_4/bug951_4 @@ -10,9 +10,15 @@ puts "" ## (bopsection) ###################################################### +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC951_1.brep] b restore [locate_data_file OCC951_2.brep] a +sfixpcu a a -f +sfixpcu b b -f + checkshape b checkshape a diff --git a/tests/bugs/modalg_4/bug951_41 b/tests/bugs/modalg_4/bug951_41 index dcf984e10d..bf737339bd 100755 --- a/tests/bugs/modalg_4/bug951_41 +++ b/tests/bugs/modalg_4/bug951_41 @@ -10,9 +10,15 @@ puts "" ## (bopsection) ###################################################### +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC951_1.brep] s1 restore [locate_data_file OCC951_2.brep] s2 +sfixpcu s1 s1 -f +sfixpcu s2 s2 -f + checkshape s1 checkshape s2 diff --git a/tests/bugs/modalg_4/bug951_42 b/tests/bugs/modalg_4/bug951_42 index e801200b83..2f7f7392f7 100755 --- a/tests/bugs/modalg_4/bug951_42 +++ b/tests/bugs/modalg_4/bug951_42 @@ -10,9 +10,15 @@ puts "" ## (bopsection) ###################################################### +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC951_1.brep] s1 restore [locate_data_file OCC951_2.brep] s2 +sfixpcu s1 s1 -f +sfixpcu s2 s2 -f + checkshape s1 checkshape s2 diff --git a/tests/bugs/modalg_4/bug951_5 b/tests/bugs/modalg_4/bug951_5 index b82848fa0b..317ebf2132 100755 --- a/tests/bugs/modalg_4/bug951_5 +++ b/tests/bugs/modalg_4/bug951_5 @@ -10,9 +10,15 @@ puts "" ## (bopsection) ###################################################### +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC951_1.brep] b restore [locate_data_file OCC951_2.brep] a +sfixpcu a a -f +sfixpcu b b -f + checkshape b checkshape a diff --git a/tests/bugs/modalg_4/bug951_51 b/tests/bugs/modalg_4/bug951_51 index 3f561bf95a..1e19d4be29 100755 --- a/tests/bugs/modalg_4/bug951_51 +++ b/tests/bugs/modalg_4/bug951_51 @@ -10,9 +10,15 @@ puts "" ## (bopsection) ###################################################### +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC951_1.brep] s1 restore [locate_data_file OCC951_2.brep] s2 +sfixpcu s1 s1 -f +sfixpcu s2 s2 -f + checkshape s1 checkshape s2 diff --git a/tests/bugs/modalg_4/bug951_52 b/tests/bugs/modalg_4/bug951_52 index 79fd3a630b..be36e2c923 100755 --- a/tests/bugs/modalg_4/bug951_52 +++ b/tests/bugs/modalg_4/bug951_52 @@ -10,9 +10,15 @@ puts "" ## (bopsection) ###################################################### +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC951_1.brep] s1 restore [locate_data_file OCC951_2.brep] s2 +sfixpcu s1 s1 -f +sfixpcu s2 s2 -f + checkshape s1 checkshape s2 diff --git a/tests/bugs/modalg_4/bug951_6 b/tests/bugs/modalg_4/bug951_6 index 8b0800d618..3b96a27829 100755 --- a/tests/bugs/modalg_4/bug951_6 +++ b/tests/bugs/modalg_4/bug951_6 @@ -10,9 +10,15 @@ puts "" ## (bopsection) ###################################################### +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC951_1.brep] b restore [locate_data_file OCC951_2.brep] a +sfixpcu a a -f +sfixpcu b b -f + checkshape b checkshape a diff --git a/tests/bugs/modalg_4/bug951_61 b/tests/bugs/modalg_4/bug951_61 index 23e752c547..c88ed867da 100755 --- a/tests/bugs/modalg_4/bug951_61 +++ b/tests/bugs/modalg_4/bug951_61 @@ -10,9 +10,15 @@ puts "" ## (section) ###################################################### +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC951_1.brep] s1 restore [locate_data_file OCC951_2.brep] s2 +sfixpcu s1 s1 -f +sfixpcu s2 s2 -f + checkshape s1 checkshape s2 diff --git a/tests/bugs/modalg_4/bug951_62 b/tests/bugs/modalg_4/bug951_62 index 50ebc0733e..7213cd37c7 100755 --- a/tests/bugs/modalg_4/bug951_62 +++ b/tests/bugs/modalg_4/bug951_62 @@ -10,9 +10,15 @@ puts "" ## (section) ###################################################### +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC951_1.brep] s1 restore [locate_data_file OCC951_2.brep] s2 +sfixpcu s1 s1 -f +sfixpcu s2 s2 -f + checkshape s1 checkshape s2 diff --git a/tests/bugs/modalg_4/bug951_71 b/tests/bugs/modalg_4/bug951_71 index 8217619dd2..938a48c01f 100755 --- a/tests/bugs/modalg_4/bug951_71 +++ b/tests/bugs/modalg_4/bug951_71 @@ -10,9 +10,15 @@ puts "" ## (section) ###################################################### +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC951_1.brep] s1 restore [locate_data_file OCC951_2.brep] s2 +sfixpcu s1 s1 -f +sfixpcu s2 s2 -f + checkshape s1 checkshape s2 diff --git a/tests/bugs/modalg_4/bug951_72 b/tests/bugs/modalg_4/bug951_72 index 82a31c9976..d2e7ca38e4 100755 --- a/tests/bugs/modalg_4/bug951_72 +++ b/tests/bugs/modalg_4/bug951_72 @@ -10,9 +10,15 @@ puts "" ## (section) ###################################################### +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC951_1.brep] s1 restore [locate_data_file OCC951_2.brep] s2 +sfixpcu s1 s1 -f +sfixpcu s2 s2 -f + checkshape s1 checkshape s2 diff --git a/tests/bugs/modalg_5/bug23122 b/tests/bugs/modalg_5/bug23122 index 1f5696c348..60621351d8 100644 --- a/tests/bugs/modalg_5/bug23122 +++ b/tests/bugs/modalg_5/bug23122 @@ -6,9 +6,18 @@ puts "" # Operation "cut" crashes on attached shapes ###################################################### +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file bug23122_ExtTor.brep] s1 restore [locate_data_file bug23122_IntTor.brep] s2 +sfixpcu s1 s1 -f +sfixpcu s2 s2 -f + +checkshape s1 +checkshape s2 + bcut result s1 s2 set square 6962.25 diff --git a/tests/bugs/modalg_5/bug23933 b/tests/bugs/modalg_5/bug23933 index 9248daf618..0f4eecfb1b 100755 --- a/tests/bugs/modalg_5/bug23933 +++ b/tests/bugs/modalg_5/bug23933 @@ -6,9 +6,15 @@ puts "" # Self intersection reported after Fuse operation ###################################################### +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file bug23933_a.brep] a restore [locate_data_file bug23933_b.brep] b +sfixpcu a a -f +sfixpcu b b -f + checkshape a checkshape b bopargcheck a b -F diff --git a/tests/bugs/moddata_1/bug107 b/tests/bugs/moddata_1/bug107 index 00b8f43a38..7d707c366b 100755 --- a/tests/bugs/moddata_1/bug107 +++ b/tests/bugs/moddata_1/bug107 @@ -5,9 +5,15 @@ puts "OCC107" puts "================" puts "" +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC107-1.brep] ee +sfixpcu ee ee -f checkshape ee + restore [locate_data_file OCC107-2.brep] ff +sfixpcu ff ff -f checkshape ff distmini dd1 ee ff diff --git a/tests/bugs/moddata_1/bug15 b/tests/bugs/moddata_1/bug15 index 044e6e6ac1..2ce5f570f3 100755 --- a/tests/bugs/moddata_1/bug15 +++ b/tests/bugs/moddata_1/bug15 @@ -4,8 +4,11 @@ puts "OCC15" puts "================" puts "" -restore [locate_data_file OCC15.brep] result +# for "sfixpcu" command +pload XSDRAW +restore [locate_data_file OCC15.brep] result +sfixpcu result result -f checkshape result vinit diff --git a/tests/bugs/moddata_1/bug1651 b/tests/bugs/moddata_1/bug1651 index a3cba8df8b..69b2168cac 100755 --- a/tests/bugs/moddata_1/bug1651 +++ b/tests/bugs/moddata_1/bug1651 @@ -10,7 +10,11 @@ puts "" # No intersection found using BRepClass3d_Intersector3d ###################################################### +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC1651.brep] face +sfixpcu face face -f checkshape face diff --git a/tests/bugs/moddata_1/bug17 b/tests/bugs/moddata_1/bug17 index 85ae54b4df..d1e888a58e 100755 --- a/tests/bugs/moddata_1/bug17 +++ b/tests/bugs/moddata_1/bug17 @@ -9,7 +9,11 @@ puts "" puts " Solid_14 will be the face which is unvisible during displaying entire solid." ##################################################### +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC17.brep] sh +sfixpcu sh sh -f checkshape sh diff --git a/tests/bugs/moddata_1/bug183_6 b/tests/bugs/moddata_1/bug183_6 index 674c216e21..8bc52ce6fd 100755 --- a/tests/bugs/moddata_1/bug183_6 +++ b/tests/bugs/moddata_1/bug183_6 @@ -6,9 +6,15 @@ puts "(case 6)" puts "========================" puts "" +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_cts16184a.rle] a +sfixpcu a a -f checkshape a + restore [locate_data_file cts16184b.brep] b +sfixpcu b b -f checkshape b bop a b diff --git a/tests/bugs/moddata_1/bug211_1 b/tests/bugs/moddata_1/bug211_1 index 4223a4cd49..d865ea651e 100755 --- a/tests/bugs/moddata_1/bug211_1 +++ b/tests/bugs/moddata_1/bug211_1 @@ -7,7 +7,12 @@ puts "========" ##Error of fillet prolongation. ########################################## +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC211.brep] a +sfixpcu a a -f +checkshape a explode a e diff --git a/tests/bugs/moddata_1/bug211_2 b/tests/bugs/moddata_1/bug211_2 index 5857e5b5be..5398b38b10 100755 --- a/tests/bugs/moddata_1/bug211_2 +++ b/tests/bugs/moddata_1/bug211_2 @@ -7,7 +7,12 @@ puts "========" ##Error of fillet prolongation. ########################################## +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC211.brep] a +sfixpcu a a -f +checkshape a explode a e diff --git a/tests/bugs/moddata_2/bug228 b/tests/bugs/moddata_2/bug228 index ea1a863db9..e9c7c9579a 100755 --- a/tests/bugs/moddata_2/bug228 +++ b/tests/bugs/moddata_2/bug228 @@ -9,7 +9,12 @@ puts "" cpulimit 4000 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC228.brep] a +sfixpcu a a -f + explode a checkshape a_1 checkshape a_2 diff --git a/tests/bugs/moddata_2/bug25 b/tests/bugs/moddata_2/bug25 index b949e02e00..af502a7970 100755 --- a/tests/bugs/moddata_2/bug25 +++ b/tests/bugs/moddata_2/bug25 @@ -3,7 +3,11 @@ puts "OCC25" puts "================" puts "" +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC25-1.brep] sh1 +sfixpcu sh1 sh1 -f decho off set che [checkshape sh1] @@ -17,6 +21,7 @@ if { [regexp {Faulty} $che ] == 1 } { # ================================================ restore [locate_data_file OCC25-2.brep] sh2 +sfixpcu sh2 sh2 -f decho off set che [checkshape sh2] diff --git a/tests/bugs/moddata_2/bug258_1 b/tests/bugs/moddata_2/bug258_1 index 5a5c898f2f..fb174fd5f4 100755 --- a/tests/bugs/moddata_2/bug258_1 +++ b/tests/bugs/moddata_2/bug258_1 @@ -4,7 +4,11 @@ puts " OCC258 " puts "(case 1)" puts "========================" +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file shading_143.brep] result +sfixpcu result result -f -s checkshape result tclean result diff --git a/tests/bugs/moddata_2/bug258_2 b/tests/bugs/moddata_2/bug258_2 index de68cd1703..894831982a 100755 --- a/tests/bugs/moddata_2/bug258_2 +++ b/tests/bugs/moddata_2/bug258_2 @@ -4,7 +4,11 @@ puts " OCC258 " puts "(case 2)" puts "========================" +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file shading_144.brep] result +sfixpcu result result -f checkshape result tclean result diff --git a/tests/bugs/moddata_2/bug26_1 b/tests/bugs/moddata_2/bug26_1 index 42b88a6350..9895784afd 100755 --- a/tests/bugs/moddata_2/bug26_1 +++ b/tests/bugs/moddata_2/bug26_1 @@ -5,7 +5,12 @@ puts "================" puts "" puts "TODO OCC12345 ALL: Error : The square of result shape is" +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC26.brep] a +sfixpcu a a -f + explode a checkshape a_1 checkshape a_2 diff --git a/tests/bugs/moddata_2/bug26_2 b/tests/bugs/moddata_2/bug26_2 index c312158cbb..cf8e0a2eb4 100755 --- a/tests/bugs/moddata_2/bug26_2 +++ b/tests/bugs/moddata_2/bug26_2 @@ -4,7 +4,13 @@ puts "OCC26" puts "================" puts "" puts "TODO OCC12345 ALL: Error : The square of result shape is" + +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC26.brep] a +sfixpcu a a -f + explode a checkshape a_1 checkshape a_2 diff --git a/tests/bugs/moddata_2/bug368 b/tests/bugs/moddata_2/bug368 index a3c733f480..d407f0818b 100755 --- a/tests/bugs/moddata_2/bug368 +++ b/tests/bugs/moddata_2/bug368 @@ -8,7 +8,11 @@ puts "" ## Visualization is too slow. ############################################## +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC368.brep] result +sfixpcu result result -f checkshape result tclean result diff --git a/tests/bugs/moddata_2/bug496 b/tests/bugs/moddata_2/bug496 index d2b2a15e97..1371bcaa67 100755 --- a/tests/bugs/moddata_2/bug496 +++ b/tests/bugs/moddata_2/bug496 @@ -5,11 +5,15 @@ puts "" ############################## ## Exception occurs during fuse operation ############################## +# for "sfixpcu" command +pload XSDRAW restore [locate_data_file OCC496a.brep] a_1 +sfixpcu a_1 a_1 -f checkshape a_1 restore [locate_data_file OCC496b.brep] a_2 +sfixpcu a_2 a_2 -f checkshape a_2 bfuse result a_1 a_2 diff --git a/tests/bugs/moddata_2/bug8 b/tests/bugs/moddata_2/bug8 index 75e16f53c6..660e8667a4 100755 --- a/tests/bugs/moddata_2/bug8 +++ b/tests/bugs/moddata_2/bug8 @@ -6,8 +6,12 @@ puts "" ## BRepTools_WireExplorere gives not all edges from a wire ################################################### +# for "sfixpcu" command +pload XSDRAW + pload XDE restore [locate_data_file OCC8.brep] result +sfixpcu result result -f -s checkshape result diff --git a/tests/bugs/xde/bug169 b/tests/bugs/xde/bug169 index 285356f4b1..2531a6a722 100755 --- a/tests/bugs/xde/bug169 +++ b/tests/bugs/xde/bug169 @@ -6,6 +6,7 @@ puts "" restore [locate_data_file OCC169.brep] a fixshape result a 1e-7 +sfixpcu result result -f checkshape result set square 6.27959 diff --git a/tests/bugs/xde/bug22535_1 b/tests/bugs/xde/bug22535_1 index f958faa47b..3f285290ae 100755 --- a/tests/bugs/xde/bug22535_1 +++ b/tests/bugs/xde/bug22535_1 @@ -2,12 +2,19 @@ puts "===========" puts "OCC22535" puts "===========" ###################################################### -# Cut cphere: invalid shape after reading from STEP +# Cut sphere: invalid shape after reading from STEP ###################################################### +# for "fixshape" command +pload XSDRAW + set BugNumber OCC22535 restore [locate_data_file OCC22535-sphere_cyl2_cut.brep] a + +fixshape a a +checkshape a + testwritestep $imagedir/${test_image}.stp a stepread $imagedir/${test_image}.stp b * renamevar b_1 result diff --git a/tests/bugs/xde/bug22535_2 b/tests/bugs/xde/bug22535_2 index bc216c97d6..43c2e2c684 100755 --- a/tests/bugs/xde/bug22535_2 +++ b/tests/bugs/xde/bug22535_2 @@ -5,9 +5,16 @@ puts "===========" # Cut cphere: invalid shape after reading from STEP ###################################################### +# for "fixshape" command +pload XSDRAW + set BugNumber OCC22535 restore [locate_data_file OCC22535-cut_comp.brep] a + +fixshape a a +checkshape a + testwritestep $imagedir/${test_image}.stp a stepread $imagedir/${test_image}.stp b * renamevar b_1 result diff --git a/tests/de/step_1/E3 b/tests/de/step_1/E3 index 5e961c4536..429937a74a 100644 --- a/tests/de/step_1/E3 +++ b/tests/de/step_1/E3 @@ -12,9 +12,9 @@ set ref_data { DATA : Faulties = 0 ( 0 ) Warnings = 0 ( 0 ) Summary = 0 ( 0 ) TPSTAT : Faulties = 0 ( 0 ) Warnings = 21 ( 12 ) Summary = 21 ( 12 ) CHECKSHAPE : Wires = 2 ( 0 ) Faces = 2 ( 0 ) Shells = 0 ( 0 ) Solids = 0 ( 0 ) -NBSHAPES : Solid = 4 ( 4 ) Shell = 4 ( 4 ) Face = 35 ( 35 ) Summary = 289 ( 266 ) -STATSHAPE : Solid = 4 ( 4 ) Shell = 4 ( 4 ) Face = 35 ( 35 ) FreeWire = 0 ( 0 ) FreeEdge = 24 ( 24 ) SharedEdge = 103 ( 103 ) -TOLERANCE : MaxTol = 6.104502198e-06 ( 1e-05 ) AvgTol = 9.682983037e-07 ( 2.91037487e-06 ) +NBSHAPES : Solid = 3 ( 4 ) Shell = 4 ( 4 ) Face = 35 ( 35 ) Summary = 292 ( 266 ) +STATSHAPE : Solid = 3 ( 4 ) Shell = 4 ( 4 ) Face = 35 ( 35 ) FreeWire = 0 ( 0 ) FreeEdge = 24 ( 24 ) SharedEdge = 105 ( 103 ) +TOLERANCE : MaxTol = 6.104502198e-06 ( 1e-05 ) AvgTol = 9.694977451e-07 ( 2.91037487e-06 ) LABELS : N0Labels = 4 ( 4 ) N1Labels = 31 ( 31 ) N2Labels = 0 ( 0 ) TotalLabels = 35 ( 35 ) NameLabels = 7 ( 7 ) ColorLabels = 0 ( 0 ) LayerLabels = 28 ( 28 ) PROPS : Centroid = 0 ( 0 ) Volume = 0 ( 0 ) Area = 0 ( 0 ) NCOLORS : NColors = 0 ( 0 ) diff --git a/tests/draft/angle/L1 b/tests/draft/angle/L1 index 1817468d8c..8555a8f043 100644 --- a/tests/draft/angle/L1 +++ b/tests/draft/angle/L1 @@ -1,4 +1,10 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CDA900_pro10142.rle] shp +sfixpcu shp shp -f +checkshape shp + explode shp f depouille result shp 0 0 1 shp_2 -3 0 0 0 0 0 1 shp_3 -3 0 0 0 0 0 1 shp_4 -3 0 0 0 0 0 1 shp_5 -3 0 0 0 0 0 1 shp_6 -3 0 0 0 0 0 1 shp_7 -3 0 0 0 0 0 1 shp_8 -3 0 0 0 0 0 1 shp_9 -3 0 0 0 0 0 1 shp_10 -3 0 0 0 0 0 1 shp_11 -3 0 0 0 0 0 1 shp_12 -3 0 0 0 0 0 1 shp_13 -3 0 0 0 0 0 1 shp_14 -3 0 0 0 0 0 1 shp_15 -3 0 0 0 0 0 1 shp_16 -3 0 0 0 0 0 1 shp_17 -3 0 0 0 0 0 1 shp_18 -3 0 0 0 0 0 1 shp_19 -3 0 0 0 0 0 1 shp_20 -3 0 0 0 0 0 1 shp_21 -3 0 0 0 0 0 1 diff --git a/tests/draft/angle/L2 b/tests/draft/angle/L2 index f35ed74257..3f32d9199c 100644 --- a/tests/draft/angle/L2 +++ b/tests/draft/angle/L2 @@ -1,8 +1,14 @@ # Original bug : cts21764 # Date : 23 Nov 98 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CFE903_cts21ggr.rle] base +sfixpcu base base -f +checkshape base + explode base face copy base_14 facdep vertex v1 12.9980200374864 -13 16.2268812577167 diff --git a/tests/draft/angle/M4 b/tests/draft/angle/M4 index 9b55646153..dba70d33f5 100644 --- a/tests/draft/angle/M4 +++ b/tests/draft/angle/M4 @@ -1,9 +1,14 @@ # Original bug : pro16449 # Date : 18 Dec 98 +# for "sfixpcu" command +pload XSDRAW + puts "TODO OCC22803 All:Faulty shapes in variables faulty_1 to faulty_4" restore [locate_data_file CFE903_pro16gha.rle] base +sfixpcu base base -f +checkshape base explode base face diff --git a/tests/draft/angle/M5 b/tests/draft/angle/M5 index b84ca0e020..4357456dc3 100644 --- a/tests/draft/angle/M5 +++ b/tests/draft/angle/M5 @@ -1,7 +1,12 @@ # Original bug : cts20610 # Date : 21 Dec 98 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CFE903_cts20ghb.rle] base +sfixpcu base base -f +checkshape base explode base face diff --git a/tests/feat/featlf/B8 b/tests/feat/featlf/B8 index 8f31d324c8..d47b4552ce 100644 --- a/tests/feat/featlf/B8 +++ b/tests/feat/featlf/B8 @@ -1,9 +1,15 @@ # Original bug : cts21832 # Date : 26 Nov 98 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file cts21832_base.brep] base restore [locate_data_file cts21832_cont.brep] cont +sfixpcu base base -f +sfixpcu base base -f + explode cont wire copy cont_1 wire plane plan 0 0 0 -1 0 0 diff --git a/tests/feat/featprism/K1 b/tests/feat/featprism/K1 index 7cc8a77654..5d9a1fac93 100644 --- a/tests/feat/featprism/K1 +++ b/tests/feat/featprism/K1 @@ -1,9 +1,18 @@ # Original bug : cts20170 # Date : 8April98 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file cts20170_base.rle] base restore [locate_data_file cts20170_face.rle] cont +sfixpcu base base -f +sfixpcu cont cont -f + +checkshape base +checkshape cont + explode base face featprism base cont cont 0 0 1 1 1 diff --git a/tests/feat/featprism/K2 b/tests/feat/featprism/K2 index 3dfb50aa94..3d57c44b4b 100644 --- a/tests/feat/featprism/K2 +++ b/tests/feat/featprism/K2 @@ -1,9 +1,18 @@ # Original bug : cts20168 # Date : 8April98 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CFE900_cts20gaj.rle] base restore [locate_data_file cts20168_face.rle] cont +sfixpcu base base -f +sfixpcu cont cont -f + +checkshape base +checkshape cont + explode base face copy base_1 ffrom copy base_4 funtil diff --git a/tests/feat/featprism/K7 b/tests/feat/featprism/K7 index 0fdeecba16..b299c09665 100644 --- a/tests/feat/featprism/K7 +++ b/tests/feat/featprism/K7 @@ -1,10 +1,17 @@ # Original bug : cts20722 # Date : 21August98 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_cts20722c.rle] base restore [locate_data_file cts20722b.rle] cont restore [locate_data_file cts20722c.rle] funtil +sfixpcu base base -f +sfixpcu cont cont -f +sfixpcu funtil funtil -f + explode cont face #explode base face #copy base_14 funtil diff --git a/tests/feat/featprism/M4 b/tests/feat/featprism/M4 index c50c5046b3..33cc751605 100644 --- a/tests/feat/featprism/M4 +++ b/tests/feat/featprism/M4 @@ -1,10 +1,22 @@ # Original bug : cts21180 # Date : 17 Sept 98 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_cts21180c.rle] base restore [locate_data_file cts21180_face.rle] cont restore [locate_data_file cts21180_until.rle] funtil +sfixpcu base base -f +sfixpcu cont cont -f +sfixpcu funtil funtil -f + +checkshape base +checkshape cont +checkshape funtil + + featprism base cont cont 0 0 -1 1 1 featperform prism result funtil diff --git a/tests/feat/featprism/O6 b/tests/feat/featprism/O6 index 838df0cdaf..b03a895755 100644 --- a/tests/feat/featprism/O6 +++ b/tests/feat/featprism/O6 @@ -6,9 +6,18 @@ #miv cpulimit 2000 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CFE900_cts20geq.rle] base restore [locate_data_file cts20960_face.brep] cont +sfixpcu base base -f +sfixpcu cont cont -f + +checkshape base +checkshape cont + explode base face #copy base_26 funtil copy base_28 funtil diff --git a/tests/feat/featprism/R1 b/tests/feat/featprism/R1 index 51fea72bdc..df5d3b77f0 100644 --- a/tests/feat/featprism/R1 +++ b/tests/feat/featprism/R1 @@ -1,9 +1,15 @@ # Original bug : pro16769 # Date : 02 Dec 98 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CFE900_pro16gff.rle] base restore [locate_data_file pro16769_face.brep] cont +sfixpcu base base -f +sfixpcu cont cont -f + explode base face mksurface p28 base_28 diff --git a/tests/feat/featprism/R6 b/tests/feat/featprism/R6 index 13306b32b2..c7db9e458e 100644 --- a/tests/feat/featprism/R6 +++ b/tests/feat/featprism/R6 @@ -1,5 +1,15 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CFE_osa_sgad.rle] a restore [locate_data_file osa-contour] b + +sfixpcu a a -f +sfixpcu b b -f + +checkshape a +checkshape b + mkplane f b featprism a f f 1 0 0 0 1 diff --git a/tests/feat/featrevol/B7 b/tests/feat/featrevol/B7 index 49bfbc3f54..cec7b7b70e 100644 --- a/tests/feat/featrevol/B7 +++ b/tests/feat/featrevol/B7 @@ -1,9 +1,18 @@ # Original bug : pro16290 # Date : 12 Nov 98 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CFE900_pro16gdq.rle] base restore [locate_data_file pro16290_face.rle] cont +sfixpcu base base -f +sfixpcu cont cont -f + +checkshape base +checkshape cont + explode base face copy base_7 funtil diff --git a/tests/feat/featrevol/B8 b/tests/feat/featrevol/B8 index 528dcff036..7127ead35c 100644 --- a/tests/feat/featrevol/B8 +++ b/tests/feat/featrevol/B8 @@ -1,9 +1,18 @@ # Original bug : pro16290 # Date : 12 Nov 98 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CFE900_pro16gdq.rle] base restore [locate_data_file pro16290_face.rle] cont +sfixpcu base base -f +sfixpcu cont cont -f + +checkshape base +checkshape cont + explode base face copy base_7 funtil copy base_7 skface diff --git a/tests/heal/data/advanced/B6 b/tests/heal/data/advanced/B6 index d81cc62a52..9cc95a01ba 100644 --- a/tests/heal/data/advanced/B6 +++ b/tests/heal/data/advanced/B6 @@ -1,2 +1,7 @@ +# for "fixshape" command +pload XSDRAW + restore [locate_data_file CTS18826.rle] a +fixshape a a +checkshape a diff --git a/tests/heal/data/advanced/B8 b/tests/heal/data/advanced/B8 index dac9331b25..8147476937 100644 --- a/tests/heal/data/advanced/B8 +++ b/tests/heal/data/advanced/B8 @@ -1,2 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTS18683.rle] a +fixshape a a +checkshape a diff --git a/tests/heal/data/advanced/G1 b/tests/heal/data/advanced/G1 index d5f4b49b55..e8a13e4e12 100644 --- a/tests/heal/data/advanced/G1 +++ b/tests/heal/data/advanced/G1 @@ -1,2 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_cts19305-part.rle] a +sfixpcu a a -f +checkshape a diff --git a/tests/heal/data/advanced/G8 b/tests/heal/data/advanced/G8 index 334b5c304e..9288611710 100644 --- a/tests/heal/data/advanced/G8 +++ b/tests/heal/data/advanced/G8 @@ -1,2 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file ger60054a.rle] a +sfixpcu a a -f +checkshape a diff --git a/tests/heal/data/advanced/G9 b/tests/heal/data/advanced/G9 index 47fd996896..14f1d65d2e 100644 --- a/tests/heal/data/advanced/G9 +++ b/tests/heal/data/advanced/G9 @@ -1,2 +1,5 @@ -restore [locate_data_file CTO900_ger60065-part.rle] a +# for "sfixpcu" command +pload XSDRAW +restore [locate_data_file CTO900_ger60065-part.rle] a +sfixpcu a a -f diff --git a/tests/heal/data/advanced/H4 b/tests/heal/data/advanced/H4 index 54b6b1abdf..56c2e93249 100644 --- a/tests/heal/data/advanced/H4 +++ b/tests/heal/data/advanced/H4 @@ -1,2 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_ger60239b.rle] a +sfixpcu a a -f +checkshape a diff --git a/tests/heal/data/advanced/H5 b/tests/heal/data/advanced/H5 index 7f326ece13..efdbdaffd9 100644 --- a/tests/heal/data/advanced/H5 +++ b/tests/heal/data/advanced/H5 @@ -4,6 +4,11 @@ if {[string compare $command "ShapeConvertRev"] == 0 } { if {[string compare $command "SplitAngle"] == 0 } { puts "TODO OCC23127 ALL: Faulty shapes in variables faulty_1 to faulty_9 " } + +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_ger60598c.rle] a +sfixpcu a a -f diff --git a/tests/heal/data/advanced/H9 b/tests/heal/data/advanced/H9 index e6a48fb4c9..d12236df55 100644 --- a/tests/heal/data/advanced/H9 +++ b/tests/heal/data/advanced/H9 @@ -1,2 +1,5 @@ -restore [locate_data_file CTO900_pro10505b.rle] a +# for "sfixpcu" command +pload XSDRAW +restore [locate_data_file CTO900_pro10505b.rle] a +sfixpcu a a -f diff --git a/tests/heal/data/advanced/I4 b/tests/heal/data/advanced/I4 index f1d220d48d..5ca3861ac9 100644 --- a/tests/heal/data/advanced/I4 +++ b/tests/heal/data/advanced/I4 @@ -1,2 +1,5 @@ -restore [locate_data_file CTO900_pro12663-part.rle] a +# for "sfixpcu" command +pload XSDRAW +restore [locate_data_file CTO900_pro12663-part.rle] a +sfixpcu a a -f diff --git a/tests/heal/data/advanced/I5 b/tests/heal/data/advanced/I5 index b8a62e96b2..e1fcab985e 100644 --- a/tests/heal/data/advanced/I5 +++ b/tests/heal/data/advanced/I5 @@ -1,2 +1,5 @@ -restore [locate_data_file CTO900_pro12663-tool.rle] a +# for "sfixpcu" command +pload XSDRAW +restore [locate_data_file CTO900_pro12663-tool.rle] a +sfixpcu a a -f diff --git a/tests/heal/data/advanced/J6 b/tests/heal/data/advanced/J6 index 29a830c514..95b60d0362 100644 --- a/tests/heal/data/advanced/J6 +++ b/tests/heal/data/advanced/J6 @@ -1,2 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_pro8934b.rle] a +sfixpcu a a -f +checkshape a diff --git a/tests/heal/data/advanced/K1 b/tests/heal/data/advanced/K1 index eead01e85f..89124f9cd1 100644 --- a/tests/heal/data/advanced/K1 +++ b/tests/heal/data/advanced/K1 @@ -1,2 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO901_cts20150_base.rle] a +sfixpcu a a -f +checkshape a diff --git a/tests/heal/data/advanced/K5 b/tests/heal/data/advanced/K5 index 85498e0e51..634d4b6b90 100644 --- a/tests/heal/data/advanced/K5 +++ b/tests/heal/data/advanced/K5 @@ -1,2 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO904_cts20280a.rle] a +sfixpcu a a -f +checkshape a diff --git a/tests/heal/data/advanced/K8 b/tests/heal/data/advanced/K8 index 29c5e88d5d..22eeb18b63 100644 --- a/tests/heal/data/advanced/K8 +++ b/tests/heal/data/advanced/K8 @@ -1,2 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO904_cts20907a.rle] a +sfixpcu a a -f +checkshape a diff --git a/tests/heal/data/advanced/L3 b/tests/heal/data/advanced/L3 index 3a034a1665..9629f2327b 100644 --- a/tests/heal/data/advanced/L3 +++ b/tests/heal/data/advanced/L3 @@ -1,2 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO904_cts20960a.rle] a +sfixpcu a a -f +checkshape a diff --git a/tests/heal/data/advanced/L5 b/tests/heal/data/advanced/L5 index 643fab3f64..62fde92e18 100644 --- a/tests/heal/data/advanced/L5 +++ b/tests/heal/data/advanced/L5 @@ -1,2 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO904_cts20974b.rle] a +sfixpcu a a -f +checkshape a diff --git a/tests/heal/data/advanced/L6 b/tests/heal/data/advanced/L6 index be15fdadc8..a1a523f352 100644 --- a/tests/heal/data/advanced/L6 +++ b/tests/heal/data/advanced/L6 @@ -1,2 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO904_cts21124a.rle] a +sfixpcu a a -f +checkshape a diff --git a/tests/heal/data/advanced/L8 b/tests/heal/data/advanced/L8 index 3bae218670..7bf21e58d3 100644 --- a/tests/heal/data/advanced/L8 +++ b/tests/heal/data/advanced/L8 @@ -1,2 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file cts21200a.rle] a +sfixpcu a a -f +checkshape a diff --git a/tests/heal/data/advanced/L9 b/tests/heal/data/advanced/L9 index 44ada1bc32..eb63450040 100644 --- a/tests/heal/data/advanced/L9 +++ b/tests/heal/data/advanced/L9 @@ -1,2 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO904_cts21208a.rle] a +sfixpcu a a -f +checkshape a diff --git a/tests/heal/data/advanced/M1 b/tests/heal/data/advanced/M1 index 7f9fd8f4e5..a70cc818f8 100644 --- a/tests/heal/data/advanced/M1 +++ b/tests/heal/data/advanced/M1 @@ -1,2 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO904_cts21210a.rle] a +sfixpcu a a -f +checkshape a diff --git a/tests/heal/data/advanced/M5 b/tests/heal/data/advanced/M5 index e3aab5ca7e..86b17d6468 100644 --- a/tests/heal/data/advanced/M5 +++ b/tests/heal/data/advanced/M5 @@ -1,2 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO904_cts21364a.rle] a +sfixpcu a a -f +checkshape a diff --git a/tests/heal/data/advanced/M6 b/tests/heal/data/advanced/M6 index 4c6700ab66..bdb280ee31 100644 --- a/tests/heal/data/advanced/M6 +++ b/tests/heal/data/advanced/M6 @@ -1,2 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO904_fra60275a.rle] a +sfixpcu a a -f +checkshape a diff --git a/tests/heal/data/advanced/M7 b/tests/heal/data/advanced/M7 index b13bd89f4f..d05841230a 100644 --- a/tests/heal/data/advanced/M7 +++ b/tests/heal/data/advanced/M7 @@ -1,2 +1,5 @@ -restore [locate_data_file CTO904_fra61199a.rle] a +# for "sfixpcu" command +pload XSDRAW +restore [locate_data_file CTO904_fra61199a.rle] a +sfixpcu a a -f diff --git a/tests/heal/data/advanced/N1 b/tests/heal/data/advanced/N1 index 6ec1bc79b5..deae14f0e2 100644 --- a/tests/heal/data/advanced/N1 +++ b/tests/heal/data/advanced/N1 @@ -1,2 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO904_hkg60150a.rle] a +sfixpcu a a -f +checkshape a diff --git a/tests/heal/data/advanced/N3 b/tests/heal/data/advanced/N3 index 087ecd6b9a..692cfc080c 100644 --- a/tests/heal/data/advanced/N3 +++ b/tests/heal/data/advanced/N3 @@ -1,2 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file pro13494a.rle] a +sfixpcu a a -f +checkshape a diff --git a/tests/heal/data/advanced/N4 b/tests/heal/data/advanced/N4 index fac15258ef..a1a392271f 100644 --- a/tests/heal/data/advanced/N4 +++ b/tests/heal/data/advanced/N4 @@ -1,2 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO904_pro13495a.rle] a +sfixpcu a a -f +checkshape a diff --git a/tests/heal/data/advanced/N6 b/tests/heal/data/advanced/N6 index 1159ffa1ac..fe7c8ffc31 100644 --- a/tests/heal/data/advanced/N6 +++ b/tests/heal/data/advanced/N6 @@ -1,2 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO904_pro13555a.rle] a +sfixpcu a a -f +checkshape a diff --git a/tests/heal/data/advanced/N7 b/tests/heal/data/advanced/N7 index b67891fc62..a7229f2000 100644 --- a/tests/heal/data/advanced/N7 +++ b/tests/heal/data/advanced/N7 @@ -1,2 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file pro13555b.rle] a +sfixpcu a a -f +checkshape a diff --git a/tests/heal/data/advanced/S6 b/tests/heal/data/advanced/S6 index 393353fe28..ebd05fe6eb 100644 --- a/tests/heal/data/advanced/S6 +++ b/tests/heal/data/advanced/S6 @@ -1,2 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file cts20461.rle] a +sfixpcu a a -f +checkshape a diff --git a/tests/heal/data/advanced/U2 b/tests/heal/data/advanced/U2 index bae6d4a67f..9d595554a7 100644 --- a/tests/heal/data/advanced/U2 +++ b/tests/heal/data/advanced/U2 @@ -1,2 +1,8 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO909_tool_2.brep] a +sfixpcu a a -f +checkshape a + diff --git a/tests/heal/data/advanced/ZF1 b/tests/heal/data/advanced/ZF1 index fddef1abbb..72717ec518 100644 --- a/tests/heal/data/advanced/ZF1 +++ b/tests/heal/data/advanced/ZF1 @@ -1,3 +1,6 @@ +# for "sfixpcu" command +pload XSDRAW + if {[string compare $command "SplitAngle"] == 0 } { set os "ALL" if {[array get env os_type] != ""} { @@ -14,3 +17,4 @@ if {[string compare $command "SplitAngle"] == 0 } { restore [locate_data_file cd.brep] a +sfixpcu a a -f \ No newline at end of file diff --git a/tests/heal/data/advanced/ZF2 b/tests/heal/data/advanced/ZF2 index 4d1cb5c72b..da90c59d0f 100644 --- a/tests/heal/data/advanced/ZF2 +++ b/tests/heal/data/advanced/ZF2 @@ -1,3 +1,6 @@ +# for "sfixpcu" command +pload XSDRAW + if {[string compare $command "SplitAngle"] == 0 } { set os "ALL" if {[array get env os_type] != ""} { @@ -14,3 +17,4 @@ if {[string compare $command "SplitAngle"] == 0 } { restore [locate_data_file cg.brep] a +sfixpcu a a -f diff --git a/tests/heal/data/advanced/ZF7 b/tests/heal/data/advanced/ZF7 index 349893a696..a3952b07c0 100644 --- a/tests/heal/data/advanced/ZF7 +++ b/tests/heal/data/advanced/ZF7 @@ -1,2 +1,6 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file pd.brep] a +sfixpcu a a -f diff --git a/tests/heal/data/advanced/ZF8 b/tests/heal/data/advanced/ZF8 index c0e3420db7..e50010a14e 100644 --- a/tests/heal/data/advanced/ZF8 +++ b/tests/heal/data/advanced/ZF8 @@ -1,2 +1,5 @@ -restore [locate_data_file pg.brep] a +# for "sfixpcu" command +pload XSDRAW +restore [locate_data_file pg.brep] a +sfixpcu a a -f diff --git a/tests/heal/data/standard/F3 b/tests/heal/data/standard/F3 index 29dcccd1d0..067625c56b 100644 --- a/tests/heal/data/standard/F3 +++ b/tests/heal/data/standard/F3 @@ -1,2 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_cts16184a.rle] a +sfixpcu a a -f +checkshape a diff --git a/tests/heal/data/standard/I1 b/tests/heal/data/standard/I1 index b5235cca24..d66038834a 100644 --- a/tests/heal/data/standard/I1 +++ b/tests/heal/data/standard/I1 @@ -1,2 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_cts20374-part.rle] a +sfixpcu a a -f +checkshape a diff --git a/tests/heal/data/standard/I5 b/tests/heal/data/standard/I5 index 64893d370a..ec4eb1ab7c 100644 --- a/tests/heal/data/standard/I5 +++ b/tests/heal/data/standard/I5 @@ -1,2 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_cts20736a.rle] a +sfixpcu a a -f +checkshape a diff --git a/tests/heal/data/standard/I9 b/tests/heal/data/standard/I9 index 51dad41514..1fdd74478e 100644 --- a/tests/heal/data/standard/I9 +++ b/tests/heal/data/standard/I9 @@ -1,2 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_cts21180c.rle] a +sfixpcu a a -f +checkshape a diff --git a/tests/heal/data/standard/J4 b/tests/heal/data/standard/J4 index 84147ad487..b723a2f64b 100644 --- a/tests/heal/data/standard/J4 +++ b/tests/heal/data/standard/J4 @@ -1,2 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_cts21453a.rle] a +sfixpcu a a -f +checkshape a diff --git a/tests/heal/data/standard/J9 b/tests/heal/data/standard/J9 index adb4356107..d7addf13f2 100644 --- a/tests/heal/data/standard/J9 +++ b/tests/heal/data/standard/J9 @@ -1,2 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_cts60005b.rle] a +sfixpcu a a -f +checkshape a diff --git a/tests/heal/data/standard/K6 b/tests/heal/data/standard/K6 index ed3ba5bbcc..2e64de7807 100644 --- a/tests/heal/data/standard/K6 +++ b/tests/heal/data/standard/K6 @@ -1,2 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_fra60656-part.rle] a +sfixpcu a a -f +checkshape a diff --git a/tests/heal/data/standard/K7 b/tests/heal/data/standard/K7 index 44adca40b6..027117f943 100644 --- a/tests/heal/data/standard/K7 +++ b/tests/heal/data/standard/K7 @@ -1,2 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_fra60656-tool.rle] a +sfixpcu a a -f +checkshape a diff --git a/tests/heal/data/standard/K8 b/tests/heal/data/standard/K8 index ef2fe293ec..c30e4ca606 100644 --- a/tests/heal/data/standard/K8 +++ b/tests/heal/data/standard/K8 @@ -1,2 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_fra60810-part.rle] a +sfixpcu a a -f +checkshape a diff --git a/tests/heal/data/standard/K9 b/tests/heal/data/standard/K9 index 9c38c227a1..36bdccaccb 100644 --- a/tests/heal/data/standard/K9 +++ b/tests/heal/data/standard/K9 @@ -1,2 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_fra60810-tool.rle] a +sfixpcu a a -f +checkshape a diff --git a/tests/heal/data/standard/M2 b/tests/heal/data/standard/M2 index d69615ef23..b4ea48d7ca 100644 --- a/tests/heal/data/standard/M2 +++ b/tests/heal/data/standard/M2 @@ -1,2 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_ger60043-tool.rle] a +sfixpcu a a -f +checkshape a diff --git a/tests/heal/data/standard/M3 b/tests/heal/data/standard/M3 index eea0254842..2d352c2678 100644 --- a/tests/heal/data/standard/M3 +++ b/tests/heal/data/standard/M3 @@ -1,2 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_ger60054b.rle] a +sfixpcu a a -f +checkshape a diff --git a/tests/heal/data/standard/M8 b/tests/heal/data/standard/M8 index a5bf94398c..f69af51095 100644 --- a/tests/heal/data/standard/M8 +++ b/tests/heal/data/standard/M8 @@ -1,2 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_jap60038-part.rle] a +sfixpcu a a -f +checkshape a diff --git a/tests/heal/data/standard/N1 b/tests/heal/data/standard/N1 index f935c1e3d4..b4a129b2b4 100644 --- a/tests/heal/data/standard/N1 +++ b/tests/heal/data/standard/N1 @@ -1,2 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_ksi0014a.rle] a +sfixpcu a a -f +checkshape a diff --git a/tests/heal/data/standard/P1 b/tests/heal/data/standard/P1 index 79d5ad224a..276b82303f 100644 --- a/tests/heal/data/standard/P1 +++ b/tests/heal/data/standard/P1 @@ -1,2 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_pro11828-tool.rle] a +sfixpcu a a -f +checkshape a diff --git a/tests/heal/data/standard/R5 b/tests/heal/data/standard/R5 index 57b3955c3d..1a85b5f7b3 100644 --- a/tests/heal/data/standard/R5 +++ b/tests/heal/data/standard/R5 @@ -4,5 +4,12 @@ if { [string compare $command "ShapeConvertRev"] == 0 } { if {[string compare $command "SplitAngle"] == 0 } { puts "TODO OCC23127 ALL: Faulty shapes in variables faulty_1 to faulty_4 " } + +# for "fixshape" command +pload XSDRAW + restore [locate_data_file CTO900_pro5363c.rle] a +fixshape a a +checkshape a + diff --git a/tests/heal/data/standard/T9 b/tests/heal/data/standard/T9 index 68bfb4c7d9..055b521700 100644 --- a/tests/heal/data/standard/T9 +++ b/tests/heal/data/standard/T9 @@ -1,2 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_pro7637c_prism_oblong_dsg.rle] a +sfixpcu a a -f +checkshape a diff --git a/tests/heal/data/standard/U6 b/tests/heal/data/standard/U6 index 15c6a5d05f..0e8eb3a797 100644 --- a/tests/heal/data/standard/U6 +++ b/tests/heal/data/standard/U6 @@ -1,2 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_pro8934a.rle] a +sfixpcu a a -f +checkshape a diff --git a/tests/heal/data/standard/V5 b/tests/heal/data/standard/V5 index cdd219272f..829ae4f211 100644 --- a/tests/heal/data/standard/V5 +++ b/tests/heal/data/standard/V5 @@ -1,2 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO901_cts20150_outil.rle] a +sfixpcu a a -f +checkshape a diff --git a/tests/heal/data/standard/V6 b/tests/heal/data/standard/V6 index 81e7f4ed10..42ae71e39d 100644 --- a/tests/heal/data/standard/V6 +++ b/tests/heal/data/standard/V6 @@ -1,2 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO901_cts20171_base.rle] a +sfixpcu a a -f +checkshape a diff --git a/tests/heal/data/standard/V7 b/tests/heal/data/standard/V7 index aafb36e3b4..611ce11f3c 100644 --- a/tests/heal/data/standard/V7 +++ b/tests/heal/data/standard/V7 @@ -1,2 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO901_cts20171_outil.rle] a +sfixpcu a a -f +checkshape a diff --git a/tests/heal/data/standard/X8 b/tests/heal/data/standard/X8 index 7a6e6a177d..239b58e9ab 100644 --- a/tests/heal/data/standard/X8 +++ b/tests/heal/data/standard/X8 @@ -1,2 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO902_cts20452b.rle] a +sfixpcu a a -f +checkshape a diff --git a/tests/heal/data/standard/Y5 b/tests/heal/data/standard/Y5 index 363a105529..aa0c85544d 100644 --- a/tests/heal/data/standard/Y5 +++ b/tests/heal/data/standard/Y5 @@ -1,2 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO902_cts20455-tool.rle] a +sfixpcu a a -f +checkshape a diff --git a/tests/heal/data/standard/Z5 b/tests/heal/data/standard/Z5 index 6922d37866..25860c5c9d 100644 --- a/tests/heal/data/standard/Z5 +++ b/tests/heal/data/standard/Z5 @@ -1,2 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO902_cts20459-part.rle] a +sfixpcu a a -f +checkshape a diff --git a/tests/heal/data/standard/ZB6 b/tests/heal/data/standard/ZB6 index 8187c6253d..228af23942 100644 --- a/tests/heal/data/standard/ZB6 +++ b/tests/heal/data/standard/ZB6 @@ -1,2 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO902_cts20489-tool.rle] a +sfixpcu a a -f +checkshape a diff --git a/tests/heal/data/standard/ZD1 b/tests/heal/data/standard/ZD1 index bf96d7220f..af483e62a3 100644 --- a/tests/heal/data/standard/ZD1 +++ b/tests/heal/data/standard/ZD1 @@ -1,2 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO902_cts20498-part.rle] a +sfixpcu a a -f +checkshape a diff --git a/tests/heal/data/standard/ZD3 b/tests/heal/data/standard/ZD3 index 7d4b41c996..6c0bbf5b92 100644 --- a/tests/heal/data/standard/ZD3 +++ b/tests/heal/data/standard/ZD3 @@ -1,2 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO902_cts20503-part.rle] a +sfixpcu a a -f +checkshape a diff --git a/tests/heal/data/standard/ZF4 b/tests/heal/data/standard/ZF4 index 9e0707727a..1da0255554 100644 --- a/tests/heal/data/standard/ZF4 +++ b/tests/heal/data/standard/ZF4 @@ -1,2 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file cts20551-tool.rle] a +sfixpcu a a -f +checkshape a diff --git a/tests/heal/data/standard/ZI1 b/tests/heal/data/standard/ZI1 index bc61a7ccb6..d3a4f6c9e5 100644 --- a/tests/heal/data/standard/ZI1 +++ b/tests/heal/data/standard/ZI1 @@ -1,2 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO904_cts20280b.rle] a +sfixpcu a a -f +checkshape a diff --git a/tests/heal/data/standard/ZM4 b/tests/heal/data/standard/ZM4 index 95f3c49450..d33e068177 100644 --- a/tests/heal/data/standard/ZM4 +++ b/tests/heal/data/standard/ZM4 @@ -1,2 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file cts21208b.rle] a +sfixpcu a a -f +checkshape a diff --git a/tests/heal/data/standard/ZQ2 b/tests/heal/data/standard/ZQ2 index c7fa83017b..075a1dca58 100644 --- a/tests/heal/data/standard/ZQ2 +++ b/tests/heal/data/standard/ZQ2 @@ -1,2 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO904_hkg60156a.rle] a +sfixpcu a a -f +checkshape a diff --git a/tests/heal/data/standard/ZR9 b/tests/heal/data/standard/ZR9 index 6ea622fa38..a2058f3a03 100644 --- a/tests/heal/data/standard/ZR9 +++ b/tests/heal/data/standard/ZR9 @@ -1,2 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO904_pro12956b.rle] a +sfixpcu a a -f +checkshape a diff --git a/tests/heal/data/standard/ZS1 b/tests/heal/data/standard/ZS1 index b5c9268a7a..e11378fc4f 100644 --- a/tests/heal/data/standard/ZS1 +++ b/tests/heal/data/standard/ZS1 @@ -1,2 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO904_pro13075a.rle] a +sfixpcu a a -f +checkshape a diff --git a/tests/heal/data/standard/ZT1 b/tests/heal/data/standard/ZT1 index dd42e80c0a..6ecdb08737 100644 --- a/tests/heal/data/standard/ZT1 +++ b/tests/heal/data/standard/ZT1 @@ -1,2 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file pro14892a.rle] a +sfixpcu a a -f +checkshape a diff --git a/tests/heal/data/standard/ZT3 b/tests/heal/data/standard/ZT3 index ad8c3b0168..2d90a8a225 100644 --- a/tests/heal/data/standard/ZT3 +++ b/tests/heal/data/standard/ZT3 @@ -1,2 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO904_pro14893a.rle] a +sfixpcu a a -f +checkshape a diff --git a/tests/heal/direct_faces/A3 b/tests/heal/direct_faces/A3 index eec5e0c3c3..5882d4698c 100644 --- a/tests/heal/direct_faces/A3 +++ b/tests/heal/direct_faces/A3 @@ -1 +1,6 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CFE901_cts21gft.rle] a + +sfixpcu a a -f diff --git a/tests/heal/direct_faces/A9 b/tests/heal/direct_faces/A9 index 37a1ea83d0..fba9dd2cfb 100644 --- a/tests/heal/direct_faces/A9 +++ b/tests/heal/direct_faces/A9 @@ -1 +1,7 @@ +# for "fixshape" command +pload XSDRAW + restore [locate_data_file CTS18683.rle] a + +fixshape a a +checkshape a diff --git a/tests/heal/drop_small_edges/A1 b/tests/heal/drop_small_edges/A1 index dfa064dcc2..c460548a5b 100644 --- a/tests/heal/drop_small_edges/A1 +++ b/tests/heal/drop_small_edges/A1 @@ -1 +1,6 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CFE901_cts21gft.rle] a + +sfixpcu a a -f diff --git a/tests/heal/fix_face_size/end b/tests/heal/fix_face_size/end index 26b85aef23..642a237c1a 100644 --- a/tests/heal/fix_face_size/end +++ b/tests/heal/fix_face_size/end @@ -1,2 +1,6 @@ +# for "sfixpcu" command +pload XSDRAW + puts [DT_ApplySeq result a MDTV ToV4] +sfixpcu result result -f puts [checkshape result] diff --git a/tests/heal/fix_gaps/end b/tests/heal/fix_gaps/end index f02df9b4bc..bd67c4a78e 100644 --- a/tests/heal/fix_gaps/end +++ b/tests/heal/fix_gaps/end @@ -1,2 +1,6 @@ +# for "fixshape" command +pload XSDRAW + fixwgaps result a 0.001 +sfixpcu result result -f puts [checkshape result] diff --git a/tests/heal/fix_shape/end b/tests/heal/fix_shape/end index b17db0351a..87ef36b9f8 100644 --- a/tests/heal/fix_shape/end +++ b/tests/heal/fix_shape/end @@ -1,2 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + puts [fixshape result a 0.001 0.005] +sfixpcu result result -f + puts [checkshape result] diff --git a/tests/heal/same_parameter/A1 b/tests/heal/same_parameter/A1 index 59747f9eec..51c597f279 100644 --- a/tests/heal/same_parameter/A1 +++ b/tests/heal/same_parameter/A1 @@ -1 +1,6 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CFE903_ger60ggw.rle] result + +sfixpcu result result -f diff --git a/tests/heal/split_angle/A5 b/tests/heal/split_angle/A5 index eec5e0c3c3..5882d4698c 100644 --- a/tests/heal/split_angle/A5 +++ b/tests/heal/split_angle/A5 @@ -1 +1,6 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CFE901_cts21gft.rle] a + +sfixpcu a a -f diff --git a/tests/heal/split_angle/A9 b/tests/heal/split_angle/A9 index 8141ff8ae0..54728a3afe 100644 --- a/tests/heal/split_angle/A9 +++ b/tests/heal/split_angle/A9 @@ -1 +1,7 @@ +# for "fixshape" command +pload XSDRAW + restore [locate_data_file CFI_cfi90fjb.rle] a + +fixshape a a +checkshape a diff --git a/tests/heal/split_angle/B9 b/tests/heal/split_angle/B9 index 4b4421c99e..2689a5105a 100644 --- a/tests/heal/split_angle/B9 +++ b/tests/heal/split_angle/B9 @@ -1 +1,7 @@ +# for "fixshape" command +pload XSDRAW + restore [locate_data_file CFI_pro5807.rle] a + +fixshape a a +checkshape a diff --git a/tests/heal/split_angle/E3 b/tests/heal/split_angle/E3 index 3a56303df6..b5b908915d 100644 --- a/tests/heal/split_angle/E3 +++ b/tests/heal/split_angle/E3 @@ -1 +1,7 @@ +# for "fixshape" command +pload XSDRAW + restore [locate_data_file CTO900_ger60054a.rle] a + +fixshape a a +checkshape a diff --git a/tests/heal/split_angle/E4 b/tests/heal/split_angle/E4 index 37a1ea83d0..fba9dd2cfb 100644 --- a/tests/heal/split_angle/E4 +++ b/tests/heal/split_angle/E4 @@ -1 +1,7 @@ +# for "fixshape" command +pload XSDRAW + restore [locate_data_file CTS18683.rle] a + +fixshape a a +checkshape a diff --git a/tests/heal/split_angle/E5 b/tests/heal/split_angle/E5 index de2a8d1dd9..9cc95a01ba 100644 --- a/tests/heal/split_angle/E5 +++ b/tests/heal/split_angle/E5 @@ -1 +1,7 @@ +# for "fixshape" command +pload XSDRAW + restore [locate_data_file CTS18826.rle] a + +fixshape a a +checkshape a diff --git a/tests/heal/split_closed_faces/A1 b/tests/heal/split_closed_faces/A1 index f6eca858f5..23c991e1c3 100644 --- a/tests/heal/split_closed_faces/A1 +++ b/tests/heal/split_closed_faces/A1 @@ -1 +1,2 @@ restore [locate_data_file aaa.rle] a +checkshape a diff --git a/tests/heal/split_closed_faces/A9 b/tests/heal/split_closed_faces/A9 index eec5e0c3c3..ec6d62aafc 100644 --- a/tests/heal/split_closed_faces/A9 +++ b/tests/heal/split_closed_faces/A9 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CFE901_cts21gft.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/heal/split_closed_faces/B4 b/tests/heal/split_closed_faces/B4 index 8141ff8ae0..54728a3afe 100644 --- a/tests/heal/split_closed_faces/B4 +++ b/tests/heal/split_closed_faces/B4 @@ -1 +1,7 @@ +# for "fixshape" command +pload XSDRAW + restore [locate_data_file CFI_cfi90fjb.rle] a + +fixshape a a +checkshape a diff --git a/tests/heal/split_closed_faces/C4 b/tests/heal/split_closed_faces/C4 index 4b4421c99e..2689a5105a 100644 --- a/tests/heal/split_closed_faces/C4 +++ b/tests/heal/split_closed_faces/C4 @@ -1 +1,7 @@ +# for "fixshape" command +pload XSDRAW + restore [locate_data_file CFI_pro5807.rle] a + +fixshape a a +checkshape a diff --git a/tests/heal/split_closed_faces/D5 b/tests/heal/split_closed_faces/D5 index 3a56303df6..b5b908915d 100644 --- a/tests/heal/split_closed_faces/D5 +++ b/tests/heal/split_closed_faces/D5 @@ -1 +1,7 @@ +# for "fixshape" command +pload XSDRAW + restore [locate_data_file CTO900_ger60054a.rle] a + +fixshape a a +checkshape a diff --git a/tests/heal/split_closed_faces/D6 b/tests/heal/split_closed_faces/D6 index 37a1ea83d0..fba9dd2cfb 100644 --- a/tests/heal/split_closed_faces/D6 +++ b/tests/heal/split_closed_faces/D6 @@ -1 +1,7 @@ +# for "fixshape" command +pload XSDRAW + restore [locate_data_file CTS18683.rle] a + +fixshape a a +checkshape a diff --git a/tests/heal/split_closed_faces/D7 b/tests/heal/split_closed_faces/D7 index de2a8d1dd9..9cc95a01ba 100644 --- a/tests/heal/split_closed_faces/D7 +++ b/tests/heal/split_closed_faces/D7 @@ -1 +1,7 @@ +# for "fixshape" command +pload XSDRAW + restore [locate_data_file CTS18826.rle] a + +fixshape a a +checkshape a diff --git a/tests/heal/split_continuity/A4 b/tests/heal/split_continuity/A4 index ba59400f6c..723a6d07a3 100644 --- a/tests/heal/split_continuity/A4 +++ b/tests/heal/split_continuity/A4 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CFE900_cts20geq.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/heal/split_continuity/B2 b/tests/heal/split_continuity/B2 index b39d73e313..c181638d71 100644 --- a/tests/heal/split_continuity/B2 +++ b/tests/heal/split_continuity/B2 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CFI_pro5545.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/heal/split_continuity/C1 b/tests/heal/split_continuity/C1 index 3a56303df6..b5b908915d 100644 --- a/tests/heal/split_continuity/C1 +++ b/tests/heal/split_continuity/C1 @@ -1 +1,7 @@ +# for "fixshape" command +pload XSDRAW + restore [locate_data_file CTO900_ger60054a.rle] a + +fixshape a a +checkshape a diff --git a/tests/heal/split_continuity/C3 b/tests/heal/split_continuity/C3 index 18dbcff20e..9a9a6e20da 100644 --- a/tests/heal/split_continuity/C3 +++ b/tests/heal/split_continuity/C3 @@ -1 +1,6 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_ger60598c.rle] a + +sfixpcu a a -f diff --git a/tests/heal/split_continuity/C8 b/tests/heal/split_continuity/C8 index becbc0d3a2..0e8eb3a797 100644 --- a/tests/heal/split_continuity/C8 +++ b/tests/heal/split_continuity/C8 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_pro8934a.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/heal/split_continuity/D1 b/tests/heal/split_continuity/D1 index fa408efdf8..9629f2327b 100644 --- a/tests/heal/split_continuity/D1 +++ b/tests/heal/split_continuity/D1 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO904_cts20960a.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/heal/split_continuity/D2 b/tests/heal/split_continuity/D2 index a38afd788b..86b17d6468 100644 --- a/tests/heal/split_continuity/D2 +++ b/tests/heal/split_continuity/D2 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO904_cts21364a.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/heal/surface_to_bezier/B3 b/tests/heal/surface_to_bezier/B3 index ba59400f6c..723a6d07a3 100644 --- a/tests/heal/surface_to_bezier/B3 +++ b/tests/heal/surface_to_bezier/B3 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CFE900_cts20geq.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/heal/surface_to_bezier/D1 b/tests/heal/surface_to_bezier/D1 index 9897b4f9f7..637c5d3a9c 100644 --- a/tests/heal/surface_to_bezier/D1 +++ b/tests/heal/surface_to_bezier/D1 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CFI_pro10117.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/heal/surface_to_bezier/E3 b/tests/heal/surface_to_bezier/E3 index 3a56303df6..b5b908915d 100644 --- a/tests/heal/surface_to_bezier/E3 +++ b/tests/heal/surface_to_bezier/E3 @@ -1 +1,7 @@ +# for "fixshape" command +pload XSDRAW + restore [locate_data_file CTO900_ger60054a.rle] a + +fixshape a a +checkshape a diff --git a/tests/heal/surface_to_bspline/B1 b/tests/heal/surface_to_bspline/B1 index eec5e0c3c3..5882d4698c 100644 --- a/tests/heal/surface_to_bspline/B1 +++ b/tests/heal/surface_to_bspline/B1 @@ -1 +1,6 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CFE901_cts21gft.rle] a + +sfixpcu a a -f diff --git a/tests/heal/surface_to_bspline/B5 b/tests/heal/surface_to_bspline/B5 index 8141ff8ae0..54728a3afe 100644 --- a/tests/heal/surface_to_bspline/B5 +++ b/tests/heal/surface_to_bspline/B5 @@ -1 +1,7 @@ +# for "fixshape" command +pload XSDRAW + restore [locate_data_file CFI_cfi90fjb.rle] a + +fixshape a a +checkshape a diff --git a/tests/heal/surface_to_bspline/C5 b/tests/heal/surface_to_bspline/C5 index 4b4421c99e..2689a5105a 100644 --- a/tests/heal/surface_to_bspline/C5 +++ b/tests/heal/surface_to_bspline/C5 @@ -1 +1,7 @@ +# for "fixshape" command +pload XSDRAW + restore [locate_data_file CFI_pro5807.rle] a + +fixshape a a +checkshape a diff --git a/tests/heal/surface_to_bspline/C7 b/tests/heal/surface_to_bspline/C7 index 85817a2321..7ce7ba6f3c 100644 --- a/tests/heal/surface_to_bspline/C7 +++ b/tests/heal/surface_to_bspline/C7 @@ -1 +1,7 @@ +# for "fixshape" command +pload XSDRAW + restore [locate_data_file CHE_cc4.rle] a + +fixshape a a +checkshape a diff --git a/tests/heal/surface_to_bspline/D6 b/tests/heal/surface_to_bspline/D6 index 3a56303df6..b5b908915d 100644 --- a/tests/heal/surface_to_bspline/D6 +++ b/tests/heal/surface_to_bspline/D6 @@ -1 +1,7 @@ +# for "fixshape" command +pload XSDRAW + restore [locate_data_file CTO900_ger60054a.rle] a + +fixshape a a +checkshape a diff --git a/tests/heal/surface_to_bspline/D7 b/tests/heal/surface_to_bspline/D7 index 37a1ea83d0..fba9dd2cfb 100644 --- a/tests/heal/surface_to_bspline/D7 +++ b/tests/heal/surface_to_bspline/D7 @@ -1 +1,7 @@ +# for "fixshape" command +pload XSDRAW + restore [locate_data_file CTS18683.rle] a + +fixshape a a +checkshape a diff --git a/tests/heal/surface_to_bspline/D8 b/tests/heal/surface_to_bspline/D8 index de2a8d1dd9..9cc95a01ba 100644 --- a/tests/heal/surface_to_bspline/D8 +++ b/tests/heal/surface_to_bspline/D8 @@ -1 +1,7 @@ +# for "fixshape" command +pload XSDRAW + restore [locate_data_file CTS18826.rle] a + +fixshape a a +checkshape a diff --git a/tests/offset/faces_type_a/A1 b/tests/offset/faces_type_a/A1 index 13ee3b2de0..e27bfcb4ed 100644 --- a/tests/offset/faces_type_a/A1 +++ b/tests/offset/faces_type_a/A1 @@ -1,6 +1,12 @@ #old file filtercb +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CHE_filter.rle] s +sfixpcu s s -f +checkshape s + OFFSETSHAPE -.0015 {s_26 s_27 s_28 s_29} $calcul $type set volume 6.38048e-05 diff --git a/tests/sewing/tol_0_01/K8 b/tests/sewing/tol_0_01/K8 index e485d55842..ae34dbd06c 100644 --- a/tests/sewing/tol_0_01/K8 +++ b/tests/sewing/tol_0_01/K8 @@ -1 +1,6 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CDA900_pro10142.rle] a +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_0_01/L1 b/tests/sewing/tol_0_01/L1 index 41bceda462..81fa10f4c3 100644 --- a/tests/sewing/tol_0_01/L1 +++ b/tests/sewing/tol_0_01/L1 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CFE900_cts20gaj.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_0_01/L3 b/tests/sewing/tol_0_01/L3 index c61a85d989..3be328cf90 100644 --- a/tests/sewing/tol_0_01/L3 +++ b/tests/sewing/tol_0_01/L3 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file cts20170_base.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_0_01/L8 b/tests/sewing/tol_0_01/L8 index 245f9f17bc..276b82303f 100644 --- a/tests/sewing/tol_0_01/L8 +++ b/tests/sewing/tol_0_01/L8 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_pro11828-tool.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_0_01/P2 b/tests/sewing/tol_0_01/P2 index ba59400f6c..723a6d07a3 100644 --- a/tests/sewing/tol_0_01/P2 +++ b/tests/sewing/tol_0_01/P2 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CFE900_cts20geq.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_0_01/R3 b/tests/sewing/tol_0_01/R3 index cf06abb26b..067625c56b 100644 --- a/tests/sewing/tol_0_01/R3 +++ b/tests/sewing/tol_0_01/R3 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_cts16184a.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_0_01/S2 b/tests/sewing/tol_0_01/S2 index b5c6168409..e8a13e4e12 100644 --- a/tests/sewing/tol_0_01/S2 +++ b/tests/sewing/tol_0_01/S2 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_cts19305-part.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_0_01/T9 b/tests/sewing/tol_0_01/T9 index eec5e0c3c3..ec6d62aafc 100644 --- a/tests/sewing/tol_0_01/T9 +++ b/tests/sewing/tol_0_01/T9 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CFE901_cts21gft.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_0_01/U5 b/tests/sewing/tol_0_01/U5 index b66afebba0..f69af51095 100644 --- a/tests/sewing/tol_0_01/U5 +++ b/tests/sewing/tol_0_01/U5 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_jap60038-part.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_0_01/U8 b/tests/sewing/tol_0_01/U8 index 877acd65f6..b4a129b2b4 100644 --- a/tests/sewing/tol_0_01/U8 +++ b/tests/sewing/tol_0_01/U8 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_ksi0014a.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_0_01/V1 b/tests/sewing/tol_0_01/V1 index d6d8d84112..136032ed63 100644 --- a/tests/sewing/tol_0_01/V1 +++ b/tests/sewing/tol_0_01/V1 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CFE903_cts20ghb.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_0_01/V2 b/tests/sewing/tol_0_01/V2 index f0aa4156ea..7a3510f05d 100644 --- a/tests/sewing/tol_0_01/V2 +++ b/tests/sewing/tol_0_01/V2 @@ -1 +1,6 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CFE903_cts21ggr.rle] a +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_0_01/V6 b/tests/sewing/tol_0_01/V6 index c54aa6e648..fba052c3fa 100644 --- a/tests/sewing/tol_0_01/V6 +++ b/tests/sewing/tol_0_01/V6 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CFE903_ger60ggw.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_0_01/W2 b/tests/sewing/tol_0_01/W2 index 7ff8b79661..9d3f946c9a 100644 --- a/tests/sewing/tol_0_01/W2 +++ b/tests/sewing/tol_0_01/W2 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CFE903_pro16gha.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_1/B5 b/tests/sewing/tol_1/B5 index 5990035b99..8436ba83fc 100644 --- a/tests/sewing/tol_1/B5 +++ b/tests/sewing/tol_1/B5 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CFE900_pro16gdq.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_1/D1 b/tests/sewing/tol_1/D1 index 04ae245b24..239b58e9ab 100644 --- a/tests/sewing/tol_1/D1 +++ b/tests/sewing/tol_1/D1 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO902_cts20452b.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_1/D2 b/tests/sewing/tol_1/D2 index 14a1b1fb7b..2d90a8a225 100644 --- a/tests/sewing/tol_1/D2 +++ b/tests/sewing/tol_1/D2 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO904_pro14893a.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_1/D6 b/tests/sewing/tol_1/D6 index 547d235c28..aa0c85544d 100644 --- a/tests/sewing/tol_1/D6 +++ b/tests/sewing/tol_1/D6 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO902_cts20455-tool.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_1/E2 b/tests/sewing/tol_1/E2 index 7740634220..bcdb0bef5f 100644 --- a/tests/sewing/tol_1/E2 +++ b/tests/sewing/tol_1/E2 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CFE_osa_sgad.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_1/J9 b/tests/sewing/tol_1/J9 index 8141ff8ae0..54728a3afe 100644 --- a/tests/sewing/tol_1/J9 +++ b/tests/sewing/tol_1/J9 @@ -1 +1,7 @@ +# for "fixshape" command +pload XSDRAW + restore [locate_data_file CFI_cfi90fjb.rle] a + +fixshape a a +checkshape a diff --git a/tests/sewing/tol_1/K1 b/tests/sewing/tol_1/K1 index f1c634b7ee..b65121f46b 100644 --- a/tests/sewing/tol_1/K1 +++ b/tests/sewing/tol_1/K1 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CFI_cfi90fjc.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_1/N7 b/tests/sewing/tol_1/N7 index 9897b4f9f7..637c5d3a9c 100644 --- a/tests/sewing/tol_1/N7 +++ b/tests/sewing/tol_1/N7 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CFI_pro10117.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_1/O6 b/tests/sewing/tol_1/O6 index 403194583b..e5b6880069 100644 --- a/tests/sewing/tol_1/O6 +++ b/tests/sewing/tol_1/O6 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CFI_pro11850.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_1/P8 b/tests/sewing/tol_1/P8 index b39d73e313..c181638d71 100644 --- a/tests/sewing/tol_1/P8 +++ b/tests/sewing/tol_1/P8 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CFI_pro5545.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_1/P9 b/tests/sewing/tol_1/P9 index 4b4421c99e..2689a5105a 100644 --- a/tests/sewing/tol_1/P9 +++ b/tests/sewing/tol_1/P9 @@ -1 +1,7 @@ +# for "fixshape" command +pload XSDRAW + restore [locate_data_file CFI_pro5807.rle] a + +fixshape a a +checkshape a diff --git a/tests/sewing/tol_1/Q4 b/tests/sewing/tol_1/Q4 index 8f797d6115..25860c5c9d 100644 --- a/tests/sewing/tol_1/Q4 +++ b/tests/sewing/tol_1/Q4 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO902_cts20459-part.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_1/Q5 b/tests/sewing/tol_1/Q5 index 5fba89429d..9f35434c97 100644 --- a/tests/sewing/tol_1/Q5 +++ b/tests/sewing/tol_1/Q5 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CFI_pro6944.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_1/Q6 b/tests/sewing/tol_1/Q6 index a5cf807bed..ef0851331e 100644 --- a/tests/sewing/tol_1/Q6 +++ b/tests/sewing/tol_1/Q6 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CFI_pro8783.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_1/Q7 b/tests/sewing/tol_1/Q7 index 97773f234e..c055357a32 100644 --- a/tests/sewing/tol_1/Q7 +++ b/tests/sewing/tol_1/Q7 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CFI_pro8792.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_1/U2 b/tests/sewing/tol_1/U2 index 7a93af3e24..228af23942 100644 --- a/tests/sewing/tol_1/U2 +++ b/tests/sewing/tol_1/U2 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO902_cts20489-tool.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_1/V4 b/tests/sewing/tol_1/V4 index 02e03b7d0a..af483e62a3 100644 --- a/tests/sewing/tol_1/V4 +++ b/tests/sewing/tol_1/V4 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO902_cts20498-part.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_1/V7 b/tests/sewing/tol_1/V7 index 43aecd596a..6c0bbf5b92 100644 --- a/tests/sewing/tol_1/V7 +++ b/tests/sewing/tol_1/V7 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO902_cts20503-part.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_1/X6 b/tests/sewing/tol_1/X6 index c67082ec99..1e5ea3f764 100644 --- a/tests/sewing/tol_1/X6 +++ b/tests/sewing/tol_1/X6 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CIN900_cts20hlh.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_1/Y4 b/tests/sewing/tol_1/Y4 index 7c5e425520..60be48fdb0 100644 --- a/tests/sewing/tol_1/Y4 +++ b/tests/sewing/tol_1/Y4 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CIN900_cts21hlr.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_100/F1 b/tests/sewing/tol_100/F1 index 5d9ae65753..bdb280ee31 100644 --- a/tests/sewing/tol_100/F1 +++ b/tests/sewing/tol_100/F1 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO904_fra60275a.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_100/F6 b/tests/sewing/tol_100/F6 index a976796de3..e11378fc4f 100644 --- a/tests/sewing/tol_100/F6 +++ b/tests/sewing/tol_100/F6 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO904_pro13075a.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_100/H1 b/tests/sewing/tol_100/H1 index 3a401f6866..4d715fa6a1 100644 --- a/tests/sewing/tol_100/H1 +++ b/tests/sewing/tol_100/H1 @@ -1,2 +1,8 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CHE_filter.rle] a +sfixpcu a a -f +checkshape a + set nb_f 16 diff --git a/tests/sewing/tol_100/H4 b/tests/sewing/tol_100/H4 index 3776524c89..22eeb18b63 100644 --- a/tests/sewing/tol_100/H4 +++ b/tests/sewing/tol_100/H4 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO904_cts20907a.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_100/I1 b/tests/sewing/tol_100/I1 index fa408efdf8..9629f2327b 100644 --- a/tests/sewing/tol_100/I1 +++ b/tests/sewing/tol_100/I1 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO904_cts20960a.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_100/I7 b/tests/sewing/tol_100/I7 index 1c3216d2f1..62fde92e18 100644 --- a/tests/sewing/tol_100/I7 +++ b/tests/sewing/tol_100/I7 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO904_cts20974b.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_100/J7 b/tests/sewing/tol_100/J7 index 778808b60e..a1a523f352 100644 --- a/tests/sewing/tol_100/J7 +++ b/tests/sewing/tol_100/J7 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO904_cts21124a.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_100/J9 b/tests/sewing/tol_100/J9 index b4052b52bc..eb63450040 100644 --- a/tests/sewing/tol_100/J9 +++ b/tests/sewing/tol_100/J9 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO904_cts21208a.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_100/K9 b/tests/sewing/tol_100/K9 index 08fadfd50c..a70cc818f8 100644 --- a/tests/sewing/tol_100/K9 +++ b/tests/sewing/tol_100/K9 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO904_cts21210a.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_100/L6 b/tests/sewing/tol_100/L6 index c27faf3d86..d66038834a 100644 --- a/tests/sewing/tol_100/L6 +++ b/tests/sewing/tol_100/L6 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_cts20374-part.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_100/L9 b/tests/sewing/tol_100/L9 index 37f59f928f..ec4eb1ab7c 100644 --- a/tests/sewing/tol_100/L9 +++ b/tests/sewing/tol_100/L9 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_cts20736a.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_100/M1 b/tests/sewing/tol_100/M1 index 203d8fd8ae..a1a392271f 100644 --- a/tests/sewing/tol_100/M1 +++ b/tests/sewing/tol_100/M1 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO904_pro13495a.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_100/M2 b/tests/sewing/tol_100/M2 index 7df324a2ae..1fdd74478e 100644 --- a/tests/sewing/tol_100/M2 +++ b/tests/sewing/tol_100/M2 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_cts21180c.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_100/M5 b/tests/sewing/tol_100/M5 index 8d53a0b8c7..b723a2f64b 100644 --- a/tests/sewing/tol_100/M5 +++ b/tests/sewing/tol_100/M5 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_cts21453a.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_100/N2 b/tests/sewing/tol_100/N2 index 6259b2b6bd..d7addf13f2 100644 --- a/tests/sewing/tol_100/N2 +++ b/tests/sewing/tol_100/N2 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_cts60005b.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_100/N9 b/tests/sewing/tol_100/N9 index da7f411993..2e64de7807 100644 --- a/tests/sewing/tol_100/N9 +++ b/tests/sewing/tol_100/N9 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_fra60656-part.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_100/O1 b/tests/sewing/tol_100/O1 index c98674f63e..027117f943 100644 --- a/tests/sewing/tol_100/O1 +++ b/tests/sewing/tol_100/O1 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_fra60656-tool.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_100/O2 b/tests/sewing/tol_100/O2 index c79e72c7ea..c30e4ca606 100644 --- a/tests/sewing/tol_100/O2 +++ b/tests/sewing/tol_100/O2 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_fra60810-part.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_100/O3 b/tests/sewing/tol_100/O3 index 9c8ef2b19b..36bdccaccb 100644 --- a/tests/sewing/tol_100/O3 +++ b/tests/sewing/tol_100/O3 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_fra60810-tool.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_100/P2 b/tests/sewing/tol_100/P2 index b75002a737..b4ea48d7ca 100644 --- a/tests/sewing/tol_100/P2 +++ b/tests/sewing/tol_100/P2 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_ger60043-tool.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_100/P3 b/tests/sewing/tol_100/P3 index 3a56303df6..b5b908915d 100644 --- a/tests/sewing/tol_100/P3 +++ b/tests/sewing/tol_100/P3 @@ -1 +1,7 @@ +# for "fixshape" command +pload XSDRAW + restore [locate_data_file CTO900_ger60054a.rle] a + +fixshape a a +checkshape a diff --git a/tests/sewing/tol_100/P4 b/tests/sewing/tol_100/P4 index 7d3a8de262..2d352c2678 100644 --- a/tests/sewing/tol_100/P4 +++ b/tests/sewing/tol_100/P4 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_ger60054b.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_100/P9 b/tests/sewing/tol_100/P9 index ccf8cd0431..56c2e93249 100644 --- a/tests/sewing/tol_100/P9 +++ b/tests/sewing/tol_100/P9 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_ger60239b.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_100/Q1 b/tests/sewing/tol_100/Q1 index 18dbcff20e..9a9a6e20da 100644 --- a/tests/sewing/tol_100/Q1 +++ b/tests/sewing/tol_100/Q1 @@ -1 +1,6 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_ger60598c.rle] a + +sfixpcu a a -f diff --git a/tests/sewing/tol_100/S9 b/tests/sewing/tol_100/S9 index 4ade6718a9..055b521700 100644 --- a/tests/sewing/tol_100/S9 +++ b/tests/sewing/tol_100/S9 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_pro7637c_prism_oblong_dsg.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_100/T5 b/tests/sewing/tol_100/T5 index becbc0d3a2..0e8eb3a797 100644 --- a/tests/sewing/tol_100/T5 +++ b/tests/sewing/tol_100/T5 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_pro8934a.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_100/T6 b/tests/sewing/tol_100/T6 index 0592537508..95b60d0362 100644 --- a/tests/sewing/tol_100/T6 +++ b/tests/sewing/tol_100/T6 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_pro8934b.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_100/U7 b/tests/sewing/tol_100/U7 index 38a1a82316..89124f9cd1 100644 --- a/tests/sewing/tol_100/U7 +++ b/tests/sewing/tol_100/U7 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO901_cts20150_base.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_100/U8 b/tests/sewing/tol_100/U8 index bd74df0eaa..829ae4f211 100644 --- a/tests/sewing/tol_100/U8 +++ b/tests/sewing/tol_100/U8 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO901_cts20150_outil.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_100/U9 b/tests/sewing/tol_100/U9 index 9781fff712..42ae71e39d 100644 --- a/tests/sewing/tol_100/U9 +++ b/tests/sewing/tol_100/U9 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO901_cts20171_base.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_100/V1 b/tests/sewing/tol_100/V1 index 0401c96e04..611ce11f3c 100644 --- a/tests/sewing/tol_100/V1 +++ b/tests/sewing/tol_100/V1 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO901_cts20171_outil.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_100/W7 b/tests/sewing/tol_100/W7 index bb7c99db3d..634d4b6b90 100644 --- a/tests/sewing/tol_100/W7 +++ b/tests/sewing/tol_100/W7 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO904_cts20280a.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_100/W8 b/tests/sewing/tol_100/W8 index 0873c0bf9f..d3a4f6c9e5 100644 --- a/tests/sewing/tol_100/W8 +++ b/tests/sewing/tol_100/W8 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO904_cts20280b.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_100/X3 b/tests/sewing/tol_100/X3 index a38afd788b..86b17d6468 100644 --- a/tests/sewing/tol_100/X3 +++ b/tests/sewing/tol_100/X3 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO904_cts21364a.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_100/X8 b/tests/sewing/tol_100/X8 index 655a544394..deae14f0e2 100644 --- a/tests/sewing/tol_100/X8 +++ b/tests/sewing/tol_100/X8 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO904_hkg60150a.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_100/Y3 b/tests/sewing/tol_100/Y3 index fd30f76a83..075a1dca58 100644 --- a/tests/sewing/tol_100/Y3 +++ b/tests/sewing/tol_100/Y3 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO904_hkg60156a.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_100/Z7 b/tests/sewing/tol_100/Z7 index 879598aed1..a2058f3a03 100644 --- a/tests/sewing/tol_100/Z7 +++ b/tests/sewing/tol_100/Z7 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO904_pro12956b.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_100/Z8 b/tests/sewing/tol_100/Z8 index 29249ce1d3..fe7c8ffc31 100644 --- a/tests/sewing/tol_100/Z8 +++ b/tests/sewing/tol_100/Z8 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO904_pro13555a.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/xcaf/brep_add_CL/G8 b/tests/xcaf/brep_add_CL/G8 index ab8d47065e..4e480f714f 100644 --- a/tests/xcaf/brep_add_CL/G8 +++ b/tests/xcaf/brep_add_CL/G8 @@ -1,4 +1,11 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO909_tool_2.brep] Shape1 + +sfixpcu Shape1 Shape1 -f +checkshape Shape1 + XNewDoc D_First XAddShape D_First Shape1 diff --git a/tests/xcaf/brep_to_dxc/G8 b/tests/xcaf/brep_to_dxc/G8 index 7e95ccfa3d..58bcfe0412 100644 --- a/tests/xcaf/brep_to_dxc/G8 +++ b/tests/xcaf/brep_to_dxc/G8 @@ -1,4 +1,11 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO909_tool_2.brep] Shape1 + +sfixpcu Shape1 Shape1 -f +checkshape Shape1 + XNewDoc D_First XAddShape D_First Shape1 diff --git a/tests/xcaf/brep_to_igs_add_CL/G8 b/tests/xcaf/brep_to_igs_add_CL/G8 index cbdf500e89..817f508336 100644 --- a/tests/xcaf/brep_to_igs_add_CL/G8 +++ b/tests/xcaf/brep_to_igs_add_CL/G8 @@ -1,4 +1,11 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO909_tool_2.brep] Shape1 + +sfixpcu Shape1 Shape1 -f +checkshape Shape1 + XNewDoc D_First XAddShape D_First Shape1 diff --git a/tests/xcaf/brep_to_stp_add_CL/G8 b/tests/xcaf/brep_to_stp_add_CL/G8 index bf52405f8e..4770cdc960 100644 --- a/tests/xcaf/brep_to_stp_add_CL/G8 +++ b/tests/xcaf/brep_to_stp_add_CL/G8 @@ -1,4 +1,11 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO909_tool_2.brep] Shape1 + +sfixpcu Shape1 Shape1 -f +checkshape Shape1 + XNewDoc D_First XAddShape D_First Shape1 diff --git a/tests/xcaf/dxc_add_CL/G8 b/tests/xcaf/dxc_add_CL/G8 index 0b1fbaa3d5..cf6c9ffc4a 100644 --- a/tests/xcaf/dxc_add_CL/G8 +++ b/tests/xcaf/dxc_add_CL/G8 @@ -1,4 +1,11 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO909_tool_2.brep] Shape1 + +sfixpcu Shape1 Shape1 -f +checkshape Shape1 + XNewDoc D_First XAddShape D_First Shape1