圖還沒打開,風扇先響了:一篇掘金分享,把「看圖」這件事拆成兩條路
掘金一篇分享文介紹用 cad-viewer 把 DWG 預先轉成靜態資源、讓使用者開網頁直接看圖的方案,本文以對照視角拆解即時解析與預渲染兩條路線的差別。
2026 年 10 月 15 日,開發者 mlightcad 在掘金發表了一篇關於 Web CAD 看圖方案的文章。場景很多人不陌生:使用者上傳一張 DWG,點開網頁,瀏覽器開始解析實體、細分幾何、建立渲染資料,CPU 發熱、記憶體上升、風扇起飛。文章開頭那句使用者的心聲很傳神:「我只是想看張圖,至於讓我電腦幹這麼多活嗎?」
這篇文章的核心主張是:如果圖紙主要用於發布、分享和歸檔,可以把繁重的工作提前做完,使用者打開網頁直接看。
兩種架構,差在哪
文章用對照的方式列出兩條路線。
方案 A 是 cad-viewer 預設的開啟方式:下載 DWG/DXF 後,解析、幾何細分、渲染全部在使用者裝置上發生。好處是拿到檔案就能處理,也方便做編輯之類的互動功能。代價是遇到大型圖紙時,低階手機可能直接卡住。
方案 B 則把流程切成兩段。轉換階段先完成解析與細分,產出顯示資料與靜態資源;存取階段只剩「打開網頁、載入顯示資料、渲染」。作者用了一個廚房比喻:餐廳提前備菜,而不是每來一位顧客就從種菜開始。
具體工具是 @mlightcad/cad-simple-viewer 搭配 @mlightcad/cad-html-plugin 的多文件 ACEX 包。轉換產出一個 ZIP,解壓後是普通靜態目錄,可部署到 Nginx、物件儲存或 CDN,不需要專門的後端執行環境。
匯出來的不是一張圖
一個容易被誤解的點值得單獨看:這套方案並非把 DWG 轉成靜態圖片。解壓後的目錄包含 viewer.html 入口頁、記錄圖層與布局等資訊的 .acex.json 清單、壓縮過的幾何資料 .acex.gz,以及測量與物件捕捉用的 .osnap.gz。瀏覽器先讀清單,再逐塊下載當前布局的資料,其餘按需載入。
依匯出模式不同,成品還能支援圖層管理、布局切換、測量、批註與物件捕捉。換句話說,它產出的是一個支援互動的 Web CAD 查看器,只是重活已經在別處做完。這種「把流程前置、把成品靜態化」的思路,和先前掘金上那篇前端 AI 工作流分享有幾分神似,工程師圍觀的往往不是工具本身,而是工作被重新安排的方式。
三種生成方式,與誠實的限制
生成多文件包有三條路:在 cad-viewer 裡手動執行 chtml 命令匯出,適合偶爾處理幾張;每天要跑幾百張的話,作者建議改用 @mlightcad/cad-simple-viewer-cli,它基於 Playwright 在無頭 Chromium 中執行整個流程,可接入服務端轉換或 CI,需要 Node.js 20 以上;CLI 也附了現成的匯出腳本範例。
文章沒有把預渲染講成萬靈丹。顯示資料需要下載,體積可能比原始圖紙更大;源圖更新後,也必須重新轉換與發布。作者的收斂結論很清楚:即時解析適合互動與編輯,預渲染適合唯讀發布。
從圍觀角度看,這篇文章打的痛點相當具體:大量使用者反覆看同一張圖、想改善行動端體驗、或不想直接把原始 DWG/DXF 交給瀏覽者,都是預渲染能派上用場的場景。作者也提供了線上 Demo,並提醒首次開啟需下載資源、建立快取後再訪會快不少,且 Demo 部署在境外伺服器,部分地區存取可能需要網路代理工具。