Hi Yuting, oh, sorry, I forgot to mention that I needed to extend the SMESHDS SWIG interface to obtain this functionality. In file src/wrapper/SWIG/linux_darwin/SMESHDS.i (assuming you are on a linux system) add %extend SMESHDS_SubMesh { const SMDS_MeshElement * elemValue(int index) { int i; SMDS_ElemIteratorPtr iterator=$self->GetElements(); for (i=0; i<=index-1; i++) { iterator->next();} return iterator->next(); } }; after class SMESHDS_SubMesh interface definition (line 227 in my case) and rerun the PythonOCC setup.py. I know this is a terrible way of doing this (in terms of efficiency), it should better be done e.g. by providing an interface for SMDS_ElemIteratorPtr (maybe this has already been done ??). For me this was just a quick fix...
Again, sorry for not mentioning this. Regards, Mark Am 28.09.2012 um 13:50 schrieb 张玉婷: > Hi Mark, > > Thanks for the hints of SMESH for submesh, it is really inspiring to know I > can extract submesh for any subshape of geometry. > > Well, I tried your code, I have one problem right now is PythonOCC seems have > no function of "submeshds.elemValue()". I even check the SMESHDS_SubMesh > Class Reference > (http://docs.salome-platform.org/salome_6_4_0/tui/SMESH/classSMESHDS__SubMesh.html), > there is no such function. > > I am wondering is there any command that I can replace or I should import > some other package? I've already imported from OCC.Utils.Topology import *, > but still did not work. > > Thanks in advance. > > Regards, > Yuting > > On Tue, Sep 25, 2012 at 6:46 PM, Mark Blome <bl...@zib.de> wrote: > > Hi Yuting, > > if you have meshed your geometry with SMESH then you can easily extract a > submesh for any subshape of your geometry, e.g. > > from OCC.Utils.Topology import Topo > ... > for edge in Topo(box).edges(): > submesh = mesh.GetSubMesh(edge) > submeshds = submesh.GetSubMeshDS() > for ielem in range(submeshds .NbElements()): > elem = submeshds.elemValue(ielem) > n1 = elem.GetNode(0).GetID(); n2 = elem.GetNode(1).GetID(); > ... > To find out which one of your shape edges you need to consider you can - for > example - check the location of the points of it's vertices. > > Regards, > Mark > > > Am 25.09.2012 um 15:06 schrieb 张玉婷: > >> Hi Jelle, >> >> Thanks for quick reply. >> >> Yes, I am talking about FEM meshing. May I re-explain my question. I have a >> big modeling, I have meshed it already. What I want right now is: only to >> get the nodes index of one end of the partial modeling (just the node on >> one edge). I am wondering is there any commands to get the specific edge >> index and the nodes index belonging to that edge, after meshing? >> >> Regards, >> Yuting >> >> On Tue, Sep 25, 2012 at 2:46 PM, jelle feringa <jelleferi...@gmail.com> >> wrote: >> >> I am trying to find the node indices belong to some wires, edges or surfaces >> (which are at some given locations). I am wondering is there such commands >> available in pythonocc? >> >> >> Hi Yuting, >> >> Do you mean by nodes, vertices [ a bit FEM speak.. ]? >> I think what you aim at is topology traversal. >> >> Sure, try this: >> >> In [13]: from OCC.BRepPrimAPI import BRepPrimAPI_MakeBox >> >> In [14]: box = BRepPrimAPI_MakeBox(1,1,1).Shape() >> >> In [15]: box >> Out[15]: <OCC.TopoDS.TopoDS_Shape; proxy of <Swig Object of type >> 'TopoDS_Shape *' at 0x10f13a570> > >> >> In [16]: from OCC.Utils.Topology import Topo >> >> In [17]: from OCC.Utils.Construct import vertex2pnt >> >> In [18]: for vert in Topo(box).vertices(): print vertex2pnt(vert).Coord() >> >> >> >> >> (1.0, 1.0, 0.0) >> >> >> >> >> >> _______________________________________________ >> 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