RhinoPython を RhinoCommon と共に使用して、既存のメッシュに面を追加しようとしています。すべてが機能しているように見えますが、作成された面は、選択したポイントと同じ場所にありません。選択したポイントのインデックス番号が正しいものではないように見える理由を誰かが説明できますか?
import rhinoscriptsyntax as rs
import Rhino
import scriptcontext
import rhinoscript.utility as rhutil
def AddVertices(me):
"""Add face to a mesh"""
mesh=rhutil.coercemesh(me)
#select the vertices
go=Rhino.Input.Custom.GetObject()
go.GeometryFilter=Rhino.DocObjects.ObjectType.MeshVertex
go.SetCommandPrompt("Get mesh vertex")
go.GetMultiple(3,4)
objrefs = go.Objects()
point=[item.GeometryComponentIndex.Index for item in objrefs]
go.Dispose()
if len(point)==4:
mesh.Faces.AddFace(point[0], point[1], point[2], point[3])
else:
mesh.Faces.AddFace(point[0], point[1], point[2])
#replace mesh delete point
scriptcontext.doc.Objects.Replace(me,mesh)
mesh.Dispose()
scriptcontext.doc.Views.Redraw()
if( __name__ == "__main__" ):
me=rs.GetObject("Select a mesh to add face")
AddVertices(me)