そんな時のためのスクリプト。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 | proc string _round( int $digit , string $mode , float $value ) /****************************************************************************** 指定の桁数で切り上げる ******************************************************************************/ { float $mlt =pow( 10, $digit ); float $sub =pow( 10,- $digit ); float $pls =( 0< $value ) ? 0.5: -0.5; float $val =((int)(( $value * $mlt )+ $pls )* $sub ); string $str =(string) $val ; if ( "xform" == $mode ) return $str ; //------------------------------------------------------------------------------ if ( ! $digit ) return (( $val <0 ) ? $str : ( " " + $str )); //------------------------------------------------------------------------------ // 少数の桁数をそろえる string $array []=stringToStringArray( $str , "." ); if ( 0<= $val ) $array [0]=( " " + $array [0]); while (`size $array [1]`< $digit ) $array [1]=( $array [1]+ "0" ); return ( $array [0]+ "." + $array [1]); } global proc printCurvePointPositions( int $digit , // 少数部の桁数 string $mode ) // 表記方法 /****************************************************************************** main procidure. ******************************************************************************/ { string $objs []=`ls -sl`; for ( $obj in $objs ) { select -r ( $obj + ".ep[*]" ); string $eps []=`ls -sl -fl`; int $i =0; for ( $e in $eps ) { vector $p =`xform -q -os -t $e `; string $x =`_round $digit $mode ( $p .x)`; string $y =`_round $digit $mode ( $p .y)`; string $z =`_round $digit $mode ( $p .z)`; switch ( $mode ) { case "xform" : print ( "xform -os -t " + $x + " " + $y + " " + $z + " " + $e + ";\n" ); break ; case "list" : print ( "$pos[" + $i + "]=<<" + $x + ", " + $y + ", " + $z + ">>;\n" ); break ; } $i ++; } } select -r $objs ; } |
カーブオブジェクトを選択した状態で、
printCurvePointPositions( 2,"xform" );
printCurvePointPositions( 2,"list" );
のような感じに実行すると、スクリプトエディタのヒストリーに座標がプリントされます。
"xform"は左右反転のサポート用。
"list"はリグ作成スクリプトのサポート用。
0 件のコメント:
コメントを投稿