14.8 KB · 수정 2026-10-08 16:16
목차

2026-10-08(목) 세션 — 한국유리부지 MH 임시견적 #800 → 한샘 양식 변환(전환 규칙 2번째 적용 · C-3 기본 안 함) + NAS 새 파일

[페페] 26.10.8 「한샘 양식 변환 2번째, pfs 한국유리부지 견적을 변환해라. 엑셀파일 저장. 이전에 얘기한 항목별 치수 분리 빈칸에 넣기는 안하는 것을 기본지침. 진행해.」 [코디] 작업자(worker 서브에이전트) · 정본 = devplan C:\dev\devplan\hansem-convert-rules.html · 선례 = session-2026-10-08-gs-ansan-seongpo-hansem-v2.md.

결론

800(GET 만 · PFS 운영 쓰기 0) → 로컬 산출 한샘 양식 엑셀 → NAS 새 파일

\\192.168.0.101\공유폴더\2026현장\견적\10월\한샘\한국유리부지\한샘 한국유리부지 MH 가구제작 견적서(26.10.08).xlsx (102,004 B · sha256 aa32b87cd51354f0814bf86cb451250f5a72239dd1fb269483d8e1e022cb6bf3 되읽기 일치 · 폴더 변화 = 새 파일 1개). 갑지 생산비 39,380,000 + 시공비(참고칸) 12,000,000 = 51,380,000(#800 51,385,000 대비 −5,000 = 만원 절사) · 블록 51 = 항목 31 + -추가 20. 🆕 C-3(합산 치수 분리 문자열) 기본 안 함 — J{b+4} 전부 빈칸, 길이 칸 = 합산 숫자(103·111 욕실 상부장 1900·2990).

1. #800 실측 (아침 등록본과 다르다)

아침 등록(archive 26.10.8) 지금(수정일 26.10.8)
상세 49줄 59,092,000 · 추가금액 0 31줄(84 9 · 103 11 · 111 11) 가구 38,685,000
sub 0 31건(20줄) 10,210,200 — 자당포함 1(84 신발장B 타공판넬 예비비용 231,000) · 이름·금액 빈 0원 1(103 침실2 붙박이장 sub 8221)
시공·운반 0(별도) 시공 12,000,000 · 운반 700,000 · 총액 51,385,000
페페가 #800 을 고쳐 둔 상태 그대로 변환(다른 견적 없음 — 견적 목록 「한국유리」 = #800 하나). 업로드 직전 다시 GET → 지문 같음.

2. 양식 — 왜 form 11 에서 깎았나

3. 산출 (C:\dev\_work\hankukglass-hansem-1008\)

4. 금액

평형 블록 포인 목표 내역서 차
84 17(9+8) 11,703,000 11,703,472.52 +472.52
103 19(11+8) 15,563,000 15,563,410.64 +410.64
111 15(11+4) 11,419,000 11,419,312.47 +312.47
합 51 38,685,000 38,686,195.62 → 절사 −6,195.62 → 38,680,000
수납 38,680,000 + 운반비 700,000 = 생산비 39,380,000 + 시공비 12,000,000 = 51,380,000(−5,000). 추가 칸 29 = 9,979,200.

5. 검증

⏳ 페페 확인 (코디 추천)

  1. 수납 단가군 배치(§3) — 추천: 그대로(금액 영향 0, 단가 표시만).
  2. NAS 위치 = 기존 …\한샘\한국유리부지\(DWG·1차 엑셀 옆) — 새 폴더 「한국유리부지 MH」 안 만듦. 추천: 그대로.
  3. 빈 sub 1건(103 침실2 붙박이장, 이름·금액 없음) — PFS 에서 지울지. 추천: 지움(한샘 양식엔 안 실음).
  4. 발행일·결재일 = #800 견적일 26.10.08. Q1~Q4 = 추천안 적용 그대로. - 남은 것 = 엔진 정식 반영(운영 한샘 견적 화면이 수납 전용·-추가 모양을 내게).

6. [코디] 84타입 평면도 시범 (26.10.8(목)) — ✅NAS 새 폴더 · PFS 운영 쓰기 0 · DWG 원본 불변

[페페] 「별도 에이전트로 84타입 위치별 평면도를 뽑아서 이미지 저장해봐 … 목표는 타입별 견적내용 밑에 도면 추가」 → 시범만(엑셀 삽입은 다음 지시). - 원본 = C:\dev\_work\hanguk-glass-1008\dxf\261001 한국유리부지 가구도면.dxf(읽기만) — NAS 원본 DWG 와 sha256 같음(8c5af36f…). ODA→DXF→ezdxf, AutoCAD GUI 0. - 작업 폴더 C:\dev\_work\hanguk-glass-plan84\ — render.py(위치평면) · render_top.py(치수평면 보조안) · check.py(기계검사) · nas_put.py(새 폴더·xb·되읽기) · probe.py/probe2.py(조사). - 위치평면 = 84 KEY PLAN(유닛 평면 + 노랑 라벨 박스) 한 장을 0.42px/단위로 렌더 → 임계 235 이진화 → 견적 위치 박스(핸들 고정) 기준 여백 1300 · 최소 4600×3400 · 가로 4:3 이상으로 자르고 해당 박스만 7px 굵게. 산출 out\84_00_전체평면.png(7812×4872) + 84_01~09_<위치명>.png(2093~3100 × 1561~2325). - 치수평면(보조안) = 각 FUR 시트 왼쪽 위 「TOP VIEW」 패널(라벨 위 3650단위)만 1.3px/단위 렌더 → 내용 bbox 로 다시 자름. out\치수평면\84_NN_<위치명>_치수.png. - 대응표(84 9줄 → KEY PLAN 박스 / FUR 시트): 신발장A·B → 「현관 신발장」 박스 1826D1 (같은 그림) / FUR_01·02 · 복도장 → 180633 / FUR_03 · 침실2 붙박이장 → 180687 / FUR_04 · 드레스룸 도어·화장대 → 「침실1 드레스룸 화장대&도어」 1806BC (같은 그림) / FUR_05·06 · 보일러실 도어 → 「보일러실도어&픽스판넬」 1806D8 / FUR_07 · 욕실 상부장·하부장 → 「침실1 욕실장」 19A112 (같은 그림) / FUR_09. 못 찾은 위치 0. (KEY PLAN 의 거실 픽스판넬·세탁실 선반·드레스룸 시스템 = 84 9줄 밖이라 안 뽑음) - 🔑 함정 2건(rules 🆕): ①ezdxf draw_entities 는 레이아웃 배경을 모델공간 어두운색으로 둬서 WIPEOUT 이 검은 사각형(욕실 1200×600)으로 칠해진다 — ColorPolicy.BLACK 도 같은 증상. ②흰색으로 고쳐도 평면 블록(1B17F7) 안 WIPEOUT 이 욕실장 블록(19A58D)을 덮어 세면대·상부장이 사라짐(redraw order 로 안 풀림) → draw_wipeout_entity 무시 서브클래스. 해치 = HatchPolicy.SHOW_OUTLINE(테라조 점무늬가 흑백에서 지저분). - 검증 = check.py 19장 BAD 0(짧은 변 1080+ · 흑백 2값 · 검정 0.6~7.9%) · 19장 전부 Read 로 육안(잘림·빈 그림·글자 깨짐 0) · NAS 되읽기 sha256 19/19 일치 · 상위 폴더 변화 = 새 폴더 1개뿐. - NAS = \\192.168.0.101\공유폴더\2026현장\견적\10월\한샘\한국유리부지\84타입 위치별 평면도\(10장) + …\치수평면(보조안)\(9장). - ⏳[페페] ①엑셀 밑에 넣을 그림 = 위치평면 / 치수평면 / 둘 다(추천: 둘 다 — 왼쪽 위치·오른쪽 치수) ②같은 박스를 쓰는 줄(신발장A·B, 드레스룸 도어·화장대, 욕실 상·하부장) 그림을 1장으로 합칠지(추천: 블록마다 같은 그림 반복 대신 첫 줄에만) ③103·111 확대. → §7 로 해소(타입당 1장 · 전타입).

7. [코디] V2 = 내역서-수 3탭 맨 아래 «견적 위치도» (26.10.8(목)) — ✅NAS 새 파일·새 폴더 · PFS 운영 쓰기 0 · V1·DWG 원본 불변

[페페] 「견적서 안에 타입별로 위치 순서별로 도면 넣고 우측에 위치 이름 : 치수 텍스트 … 안산 성포 견적서 참조 … A,B 기호가 없으니 선을 그려 도면 위치와 텍스트를 연결 … 전타입 … V2로 저장」. - 작업 폴더 C:\dev\_work\hankukglass-hansem-v2\ — probe_kp.py(3타입 KEY PLAN 라벨·박스·가구 블록) · render_kp.py(84 시범 render.py 일반화 — 흰 배경·WIPEOUT 무시·해치 외곽선·임계 235) · zoom.py(좌표 격자 확대 — 점 찍기용) · compose.py(합성) · build_v2.py(zip 수술) · verify_v2.py(45항목) · dotcheck.py(점 주변 모음 육안) · nas_put_v2.py. - 그림 = 타입 KEY PLAN 흑백(0.2px/단위) + 빨간 점(가구 위치) + 빨간 꺾은 연결선(흰 테두리) + 오른쪽 위치명 : 치수(맑은 고딕 Bold, 인쇄 ≈10.5pt) + 제목 「타입 견적 위치 (n개소)」. 글 순서 = 점 높이 순(위→아래) — 견적 순서로 두면 선 교차가 최소 12/26/13회(점 높이 대비 역순쌍 수) → 높이 순 + 차선 규칙(내려가는 선은 위쪽 줄이 바깥 차선, 올라가는 선은 아래쪽 줄이 바깥)으로 3타입 교차 0. 남의 선 ↔ 점 최소 간격 50/51/81px(≈5.8pt 인쇄). 같은 라벨 박스 공유 줄은 박스 안 실제 가구로 나눠 찍음(84 신발장A = 왼쪽 벽 장·B = 오른쪽 장(FUR_01/02 입면 A·B) · 드레스룸 도어 = 위 유리도어 · 화장대 = 아래 장 · 욕실 상부장 = 뒷벽 띠 · 하부장 = 세면대 밑 / 103 신발장 = 왼쪽 장 · 창고도어 = 창고 입구 · 복도장식장 = 세로 장 · 세탁실 도어 = 폴딩 · 세탁실 앞 수납장 = 1225 장 / 111 욕실 상부장 = 왼쪽 벽 A · 하부장 = 세면대 밑). 못 찾은 위치 0 (31/31). 근거(박스·블록 핸들) = out\compose_map.json. - 치수 = PFS 견적서 규격칸과 같은 문자열(size_display 우선, 없으면 치수mm) — 구분자 *·x 만 « × » 로. ⚠규격 ≠ 내역서 블록 길이인 줄 6개(84 신발장B 2245mm↔1320 · 복도장 2800mm↔1395 · 보일러실 도어 2285×1429↔800 · 욕실 상부장 800×200×800↔1800 / 103 현관 창고도어 1795↔915 / 111 팬트리도어 2275↔795) — 페페 확인 대기. - 엑셀(V1 사본 + zip 수술, openpyxl 재저장 0) = 탭마다 그림 1장 twoCellAnchor editAs=oneCell A열~O열 끝 × 29/32/30행(84 A125:O153 · 103 A139:O170 · 111 A111:O140), 쪽나눔 = 총합+빈 행 1줄 뒤(124·138·110) → 그림은 새 쪽 · 인쇄영역 A1:O153/170/140 · 그림 비율 = 상자(15열×95px · 행 22px)에 흰 여백 보정 · 팔레트 PNG(거의 흰색 → 255 강제). 바뀐 기존 파트 = [Content_Types].xml·workbook.xml(인쇄영역 3)·sheet10/11/12(쪽나눔 1·drawing 1줄) · 새 파트 12. - 검증 verify_v2.py 45 OK · FAIL 0* — 파트 되돌리면 V1 과 바이트 동일 · 셀 14,266칸 값·수식·병합 diff 0 · LO 재계산 값 전수 diff 0(숫자칸 495 · 갑지 38,680,000/39,380,000/51,380,000 · 총합 11,703,472.515/15,563,410.635/11,419,312.4725) · 그림 앵커 3 · LO PDF 19→22쪽(그림 쪽 6·10·14 = 총합 쪽 바로 뒤 · 쪽 안 · 표 글자 0) · 나머지 19쪽 글자 V1 동일 · 총합 쪽 3개 뺀 16쪽 렌더 픽셀 동일 · soffice 잔류 0. 육안 = 그림 쪽 3장(220dpi) + 점 31개 주변 모음 out\check_<T>.png 전수. - NAS = \\192.168.0.101\공유폴더\2026현장\견적\10월\한샘\한국유리부지\한샘 한국유리부지 MH 가구제작 견적서(26.10.08) V2.xlsx(1,185,470 B · sha256 7c98fe319fb17791e5c876f205af6bf2a5614c25f529af93c381f868afae53dd 되읽기 일치) + …\타입별 견적 도면(V2)\{84,103,111}타입_견적위치도.png(sha256 851facf4… · eb49c007… · 820de53a… 일치) · 폴더 변화 = 새 파일 1 + 새 폴더 1 · V1(aa32b87c…) 그대로. 올리기 직전 #800 GET 지문 = V1 계획과 같음. - 🔑 함정(rules 🆕): ①LO 는 쪽나눔이 «굵은 아래 테두리 행» 바로 뒤면 그 테두리를 쪽 경계에서 반쯤 잘라 그린다 → 빈 행 1줄 뒤에서 끊는다 ②같은 fitz 문서에서 큰 그림을 먼저 디코딩하면 다른 쪽 그림 렌더가 미세하게 달라진다(캐시) → 픽셀 대조는 새로 연 문서로 ③PIL quantize 는 바탕 흰색을 254 등으로 잡아 인쇄에 옅은 회색 상자 → 팔레트 ≥240 을 255 로. - ⏳[페페] ①치수 = 지금 PFS 규격 그대로(위 6줄 어긋남) / 내역서 블록 길이와 같게(단품·픽스는 규격) / DWG W×D×H — 추천: 블록 길이(단품·픽스 규격) ②글 순서 = 높이 순(선 교차 0) / 견적 순(교차 12·26·13) — 추천: 높이 순 ③그림 크기 = 지금 A..O 폭(인쇄 663pt·쪽의 절반 높이) — 더 키우려면 인쇄영역 열을 넓혀야 해 표 쪽 배치가 바뀐다 → 추천: 그대로.