2026-09-22(화) 세션 — 네스팅 서랍 자동계산기 (nesting 도어전용)
논의·대안
[페페] 「pfs production/nesting 에서 도어전용에 서랍 자동계산기를 추가해줘」 + 요건 6개(자재 두께 몸통/서랍재 구분 · 볼레일·언더레일·텐덤박스 · 외곽몸통+마이다 칼라를 내부서랍과 별도/동일 · 마이다 좌우 날개(붙박이장 내부 서랍) · 3축 치수 입력 기본 600×470×450 · 모달 입력 → 도어 부재 입력 테이블 투입) + 「운영배포」. 같은 날 추가지시 = 「텐덤박스 바닥판·후판은 기성품 구매 안 하고 15T PB 지정 목재로 포인에서 생산한다, 계산항목에 포함」.
핵심 갈림길은 산출식을 새로 만들 것인가였다. 사내에 이미 C:\dev\pncad\SPEC-DRAWER.md §3(imos DR_MAIN/DR_PART
134종 + 실부재 2,451행 역산, 실측 편차 0)과 그 구현체 drawerBox()(web/pncad/schema.js)가 있었다.
대안 = ①화면에 12줄 복제 ②ESM import. 복제는 편측갭(언더 5.5 · 볼 14)이 SPEC §3.1·§6 에서 「케이스별 오버라이드 ·
언더 11.0 변동 미규명」으로 열려 있는 값이라, 원천(C:\dev\pncad\schema.js → tools/sync_to_pfs.py) 갱신이
화면 사본까지 안 닿아 정본이 둘이 된다 → import 채택.
외곽몸통·마이다·날개는 SPEC 밖(도어 도메인)이라 furniture-expert 상담값을 썼고, imos 는 서랍 프론트 갭이
케이스별(division 10/15/30mm)이라 보편식이 없다 → 가정치는 전부 입력칸(노브)으로 빼고 자동값은 모달 안내로 띄웠다.
텐덤은 첫 조사가 「완제품이라 마이다만 뽑는다」였는데 페페 지시로 다시 파서 오판을 정정했다 — imos 목재 CP 2종
(15T_서랍바닥판 · 텐덤박스 서랍재_15T, 둘 다 15T PB · prodcode 08)이 실재하고 DR_MAIN.TYPE=3(2면 서랍시스템)이라
금속 U레일이 측판을 대신한다. 상담 = furniture-expert(산출식) · web-designer(모달 UI) · Plan(fable, 구현구조) · 코덱스(함정).
결정
- 서랍통 5매 = 정본
drawerBox()import 재사용(복제 금지). 기준은 장W 가 아니라 존 내경Wz = W − 2×몸통두께 − 2×날개폭. - 텐덤박스 = 바닥판·후판 2종만, 가로는 마이다 폭 기준 −103 / −115(실발주 3건 8/8 편차 0), 후판 높이는 박스높이와 무관한 2단 고정규격(소 65 · 대 142) → 입력칸.
- 부재표 투입 = 덧붙임(tread JSON 과 같은 정책) · 같은 규격은 수량 합산 1행 · 오류·중복 클릭은 버튼 잠금으로 막는다.
- 목록칸은
<select>로 쓴다 —droplist.js가mousedown을 캡처로 삼켜 자체 13px 팝업으로 띄우므로 「크롬 양식 금지」 규칙을 어기지 않는다.data-drop콤보는 마스터 대조가 필요한 컬러·경면 전용. - 확신 낮은 값(마이다 갭 3종 · 날개폭 · 뒷판 유무 · 서랍통 깊이/높이)은 기본값만 박고 페페 실무값을 받아 교체한다.
2차 (같은 날) — 재단치수 내림 정수 + 결 부재 가로/세로 뒤집기
[페페] 「모든 값은 소수점이 들어가면 안된다 내림처리해서 정수 처리해야한다. 결방향 있는 파트도 있기 때문에 특히
서랍 측판, 전후판은 높이쪽 치수가 가로 재단쪽, 반대쪽을 세로재단으로 보고 세로결 지정해서 데이터를 가져온다.」
- 가로·세로 = Math.floor(마이다 146.67 → 146). 두께는 자재 규격이라 예외(4.5T 실재).
- 서랍측판 · 서랍전후판 · 텐덤후판 = 높이 → 가로칸 / 나머지 → 세로칸 + 결방향 세로. 바닥판류는 그대로 결무시,
몸통측판·마이다·날개는 원래부터 세로 = 높이라 무변경.
- 🔑정본 drawerBox() 는 설계 기준(l=길이 · w=높이)으로 준다 — 그대로 꽂으면 결방향이 반대로 박힌다.
정본을 고치면 imos 대조가 깨지므로 화면에서 재단 기준으로 바꿔 넣는다.
- 결과 = 몸통측판 470×450(세로결) · 몸통천지판 564×470(가로결) · 마이다 596×146(세로결) · 서랍측판 130×450(세로결) ·
서랍전후판 113×523(세로결) · 서랍바닥판 533×448(결무시). 검사 골든도 뒤집고 「소수점 0개」 2항목 신설.
- master f5b2776 → 운영 5faf806 · 로컬 65/65 · 테스트 72/72 · 운영 73/73.
⚠테스트·운영 모두 첫 시도에서 로그인 502(배포 직후 uWSGI 재기동 + 기록된 pfs-test 간헐 502) → 재시도로 통과.
산출물·커밋
C:\dev\pfs\web\nesting\nesting.html1개(서버·API·DDL 변경 0) — master5bdd97d→ 운영a9c5d22(선별 포워드 · blob 1/1).- 자체검사
C:\dev\pfs\scripts\_nesting_drawer_calc_check.py(로컬 전용 ·--test/--prod) — 로컬 61/61 · 테스트 68/68 · 운영 69/69(콘솔 에러 0 · 운영 쓰기 0건). 정답지 = SPEC §3.3·§3.5 imos 실측 골든 + 텐덤 8/8. - 기존 검사기 2벌(
_nesting_qa5_check.py·_nesting_grid_modal_check.py) 로컬 목킹에/production/pncad/*서빙 추가. - devplan
C:\dev\devplan\pfs-nesting-drawer-calc.html+ 허브 카드(ub:pfs) +pagelinks.jsTREE 3줄.
다음
- ⏳[페페] 실무값 4개(마이다 상하·좌우 갭 · 단 사이 갭 · 날개폭 · 뒷판을 독립형에만 넣는지) → 기본값 교체.
- ⏳[페페] 육안 1회 = 600×470×450 3단 산출을 실제 재단치수와 대조(마이다 높이 146.7 소수점 처리 포함).
SPEC-DRAWER.md§5 「텐덤 = 범위 밖」 서술 갱신 후보(그 서술은 TYPE=5 = 이름만 텐덤인 4면 zargen 얘기였다).- tread 그룹입력 기능 이식(지시문에 예고된 별건) · 단마다 높이가 다른 서랍(지금은 단일 높이).
관계
- 주제 그룹: pfs-nesting
- 관련 문서: pfs-nesting-drawer-calc(devplan), SPEC-DRAWER.md, session-2026-09-21-door-order-import