View Issue Details

IDProjectCategoryView StatusLast Update
0030419Open CASCADEOCCT:Shape Healingpublic2023-08-01 15:06
ReporterssvAssigned Toszy  
PrioritynormalSeverityminor 
Status newResolutionopen 
Target VersionUnscheduled 
Summary0030419: ShapeFix_Face copies B-spline curves instead of splitting them on fix missing seam
DescriptionThis issue originates from the following scenario:

1. Load a STEP model from GrabCAD (https://grabcad.com/library/branco-bda-22-0-diesel-engine-1) in any our tools (CAD Assistant, CAD Processor, DMU Reviewer, OCCT Draw, etc.).
2. Resave the model back as a STEP file.

The initial STEP file (created in SIEMENS PLM Software NX 7.5 and translated to STEP with STEP Tools software) is ~90MiB. After resaving this file with OCCT translator (pcurves disabled) the file becomes ~190MiB (and much bigger if pcurves are enabled).

One of the probable reasons why this happens is in how ShapeFix works just after the STEP model is translated (i.e., the logic behind XSAlgo_AlgoContainer::ProcessShape()). In particular, there is a problem in Fix Missing Seam operator. For the attached face, it splits all B-spline curves to produce new edges. However, the resulting new edges still contain the full curve instead of containing just certain portions of it. The healed model is perfectly valid but it contains a lot of redundant data. As a result, shape healing creates 935,164 new points, each recorded as Cartesian Point STEP entity (hence the file size).

It looks reasonable to make Fix Missing Seam operator split the B-spline curves instead of just copying and trimming them. Does that make sense?

Steps To Reproducerestore ShapeFix_Face_21888_before.brep s
fixshape r s -l -o -h +m -d -s -i -n
explode r e

# Check host curve for the edge 32.
mkcurve c_32 r_32
trim c_32 c_32

# Check host curve for the edge 29: it is duplicate of c_32.
mkcurve c_29 r_29
trim c_29 c_29
TagsNo tags attached.
Test case number

Attached Files

  • ShapeFix_Face_21888_before.brep (114,515 bytes)
  • e32.png (30,091 bytes)
  • e29.png (32,424 bytes)

Activities

ssv

2018-12-19 16:22

developer  

ShapeFix_Face_21888_before.brep (114,515 bytes)

ssv

2018-12-19 16:23

developer  

e32.png (30,091 bytes)

ssv

2018-12-19 16:23

developer  

e29.png (32,424 bytes)

Issue History

Date Modified Username Field Change
2018-12-19 16:22 ssv New Issue
2018-12-19 16:22 ssv Assigned To => szv
2018-12-19 16:22 ssv File Added: ShapeFix_Face_21888_before.brep
2018-12-19 16:23 ssv File Added: e32.png
2018-12-19 16:23 ssv File Added: e29.png
2019-09-04 15:43 abv Target Version 7.4.0 => 7.5.0
2020-09-11 16:48 utverdov Target Version 7.5.0 => 7.6.0
2021-02-18 13:00 bugmaster Assigned To szv => szy
2021-10-07 14:58 szy Target Version 7.6.0 => 7.7.0
2022-10-24 10:43 szy Target Version 7.7.0 => 7.8.0
2023-08-01 15:06 dpasukhi Target Version 7.8.0 => Unscheduled