動作環境
SketchUp Make v17.1.173
MacOS X El Capitan
直方体を小さくしたい。
「尺度ツール」では相対的な値で拡大縮小できるが、具体的なサイズ(mm)で拡大縮小したかった。
(ついでにRubyの勉強も)
v0.1
faceAnalysis161229.rb
require 'sketchup.rb'
def face_analyze()
model = Sketchup.active_model
my_selection = model.selection
my_selection.each do |ent|
if ent.is_a? Sketchup::Face
print("face:",ent.normal,"\n")
end
end
end
def face_shrink(distance_mm)
model = Sketchup.active_model
my_selection = model.selection
my_selection.each do |ent|
if ent.is_a? Sketchup::Face
xvec = ent.normal()[0]
yvec = ent.normal()[1]
zvec = ent.normal()[2]
# 0.1: arbitrary (should be more than 0.0 and less than 1.0)
if xvec > 0.1 or yvec > 0.1 or zvec > 0.1 then
print("shrink\n")
ent.pushpull(-distance_mm)
end
end
end
end
上記のスクリプトをRubyコンソールにて読込む。
(スクリプトの置き場所はこちら参照)
> load "faceAnalysis161229.rb"
true
実行手順
- 直方体を作る
- 平面作成
- プッシュプルツール
- 直方体(グループ化してないもの)をトリプルクリックする
- 6面が選択される
- Rubyコンソールで「face_shrink(5)」を実行する。
以上で直方体の各方向で5mm小さくなる。
サイズ変更前
サイズ縮小後
下に置いている立方体をWidth, Depth, Heightに関して5mmずつ縮小してみた。
face_shrink(-5)
だと5mmずつ拡大できる。
縮小サイズを失敗した時はCtrl+zを3回実行すれば元のサイズに戻る。
プッシュプルツール3回でも実行できるが、時間を短縮できる。
x,y,z各方向でサイズを指定できる方が使い勝手はいいかもしれない。
v0.2
x,y,z各方向でサイズを指定できるようにした。
faceShrink161229.rb
require 'sketchup.rb'
def face_shrink(dist_x_mm, dist_y_mm, dist_z_mm)
model = Sketchup.active_model
my_selection = model.selection
my_selection.each do |ent|
if ent.is_a? Sketchup::Face
xvec = ent.normal()[0]
yvec = ent.normal()[1]
zvec = ent.normal()[2]
# 0.1: arbitrary (should be more than 0.0 and less than 1.0)
if xvec > 0.1 then
ent.pushpull(-dist_x_mm)
end
if yvec > 0.1 then
ent.pushpull(-dist_y_mm)
end
if zvec > 0.1 then
ent.pushpull(-dist_z_mm)
end
end
end
end