目录
为何会有这种需求?因为大多数3D库,都支持导入obj模型和mtl材质,例如webGL、qt3D等,而我只会用solidworks进行三维建模,没有obj和mtl,程序写不下去了。。
还有就是有人要把solidworks的模型,弄到三维渲染软件里进行渲染,某些渲染软件与solidworks兼容的格式只有obj。。
经过一番调研,终于找到了方法。
0、使用STL格式中转
从网上找到一种方法,是用STL格式进行中转,才把solidworks格式转成了obj格式,很显然,STL是点云格式,没有材质颜色信息,转出的obj自然也就没有颜色材质信息了。题外话:obj模型的颜色和材质,是存储在另一个文件中的,这个文件格式为mtl。一般转3D格式的时候,会同时生成obj和mtl。如果没有生成mtl,那颜色和材质肯定就丢了。
好不容易从国外论坛找的两种方法,可以同时转成obj和mtl:
1、使用solidworks宏
只要是solidworks能打开的格式,都可以转成obj和mtl。方法见以下链接,为防止链接失效,我还是把步骤记录下来吧。
我把用到的资源上传到CSDN了,以防链接失效,请从这里下载:
https://download.csdn.net/download/qq_31073871/29884359
使用方法也很简单,先把下载的宏新建为按钮(不会的朋友请自行搜索SW的新建宏教程),然后就能用按钮启动这个转换软件,点击【run export】按钮就完事了。
如果报错,就尝试放松一下参数,比如把min face width调大等等
2、使用
opencascade
软件+step格式中转
先把solidworks的模型另存为step格式,然后用
opencascade
软件打开step格式的文件,再另存成obj和mtl。
不过,
opencascade
软件只能运行在linux上。
成功把模型弄进了自己的程序里,如下所示