Jelle, Your Topology.py script is not buggy! Actually Dave's code does not use your Topoloy module.
Thomas Jelle Feringa a écrit : > Thomas, > > Can you fwd. me your test script, such that I can fix the Topology.py > module. > Its unacceptable that it would error on this. > I'm sorry, I thought this issue was under control. > I will integrate this as a unit test to make sure this doesnt surface > again. > > The fix that I have in mind is that Topology.py will use the > TopoDS_ListOfShapes wrapped in a python class that will make it > available as a generator. > > -jelle > > On May 6, 2009, at 10:19 AM, Thomas Paviot wrote: > > >> Hi Dave, >> >> As Jelle said, this was already discussed on this ml but the link >> provided will not fix the but you report: I have the same segfault as >> you. Here is the problem: the last occurence of the method >> TopExp_Explorer.Next() erases all pointers. When you stores shapes >> in a >> python lists, you then have a list of null pointers (that cause the >> segfault). >> >> The safest way to store shapes returned by the TopExp_Explorer is >> certainly to use the TopoDS_ListOfShapes builtin iterator. However, if >> you want to use python lists, then you have to ReInit() the explorer >> when it's done with the .Next() method. In the sample you provide, you >> then just have to add texp.ReInit() at the end of your 'findFaces' >> function: >> >> def findFaces(shape): >> faceList = []; >> texp = TopExp.TopExp_Explorer(); >> ts = TopoDS.TopoDS(); >> texp.Init(shape,TopAbs.TopAbs_FACE); >> while ( texp.More() ): >> face = ts.Face(texp.Current()); >> faceList.append(face); >> texp.Next(); # if there's no 'next' shape, pointers are >> destroyed >> texp.ReInit() # Add this line so pointers are recreated before the >> list is returned >> return faceList; >> >> Fix successfully tested on my Windows XP machine. >> >> Cheers, >> >> Thomas >> >> jelle feringa a écrit : >> >>> hi Dave, >>> >>> this was an issue with occ.utils.topology.py, which has been fixed in >>> the SVN some time ago. it would be best if you can upgrade to: >>> http://pythonocc.org/Releases/daily/pythonOCC-PDE2009.win32-py2.5.exe >>> >>> cheers, >>> >>> -jelle >>> >>> On Wed, May 6, 2009 at 4:05 AM, Dave Cowden <dave.cow...@gmail.com> >>> wrote: >>> >>> >>>> Hello, everyone: >>>> >>>> I could use some assistance. I know little about swig and subtle >>>> python/c++ >>>> binding details, but I suspect some subtle thing I'm doing wron >>>> >>>> >>> g is kicking >>> >>> >>>> my butt. >>>> >>>> I am getting 'hard crashes' when I attempt to store object proxies >>>> into a >>>> list. >>>> >>>> Attached is an example script. in the script, I do the following >>>> steps: >>>> >>>> (1) create a box >>>> (2) dump the topology, using a function that will print the object >>>> tree-- >>>> solid, then faces, then wires, then edges. this works >>>> (3) iterate through the box finding the faces, and print them out >>>> one at a >>>> time. this also works >>>> (4) use the same code as (3), but instead of directly using the >>>> objects, put >>>> them into a list, and return them >>>> (5) attempt to loop through the list, dumping the them exactly as >>>> in (4). >>>> >>>> in step 5, i get a hard crash every time. it seems like the object >>>> proxies >>>> are going out of scope or something. I'm completely lost. >>>> >>>> Can anyone else duplicate these results, and/or tell me if i'm doing >>>> something obviously wrong? >>>> >>>> Platform: windows xp >>>> occ version 6.3.0 >>>> pyocc version wo0.2 ( from prebuilt binaries ) >>>> >>>> as always help is appreciated. >>>> _______________________________________________ >>>> 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 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 list Pythonocc-users@gna.org https://mail.gna.org/listinfo/pythonocc-users