Operator.PortAt operator

導入

v3.0

詳細

指定されたPortオブジェクトを戻します。

注:グループに追加されたポートの順序にかかわらず、入力ポートは常に出力ポートの前にインデックス付けされます。たとえば、カスタム オペレータが A と B の 2 つの出力ポートと、C と D の 2 つの入力ポートを持つよう構築された場合、ポート 0 は C、ポート 1 は D、ポート 2 は A、ポート 3 は B になります。

注: このメソッドは、Python で無効なオブジェクトを戻す可能性があります。代わりに、Operator.GetPortAt を使用してください。

C#構文

Port Operator.PortAt( Int32 in_lPortIndex, Int32 in_lPortGroupIndex, Int32 in_lPortGroupInstance );

スクリプト構文

oReturn = Operator.PortAt( PortIndex, PortGroupIndex, PortGroupInstance );

戻り値

Port

パラメータ

パラメータ タイプ 説明
PortIndex Long ポートのインデックス
PortGroupIndex Long ポートグループのインデックス
PortGroupInstance Long ポートグループインスタンスのインデックス

JScript の例

/*

	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"

関連項目

Operator.Port Port.Index Port.GroupIndex Port.GroupInstance