解決OpenCasCade 實體位置錯亂

通過Ocaf獲取step的實體,然後保存爲fbx、obj等mesh格式,轉換後出現子對象位置錯亂的問題

原模型的效果是這樣的

轉換後

獲取了一個模型的多個實體,但是實體的中心位置都變成座標原點了

那麼,怎麼設置轉換還原到以前的位置?

搜索了API接口,以及很多方法,做座標系的轉換是一個可能有效的方案

參考這個例子https://www.opencascade.com/content/move-topodsshape-global-position去對單個的shape做轉換

轉換方法如下:

但是並沒有效果,經過打印輸出(上面紅色的部分),shape在創建時初始位置爲0,獲取不到原始位置,所以這種方法基本宣告無效

 

這個帖子給了一個可行的方案

https://www.opencascade.com/content/import-step-export-mesh-wrong-placement-items

myAssembly-> GetShapes(frshapes);

需要改成

myAssembly-> GetFreeShapes(frshapes);

我們來看接口說明

藍色的部分就是區別,它是不基於任何參照的,所以能夠獲取到比較原始的數據

按以下方法修改就可以了

這是正常導出的效果

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章