Archived issue #0026935
Implement Thicken Sheet in OCCT
Description
Other modeling engines, such as ACIS and Parasolid, have the functions to thicken a sheet with a specified thickness. It's very useful feature to construct solids from sheet.
I know that there are functions to offset faces in OCCT, it would be nice to make solid from the offset faces.
I know that there are functions to offset faces in OCCT, it would be nice to make solid from the offset faces.
Public activity
8 archived notes
Participants are labeled by their role within this record.
In order to implement such feature it is needed first to specify how it will be done. OK, we have functionality that makes offset shell of a shell. But in order to make solid we need to define how to construct the surfaces between original faces and their offsets.
Without well-defined specification the development of a new feature is not possible.
Without well-defined specification the development of a new feature is not possible.
I very much agree with original poster that "Other modeling engines, such as ACIS and Parasolid, have the functions to thicken a sheet with a specified thickness. It's very useful feature to construct solids from sheet.".
It is a feature that is missing from OCC. You may be interested in this thread : http://forum.freecadweb.org/viewtopic.php?f=9&t=3248
As for the specification although not expressely stated by original poster, I think that most users would resquest that thickening be done normal to the surface at any point.
It is a feature that is missing from OCC. You may be interested in this thread : http://forum.freecadweb.org/viewtopic.php?f=9&t=3248
As for the specification although not expressely stated by original poster, I think that most users would resquest that thickening be done normal to the surface at any point.
Dear msv,
Yes, I agree that it need well-defined specification to construct the surface between original faces and their offsets. I suppose the surface can be ruled-surface to connect the original faces and their offsets. Does OCCT have schedule to implement such feature? I'm sure this modeling feature will be a big hilight of OCCT.
Yes, I agree that it need well-defined specification to construct the surface between original faces and their offsets. I suppose the surface can be ruled-surface to connect the original faces and their offsets. Does OCCT have schedule to implement such feature? I'm sure this modeling feature will be a big hilight of OCCT.
Salome stated that it implements its own offset feature in latest release base on OCCT6.9.1. Why not consider to make it in OCCT?
I consulted with SALOME experts, and this is the answer:
In fact, SALOME does not implement any specific algorithm of thickening, it just uses OCCT functionality, namely:
• Create thick solid from face or shell:
FACE or SHELL -> SOLID
BRepOffset_MakeOffset myOffsetShape(aShapeBase, anOffset, aTol, BRepOffset_Skin, Standard_False, Standard_False, GeomAbs_Intersection, Standard_True);
• Create hollowed solid (by pointing faces on which material is removed):
SOLID -> SOLID
BRepOffsetAPI_MakeThickSolid aMkSolid(aShapeBase, aFacesToRm, anOffset, aTol, BRepOffset_Skin, Standard_False, Standard_False, GeomAbs_Intersection);
I am sorry that I was unaware of such feature (it is impossible to know everything by one person :) ). Indeed, this is available by the Draw command thickshell:
Draw[16]> help thickshell
thickshell : thickshell r shape offset [jointype [tol] ]
I have attached the snapshots of original shell and result thick solid:
thickshell res shell 0.2 i
In fact, SALOME does not implement any specific algorithm of thickening, it just uses OCCT functionality, namely:
• Create thick solid from face or shell:
FACE or SHELL -> SOLID
BRepOffset_MakeOffset myOffsetShape(aShapeBase, anOffset, aTol, BRepOffset_Skin, Standard_False, Standard_False, GeomAbs_Intersection, Standard_True);
• Create hollowed solid (by pointing faces on which material is removed):
SOLID -> SOLID
BRepOffsetAPI_MakeThickSolid aMkSolid(aShapeBase, aFacesToRm, anOffset, aTol, BRepOffset_Skin, Standard_False, Standard_False, GeomAbs_Intersection);
I am sorry that I was unaware of such feature (it is impossible to know everything by one person :) ). Indeed, this is available by the Draw command thickshell:
Draw[16]> help thickshell
thickshell : thickshell r shape offset [jointype [tol] ]
I have attached the snapshots of original shell and result thick solid:
thickshell res shell 0.2 i
Dear msv,
Sorry for later responsing.
I checked the class BRepOffset_MakeOffset. It implemented the thicken feature as your described. But there is no entry in public API to use this feature(BRepOffset_MakeOffset is not a public entrance i think). So why not make the thickness parameter avalible in class BRepOffsetAPI_MakeThickSolid? OCCT have such wonderful feature, why not let outside world know?
Sorry for later responsing.
I checked the class BRepOffset_MakeOffset. It implemented the thicken feature as your described. But there is no entry in public API to use this feature(BRepOffset_MakeOffset is not a public entrance i think). So why not make the thickness parameter avalible in class BRepOffsetAPI_MakeThickSolid? OCCT have such wonderful feature, why not let outside world know?
Dear Vico,
Though BRepOffset_MakeOffset is not present in User Guide it is still a public API. It presents in the reference manual (http://www.opencascade.com/doc/occt-6.9.1/refman/html/class_b_rep_offset___make_offset.html).
Of course, it would be nice to make an entry for this functionality in BRepOffsetAPI_MakeThickSolid, and properly update documentation.
If you have time and willing to make such contribution you are very welcome.
Though BRepOffset_MakeOffset is not present in User Guide it is still a public API. It presents in the reference manual (http://www.opencascade.com/doc/occt-6.9.1/refman/html/class_b_rep_offset___make_offset.html).
Of course, it would be nice to make an entry for this functionality in BRepOffsetAPI_MakeThickSolid, and properly update documentation.
If you have time and willing to make such contribution you are very welcome.
Dear msv,
Yes, BRepOffset_MakeOffset is accesible for public user. It would be better to make such change in OCCT internal team. The priority should be low.
Yes, BRepOffset_MakeOffset is accesible for public user. It would be better to make such change in OCCT internal team. The priority should be low.