2026-07-21 세션 — NOW (현재 상태) 스냅샷
handoff.md 에서 원문 그대로 이관한 조각(26.10.20 캡 20,000자 정리). 아래 「논의·대안」 = 원문 무변경.
논의·대안
NOW (현재 상태)
미결·진행만. 완료·검증 끝난 상세(06-25~07-06 40건) →
projects/acad-tread/archive.md. 불변핵심은 위 섹션들.
- 🆕샘플 트리 CRUD(실 DB 반영) + 백업·수정이력 + 모덜리스 [코디] 26.8.6 ✅완료, ⏳사무실 배포·육안. 페페 지시 2건(①트리에 CRUD·실DB 반영·백업·수정이력 ②트리 열면 입력/탐지가 잠긴다 → 락 금지). 우클릭 메뉴 + 편집창(페페 택1): 새 그룹/새 품목/수정/복제/삭제 + 수정 이력/새로고침, 품목 더블클릭=수정, F2·Del·F5. 그룹 복제는 품목까지 함께 복사. 🔑삭제가 스키마 때문에 갈린다 — 그룹은
remove_yn숨김(되살리면 품목까지 복귀), 품목은 remove_yn 칼럼이 없어 물리 DELETE → 되돌리기는 새item_no재삽입(IDENTITY_INSERT안 씀 — FK·트리거 0이라 번호가 바뀌어도 무해). 안전망 =%LocalAppData%\MDCAD\sample_edit\— 변경 직전마다 전체 스냅샷 JSON(58KB, 삭제행 포함·200개 보관) +sample_history.jsonl1변경 1줄(before/after 원본) → [수정 이력] 창에서 되돌리기(되돌리기도 백업·이력,undone표식으로 이중 되돌리기 차단). DB에 이력 테이블은 안 만들었다(imos 운영 스키마를 건드리면 poincad(VB) 영향 검토가 붙는다). 모덜리스 =AcadApp.ShowModelessDialog(창 하나만·재클릭은 앞으로, 콜백에서_working재확인). 쓰기 전 실측 = imosadmin은 dbo/sysadmin, 6종 권한 전부 OK,group_no·item_no는 IDENTITY. 검증 = 오프라인 37항목 ALL PASS(메뉴 활성화·편집창 겹침/값왕복·이력 왕복) + 실 DB E2E 10항목 ALL PASS(--dbtest: INSERT→UPDATE→DELETE→되돌리기→그룹 숨김/복원→흔적 제거, 끝나고 116그룹/233품목 원상복구). 🔴자가검증이 잡은 실버그 = 10pt 폰트로 키우며 비고 칸이 [저장] 버튼과 겹침(캡처엔 안 보인다 —DrawToBitmap은 TextBox를 안 그린다). ⚠글리프 없는 이모지(🕘)는 □로 떨어진다 → 메뉴·버튼은 텍스트+검증된 기호만. DLL 174,080B 3곳 MD54C8A7556+ zip 재생성. →projects/acad-tread/session-2026-08-06-sample-crud.md -
🆕그룹 입력 = 트리 모달 + 그룹 옆 [+추가] [코디] 26.8.6 ✅완료(빌드·자가검증·통합툴 인스톨러 재생성까지), ⏳사무실 배포·육안. 페페 지시대로 리스트박스 1단(치수 안 보임·1개 고르면 창 닫힘)을 구분→그룹→품목(파트 치수) 3단 트리로 교체(
SampleTreeForm.cs신설,SampleGroupForm폐기). 구분 =group_div10=도어·20=EP·30=도장·40=오픈장(근거 = poincadForm_Item_List탭 버튼 —poin_common_code엔 SAMPLE_DIV 없음). 그룹 라벨에 규격을 넣은 이유 = 동명 그룹이 규격으로만 갈린다. 칩을 누르면 그 그룹 품목이 즉시 입력 그리드로 들어가고 창은 안 닫혀 연속 추가(하단 "추가됨 n그룹 m행"). DB 왕복 2번(그룹1 + 전품목1LoadAllSampleItems, 233행 — 그룹별 116회 조회 폐기). 🔑함정 =node.Bounds가 실제 글자보다 짧아 칩이 글자를 덮는다 →TextRenderer.MeasureText폭과 큰 쪽 채택 · 오너드로우는e.DrawDefault=true로 두면 텍스트·선택은 기본 렌더러가 그린다(칩만 얹음) ·GetNodeAt은 라벨 오른쪽에서도 노드를 준다. 검증 = 신설 러너_verify/SampleTreeCheck.csproj17항목 ALL PASS +--live실 MSSQL 116그룹·233품목·구분4 +--shot화면 밖 캡처 육안(DrawToBitmap 폴백이 실제로 찍힌다). DLL 142,848B 3곳 MD506C194D2일치 + 통합툴 zippcadtools-installer-2026-08-06.zip(10항목). ⏳페페 = ①사무실 PC에 zip 설치 ②트리·[+추가] 육안 1회. →projects/acad-tread/session-2026-08-06-group-input-tree-modal.md -
🔀전환(그룹입력 데이터 경로 = pfs HTTP → MSSQL 직접 연결, 코디 직접 2026-07-09, 빌드 134144B·install 완료, ⚠오피스 PC 재배포 필요): 페페 "샘플그룹 불러오기 실패, 네트워크/DB 확인하래". 진단(tread_log.txt 실측): 대상 PC(오피스)가 pfs 웹서버(HTTP)에 못 닿음(과거
LoadColors EX: 원격 서버 연결 불가→칼라는 파일폴백 80개로 조용히 넘어갔음, 샘플은 폴백 없어 에러). 즉 운영배포는 됐어도 오피스 PC의 .NET HTTP가 pfs에 안 닿는 환경. 페페 원지시 "안되면 MSSQL 직접연결"이 정답. 전환:PoinDb샘플 조회를System.Data.SqlClient직접 연결로(칼라는 HTTP 유지 — 파일폴백 있음·페페가 HTTP 택함). 접속 =192.168.0.41,64910(사내 LAN, 단일), DB poin/imosadmin, Connection Timeout 6s. 경위: 공인112.170.234.238은 사무실 PC에서 "액세스 거부"(헤어핀 NAT — 사내에서 자기 라우터 공인IP 되돌이 접속 불가). 페페 확인=①DBeaver 접속됨 ②DB=사무실 PC 동일 머신, 로컬 IP 가능. imos 서버 LAN IP=192.168.0.41(옛192.170.0.41은 오타 — 정정),poincad/poincad/Module1.vb:31이Data Source=192.168.0.41,64910;...;Uid=imosadmin;Pwd=imos로 이미 사용 중(검증된 주소). 재검증 PASS: 단독 실DB에서 기본 192.168.0.41→116그룹 연결(미니PC는 WireGuard로 사내망 라우팅돼 도달) + poin_mssql.txt 오버라이드 메커니즘 확인. 빌드 134144B·install(해시 DE2254CF). ⚠오피스 재배포 여전히 필요. 오버라이드:%LocalAppData%\MDCAD\poin_mssql.txt(주석#·빈줄 제외 줄들이 후보 대체) — IP 변경 시 재빌드 없이 대응. 실패 시 다이얼로그에 호스트별 실패 사유 표시(진단). csprojSystem.Data재추가. 검증 PASS: PoinDb.cs 단독 net48 컴파일해 실DB 실행 — 미니PC(오피스 LAN 아님)에서 192.170 타임아웃→112.170 폴백 성공→groups=116·품목 파싱 정상(thk 30.0제거·w/h/qty/edge OK)·exit0. 빌드 134144B·install(해시 1E080B18 3곳 일치·MOTW 없음). ⚠남은 것: 오피스 PC 재배포(C:\dev\acad-tread-plugin\tread installer\폴더 오피스로 복사→AutoCAD 종료 후 install.bat→재시작). 오피스는 사내 LAN이라 192.170.0.41 즉시 연결 예상. 여전히 실패 시 다이얼로그 사유 회신. 변경=PoinDb.cs(전면)·AcadTread.csproj·TreadPalette.cs(다이얼로그 사유). ※pfs 운영 엔드포인트(b8b459c)는 남겨둠(무해, 닿는 PC는 활용 가능). -
✅완료(입력탭 "📋 그룹 입력" 실구현 = poin_sample 템플릿, 코디 직접 2026-07-09, 빌드 131584B→132096B·install 완료, ⚠운영배포·육안 대기): 페페 "그룹 입력 기능 완료 + 기존 MSSQL DB로 연결". 자리표시(준비중 메시지)를 실동작으로 교체. 데이터 = 기존 사내 POIN MS SQL Server 직접 조회(2026-07-02 계획의 pfs MySQL 미러 대신 페페 지시대로 MSSQL 직접). 색상(colors) API와 동일 패턴. ①pfs 백엔드 신설:
api/pfs/poin_sample/controller/poin_sample_controller.py—GET /api/poin/sample-groups(poin_sample_group remove_yn=0·이름순)·GET /api/poin/sample-groups/<no>/items(poin_sample_item display_order순).SqlServerUtil로 POIN MSSQL 직접 조회(미러 없음), 읽기전용·무인증. config.py 네임스페이스 등록(poin_color와 같은/api/poin). master72a2471push→테스트 서버 자동배포. ②플러그인 PoinDb.cs:LoadSampleGroups()/LoadSampleItems(groupNo)HTTP GET(colors와 공용 HttpGet 헬퍼로 리팩터, System.Web.Extensions JavaScriptSerializer, 의존성0 유지).FmtNum으로 두께 .0 제거(30.0→"30", 4.5 유지). ③TreadPalette.cs:OnGroupInputClick= 그룹 로드→검색 피커 다이얼로그(SampleGroupForm, 그룹명 부분검색·더블클릭/입력)→선택 그룹 품목 로드→InsertSampleRow로 다중행 삽입. 매핑=item_name→품명·thickness→두께·width→가로·height→세로·total→수량·comment→비고. 나머지 속성(타입·위치·K/F·칼라·양단면·MDF/PB)은 이어받기(직전값). edge(엣지 반값)는 좌/우 컬럼에 안 넣음(좌+우가 수량으로 자동합산돼 total 덮어씀 방지). 작업중(_working)엔 차단(AddRow와 동일). 검증: pfs 문법 py_compile PASS + 엔드포인트 SQL을 live MSSQL로 확인(116그룹·품목) + 테스트 서버 E2E PASS(https://pfs-test.poin.co.kr/api/poin/sample-groups=116개·items 정상·한글 UTF-8 무결성 116개 garbage 0) + 플러그인 빌드 0오류 131584B + install(3곳 해시 826E6066 일치·MOTW 없음). ✅운영배포 완료(2026-07-09, 페페 "운영배포 진행" 승인): 초기 실패 원인=운영(pfs.poin.co.kr) 미배포로 sample-groups 404(colors는 이미 운영 배포됨 200). 페페 지시 "안되면 MSSQL 직접연결" 검토했으나, 같은 답변에 "운영배포 해야되면 진행해" 지시 → 운영배포가 더 깔끔(colors와 동일 HTTP·DLL에 자격증명 불필요·SqlClient 의존성 없음·사무실은 운영 pfs에 이미 닿음[colors 검증]). ⚠deploy-live가 master와 23커밋 분기 → merge 시 미배포 다건 유출 위험 → 내 커밋만 cherry-pick(deploy-livefbbb868→b8b459c, 4파일 39줄만) push. 운영 검증 PASS:pfs.poin.co.kr/api/poin/sample-groups=116그룹·items 정상. 직접 MSSQL 전환 취소(csproj System.Data 원복, PoinDb HTTP 유지, 설치DLL 589701C1 무변경). ⚠남은 것: GUI 육안(AutoCAD 재시작→그룹입력 버튼→피커 검색·선택→품목 다중행 삽입, 헤드리스 불가). ※MSSQL 직접연결 접속정보는 필요시 참고:order-automation/_research/poin_db.ps1. 변경=PoinDb.cs·TreadPalette.cs+ pfsapi/pfs/poin_sample/*·config.py. 스키마: poin_sample_group(group_no·group_div·group_name·comment·display_order·remove_yn)·poin_sample_item(item_no·group_no·item_name·thickness·width·height·total·edge·comment·display_order). MSSQL 접속=pfs config.py env(POIN, FreeTDS). 조사 원본=order-automation/_research/poin_db.txt. -
✅최근 완료(2026-07-08, 설치 완료·육안 대기): 입력 테이블 '회전' 컬럼(회전 잠금) + 네스팅 기본 회전 허용 — 페페 "보드 가로/세로 안 맞으면 치수 교대(회전)가 기본, 회전 체크 행은 교대 미적용(잠금)". 구현(엔진 무변경): ①입력탭 비고 뒤
rot체크박스(TrueValue/FalseValue 문자열 "1"/"0" → WorkIO·엑셀 무수정 호환, 구 파일 null=미체크 복원) ②SyncPartsFromInput·AddPartsFromJsongrain 매핑 = 체크→"세로"(고정)/미체크→"결무시"(회전허용) — 기존canRot=allowGrainless&&FREE+PackSheet 스왑 재사용 ③_chkGrainless기본 ON ④체크 즉시 커밋(CurrentCellDirtyStateChanged)·CellClick rot 분기·CopyRow rot "1"/"0" 정규화(DataError 방지). 검증=빌드 0오류 125952B+단위테스트 3케이스 PASS(2000×1000 결무시→1220×2440 회전배치 1장 / 세로(잠금)→배치불가 / 무회전 부재 정상). 페페 캐드 종료 지시로 install.ps1 실행 완료(MDCAD+installer+빌드 3곳 해시 75E8C1C7 일치·MOTW 없음). 변경=TreadPalette.cs. ⚠육안=재시작→회전 체크행 결방향 "세로"·미체크 "결무시"·결무시 토글 기본 ON. -
🔧진행(분할면적 합치기 연구 — 라인 조합 모드 추가, 코디 직접 2026-06-27): 페페 케이스 확정 — ①외곽=닫힌 사각형, 합치려던 분할선=Line 또는 내부 블록선 ②중간 분할선을 내부에 둔 큰 닫힌 사각형 ③방향=라인/사각형 우선순위 없이 무조건 커서 인접 라인 조합으로 사각형 인식. 우선순위 확인 결과 = 현재 Detect는 1순위 닫힌 폴리라인(완성 사각형)이 잡히면 즉시 반환→2순위 레이캐스팅(선 조합) 미도달이 원인(완성 사각형이 항상 우선). 페페 "두 방식 다 옵션으로 넣어 테스트". 추가=토글 2개(탐색 파라미터 그룹): ①
라인 조합 모드(닫힌사각형 무시)ON이면 1순위 건너뛰고 DetectByRaycast만(커서 4방향 닿는 선=경계, 닫힌 사각형 변도 세그먼트라 후보됨) ②분할선 합치기(바깥변까지)ON이면 가까운 분할선 대신 바깥 변까지 확장. 4조합 시험 가능. Q2=커서가 분할선 중심일 때 4방향 바로 닿는 다음 선이 경계(=기본 레이캐스팅). 회귀확인 PASS(TREADPROBE 기본모드 닫힌사각형407 자가탐지341=83.8%, 이전 동일). 빌드 0오류, installer 갱신 / MDCAD는 AutoCAD(PID실행중) 잠김→종료 후 교체. ⚠육안=4모드 토글 실측(페페). -
계획 11단계·확정 결정 5건은 그대로(devplan 페이지). 칼라 데이터는 실DB 연동 시
poin_colors(board_color/edge_color/poin_color_type_id/company_id, 840건)·poin_color_types(9종) 사용. 샘플 DWG 받으면 공차 보정에 활용.
결정
원문 안에 포함(이관 조각이라 별도 추가 없음).
산출물·커밋
원문 안에 포함.
다음
원문 안의 미결·후속 참조. 상태 = 종결.
관계
- 주제 그룹: acad-tread
- 관련 문서: acad-tread-handoff