# encoding: UTF-8
m = Sketchup.active_model
def r1(v); (v*25.4).round(1); end
sel = m.selection
puts "SEL COUNT=#{sel.length}"
sel.each_with_index do |e,i|
  nm = e.respond_to?(:name) ? e.name.to_s : ""
  dn = e.respond_to?(:definition) ? e.definition.name.to_s : ""
  nm = dn if nm.empty?
  puts "[#{i}] class=#{e.class} name=#{nm.inspect} defname=#{dn.inspect}"
  next unless e.respond_to?(:bounds)
  b=e.bounds; t=e.transformation rescue nil
  puts "    world bbox (#{r1(b.min.x)},#{r1(b.min.y)},#{r1(b.min.z)})..(#{r1(b.max.x)},#{r1(b.max.y)},#{r1(b.max.z)})"
  puts "    size #{((b.max.x-b.min.x)*25.4).round(1)} x #{((b.max.y-b.min.y)*25.4).round(1)} x #{((b.max.z-b.min.z)*25.4).round(1)} mm"
  if t
    puts "    scale #{t.xscale.round(4)}/#{t.yscale.round(4)}/#{t.zscale.round(4)} origin (#{r1(t.origin.x)},#{r1(t.origin.y)},#{r1(t.origin.z)})"
    puts "    to_a=#{t.to_a.map{|v| v.round(5)}.inspect}"
  end
  if e.respond_to?(:definition)
    en = e.definition.entities
    puts "    ents=#{en.length} faces=#{en.grep(Sketchup::Face).length} edges=#{en.grep(Sketchup::Edge).length} grp=#{en.grep(Sketchup::Group).length} cmp=#{en.grep(Sketchup::ComponentInstance).length} solid=#{(e.manifold? rescue 'n/a')}"
    en.grep(Sketchup::Group).each{|s| sb=s.bounds; puts "      sub #{s.name.inspect} #{((sb.max.x-sb.min.x)*25.4).round(1)}x#{((sb.max.y-sb.min.y)*25.4).round(1)}x#{((sb.max.z-sb.min.z)*25.4).round(1)}"}
    lb = e.definition.bounds
    puts "    로컬 bbox (#{r1(lb.min.x)},#{r1(lb.min.y)},#{r1(lb.min.z)})..(#{r1(lb.max.x)},#{r1(lb.max.y)},#{r1(lb.max.z)})"
    puts "    최상위 여부=#{e.parent == m}  layer=#{e.layer.name}"
  end
end
"RD6"
