rr2d = UI::Command.new("Random Rotation") {
Sketchup.active_model.start_operation('Random Rotation', true)
prompts = ["最大角度","最小角度"]
defaults = [-30,30]
@input = UI.inputbox(prompts,defaults,"参数设置")
def random_rotation(o)
centre = o.bounds.center
angle = rand(@input[0]..@input[1]).degrees
trans = Geom::Transformation.rotation(centre,[0,0,1],angle)
Sketchup.active_model.entities.transform_entities(trans,o)
end
Sketchup.active_model.selection.each{|o|
random_rotation(o)
}
Sketchup.active_model.commit_operation
}
rr2d.set_validation_proc {
if Sketchup.active_model.selection.length == 0
MF_GRAYED
else
MF_ENABLED
end
}
UI.menu("Draw").add_item rr2d
© AWhouse
rr3d = UI::Command.new("Random Rotation 3D") {
Sketchup.active_model.start_operation('Random Rotation 3D', true)
def random_3d_rotation(o)
centre = o.bounds.center
phi = rand(360).degrees
trans_h = Geom::Transformation.rotation(centre,[0,0,1],phi)
normal = Geom::Vector3d.new(1,0,0)
normal.transform!(trans_h)
theta = rand(360).degrees
trans_v = Geom::Transformation.rotation(centre,normal,theta)
Sketchup.active_model.entities.transform_entities(trans_h*trans_v,o)
end
Sketchup.active_model.selection.each{|o|
random_3d_rotation(o)
}
Sketchup.active_model.commit_operation
}
rr3d.set_validation_proc {
if Sketchup.active_model.selection.length == 0
MF_GRAYED
else
MF_ENABLED
end
}
UI.menu("Draw").add_item rr3d
© AWhouse