引進 CADara:一個開源、基於瀏覽器的 CAD 引擎

電腦輔助設計 (CAD) 的領域長期以來一直由需要大量安裝與硬體資源的重量級桌面應用程式所主導。然而,WebAssembly (WASM) 的出現正在改變這一範式,讓複雜的幾何核心能夠在瀏覽器中高效運行。CADara 是一個新的開源專案,旨在彌合專業級 CAD 功能與網頁易用性之間的差距。

透過將強大的工業級核心與現代網頁技術棧結合,CADara 提供了一個平台,用於繪製草圖、擠出與建模零件,而無需傳統軟體的部署摩擦。

技術基礎

CADara 的核心是建立在 OpenCascade 7.9 之上,這是一個廣受認可的開源幾何核心。為了讓這個強大的 C++ 函式庫在瀏覽器環境中發揮功能,開發者利用了 WebAssembly (WASM),這使得核心能夠以接近原生的速度執行。這種架構選擇確保了 B-Rep (Boundary Representation) 建模的繁重工作由經過驗證的引擎來處理。

與 OpenCascade 核心互補的是一個使用 TypeScript 編寫的自定義草圖求解器。根據創作者 @ttouch 的說法,這個自定義實作已被證明比最初預期的「顯著更快」,為繪圖階段的即時約束求解提供了必要的響應速度。

目前的功能集

雖然目前處於 pre-alpha/alpha 階段,但 CADara 已經實作了一系列標準的 CAD 操作。該工具集旨在模仿參數化建模器中的專業工作流程:

草圖繪製與原形生成

  • Sketching: 使用基於 TypeScript 的求解器建立 2D 輪廓。
  • Extrude: 將 2D 草圖推入 3D 體積。
  • Revolve, Sweep, and Loft: 從路徑與輪廓生成複雜體積的高階方法。

細化與修改

  • Fillet and Chamfer: 為零件幾何形狀添加圓角或斜角。
  • Shell and Thicken: 將實體轉換為薄壁殼體或為表面添加厚度。
  • Boolean Operations: 組合、減去或交集多個實體以建立複雜零件。

組織與分析

  • C-Planes: 支援 Top, Right, and Front 平面以在 3D 空間中組織草圖。
  • Measurement Tools: 內建用於驗證尺寸的公用程式。
  • Transformations: 用於鏡像、移動面以及一般物件轉換的工具。

路線圖與限制

作為一個 pre-alpha 版本,CADara 專注於建立穩定的基礎,然後再擴展其功能集。目前版本缺乏對基於網格 (mesh-based) 的操作與曲面面操作的支持。開發者已表示,一旦應用程式的基礎穩定性得到確保,這些功能將計劃在未來的更新中加入。

社群觀察

來自社群的早期回饋指出,現有專業工具的強大影響力。具體而言,用戶觀察到使用者介面元素與 OnShape 非常相似,這是一個領先的雲端原生 CAD 平台。這表明其設計哲學旨在降低對於已經熟悉產業標準雲端 CAD 工作流程的使用者的學習曲線。

對於有興趣貢獻或測試 alpha 版本的人,CADara 是開源的,並可在 GitHub 上取得,並設有專門的 Discord 社群進行開發討論。

Sources