« C4D Python R12 テスト:SendModelingCommand()スプライン投影 | トップページ | C4D Python R12 テスト:SendModelingCommand()スプライン直列 »

C4D Python R12 テスト:SendModelingCommand()スプラインアウトラインを作成

スプラインのアウトラインを作成のSendModelingCommand()のC4D Python テストコード

C4dpythonsendmodelingcommand_012

Python
'''
スプライン アウトラインを作成
'''


import c4d
from c4d import utils


def main():
    if not isinstance(op, c4d.SplineObject):return

    bc = c4d.BaseContainer()
    bc.SetData(c4d.MDATA_SPLINE_OUTLINE, 25.5) #距離
    bc.SetData(c4d.MDATA_SPLINE_OUTLINESEPARATE, True) #新規オブジェクトとして

    doc.StartUndo()

    new_obj = utils.SendModelingCommand(c4d.MCOMMAND_SPLINE_CREATEOUTLINE, [op],
                            c4d.MODELINGCOMMANDMODE_ALL,
                            bc, doc, c4d.MODELINGCOMMANDFLAGS_CREATEUNDO)

    doc.EndUndo()

    if bc.GetData(c4d.MDATA_SPLINE_OUTLINESEPARATE):
        new_obj[0].InsertAfter(op)


if __name__=='__main__':
    main()
    c4d.EventAdd()

新規オブジェクトとして処理した場合、SendModelingCommand()から新規でアウトラインのスプラインオブジェクトが返されます。
返されたオブジェクトをシーンに追加します。

新しいオブジェクトをシーンに追加する場合は、

  • BaseDocument.InsertObject()
  • GeListNode.InsertUnder()
  • GeListNode.InsertAfter()
  • GeListNode.InsertBefore()

等があります。

新規オブジェクトとしない場合は、SendModelingCommand()からはオブジェクトは返されませんので、シーンに追加する必要はありません。

モード

処理対象 選択 非選択
c4d.MODELINGCOMMANDMODE_ALL 全てのポイント 全てのポイント
c4d.MODELINGCOMMANDMODE_POINTSELECTION 全てのポイント 全てのポイント
c4d.MODELINGCOMMANDMODE_POLYGONSELECTION 全てのポイント 全てのポイント
c4d.MODELINGCOMMANDMODE_EDGESELECTION 全てのポイント 全てのポイント

|

« C4D Python R12 テスト:SendModelingCommand()スプライン投影 | トップページ | C4D Python R12 テスト:SendModelingCommand()スプライン直列 »

コメント

コメントを書く



(ウェブ上には掲載しません)




« C4D Python R12 テスト:SendModelingCommand()スプライン投影 | トップページ | C4D Python R12 テスト:SendModelingCommand()スプライン直列 »