Posted on 2021-05-21 09:07
eryar 閱讀(1189)
評論(0) 編輯 收藏 引用 所屬分類:
1.PipeCAD
IsoAlgo3d - IDF/PCF WebGL 3d viewer
eryar@163.com
Key Words. IDF, PCF, IsoAlgo, WebGL, WebAssembly
最近有國內外的友人提出基于WebGL的管道模型三維瀏覽器的想法很好,主要有以下幾點優勢:
l 基于HTML5的WebGL技術,不需要安裝程序,即可以在電腦、手機、平板等所有支持WebGL的瀏覽器上使用;
l 三維模型加上尺寸標注、材料描述等信息,比二維的ISO圖更直觀;
l 對于現場制作安裝管道的施工人員,可以使用手機直接查看模型,識圖更簡單;
l 可以部署在公司內部服務器,數據更安全;
當前國際主流管道設計軟件都可以生成IDF/PCF文件,這兩種文件格式都是用于Isogen生成管道軸測圖。其中IDF為ISOGEN Data File,主要來自Intergraph PDS 和AVEVA PDMS。PCF為Piping Component File,主要來自Intergraph SmartPlant 3D和CADWorx。程序的主要技術思路為:通過將IDF和PCF文件中數據解析,生成管道三維模型及標注,并使用WebGL進行三維模型的展示。
首先是WebGL技術來展示三維模型,并能方便用戶對視圖和模型交互,如三維視圖的旋轉、縮放、移動等;模型的交互為選擇一個模型,查詢其相關的材料信息等。

由于Javascript本身是開放的,為了保護核心代碼和提高性能,可以使用WebAssembly來對核心業務代碼進行封裝。目前將其他編程語言轉換在Javascript一般使用Emscripten SDK。下面來介紹一下Emscripten SDK的安裝:
- 直接在https://github.com/emscripten-core/emsdk下載,下載后解壓到指定目錄;
- 修改解壓后的文件emsdk.bat,配置好python;
- 啟動命令窗口cmd,切換到解壓目錄,輸入命令:
- emsdk install latest (有時安裝不成功,是因為要從google下載,多試幾次)
- emsdk activate latest
- 輸入命令:emcc -v,顯示如下信息表示安裝成功。

為了方便開發,需要配置一個本地Web服務器。因為已經安裝Python3環境,這里也使用Python來建立本地Web服務器,輸入命令:
python -m http.server 8080 --directory d:/WebGL/

從Python3.7開始,可以加-d/--directory 來指定文件夾了。
配置好開發環境,就可以將C/C++代碼通過Emsdk封裝成Javascript代碼。在最新的瀏覽器上都提供了對WebAssembly的支持。
為了方便大家在移動端也能看到我的博文和討論交流,現已注冊微信公眾號,歡迎大家掃描下方二維碼關注。