Object Hierarchy | 関連する C++クラス:Selection
v1.0
Selection オブジェクトは、アプリケーションのグローバルセレクションです。ユーザは、ビュー、Explore、MCA(メインコマンドパネル内の選択サブパネル)、およびスクリプティングを使ってグローバル選択を変更できます(SelectObj、AddToSelection、RemoveFromSelection、ToggleSelection、DeselectAllなどを参照)。
注:Selection は、プロパティを通してそのメンバへSelection.Itemのアクセスを可能にします。選択されている対象に応じて、Selection.ItemプロパティはオブジェクトまたはCollectionItemを戻します。たとえば、球全体を選択すると、Selection.Itemプロパティは球をX3DObjectとして戻します。ただし、エッジなどのサブコンポーネントのみを選択すると、エッジをCollectionItemとして戻します。
'This example demonstrates how a script can find the selected vertices 'in a selection of multiple objects. 'Set up a little scenario coneName = CreatePrim( "Cone", "MeshSurface" ) sphereName = CreatePrim("Sphere", "MeshSurface" ) DeselectAll AddToSelection coneName &".pnt[4,7,10]", , True AddToSelection sphereName &".pnt[1,2,3]", , True 'Now iterate through the selection using the OM selection object set oSelection = Application.Selection for i = 0 to (oSelection.Count - 1) if ( oSelection(i).Type = "pntSubComponent" ) then logmessage "Found the following selected vertices on " & oSelection(i).Subcomponent.Parent3DObject.Name 'Selection of points set subComponent = oSelection(i).SubComponent selectedIndices = subComponent.ElementArray for j = 0 to Ubound( selectedIndices, 1 ) logmessage selectedIndices(j) next else logmessage "Nothing to do with " & oSelection(i).Name & "Type (" & oSelection(i).Type & ")" end if next 'Output of the above script is: '"Found the following selected vertices on cone" '"4" '"7" '"10" '"Found the following selected vertices on sphere" '"1" '"2" '"3" |
' ' This example shows how to save the current selection into ' an XSICollection object. This can be very useful if you want ' to remember what objects were selected before running ' commands that might change the selection ' ' Note: Although this example sets up its own selection, you ' could remove the SETUP section and run this example with ' your own selection instead. ' ' SETUP NewScene , false set arc = CreatePrim( "Arc", "NurbsCurve" ) set disc = CreatePrim( "Disc", "MeshSurface" ) CreatePrim "Cylinder", "MeshSurface" set oSelection = Application.Selection oSelection.Clear oSelection.Add arc oSelection.Add disc ' MAIN Application.LogMessage "Current selection: " & oSelection.GetAsText() strSelection = oSelection.GetAsText() set oColl = CreateObject( "XSI.Collection" ) oColl.SetAsText strSelection Application.LogMessage "Contents of XSICollection: " & oColl.GetAsText ' RESULTS 'INFO : Current selection: arc,disc 'INFO : Contents of XSICollection: arc,disc |