# hoist selected edges to a specific height in the blue (Z) direction # useful for raising flat contours manually # assumes selection is already coplanar require 'sketchup.rb' def hoist model = Sketchup.active_model model.start_operation "Hoist edges" entities = model.active_entities ss = model.selection if ss.empty? UI.messagebox("Nothing selected") return nil end edges = [] ss.each do |entity| if entity.kind_of?(Sketchup::Edge) edges.push(entity) end end if edges.empty? UI.messagebox("No edges selected") return nil end @h = 1.feet if not @h result = inputbox ["Height"], [@h], "Hoist Edges" return if not result @h = result[0] # assume entire selection coplanar, # so calc offset from first vertex entity = edges[0] vertex = entity.vertices[0] delta_z = @h - vertex.position.z trans = Geom::Transformation.new(Geom::Vector3d.new([0, 0, delta_z])) entities.transform_entities(trans, edges) # lock to avoid accidental reselection edges.each { |e| e.locked = true } model.commit_operation end if (not file_loaded?("hoist.rb")) add_separator_to_menu("Plugins") UI.menu("Plugins").add_item("Hoist Edges") { hoist } end #-------------------------------------------------------- file_loaded("hoist.rb")