5.5 KB · 수정 2026-08-06 11:44
목차

acad-tread — 그룹 입력 트리 모달 + 통합툴 인스톨러 재생성 (2026-08-06)

페페 지시: "TREAD 툴에서 입력/탐지에서 그룹입력을 트리형태로 구성해서 모달로 뜨게 해줘. 항목별 파트 치수도 보이게 해서 내용을 파악한뒤 그룹이름 옆에 추가 버튼을 달아서 추가 버튼으로 목록에 들어가는 형태로 사용원한다. 통합툴 인스톨러 생성까지 작업 해."

무엇이 바뀌었나

= SampleGroupForm — 그룹명만 나열하는 리스트박스 1단. 치수가 안 보여 내용을 못 보고 골랐고, 하나 고르면 창이 닫혀 그룹마다 버튼을 다시 눌러야 했다.

= SampleTreeForm — 3단 트리 모달.

▾ 도어 (14)
   ▾ 손잡이도어  상하110/770  · 2품목            [+ 추가]
        도어      |  18T  |  396 × 2167 |  1개 | 엣지 3 | 상하110/770
        손잡이판  |  4.5T |  70 × 2167  |  1개
   ▸ 하부도어  [446*638=1]  상하110  · 1품목      [+ 추가]
▾ EP (58) …  ▾ 도장 (39) …  ▾ 오픈장 (5) …

구현 함정 (재발 방지)

  1. 🔑 node.Bounds 가 실제 그려진 글자보다 짧게 잡힌다 — 그 값으로 칩을 붙였더니 긴 라벨에서 칩이 글자를 덮었다(캡처로 2회 확인). 해결 = TextRenderer.MeasureText(node.Text, _tree.Font) 로 직접 잰 폭과 Bounds.Right큰 쪽 + 여백. 칩 x는 ChipCol(330) 바닥을 둬 대부분 세로로 정렬된다.
  2. 오너드로우는 텍스트까지 그리지 않는다DrawMode=OwnerDrawText + e.DrawDefault = true 로 두면 텍스트·선택 하이라이트는 기본 렌더러가 그리고 칩만 얹으면 된다. 텍스트를 직접 그리면 선택색·클리핑을 전부 떠안는다.
  3. 칩 클릭 판정 = TreeView.GetNodeAt(x,y) 는 라벨 오른쪽(TVHT_ONITEMRIGHT)에서도 노드를 돌려준다 → 별도 히트테스트 불필요.
  4. DB 왕복은 2번 — 그룹 1회 + LoadAllSampleItems() 1회(전체 233행). 트리에 치수를 미리 펼치려면 그룹별 조회는 116회 왕복이라 폐기했다.

검증

통합툴 인스톨러

남은 것 (페페 몫)

  1. 사무실 PC 배포 — zip 복사 → AutoCAD 종료 → install.bat → 재시작 → PCADTOOLS 메뉴 → [T] 가구패널탐지.
  2. 육안 1회 — 입력/탐지 탭 → [📋 그룹 입력] → 트리에서 그룹 펼쳐 파트 치수 확인 → [+ 추가] → 입력 목록에 들어가는지, 연속으로 여러 그룹 추가되는지.