MantisBT - Open CASCADE
View Issue Details
0029334Open CASCADE[OCCT] OCCT:Modeling Algorithmspublic2017-11-19 18:012019-09-07 16:27
ssv 
abv 
normalminor 
verifiedfixed 
WindowsVC++ 201364 bit
 
[OCCT] 7.4.0 
bugs modalg_7 bug29334
0029334: Modeling Algorithms - Simple offsets complicate geometry
Imagine you have a canonical shell like the one attached. Then you apply "simple offsets" to make a thick solid out of the shell. The problem is that the resulting geometry contains offset surfaces which are hardly reasonable for planes and cylinders. Essentially, it means that the resulting geometry should be simplified with canonical recognition which is a commercial product and not available for the community.

Probably this is as-designed behavior, but I have found it quite frustrating. We can make offsets more intelligent and do not build offset surfaces for canonic like cylinders and planes.
// Make offset (use any offset value)
BRepOffsetAPI_MakeThickSolid mkOffset;
mkOffset.MakeThickSolidBySimple(inputShell, offsetValue);

// Get result
TopoDS_Shape result;
if ( mkOffset.IsDone() )
{
  result = mkOffset.Shape();
}
No tags attached.
? inputShell.brep (175,179) 2017-11-19 18:01
https://tracker.dev.opencascade.org/
Issue History
2017-11-19 18:01ssvNew Issue
2017-11-19 18:01ssvAssigned To => msv
2017-11-19 18:01ssvFile Added: inputShell.brep
2017-11-20 08:51gitNote Added: 0072326
2017-11-20 08:52abvNote Added: 0072327
2017-11-20 16:26gitNote Added: 0072338
2017-11-20 16:27abvNote Added: 0072339
2017-11-20 16:27abvAssigned Tomsv => aml
2017-11-20 16:27abvStatusnew => resolved
2017-11-20 16:27abvTarget Version7.4.0 => 7.3.0
2017-11-20 19:07msvNote Added: 0072347
2017-11-21 07:40amlNote Added: 0072352
2017-11-21 07:40amlAssigned Toaml => abv
2017-11-21 07:40amlStatusresolved => assigned
2017-12-05 17:08msvTarget Version7.3.0 => 7.4.0
2019-08-12 16:37msvTarget Version7.4.0 => 7.5.0*
2019-09-02 08:11gitNote Added: 0086606
2019-09-02 14:56abvNote Added: 0086614
2019-09-02 14:56abvAssigned Toabv => msv
2019-09-02 14:56abvStatusassigned => resolved
2019-09-02 17:11msvNote Added: 0086621
2019-09-02 17:11msvAssigned Tomsv => bugmaster
2019-09-02 17:11msvStatusresolved => reviewed
2019-09-02 17:11msvTarget Version7.5.0* => 7.4.0
2019-09-02 17:14apnTest case number => bugs modalg_7 bug29334
2019-09-02 17:16apnNote Added: 0086622
2019-09-02 17:16apnStatusreviewed => tested
2019-09-04 12:06kgvSummarySimple offsets complicate geometry => Modeling Algorithms - Simple offsets complicate geometry
2019-09-07 11:38abvChangeset attached => occt master 090ef040
2019-09-07 11:38abvAssigned Tobugmaster => abv
2019-09-07 11:38abvStatustested => verified
2019-09-07 11:38abvResolutionopen => fixed
2019-09-07 16:27gitNote Added: 0086943
2019-09-07 16:27gitNote Added: 0086959

Notes
(0072326)
git   
2017-11-20 08:51   
Branch CR29334 has been created by abv.

SHA-1: ac8aa278ddc21df75a38e9ffb6f82ca17ac43e56


Detailed log of new commits:

Author: abv
Date: Mon Nov 20 08:51:32 2017 +0300

    0029334: Simple offsets complicate geometry
    
    Method BRepOffset::Surface() is used in simple offset algorithm to create offset surface, instead of direct and unconditional construction of new Geom_OffsetSurface instance.
(0072327)
abv   
2017-11-20 08:52   
Note that standard offset algorithm behaves as desired: offsetting planes and cylinders results in faces built on planes and cylinders, not offset surfaces. I see no reason why "simple offset" algorithm should not use corresponding method (BRepOffset::Surface()).
(0072338)
git   
2017-11-20 16:26   
Branch CR29334 has been updated by abv.

SHA-1: cc28b067c88a9331169a7b4ac55b0a44dd3eac37


Detailed log of new commits:

Author: abv
Date: Mon Nov 20 16:26:05 2017 +0300

    Added test bugs modalg_7 bug29334

(0072339)
abv   
2017-11-20 16:27   
Fix pushed to CR29334, please review. Jenkins tests passed, see job CR29344-master
(0072347)
msv   
2017-11-20 19:07   
tests/bugs/modalg_7/bug29334
- It is not needed to call 'pload MODELING' in the test case. This plugin is loaded in bugs/begin.
(0072352)
aml   
2017-11-21 07:40   
No remarks from my side, please fix msv remark.
(0086606)
git   
2019-09-02 08:11   
Branch CR29334_1 has been created by abv.

SHA-1: 090ef040125d33234fa6110f313987a63b4b8701


Detailed log of new commits:

Author: abv
Date: Mon Nov 20 08:51:32 2017 +0300

    0029334: Simple offsets complicate geometry
    
    Method BRepOffset::Surface() is used in simple offset algorithm to create offset surface, instead of direct and unconditional construction of new Geom_OffsetSurface instance.
    
    Added test bugs modalg_7 bug29334
(0086614)
abv   
2019-09-02 14:56   
Patch corrected according to remarks is rebased on master and tested, see branch CR29334_1 and Jenkins job CR29334-abv; please review
(0086621)
msv   
2019-09-02 17:11   
Reviewed.
(0086622)
apn   
2019-09-02 17:16   
Combination -
OCCT branch : CR29334_1
master SHA - 090ef040125d33234fa6110f313987a63b4b8701
5f5b1aed1c6e139bbd34314eca77ae7abcd8895c
Products branch : master SHA - 34e9bf11c6b525830b5dee35839707da81e7d1ab
was compiled on Linux, MacOS and Windows platforms and tested in optimize mode.

Number of compiler warnings:
No new/fixed warnings

Regressions/Differences/Improvements:
No regressions/differences

CPU differences:
Debian80-64:
OCCT
Total CPU difference: 16169.9099999999 / 16167.270000000033 [+0.02%]
Products
Total CPU difference: 10504.550000000041 / 10484.930000000048 [+0.19%]
Windows-64-VC14:
OCCT
Total CPU difference: 18190.453125 / 18256.515625 [-0.36%]
Products
Total CPU difference: 11674.71875 / 12168.265625 [-4.06%]

Image differences :
No differences that require special attention

Memory differences :
No differences that require special attention
(0086943)
git   
2019-09-07 16:27   
Branch CR29334_1 has been deleted by inv.

SHA-1: 090ef040125d33234fa6110f313987a63b4b8701
(0086959)
git   
2019-09-07 16:27   
Branch CR29334 has been deleted by inv.

SHA-1: cc28b067c88a9331169a7b4ac55b0a44dd3eac37