まずは親のオブジェクト名を取得する処理。
{ string $p []=listRelatives -p $current `; print ( "\n" + $p [0]+ "\n" ); } |
コレの代替コマンドは
{ string $p = firstParentOf( $current ); print ( "\n" + $p + "\n" ); } |
こういう時など、ロング名をショート名に変更したい場合、
{ string $tmp []= stringToStringArray( $long , "|" ); string $short = $tmp [size( $tmp )-1]; print ( "\n" + $short + "\n" ); } |
ネームスペースも外したい場合、更に複雑になりますね。
でも、この処理にも、こんなそのまんまの名称のコマンドが・・・。
{ string $short = shortNameOf( $long ); print ( "\n" + $short + "\n" ); } |
plugNodeStrippedを使用するとDAGパスとネームスペースを一気に除去できます。
2017/09/20追記
で、いちばん欲しいコマンドなのですが、指定したオブジェクトがどんなタイプなのかを調べる処理。
nodeTypeで調べても大抵 "transform"と返ってきます。
なので、子のshapeノードからタイプを調べる必要があるわけですが、これに専用のコマンドは無いようで、自力で行う必要があるみたいなのですね。
こんな風に。
{ string $shape []=`listRelatives -c -pa -ni -s $target `; string $type =`nodeType $shape [0]`; print ( "\n" + $type + "\n" ); } |
まぁ、transformノードに色々ブラ下げていると、nodeTypeに渡す値が$shape[0]に特定できないというのが原因だとは思います。