Dear friends,
I draw a curve in SU and now I need to use it in my ruby codes. One way is I measure x, y and z for each point and add it in ruby but it takes long time. Do you know better way? Is there any plugins than can do it for me? Also if possible I wish to show start point and endpoint of curve.
If i got it right…
def display_pts
mod = Sketchup.active_model
ent = mod.active_entities
sel = mod.selection
ordered_edges = ent.weld( sel.grep(Sketchup::Edge) )
ordered_edges.each_with_index{|curve, i|
curve_pts = curve.vertices.map{|v| v.position.to_a}
puts
puts "curve #{i} points: #{curve_pts}"
start_p = ent.add_text "S#{i}", curve_pts.first
end_p = ent.add_text "E#{i}", curve_pts.last
}
nil
end
display_pts
1 Like
Thank you so much.
If you have a reference to (any) one of the edges of the curve …
curve_pts = edge.curve.vertices.map(&:position)
(It is not necessary to convert each of the Geom::Poit3d
points into an Array
.)
To get the first point of a curve (from a reference to any of it’s edges) …
first_pt = edge.curve.first_edge.start
To get the last point of a curve (from a reference to any of it’s edges) …
last_pt = edge.curve.last_edge.end
1 Like