How to find the ID of the parent objects that define an edge path Construction geometry?

Hi guys
First time using this forum. Could someone tell me if it is possible to find the part that was used to create a path? i notices that the path can retain reference to the edge that it was created form but when going through all the properties associated with the path for the life of me I could not find a clue to he ID of the edge or part. any help on this regard will be so appreciated :)
Best Answer
-
Hi @Kev , I believe this is not something that can be obtained in a straightforward way. The solution I could think of is to:
- Extract the Start and End locations in the path, and the number of sampling points
- Compute the set of expected coordinates from this info
- Use MeshData (Model.Analyses[0].MeshData) to find the nodes closest to these coordinates
- Use GeoData and MeshData.MeshRegionById to find to which bodies these nodes belong to.
The above is for a path created by two points. If your path is created by scoping an edge, then my_path.Location returns the ID of the edge. Then you will have to loop on all edges in GeoData to find to which body this edge belongs to. This post should help with GeoData: https://discuss.ansys.com/discussion/comment/591#Comment_591
0
Answers
-
Thanks a million @Pernelle Marone-Hitz :) luckily the paths are created by scoping edges. The '.Location' method did the trick :)I'm having a look at the GeoData as well and it is very useful for what I may need to do next. I hope it's ok if I posted here again if needed more help on this.
Cheers
1 -
Glad I could help you @Kev ! Sure, feel free to follow-up here if needed.
One important thing to understand with geometry in Mechanical : there are two sorts of "geometry" with different sets of IDs:
- The bodies in the Mechanical tree have their own ID, as objects of the Mechanical tree, pretty much like a fixed support boundary condition, or any other object in the tree, will have an ID. These objects are grabbed by
ExtAPI.DataModel.Project.Model.Geometry.Children
- The "real" geometry (the one that is plotted, which you can zoom, rotate, pan, select bodies, faces, edges on etc) also have their sets of ids (there are IDs for bodies, faces, edges, vertices, etc). These objects are grabbed by
ExtAPI.DataModel.GeoData
There are ways to get the IDs of the geodata geometry from the tree geometry and the other way around:
my_tree_body = ExtAPI.DataModel.Project.Model.Geometry.GetBody(my_geobody) my_geo_body = my_tree_body.GetGeoBody()
1 - The bodies in the Mechanical tree have their own ID, as objects of the Mechanical tree, pretty much like a fixed support boundary condition, or any other object in the tree, will have an ID. These objects are grabbed by
-
Thanks Again Prenelle for your very helpful replies. I did have a go at utilizing the geodata method but to no avail.
Was hoping to seek your guidance on how to provide multiple bodies in a named selection for a User Defined Result for the geometry input. the result plot is set up in the following setting: Expression=SX , Scoping method (path)
the result plot requires an additional input called Geometery. I believe it is needed for the application to know what coordinate system to align the tensor stress results to. At the moment I am having difficulties providing this filed with the predefined body geometries in the name selections.
the plot has only one .Location field and it is occupied by the ID of the Path (there is also an IDs field) which seems to be occupied with the .Location values of the path!!
It is hard for me to explain but maybe the image attached can explain a bit better:
It is probably worth saying that the ID of the bodies i have provided for the plot are [10, 15]. I first thought the .Ids value would correspond to the geometry field but even after changing the bodies manually i did not withness a change in the .Ids value.
So basically I don't know where to look for the Geometery proprty.
Have I confused you too much? any chance you know where I'm going wrong?
I appreciate any help.
0 -
Hey I managed to do it cheating from macro recording :) . Just wanted to let you know before you put too much on it :)
Cheers Pernelle
0 -
Hi @Kev , thanks a lot for letting me know you were able to resolve the issue. Recording is an awesome functionality :-) Indeed when defining a result on a path you'll indeed have to provide both the path and the bodies that this path intersects. I had created a post about this but realized it's not that easy to find it: https://discuss.ansys.com/discussion/157/using-act-how-can-i-create-a-result-plot-scoped-to-a-path-and-a-specific-body
1