Create groups from vertices on semi circles (top bottom face of half cylinders)

Erik Kostson
Member, Moderator, Employee Posts: 323
✭✭✭✭
Say we have a half cylindrical body, with semi circle like faces on the top and bottom.
How can we then create a group of the center vertex (so vertex existing in the center of the straight line of the semi circle, as shown below)?
0
Answers
-
One of many possible ways is to loop through a named selection containing planar faces (e.g., semi circle capping plane/face of the half cylinder(s)), and create a group out of that center vertex.
- import math
- group = GetActiveWindow().ActiveWindow.Groups[0]
- cx=[]
- cy=[]
- cz=[]
- myv=[]
- myvIds=[]
- dist=1E12
- me=group.Members
- for mem in me:
- if str(mem.Shape.Geometry.GetType())=="SpaceClaim.Api.V232.Geometry.Plane":
- nwedges=mem.Edges
- for nedge in nwedges:
- if str(nedge.Shape.Geometry.GetType())=='SpaceClaim.Api.V232.Geometry.Line':
- selections = EdgeSelection.Create(nedge)
- a=nedge.EvalMid().Point.Position
- cx=(a[0])
- cy=(a[1])
- cz=(a[2])
- ep=nedge.GetChildren[CurvePoint]()
- for e in ep:
- ex=e.Position[0]
- ey=e.Position[1]
- ez=e.Position[2]
- dists=math.sqrt((float(cx)-ex)**2+(float(cy)-ey)**2+(float(cz)-ez)**2)
- if dists<dist:
- myvs=(e)
- dist=dists
- primarySelection = Selection.Create(myvs)
- secondarySelection = Selection.Empty()
- result = NamedSelection.Create(primarySelection, secondarySelection)
- dist=1E12
0
This discussion has been closed.