« winでIEを使っているんだけど、調子が… | トップページ | 以前作成した実用性の無い「選択オブジェクトにヌルオブジェクト配置する」スクリプトに、R11SDKのobject()関数を使用する »

C4D 複数選択されたシーン全体のタグの取得 C.O.F.F.E.E. R11 SDK

複数選択されたオブジェクト同様、選択されたタグを取得します。

R9.6 SDKでのタグの取得は、オブジェクト単位ですので、GetActiveTag(op)/SearchNext(BIT_ATAG)/while()での取得は、指定したオブジェクトに取り付けられたタグしか取得できません。

シーン全体の選択されたタグを取得するには、更にdoc->GetFirstObject()/obj->GetDown()/obj->GetNext()/obj->GetUp()等も使わなくてはいけませんでした。

要するに、シーン全体の全てのオブジェクトを1つづつ捜査し、そのオブジェクトに取り付けられた選択されたタグを取得するのです。

では、R11SDKでのシーン全体の選択されたタグの取得をしましょう。

選択されたタグの名前をコンソールに表示するスクリプトです。

/*
シーン全体の選択されたタグを取得しコンソールに名前を表示します
2009.5.30
*/


main(doc , op)
{
  var i;//カウンタ変数


  //選択されたタグの名前をコンソールに表示します
  for(i = 0 ; tag(i) ; i++){   //選択されたタグが無くなるまで繰り返します
    println(tag(i)->GetName());//選択されたi番目のタグの名前をコンソールに表示します。
  }
}

本当にシンプルですね。

オブジェクトの選択状況には影響されません。

選択されたタグを取得するBasicFunctionの関数です。

[BaseTag]tag([int]number);

object()関数同様、タグのパラメータを操作する事ができます。

これで、SearchNext(BIT_ATAG)の必要がなくなったわけではありません。
オブジェクト単位に選択されたタグを処理しなければならない場合がありますので…

|

« winでIEを使っているんだけど、調子が… | トップページ | 以前作成した実用性の無い「選択オブジェクトにヌルオブジェクト配置する」スクリプトに、R11SDKのobject()関数を使用する »