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

运行结果:

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