MantisBT
Mantis Bug Tracker Workflow

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0032447Community[OCCT] OCCT:Modeling Algorithmspublic2021-06-16 16:142021-10-22 16:17
ReporterJerome Caucat 
Assigned ToJerome Caucat 
PrioritynormalSeverityminor 
StatusfeedbackResolutionopen 
PlatformLinuxOSUbuntu 20.04OS Version64 bit
Product Version 
Target VersionFixed in Version 
Summary0032447: BRepOffsetAPI_MakePipeShell result in inaccurate shape when using -DT mode and DT_ShapeDivide on the spine
DescriptionUsing OCCT 7.5.2 with the patch for https://tracker.dev.opencascade.org/view.php?id=29645 [^] and https://tracker.dev.opencascade.org/view.php?id=31147. [^]

When trying to build a pipe with the provided spine and profiles using "setsweep -DT" and "buildsweep r -C -S" I get a Standard_NullObject.

If I use "DT_ShapeDivide" on the spine beforehand I then get a shape that does not represent well the spine and profiles (two straight pipes crossing each other), see the provided .png.

Adjusting the tolerance of "DT_ShapeDivide" can lead to better results, but not perfect.
TagsNo tags attached.
Test case number
Attached Fileszip file icon sample.zip (17,132 bytes) 2021-06-16 16:14
zip file icon sample_polyline.zip (1,579 bytes) 2021-09-28 17:19
png file icon Screenshot.png (9,316 bytes) 2021-10-14 15:08
png file icon Screenshot_1.png (36,620 bytes) 2021-10-14 15:24
png file icon Screenshot_2.png (39,037 bytes) 2021-10-14 15:24
? file icon test_DT_Screenshot_1.tcl (363 bytes) 2021-10-14 16:36
? file icon test_DT_Screenshot_2.tcl (403 bytes) 2021-10-14 16:36
? file icon test_DT.tcl (260 bytes) 2021-10-22 10:32
png file icon Screenshot_3.png (6,909 bytes) 2021-10-22 10:34

- Relationships
related to 0032639newmsv BRepOffsetAPI_MakePipeShell results in an invalid shape when using -DT mode 

-  Notes
(0104420)
Jerome Caucat (reporter)
2021-09-28 17:20

I have a similar result (pipe looking like a cross) with the sample_polyline.zip where the spine is a polyline and with a single profile.
(0104421)
Jerome Caucat (reporter)
2021-09-28 17:28

And I also reproduce in C++ using C0BSplineToSequenceOfC1BSplineCurve instead of ShapeUpgrade_ShapeDivideContinuity to convert the spine from C0 to C1 with the data from original sample.zip.
(0104635)
akaftasev (developer)
2021-10-14 15:24
edited on: 2021-10-14 16:38

Dear Jerome Caucat, there is a problem with your entry data.
As you can see on attached file (Screenshot.png), profile_4.brep lies "deaper" on spine than needed to recive correct result.
You also can recive more correct result if you exclude this profile from sweep algorithm, but not good enough (see attached file Screenshot_1.png, script: test_DT_Screenshot_1.tcl)
If you want to recieve result, passing through all presented profiles, it is needed to use 'buildsweep' command without '-C' or '-R' parameters, but resulting shape will have curvature on top border (see attached file Screenshot_2.png, script: test_DT_Screenshot_1.tcl)

(0104645)
Jerome Caucat (reporter)
2021-10-15 10:58

Dear akaftasev, thank you for your feedback.

I see what you mean about profile number 4, there is indeed a problem with the data.

However, in sample_polyline.zip there is only one profile and we have a similar "cross" result. Using 'buildsweep' command without '-C' or '-R' parameters does not help. Is there also a problem with the data?
(0104748)
git (administrator)
2021-10-19 17:51

Branch CR32447 has been created by andrey.kaftasev_159541.

SHA-1: 2943042c4fc6a48d24132e86f56fe9195b5306f9


Detailed log of new commits:

Author: akaftasev
Date: Tue Oct 19 17:50:53 2021 +0300

    0032447: Modeling Algorithms - BRepOffsetAPI_MakePipeShell result in inaccurate shape when using -DT mode and DT_ShapeDivide on the spine
    
    Changed tolerance for test
(0104784)
akaftasev (developer)
2021-10-22 10:31
edited on: 2021-10-22 10:33

Dear Jerome Caucat, unfortunately, on the "sample_polyline" configuration of the input data, the algorithm can’t handle corner trimming due to the location of the inner edges of the guide spine.
The algorithm sequentially processes the faces, built on the edges and tries to find the line along which it will be necessary to trim the intersecting faces.
See below the picture explaining this process (Screenshot_3.png).
As we can see on the above picture, this line can’t be built.
                               
At the same time, to get a valid result a work around may be used.
The attached tcl script implements some small workaround allowing to get a valid result.

We can offer you two possible approaches:
Solution 1: Continue investigation and solution elaboration.
            This problem requires additional more deep
            investigation/debugging of internal algorithm for a fixing
            solution elaboration.
            The exact estimation of the requested additional budget will be
            sent you by mail.

Solution 2: Use the workaround.
            This approach is presented by the ‘tcl’ script (test_DT.tcl).
            The script eliminates the problem of the location of the edges
            of the guide spine.
            You can play this script and check does it work for you.

(0104787)
Jerome Caucat (reporter)
2021-10-22 12:01

Dear akaftasev, thank you for your feedback.

Solution 2 does indeed produce correct results.

However, at the moment I fix the shape with fixshape before testing it for validity, in order to solve other construction problems. And after fixshape, the invalid "cross" shape, result of the sample, becomes valid, and I cannot detect the problem anymore. I'll see if I can get rid of fixshape and use the workaround for the other construction problems that were fixed by fixshape.

I'll discuss with my colleagues the solutions you suggested.

- Issue History
Date Modified Username Field Change
2021-06-16 16:14 Jerome Caucat New Issue
2021-06-16 16:14 Jerome Caucat Assigned To => msv
2021-06-16 16:14 Jerome Caucat File Added: sample.zip
2021-09-28 17:19 Jerome Caucat File Added: sample_polyline.zip
2021-09-28 17:20 Jerome Caucat Note Added: 0104420
2021-09-28 17:28 Jerome Caucat Note Added: 0104421
2021-10-14 15:08 akaftasev File Added: Screenshot.png
2021-10-14 15:24 akaftasev Note Added: 0104635
2021-10-14 15:24 akaftasev File Added: Screenshot_1.png
2021-10-14 15:24 akaftasev File Added: Screenshot_2.png
2021-10-14 15:26 akaftasev Assigned To msv => Jerome Caucat
2021-10-14 15:26 akaftasev Status new => feedback
2021-10-14 16:36 akaftasev File Added: test_DT_Screenshot_1.tcl
2021-10-14 16:36 akaftasev File Added: test_DT_Screenshot_2.tcl
2021-10-14 16:38 akaftasev Note Edited: 0104635 View Revisions
2021-10-15 10:58 Jerome Caucat Note Added: 0104645
2021-10-19 17:51 git Note Added: 0104748
2021-10-22 10:31 akaftasev Note Added: 0104784
2021-10-22 10:31 akaftasev Note Edited: 0104784 View Revisions
2021-10-22 10:32 akaftasev File Added: test_DT.tcl
2021-10-22 10:33 akaftasev Note Edited: 0104784 View Revisions
2021-10-22 10:34 akaftasev File Added: Screenshot_3.png
2021-10-22 12:01 Jerome Caucat Note Added: 0104787
2021-10-22 16:17 msv Relationship added related to 0032639


Copyright © 2000 - 2021 MantisBT Team
Powered by Mantis Bugtracker