OutputPortCollection.Find

説明

検索基準に一致する、このコレクションの最初のメンバを戻します。項目が検出されなかった場合、このメソッドは"Nothing"を戻すので、エラーの捕捉に使用できます。

スクリプト 構文

oReturn = OutputPortCollection.Find( [Type] );

戻り値

オブジェクト(タイプは検索基準によって異なります)

パラメータ

パラメータ タイプ 詳細
タイプ String オブジェクトタイプ(取り得る値のリストについては、siTypeを参照)

1. VBScript の例

'
'       This example demonstrates how to find X3DObject objects
'
' Set up the example using a mesh grid, cube, cone, and a nurbs cube:
set oRoot = activesceneroot
oRoot.addgeometry "grid", "meshsurface"
oRoot.addgeometry "cube", "meshsurface"
oRoot.addgeometry "cone", "meshsurface"
oRoot.addgeometry "cube", "nurbssurface"
set oGeoms = oRoot.findchildren( ,,siGeometryFamily)
logmessage "The collection of geometry from the root is a " & typename( oGeoms ) 
logmessage "There are " & oGeoms.count & " geometry objects under the root." 
logmessage ""
for each item in oGeoms
        logmessage item.name & " is a " & item.type & " " & typename( item )
next
set oCone = oGeoms.find( "cone" )
set oCube = oGeoms.find( "cube" )
set oGrid = oGeoms.find( "grid" )
logmessage ""
logmessage "=========================================================================="
logmessage " Stats for the collection:"
logmessage " ------------------------"
logmessage "    Total number of objects in collection: " & oGeoms.count
logmessage "    Name of the first cone in the collection: " & oCone.name
logmessage "    Name of the first cube in the collection: " & oCube.name
' Try some error trapping ( if you are trying to use a find criteria that returns Nothing, 
' you will see this error message: 'ERROR : "Object required: 'oCube1'" )
set oCube1 = oGeoms.find( "cube1" )
if typename( oCube1 ) = "Nothing" then
        logmessage "    Can't get the name of the other cube in the collection."
else 
        logmessage "    Name of the other cube in the collection: " & oCube1.name
end if
logmessage "    Name of the first grid in the collection: " & oGrid.name
' Output of above script is:
'INFO : "The collection of geometry from the root is a X3DObjectCollection"
'INFO : "There are 4 geometry objects under the root."
'INFO : ""
'INFO : "grid is a polymsh X3DObject"
'INFO : "cube is a polymsh X3DObject"
'INFO : "cone is a polymsh X3DObject"
'INFO : "cube1 is a surfmsh X3DObject"
'INFO : ""
'INFO : "=========================================================================="
'INFO : " Stats for the collection:"
'INFO : " ------------------------"
'INFO : "       Total number of objects in collection: 4"
'INFO : "       Name of the first cone in the collection: cone"
'INFO : "       Name of the first cube in the collection: cube"
'INFO : "       Can't get the name of the other cube in the collection."
'INFO : "       Name of the first grid in the collection: grid"

2. JScript の例

/*
        This example demonstrates how to find Cluster objects
*/
NewScene( null, false );
var obj = CreatePrim( "Cube", "MeshSurface" );
CreateCluster("cube.pnt[2,3,6,LAST]");
CreateCluster("cube.poly[1]");
CreateCluster("cube.edge[0,1,3,5-8,LAST]");
CreateCluster("cube.sample[0,3-9,12,15,20,21]");
// find the cluster using the siType constant.
var cls = obj.activeprimitive.geometry.clusters.find( siPolygonCluster );
if ( cls != null )
        logmessage( "found polygon cluster: " + cls.fullname ); 
//Expected results:
//INFO : found polygon cluster: cube.polymsh.cls.Polygon

3. Python の例

#
#       This example demonstrates how to to find PlayControl Property objects 
#       under the scene root
#
PlayCtrlProp = Application.ActiveProject.Properties.Find( "PlayControl" )
try :
        if Application.ClassName(PlayCtrlProp) == "Property" :
                Application.LogMessage( "PlayControl property OK" )
        else :
                Application.LogMessage( "PlayControl property NOT found" )
except :
        Application.LogMessage( "PlayControl property NOT found" )
# Output of above script:
#INFO : PlayControl property OK