ソリッドのコピー&ペーストを自動化するには

Japanese forum
takabo
Posts: 6
Joined: Sat Apr 08, 2017 9:16 am

ソリッドのコピー&ペーストを自動化するには

Postby takabo » Thu May 04, 2017 9:44 am

あるソリッドの姿勢と位置をアニメーションのように少しづつ移動させ、その軌跡を描こうと考えています
(スイープやロフトのように平面が移動した軌跡ではありません)。
立体がスイープできればよいのですが、どうもそのような機能が見当たりません。
そこで次のような手順を考えました。
1:ソリッドAを作る
2:ソリッドAをコピー、ペーストしソリッドA'を作る
3:ソリッドA'を「配置」で姿勢、位置を変更する
4:ソリッドA’をコピー、ペーストしソリッドA''を作る
5:ソリッドA''を「配置」で姿勢、位置を変更する
6:ソリッドA''をコピー、ペーストしソリッドA'''を・・・・・・
という手順です。
これをいちいち手動で繰り返すのは大変なので、スクリプトレコーダーで操作を記録、
再生させようとしました。ところが手順3は記録されるものの、
手順2が記録されません。何か特別な操作が必要なのでしょうか?
ご存知の方がいらっしゃいましたら、ご教示願います。
User avatar
h.tsubota
Posts: 29
Joined: Mon Mar 21, 2016 2:09 pm

Re: ソリッドのコピー&ペーストを自動化するには

Postby h.tsubota » Thu May 04, 2017 10:27 am

少し調べてみました。

How to deep copy with python script?
viewtopic.php?t=11014

上記で開発者の方が回答している様に

Code: Select all

App.ActiveDocument.copyObject(App.ActiveDocument.ActiveObject, True)
とするとアクティブなドキュメントのアクティブなオブジェクトをコピーできました(WIndows版のv0.16で確認)。
ドキュメント名(例."MyDoc")とオブジェクト名(例."MyBox")を指定してコピーしたい場合は以下の様になります。

Code: Select all

myDoc=App.getDocument("MyDoc")
myDoc.copyObject(myDoc.getObject("MyBox"), True)
copyObject()の2番目の引数をTrueとするとディープコピー(履歴ごとコピー)、Falseとするとシャローコピー(履歴をコピー元と共有)となる様です。

このメソッド自体はv0.16からの比較的新しいものらしく、GUI操作では(まだ?)マクロとして記録されるところまで作りこまれていない様でした。
takabo
Posts: 6
Joined: Sat Apr 08, 2017 9:16 am

Re: ソリッドのコピー&ペーストを自動化するには

Postby takabo » Fri May 05, 2017 8:30 am

ありがとうございます。
これで作業手順が簡略化できそうです。