Hi,
I've started experimenting with TopExp_Explorer in order extract
sub-shapes from Shapes. When I try to store the results of the iteration
in a python list, all but the last extracted shapes become invalid. It
seems that TopExp_Explorer is re-using some part of the data structure
it outputs as it iterates, so keeping references to the shapes it
generates doesn't work.
Here's an example:
from OCC import TopExp, BRepPrimAPI, TopAbs, TopoDS
box = BRepPrimAPI.BRepPrimAPI_MakeBox(10., 20., 30.)
ex = TopExp.TopExp_Explorer(box.Shape(), TopAbs.TopAbs_EDGE)
results = []
while ex.More():
edge = TopoDS.TopoDS().Edge(ex.Current())
print "is null?", bool(edge.IsNull())
results.append(edge)
ex.Next()
for edge in results:
print "null now?", bool(edge.IsNull())
Inside the while loop, none of the shapes are Null. Once the iteration
is complete, all the edges become Null.
What's the correct way to store a references to sub-Shapes? I guess I
need a shallow copy of the shape-object returned by Explorer.Current()
but I can't figure how to achieve this.
cheers,
Bryan
_______________________________________________
Pythonocc-users mailing list
[email protected]
https://mail.gna.org/listinfo/pythonocc-users