Files
Aislo/docs/raw/요구_1025/_분석_522.md
T

4.0 KiB

요구 340-3 조사 — B07 평면도 ⚙ 모달 CAD 미리보기 (PLAN 522)

결론: 미리보기 = CAD 앱 전체를 iframe 으로 매번 새로 띄움 · 느린 까닭 = 도면 목록 지문 다시 셈(0.53 s 짐작) 뒤에 평면도 한 장(2.510.5 MB) 다시 받음 — 페이지가 미리 받아 둔 것을 안 씀 · 메뉴 탭 = 숨김(bare) 옵션은 있으나 도면을 넘기는 순간에만 켜져 그 전 수 초 보임. 시간은 코드 짐작(고치기 전 잴 것).

지금 상태

  1. 자리 — 평면도 ⚙ → UI_Settings.ts:70-73 → openPlanManager(UI_PlanManage.ts:59) · iframe /b07-cad/index.html(UI_PlanManage.ts:69 → ui_template/cad_host/cad_host.ts:143-145) · 열 때마다 새로 · 닫으면 버림(:233-238).
  2. 느린 차례 — ① iframe 부팅(634 KB · Canvas 2D · 리본 · 패널 다 그린 뒤 준비 · 0.30.8 s) ② 도면 목록 다시 받기(UI_PlanManage.ts:204-207 → Router.py:285-312 → Router_Support_Fingerprint.py:371-470 모든 도면 지문 · 0.53 s) — 끝나야 ③ ③ 평면도 한 장(UI_PlanManage.ts:174 · 저장본 없으면 등고선 · 음영 · 토지이용 다시 셈 Router_Support_Plan.py:504-627 · 2.510.5 MB) ④ CAD 싣기(aislo-drawing-bridge.ts:170-198 · 0.20.8 s) · 미리 받은 도면(B07_DesignDetail_Prefetch.ts:161 openDrawing) 안 씀.
  3. 메뉴 탭 — bare 있음 · 도면 넘길 때만 켜짐(aislo-drawing-bridge.ts:183-186 · 시작값 꺼짐 state.ts:206) · B06 표 위 CAD 도 같음(B06_Section_UI_Cross_Detail_Cad.ts:334-361).
  4. 미리보기 길 — 보기 · 읽기 전용 · 메뉴 숨김 · 리본 · 패널 접기(cad_host.ts:80-103) 모두 도면 넘길 때만 · 시작 때 정하는 길 없음 · M02 카드는 뜬 뒤 스타일 끼움(M02_MasterTemplete_DrawingCard.ts:43-60).
  5. 값 바뀜 — 체크 · 축척 바꿔도 그림 그대로 · [업데이트] · [추가] = 서버 저장(UI_PlanKinds.ts:163-177) → 목록 · 장 다시 받음 → 통째 다시 싣고 전체 맞춤 · 디바운스 · 부분 그리기 없음 · 조각마다 층 따로(Engine_Cad_PlanKinds.py:166,633-637) · 글자 비키기 엮임(:563-587).

길 비교

  • (a) 처음부터 메뉴 숨김 — cad_host.ts · main.tsx · UI_PlanManage.ts:69 · 6~8 줄 + CAD 빌드 · 낮은 위험.
  • (a') 받아 둔 데이터 재사용 — UI_PlanManage.ts · UI_Settings.ts:71 · 시험 흉내 · 15~25 줄 · 다시 열 때 요청 0 · 직렬 대기 없앰.
  • (b) 가벼운 SVG/Canvas — 300 줄+ · 10 MB 받기 그대로 · 상세 CAD 와 모양 달라짐.
  • (c) iframe 미리 띄움 — 50 줄+ · 부팅만 줄음 · 옮기면 다시 뜸.

추천 (a) + (a')

  • 창 A · CAD 공용(openwebcad/src · ui_template/cad_host) — cad_host 에 bare 받아 주소 ?bare · main.tsx 그리기 전 setBare(true) · UI_PlanManage.ts:69 bare: true · B06 :334 한 줄 · npm run build · 첫 화면 리본 없음 사진.
  • 창 B · B07 TS — UI_Settings.ts:71 페이지 목록(deps.drawings) 넘김 · 처음엔 목록 다시 안 받음 · 장 받기 = Prefetch.openDrawing(캐시 · 같은 요청 합침) · 값 고친 뒤에만 목록 새로 · syncDrawings · helper_130_b07_plan_manage.cjs 흉내 · test_130 · 고치기 전후 orca eval 로 열기 → 그림 다 뜸 시간.

결정 거리 (추천 먼저)

  1. 값 바꾸는 즉시 미리보기 = 지금처럼 [업데이트] 뒤 다시 그림 / 다음 단계 「조각 체크 = 층 켜고 끄기(근사)」.
  2. 다시 그릴 때 확대 · 위치 = 유지 안 함(전체 맞춤) / 유지.
  3. B06 표 위 CAD 도 같은 숨김 = 함께 / 따로.
  4. 단추 [업데이트] → [적용] = 그대로 / 바꿈.

위험

  • 시간은 짐작 — 먼저 잼.
  • 평면도 미리받기 차례 맨 끝(Prefetch.ts:23) — 들어오자마자 열면 서버 시간 그대로.
  • 페이지 목록 낡으면 낡은 장 보일 수 있음(본 화면과 같은 수준) · 고친 뒤엔 새로 받음.
  • 시험 — test_130_b07_plan_manage.py(흉내 갱신) · test_260_note_cad.py · openwebcad/src/state.test.ts:125.