動作環境
SketchUp Make v17.1.173
MacOS X El Capitan
2つのGroupの位置合わせ(例: 下、中央での位置合わせ)をしたい。
ついでにAPI/Rubyの勉強も。
その前段階として、Groupの移動コードを調べた。
参考 http://sketchucation.com/forums/viewtopic.php?f=323&t=40482
by sdmitch » Wed Oct 05, 2011 1:21 am
にGeom::Transformation()の使い方が掲載されている。
tr=Geom::Transformation.new([10,0,0])#copy location
group_shell_copy.transform! tr
座標を直接セットするのでなく、一旦変数(例:tr)に置くようだ。
Unity(C#)でもこういう実装だった。
http://qiita.com/7of9/items/f66b87d6c2778a68c719
code
move161230.rb
require 'sketchup.rb'
def move_group()
model = Sketchup.active_model
my_selection = model.selection
my_selection.each do |ent|
if ent.is_a? Sketchup::Group
tr=Geom::Transformation.new([100.mm,0,0]) ## move location
ent.transform! tr
end
end
end
実行手順
上記のスクリプトをRubyコンソールにて読込む。
(スクリプトの置き場所はこちら参照)
> load "move161230.rb"
true
前準備:group作成
- 直方体を作る
- 平面作成
- プッシュプルツール
- 直方体(グループ化してないもの)をトリプルクリックする
- 6面が選択される
- 右クリックー>「groupを作成」でgroupにしておく。
実行
- 上で作成したgroupを選択する
- Rubyコンソールで「move_group()」を実行する。
これで選択したGroupがX軸反対方向画面左方向に移動する。
備考
move_group()を複数回実行すると、どんどんX軸負方向画面左方向に移動していく。
赤の実線で見えているのは象限(quadrant)ではX軸正に入る。
つまりはX軸正方向に移動している。