Object Hierarchy | 関連する C++クラス:Port
Port
v1.5
ポートは、他のオブジェクトへの InputPort コネクションまたは OutputPort コネクションです。ポートはオペレータ上接続ポイントとよく似ており、実際に他のオブジェクトと接続されるとは限りません(一部のオペレータポートはオプションです)。
このポートの名前は、SIObject.Name を使用して取得できます。
Application | BranchGroup | Categories | Flags |
FullName | GroupIndex | GroupInstance | GroupName |
Help | Index | IsConnected | Name |
NestedObjects | Origin | OriginPath | Parent |
PortType | Target | Target2 | TargetPath |
Type | |||
/* This example illustrates how to generate a mesh by using the loft operator and a number of input curves. The code also illustrates how to traverse the operator's port group, port group instances and ports and logs the name of the port, its type and the full path name of the object connected to the port. */ NewScene( null, false ); var arc = Application.ActiveSceneRoot.AddGeometry( "Arc", "NurbsCurve" ); // Duplicate arc 4 times and translate in y var args = new Array(19); args[0] = arc; // source object args[1] = 4; // number of copies args[9] = siApplyRepeatXForm; // Xform args[18] = 1; // Ty var objs = Application.ExecuteScriptCommand( "Duplicate", args ); // Create array containing arc and duplicates var aobjs = new Array( 5 ) aobjs[0] = arc; for ( var i = 0; i < objs.count; i++ ) aobjs[i+1] = objs(i); // Apply loft operator var op = ApplyOp( "Loft", aobjs )(0); // Traverse port group, instances and ports and // log port connections // For each port group ... for ( var idxGroup = 0; idxGroup < op.GetNumPortGroups(); idxGroup++ ) { // For each instance in a port group ... for ( var idxInstance = 0; idxInstance < op.GetNumInstancesInGroup( idxGroup ); idxInstance++ ) { // For each port in a port group instance ... for ( var idxPort = 0; idxPort < op.GetNumPortsInGroup( idxGroup ); idxPort++ ) { // Get a specific port var port = op.PortAt( idxPort, idxGroup, idxInstance ); // If the port is an input port ... if ( port.PortType == siPortInput ) porttypestr = "input" else if ( port.PortType == siPortOutput ) porttypestr = "output" else porttypestr = "error" var target = port.Target2; // ... and the connected type is an object connection if ( typeof(target) == "object" ) { Application.LogMessage( op.Name + " group:" + port.GroupIndex + " " + " instance:" + port.GroupInstance + " " + porttypestr + "port:" + port.Index + ":" + target.FullName ); } } } } //INFO : "Loft group:0 instance:0 inputport:0:arc.crvlist" //INFO : "Loft group:0 instance:0 inputport:1:arc.kine.global" //INFO : "Loft group:0 instance:1 inputport:0:arc1.crvlist" //INFO : "Loft group:0 instance:1 inputport:1:arc1.kine.global" //INFO : "Loft group:0 instance:2 inputport:0:arc2.crvlist" //INFO : "Loft group:0 instance:2 inputport:1:arc2.kine.global" //INFO : "Loft group:0 instance:3 inputport:0:arc3.crvlist" //INFO : "Loft group:0 instance:3 inputport:1:arc3.kine.global" //INFO : "Loft group:0 instance:4 inputport:0:arc4.crvlist" //INFO : "Loft group:0 instance:4 inputport:1:arc4.kine.global" //INFO : "Loft group:1 instance:0 inputport:0:surfmsh.kine.global" //INFO : "Loft group:1 instance:0 outputport:1:surfmsh.surfmsh" |