# encoding: UTF-8
# rd9 — SWD_04 로컬 형상 프로파일 (읽기 전용)
m = Sketchup.active_model
out = []
out << "PRO=#{Sketchup.is_pro?} ver=#{Sketchup.version}"
g = m.selection.to_a.find { |e| e.respond_to?(:entities) && e.respond_to?(:name) && e.name == "SWD_04_t9_240x1046" }
if g.nil?
  out << "선택에 SWD_04 없음"
else
  out << "subtract 지원=#{g.respond_to?(:subtract)} trim=#{g.respond_to?(:trim)} manifold=#{g.manifold?}"
  ents = g.entities
  xs = Hash.new(0)
  ents.grep(Sketchup::Face).each { |f| f.vertices.each { |v| xs[v.position.x.to_f.round(3)] += 1 } }
  out << "== 고유 X 좌표 (inch->mm) =="
  xs.keys.sort.each { |x| out << "  x=#{(x*25.4).round(2)} n=#{xs[x]}" }
  # x 구간별 z 범위
  out << "== x구간별 z범위 =="
  [[0,110],[110,200],[200,800],[800,890],[890,1000]].each do |lo,hi|
    zmin=nil; zmax=nil
    ents.grep(Sketchup::Face).each do |f|
      f.vertices.each do |v|
        xm=v.position.x.to_f*25.4
        next if xm < lo-0.01 || xm > hi+0.01
        zm=v.position.z.to_f*25.4
        zmin = zm if zmin.nil? || zm<zmin
        zmax = zm if zmax.nil? || zm>zmax
      end
    end
    out << "  x #{lo}..#{hi} : z #{zmin ? zmin.round(2) : '-'} .. #{zmax ? zmax.round(2) : '-'}"
  end
end
puts out.join("\n")
"RD9"
