DXF查看器
如果您只需要查看DXF,請單擊此處。
該軟件包提供了用JavaScript編寫的DXF 2D查看器組件。它使用WebGL(通過Trive.js庫)渲染圖紙。它是考慮到性能的精心製作的,旨在繪製巨大的現實文件而沒有性能問題。
用法示例可在此處提供:https://github.com/vagran/dxf-viewer-example-src
部署演示:https://vagran.github.io/dxf-viewer-example/
安裝
特徵
- 渲染的文件獲取,解析和準備工作的分離是可以輕鬆地使用提供的幫助者將其卸載到網絡工作者的方式。因此,最重量的處理部分不會影響UI響應能力。上面的示例證明了這一技術。
- 幾何批處理 - 在文件處理過程中創建了最小數量的渲染批次,從而最大程度地減少了所需的繪製呼叫數量。
- 實例渲染 - 具有不同變換(例如DXF塊實例)多次渲染的功能,使用實例渲染WebGL功能通過單個繪製調用渲染。
- 多個字體支持。可以為文本渲染指定字體列表。支持RAW TTF文件。字體是懶惰的,一旦遇到的角色尚未通過已經加載的字體可用,請獲取並檢查下一個字體以獲取必要的glyph。
- 層 - 創建渲染批處理時要考慮層,以便可以輕鬆隱藏/顯示它們。
不完整的功能
仍然有許多不完整的功能。我將在有時間的時候嘗試實施其中的一些。缺少實施的最重要原因是缺乏相應的示例文件。
- 流解析輸入文件。當前,主要依靠DXF-Parser軟件包,該軟件包不是流解析器,因此在解析之前將整個文件緩衝。由於JS引擎中的字符串尺寸限制(也使緩衝區的不必要的記憶浪費),這阻止了支持大型DXF文件(高於Gigabyte)。
- 文字樣式。當前,文本渲染僅使用指定順序的指定字體。 DXF樣式和字體屬性被忽略。文字始終被填充。
- 對MTEXT的高級格式支持(字體,著色,堆疊)。
- 線模式 - 目前以連續樣式渲染所有線條。我將使用在準備階段生成的1-D紋理,紋理坐標(應考慮DXF頂點屬性中的模式連續性標誌),以及專用的著色器來實現此功能。
- 線模式具有形狀(例如帶圓形)。
- 寬線。當前,所有線條均呈現為細線。身體寬度未實現。
- 可變寬度線(即指定的啟動和末端寬度)。
- 平滑的多線線(曲線擬合/樣條擬合加法頂點)。
- 孵化實現的某些功能:外部孵化樣式,固體/梯度填充,Mpolygon支持,雙線,外部實體定義的邊界。
- 塊在網格中的嵌段。現在忽略網格屬性。
- 尺寸特定的特徵和样式(各種預定義的箭頭塊,文本定位調整,限制和公差)。尺寸類型以外的其他類型。
- 領導者
- 非UTF-8文件編碼支持。當前,此類文件顯示不正確。
$DWGCODEPAGE
參數被忽略。 - 完整的OCS支持。當前,假定實體擠出方向是 +z或-z(通常用於CAD中的特徵鏡像)。任意指示未正確處理。
- 紙張空間,佈局(床單),視口。
- 許多不常用的DXF功能。

貢獻
有關如何提出拉請請求(PRS)的詳細信息,請參考貢獻指南。該項目還需要各種示例文件以進行測試。如果您遇到DXF渲染的任何問題,則可以通過將問題附加到創建的問題來證明該問題的示例文件,這將不勝感激。在CAD軟件中創建最小示例也可能非常有幫助。此外,在我無法訪問的各種專有CAD軟件中創建示例將是非常有價值的。由於在此項目中開始編碼的入口級別很高,因此接收帶有示例文件而不是拉的請求的詳細問題報告通常更有用。
執照
該項目是根據Mozilla公共許可證2.0的條款許可的。
捐贈
想感謝項目維護者嗎?這是鏈接: