Hi Frank, That sounds right, but sewing tools doesn't exactly create TopoDS_SHELL. >From the documentation it can create a Shape object or as in the code I've written (derived from STLReader code), it can create a Compound. I don't know how to create Shell from these objects.
-- Jayesh On Thu, Dec 8, 2011 at 10:23 PM, Frank Conradie <fr...@qfin.net> wrote: > 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> 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> 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> >> wrote: > > Hi, > > I tried ... >> >> _______________________________________________ >> 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 >> >> > > > _______________________________________________ > Pythonocc-users mailing > listPythonocc-users@gna.orghttps://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