Sketchup 程序自動化(四)Transformation

我們在開發中經常會對用代碼建立起來的模型進行位置的移動,模型本身的旋轉。下面代碼通過對建立的模型進行移動、旋轉、組合運行來進行演示:

建立文字標示

model = Sketchup.active_model
entities = model.entities
sel = model.selection

# 添加二維文字 (標示文字)
word = "這是一個點"
# 第二個參數爲引出的方向
test_text = entities.add_text "#{word}",[0,0,0],[1,1,1]
# 線的粗線
test_text.line_weight = 4
# 引出線的類型
# 1:橫線性 2:點型 3:封閉型 4:開放型
test_text.arrow_type = 2
# 檢查類型
test_text.leader_type = 1
# 三維文字
#entities.add_3d_text 

移動、旋轉

Transformation 對象 :用於對實體對象進行旋轉、移動、縮放等操作。

# 移動
test_face = entities.add_face [0,0,0],[100,0,0],[100,100,0],[0,100,0]
test_face.pushpull -10
change_line = entities.add_line [50,0,10],[50,100,10]

tr = Geom::Transformation.new([0,0,20])
entities.transform_entities tr,change_line

move_tr = Geom::Transformation.new([200,200,0])
entities.transform_entities move_tr,entities[0]

# 旋轉
# 右手拇指沿着軸進行旋轉
tr_face = entities.add_face [[0,0,30],[10,0,30],[10,10,30],[0,10,30]]
rotation_tr = Geom::Transformation.new [5,5,30],[0,0,1],45.degrees
entities.transform_entities rotation_tr,tr_face

# 縮放
# 縮放也可以對不同的軸進行
scale_tr = Geom::Transformation.new 0.5
entities.transform_entities scale_tr,entities[0]
#scale_tr2 = Geom::Transformation.scaling(Geom::Point3d.new(0,0,50),0.4,0.3,0.1)

# 聯合變化
# 以 * 連接 順序從左到右
new_tr = move_tr * rotation_tr
entities.transform_entities new_tr,tr_face

運行結果:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章