2026-08-28 세션 — 자재탭 전용 창 MatWindow.exe 완료
handoff.md 에서 원문 그대로 이관한 조각(26.10.20 캡 20,000자 정리). 아래 「논의·대안」 = 원문 무변경.
논의·대안
26.8.28 밤 — 자재탭 전용 창 MatWindow.exe 완료(페페 육안 대기)
- 페페 결정 = 팔레트 임베드가 아니라 별도 exe(질문 1개로 확인). 근거 = 부위 13열이 팔레트 폭에 안 들어감 · WebView2 를 캐드 프로세스에 물리면 구버전 AutoCAD 리스크 · 전용 창이면 다른 페이지로 갈 일이 구조적으로 없음.
- ✅만든 것 =
acad-tread-plugin/matwindow/(net48 WinForms + WebView2 1.0.2903.40,Program.cs130줄,pfs/print-app복제). 툴바 [⌂ 자재탭][↻ 새로고침][📌 항상 위] · 단일 인스턴스 Mutex(폴링 창이 둘이면 값이 엉뚱한 창에 꽂힌다) · 영속 프로필%LOCALAPPDATA%\PcadMatWindow(PfsPrint 와 분리 — 같은 프로필을 두 프로세스가 열면 캐시·종료가 얽힌다). 팔레트 버튼 [자재탭 창 열기](구 [웹 자재탭 열기]) → DLL 폴더 옆matwindow\MatWindow.exe, 없으면 기본 브라우저 폴백. - 🔑코덱스 확인 = 가려짐(occluded)은 원래 문제가 아니다 — WebView2 는
IsVisible=true면 완전히 가려져도 foreground 취급(크롬 탭과 다름). 최소화·숨김만 타이머가 느려진다 → 플래그는--disable-background-timer-throttling1개만. (--disable-backgrounding-occluded-windows·--disable-renderer-backgrounding는 전력만 먹어 뺐다.) 도메인 allowlist 는 안 넣었다 — SPApushState는NavigationStarting으로 못 막아 반쪽이다. - ⚠AcadTread.csproj 는 SDK 스타일이라 하위 폴더 .cs 를 전부 빨아들인다 →
<Compile Remove="matwindow\**" />필수(안 넣으면 Main 중복으로 빌드 깨짐)._verify\**와 같은 함정. - 배포 =
pcadtools installer\matwindow\7파일 +install.ps1이 폴더째 복사·Unblock-File(MOTW). 설치 zip 재생성(dev-7c 통보).AcadTread.dllMD5 ADC6A9EC — bin/Release · pcadtools installer · tread installer · 런타임%LOCALAPPDATA%\pcadtools4곳 일치. - 검증 =
matwindow/test_matwindow.py4/4 PASS(창 제목 · 프로세스 생존 ·msedgewebview2자식 6개 · PrintWindow 캡처 색 14,373종 = 흰 화면 아님, 로그인 페이지 렌더 확인) ·install.ps1구문검사 + 복사 블록 임시폴더 실행 PASS. ⚠BOM 없는 .ps1 은 cp949 로 깨진다 — 검사 스크립트도utf-8-sig로 써야 돈다(또 밟았다). - ⏳남은 것 = ①페페 육안 1회(AutoCAD 재시작 → pcadtools → 가구패널탐지 → 자재수집 → [자재탭 창 열기] → [연속 픽 시작] → 웹 [캐드 픽] → 칸 클릭 → 도면 문자 클릭)
②팔레트 편집 그리드 정리 ③네스팅 BOM 에
spec-read공급. - 후속(같은 날, dev-7c 요청 반영) — 단일 인스턴스를 URL 단위로 바꿨다(MD5 8자 키 + 주소별 창 제목).
자재탭은 여전히 창 1개지만 다른 주소(dwgrev 뷰어
127.0.0.1:8801등)는 자기 창을 따로 갖는다 —MatWindow.exe <url>로 아무 사내 페이지나 태울 수 있다.MatWindow.exeMD5 611E7B94(installer·런타임 일치) · 설치 zippcadtools-installer-2026-08-28.zipMD5 A21A00E9(523,209B·17항목). ⚠exe 해시와 zip 해시를 같은 문장에 쓰면 헷갈린다(dev-7c 가 잡았다 — 내가 exe 값을 zip 값처럼 적었다). 배포물은 항목별 해시로 적는다:AcadTread ADC6A9EC·MatWindow 611E7B94·DwgCompare A329520C·PcadTools 0A26DCE3. 연기검사 6/6 PASS(⑤같은 주소 재실행 1창 ⑥다른 주소 별창 추가). - 🔴dev-7c 제보(dwgrev 실사용) = 크롬 GPU 캔버스는 한 Path 에 서브패스가 수만 넘으면
stroke()를 조용히 버린다(에러 0, 통계는 정상). 헤드리스 Playwright 는 소프트웨어 래스터라 이 버그를 못 잡는다 → 우리 연기검사는 처음부터PrintWindow실화면 픽셀 + 고유색 수로 판정하고 있어 같은 함정엔 안 걸린다(백지 = 고유색 1개). 원색 그대로 저장해야 이 판정이 산다 — 회색조·반전 금지. - 계획페이지 = devplan
/matcollect.html§5.6.
결정
원문 안에 포함(이관 조각이라 별도 추가 없음).
산출물·커밋
원문 안에 포함.
다음
원문 안의 미결·후속 참조. 상태 = 종결.
관계
- 주제 그룹: acad-tread
- 관련 문서: acad-tread-handoff