« C4D Python R12 テスト:SendModelingCommand()スプライン面取り | トップページ | C4D Python R12 テスト:SendModelingCommand()スプラインハード補間 »

C4D Python R12 テスト:SendModelingCommand()スプラインポイントの追加

スプラインのポイントの追加のSendModelingCommand()のC4D Python テストコード

Python
'''
スプライン ポイントの追加
'''


import c4d
from c4d import utils


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

    bc = c4d.BaseContainer()
    bc.SetData(c4d.MDATA_SPLINE_ADDPOINTSEGMENT, 0) #セグメント
    bc.SetData(c4d.MDATA_SPLINE_ADDPOINTPOSITION, 0.125) #位置0.0 ~ 1.0

    doc.StartUndo()

    utils.SendModelingCommand(c4d.MCOMMAND_SPLINE_ADDPOINT, [op],
                      c4d.MODELINGCOMMANDMODE_ALL, bc, doc,
                      c4d.MODELINGCOMMANDFLAGS_CREATEUNDO)

    doc.EndUndo()


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

ポイントの追加は、スプラインの長さを基準にしていません。
同じスプラインの形状でもポイントの数が違うと、指定した位置にポイントを追加しても、同じにはなりません。

ポイントが5個で開いている場合(ポイント間隔:0.25)

位置の配分 位置0.125へ追加

Mcommand_spline_addpoint_01

Mcommand_spline_addpoint_03

ポイントが6個で開いている場合(ポイント間隔:0.2)

位置の配分 位置0.125へ追加

Mcommand_spline_addpoint_02

Mcommand_spline_addpoint_04

モード

処理対象 選択 非選択
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()スプラインハード補間 »