# encoding: UTF-8
# del6 — 삼각판 2장 + 통짜 필러 6개 삭제 (erase! 후 부모 재조회 없음)
HB = 'E:/도진팩토리/3D스캔및티칭시스템/_자동화/inbox/_보류/_del8_heartbeat.txt'
def hb(s)
  begin
    File.open(HB, 'a:UTF-8') { |f| f.write("[#{Time.now.strftime('%H:%M:%S')}] #{s}\n"); f.flush }
  rescue Exception
    nil
  end
end
m = Sketchup.active_model
out = []
hb("START")
g2 = m.entities.grep(Sketchup::Group).find { |g| g.definition.name == "그룹#2" }
if g2.nil?
  out << "그룹#2 없음"
else
  tgt = g2.entities.grep(Sketchup::Group).select do |g|
    n = g.name.to_s
    n.include?("_6TB_")
  end
  out << "삭제 대상 #{tgt.length}개: #{tgt.map { |g| g.name }.inspect}"
  if tgt.empty?
    out << "대상 없음"
  else
    begin
      base = File.basename(m.path, '.skp'); dir = File.dirname(m.path)
      bak = File.join(dir, "#{base}.bak_#{Time.now.strftime('%Y%m%d_%H%M%S')}_del8직전.skp")
      m.save_copy(bak)
      hb("BACKUP OK")
      n = 0
      m.start_operation("6T 실패본 삭제", true)
      tgt.each do |g|
        hb("ERASE #{g.name}")
        g.erase!
        n += 1
      end
      m.commit_operation
      hb("COMMIT n=#{n}")
      out << "삭제 #{n}개 완료"
    rescue Exception => e
      m.commit_operation rescue nil
      out << "ERR #{e.class}: #{e.message}"
      hb("ERR #{e.message}")
    end
  end
end
begin
  p2 = m.entities.grep(Sketchup::Group).find { |g| g.definition.name == "그룹#2" }
  out << "삭제 후 그룹#2: #{p2.entities.grep(Sketchup::Group).map { |g| [g.name, g.hidden?] }.inspect}" if p2
rescue Exception => e
  out << "검증 실패 #{e.message}"
end
puts out.join("\n")
hb("END")
"DEL8"
