IsoAlgo3d - IDF/PCF WebGL 3d viewer
eryar@163.com
Key Words. IDF, PCF, IsoAlgo, WebGL, WebAssembly
最近有國(guó)內(nèi)外的友人提出基于WebGL的管道模型三維瀏覽器的想法很好,主要有以下幾點(diǎn)優(yōu)勢(shì):
l 基于HTML5的WebGL技術(shù),不需要安裝程序,即可以在電腦、手機(jī)、平板等所有支持WebGL的瀏覽器上使用;
l 三維模型加上尺寸標(biāo)注、材料描述等信息,比二維的ISO圖更直觀;
l 對(duì)于現(xiàn)場(chǎng)制作安裝管道的施工人員,可以使用手機(jī)直接查看模型,識(shí)圖更簡(jiǎn)單;
l 可以部署在公司內(nèi)部服務(wù)器,數(shù)據(jù)更安全;
當(dāng)前國(guó)際主流管道設(shè)計(jì)軟件都可以生成IDF/PCF文件,這兩種文件格式都是用于Isogen生成管道軸測(cè)圖。其中IDF為ISOGEN Data File,主要來自Intergraph PDS 和AVEVA PDMS。PCF為Piping Component File,主要來自Intergraph SmartPlant 3D和CADWorx。程序的主要技術(shù)思路為:通過將IDF和PCF文件中數(shù)據(jù)解析,生成管道三維模型及標(biāo)注,并使用WebGL進(jìn)行三維模型的展示。
首先是WebGL技術(shù)來展示三維模型,并能方便用戶對(duì)視圖和模型交互,如三維視圖的旋轉(zhuǎn)、縮放、移動(dòng)等;模型的交互為選擇一個(gè)模型,查詢其相關(guān)的材料信息等。

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

為了方便開發(fā),需要配置一個(gè)本地Web服務(wù)器。因?yàn)橐呀?jīng)安裝Python3環(huán)境,這里也使用Python來建立本地Web服務(wù)器,輸入命令:
python -m http.server 8080 --directory d:/WebGL/

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