WPF与3D 模型(一)把Solidworks里的模型导入进WPF程序

简单研究了一下WPF导入3D模型的方法,了解到大概有以下这几种:

  • 用Helix工具箱在程序码里面导入STL或者OBJ模型
  • 用Helix工具箱在xaml码里粘贴xaml模型代码
  • 不用Helix工具箱在xaml码里直接粘贴xaml模型代码

(题外话:Helix tool box是一个.Net 3D模型算法库,主创人员似乎相当懒,相关文档至今都没写几页。咱只能自己摸索怎么用)

方法一的好处是,由于我们是一个个零件导入进WPF程序,因此单个零件可以单独控制。不好的地方是如果不是写在xmal里,GUI界面不能实时显示模型(必须要运行程序才能看到),对于导入多个模型并且定制各个模型的外观需要一个个设置,麻烦点。

方法二的好处是你的CAD模型在CAD程序里长什么样,导入进WPF就什么样,不需要另外配置外观。另外编程的时候GUI界面实时显示模型,不需要运行程序就能看到模型的样子。

方法三的与方法二类似,只不过没有Helix工具箱里的功能。

我们这里先讲方法三,流程很简单

  1. 准备3D模型
  2. 另存为xaml格式
  3. 粘贴进WPF程序

开始
1.准备3D模型
我这里在solidworks里面画了个坐标系,蓝色表示Z轴,绿色表示Y轴,红色表示X轴
WPF与3D 模型(一)把Solidworks里的模型导入进WPF程序_第1张图片
2.另存为xaml格式
WPF与3D 模型(一)把Solidworks里的模型导入进WPF程序_第2张图片
记事本打开我们保存的xaml文件
WPF与3D 模型(一)把Solidworks里的模型导入进WPF程序_第3张图片
这长长的一串就是我们的3D模型的代码了
3.粘贴进WPF程序
打开Visual Studio,新建WPF application,我们得到一个空的模板
WPF与3D 模型(一)把Solidworks里的模型导入进WPF程序_第4张图片
把刚刚的xaml代码复制粘贴进中间(第一行没用,只复制第一行后面的就可以)然后Boom的一下模型就出来了。没怎么动脑子就成功了。
WPF与3D 模型(一)把Solidworks里的模型导入进WPF程序_第5张图片
WPF是通过一个内置的相机来模拟我们观察的位置和方向。因此我们不难发现,这里的模型似乎离相机太近了。我们尝试着拉远看看。
我们删掉第12行并加上如下代码

<PerspectiveCamera Position="0.2,0.2,0.2" LookDirection="-1,-1,-1"></PerspectiveCamera>

我这里换了相机的类型,想知道两种相机的区别看这里
根据你模型的大小调整相机的位置,并确保相机看的方向指向你的模型。改完之后我的模型变成下面这样子。
WPF与3D 模型(一)把Solidworks里的模型导入进WPF程序_第6张图片
大小似乎合适了。不妨再改一下Position里的参数,我们刚刚定义的是蓝色轴是Z轴,红色是X轴,绿色是Y轴。现在我们把相机代码改成

<PerspectiveCamera Position="0.2,0.2,0.3" LookDirection="-1,-1,-1"></PerspectiveCamera>

WPF与3D 模型(一)把Solidworks里的模型导入进WPF程序_第7张图片
模型往后移了,也就是说相机确实往Z轴正方向移动了。
再试下X和Y,发现WPF里面定义的方向和Solidworks里面是一致的。

你可能感兴趣的:(编程相关)