Hi Jayesh
If I remember correctly, the sewing tool only creates shells, and you
have to manually "wrap" them in solids. Here is some code I've used to
do this in the past:
# Note that shells is a Python list of shell(s), and it is assumed that
if there
# are more than 1 shells, the 1st is the outer shell and the rest are
inner shells.
def MakeSolidFromShells(shells):
# Create new empty solid
ms = BRepBuilderAPI_MakeSolid()
# Add outer shell to new solid
ms.Add(tds_.shell(shells[0]))
# Add inner shells (holes)
for innerSh in shells[1:]:
ms.Add(tds_.shell(innerSh))
so = ms.Solid()
return so
- Frank
On 08/12/2011 3:35 AM, Jayesh Salvi wrote:
Thomas,
I guess the way to do "cast" in pythonOCC is as follows:
unionop = BRepAlgoAPI_Fuse(TopoDS().solid(aShape), box)
[as seen in the routine ShapeToTopology that you have written somewhere]
But that doesn't help either. I get.
RuntimeError: Standard_TypeMismatch
TopoDS::Solid
Did you mean any other way of casting to TopoDS_SOLID?
--
Jayesh
On Thu, Dec 8, 2011 at 4:30 PM, Thomas Paviot <tpav...@gmail.com
<mailto:tpav...@gmail.com>> wrote:
Did you try to cast the compound to a TopoDS-Solid?
Thomas
- sent from my Android phone
Le 8 déc. 2011, 10:07 AM, "Jayesh Salvi" <jayeshsa...@gmail.com
<mailto:jayeshsa...@gmail.com>> a écrit :
After more investigation of why NotDone is thrown, I have found
some info.
The Fuse operation has ErrorStatus() function on it. I found that
it returns the error code 110.
Then I looked into OCC code to find out what 110 stands for. I
think these two locations in code can throw that error [1
<https://github.com/tpaviot/oce/blob/master/src/BRepAlgoAPI/BRepAlgoAPI_BooleanOperation.cxx#L315>]
and [2
<https://github.com/tpaviot/oce/blob/master/src/BRepAlgoAPI/BRepAlgoAPI_BooleanOperation.cxx#L390>]
The actual error code is 10. Further digging for it, I found that
there are two locations that throw that error code. [1
<https://github.com/tpaviot/oce/blob/master/src/BOP/BOP_ShellSolid.cxx#L145>]
and [2
<https://github.com/tpaviot/oce/blob/master/src/BOP/BOP_WireSolid.cxx#L90>]
Both are caused by issues with type of the shape that is passed
as arguments.
It looks like the code has problem if one shape is of type
TopAbs_SHELL and other is TopAbs_SOLID. In our case I tried to
find out the ShapeType's of the two shapes we pass. One of them
(box created by BRepPrimAPI_MakeBox) is TopAbs_SOLID and the
other (that we constructed by hand) is TopAbs_COMPOUND. This
confuses me because arg type checking code has no condition that
mentions COMPOUND shape type.
Any ideas are welcome.
--
Jayesh
On Thu, Dec 8, 2011 at 12:56 PM, Jayesh Salvi
<jayeshsa...@gmail.com <mailto:jayeshsa...@gmail.com>> wrote: > >
Hi, > > I tried ...
_______________________________________________
Pythonocc-users mailing list
Pythonocc-users@gna.org <mailto:Pythonocc-users@gna.org>
https://mail.gna.org/listinfo/pythonocc-users
_______________________________________________
Pythonocc-users mailing list
Pythonocc-users@gna.org <mailto:Pythonocc-users@gna.org>
https://mail.gna.org/listinfo/pythonocc-users
_______________________________________________
Pythonocc-users mailing list
Pythonocc-users@gna.org
https://mail.gna.org/listinfo/pythonocc-users
_______________________________________________
Pythonocc-users mailing list
Pythonocc-users@gna.org
https://mail.gna.org/listinfo/pythonocc-users