LabVIEW实用总结–3D模型控制
小树不修不直溜,人不学习哏揪揪!在今天这样一个大顺的日子里,本小学生特意起了个大早,感受一下清晨的微风♪(^∀^●)ノ。明天就是端午节了,每到这个时候,我都发自内心地感谢屈原老师,天朝历史上数不清的多少豪杰,唯独屈原老师为我们后人带来了三日假期,虽然总赶上周六周日吧,但就算加班也会有补助,还是很不错的。回归正题,今天和大家分享LabVIEW读取与控制3D模型的方法总结,虽然NI公司的LabVIEW给出了一些3D图片控制的范例,但都稍显复杂与零散,本小学生通过对网上一些大神们给出的范例进行分析与学习,实践编程调试3D模型控制程序,特总结此文,以留纪念,望大神指点!
前期准备工作–3D模型文件
LabVIEW程序框图中自带的三维图片控件,是可以实现简单的三维模型建立的,但仅仅局限于创建空间立方体(长方体、球体、圆柱体),稍微复杂一些的机械结构或零件,就很难直接利用编程LabVIEW创建。NI公司也早已想到了这一问题,因此在三维图片控件中有加载文件的控件选项,以兼容3D绘图软件创建出的模型, 分别可健在VRML文件、加载ASE几何、加载STL几何,本小学生问了几位搞射击的老铁,这几种文件都是3D模型编辑软件的常用文件存储格式,我这里参考一位大神所做的六*度机械臂程序,相信许多小伙伴也都看过,但是相对更直观一些。我加载的模型创建软件是SolidWorks 2014编辑的,下面分享一下模型处理过程。
在建模软件中转换模型格式:本小学生不是专业的射击师,因此对于建模软件的操作流程不是特别熟悉,我的模型资源来自于一位射击专业的好友,他直接分享给我了一个做好的模型资源,这个资源想来许多机械专业的小伙伴都看到过,是用SolidWorks 2014编辑的港口起重机模型,这个模型是用“实体”搭建出的零件文件(SLDPRT),我不清楚我的这种说法是否准确,如果不对希望大神指正。这个模型十分细致,细致到螺丝钉的程度,不过为了适应我低配电脑的文件处理方便,我对源文件进行了适当修改过程如下:
(1)首先读取源文件:如图1所示读取出的模型文件效果,从左侧的导航栏中可以看出有1369个实体,我朋友告诉我这都不算太多的,只是个一般程度的模型文件吧,于是本小学生对于这些个实体进行重新分类,按起重机的机构分解成三大部分,分别是行走机构、旋转机构与起升机构,如图2、3、4所示分别为拆分出的文件图示。
图1 原模型文件
图2 旋转机构
图3 起升机构
图4 行走机构
(2)如上图4所示,点开隐藏工具栏,点击“工具”选项,下拉菜单中选择“选项”。弹出如图5所示的窗口,点击“文档属性”,再点击左侧的“图像品质”,设置成图5中所示的效果,此处调整图像品质的目的是为了减小3D模型文件的大小,不然我尝试过读取未修改前的文件,电脑异常的卡,将文件减小后,明显改善了不少。
图5 图像品质修改
(3)点击如图6所示的“保存”按钮,选择“另存为”,弹出如图7所示的对话框,选择文件存储路径,注意此时我们保存的格式为“WRL”格式,点击下方的“选项”按钮,弹出如图8所示,选择“VRML97”版本,国际标准版本,单位“米”。这是我经过多次实践,发现的比较好用的格式,目的还是为了LabVIEW调用。
图6 另存选择
图7 另存对话框
图8 VRML文件格式选择
最后将零件文件利用上述方法都转换成WRL格式文件,如图9所示。
图9 转换好的WRL文件
至此准备工作基本完成,我也尝试过利用3DMAX软件将模型文件转换成WRL格式文件,但转换后的文件利用LabVIEW读取总是不成功,可能是版本格式的不兼容的问题,此处将源文件与我修改转换的模型文件分享给大家,希望能帮助到有需要的小伙伴。
百度网盘永久有效链接:
链接:https://pan.baidu.com/s/167b0UpMHkMdZHmaQcVjCbQ
提取码:w3kl
LabVIEW读取与控制3D模型程序
(1)在准备好WRL模型文件的基础上,开始编写LabVIEW程序,我用的是LabVIEW 2016 32位版,编写3D模型的控制程序不需要扩展工具包,好像从很久以前的版本就自带3D控制工具。
我们首先在创建一个新的文件夹,将之前转换好的WRL文件存储于此文件下的自定义文件夹下,如图10所示,我的新建文件夹叫“3D控制”,期内部存储WRL文件夹叫“WRL”(有点频)。
图10 新建文件夹
(2)然后我们先编辑前面板,新建VI(Ctrl+N),单击右键弹出控件选板,选择“图形”选板下“三维图片”控件,如图11所示,添加到前面板上后,适当调整大小与位置的设定,如图12所示,此处操作过后,3D图形显示控件添加完成。
图11 三维图片控件
图12 前面板效果
(3)切换到程序框图(Ctrl+E),首先介绍主要用到的3D控件位置,如图13所示,选板中点击“图像与声音”,选择其中的“三维图片控件”,编写3D控制程序的主要控件都在此处。然后我们首先创建读取WRL的程序,选择“文件IO”选板中的“创建路径”与“拆分路径”程序模块,模块位置如图14所示,为了程序移植考虑选取了“当前VI路径”的“文件常量”因此新建VI要存储于准备的文件夹中。放置并连接好控件,如图15所示,读取WRL文件路径程序完成。
图13 程序框图中的三维控件
图14 路径读取控件
图15 读取路径程序框图
(3)开始编辑显示程序,这个过程就像盖房子一样,从下而上,逐步搭建,首先我们利用LabVIEW的三维控件编辑出一个轨道的模型,如图16所示选择“三维图片控件”中的“几何”,在选择“创建盒”,以及如图17所示的“颜色改变”控件,在添加“创建对象”控件时,需要注意添加的是如图18中所示的左侧的VI模块,操作是程序框图中右键,然后点击“选择VI”,弹出窗口选择如图19所示的VI,其路径在我的电脑中如下,供大家参考。
D:\Program Files\National Instruments\LabVIEW2016\vi.lib\picture\3D Picture Control\Object
图16 创建盒控件
图17 颜色改变控件
图18 创建对象控件对比
图19 创建对象VI加载位置
然后我们再选择“助手”中的“应用纹理”控件如图20所示,并将各个控件接线如图21所示,然后利用PS软件绘制简单的轨道图片,如图22所示,保存成BMP格式,并且参数设置如图23所示,并将此BMP文件同样保存到工程文件夹的WRL文件夹下如图24所示。
图21 应用纹理控件
图22 PS制作轨道图
图23 BMP文件格式
图24 文件存储位置
然后选取“对象”中的“创建对象”控件如图25所示,创建“Scene”场景对象,为后期控制做准备,再添加如图26所示的“添加对象”控件,将对象组合起来。然后我们添加while循环结构,再添加如图27所示的“缩放对象”控件用来控制显示模型的大小,其中含有簇类型数据,控件位置参见图28,然后添加“设置平移”控件,如图29所示,以便于调节模型的显示位置。然后我们将创建好的VI存储于步骤(1)中的工程文件夹如图30所示。然后在前面板中调节3D图片显示控件的属性,如图31所示的视角控制器和自动投影属性。最后点击前面板的“连续运行”按钮,得到如图32所示的前面板效果。
图25 创建场景
图26 添加对象控件
图27 缩放对象控件
图28 按名称捆绑
图29 设置平移控件
图31 3D显示控件属性调节
图32 运行效果
至此利用LabVIEW创建几何模型操作结束,下面开始加载起重机模型文件,与控制调试程序编辑。
(4)加载行走机构模型:如图33所示,选择“加载VRML文件”控件,同时参照加载BMP文件时程序,创建路径程序。然后运行看一下效果,如图34所示,似乎在坐标轴上出现了问题,我们添加如图35所示的“旋转X轴”控件,再运行调试效果如图36所示,似乎需要对Z轴向进行平移操作,最后调整好的程序框图如图37所示,这一过程就是在不断的调试中实验得到的结果,运行效果如图38所示。
图33 加载VRML文件控件
图34 初步加载效果
图35 X轴旋转控件
图36 旋转轴后的效果
图37 调整好的程序框图
图38 加载行走机构模型运行效果
至此加载行走机构模型基本成功,这一过程同样适用于接下来的模型加载与调试控制过程。
(4)加载旋转机构模型:如图39所示我们直接按照之前加载行走机构的方添加路径与对象控件,其运行效果如图40所示,我们会神奇的发现好像直接自动就装配好了,无需再进行平移操作,或许是因为原模型文件中本身就存在着装配关系,我们只是把它们拆开了,但装配关系不变,相对空间位置也不变。但这还没有结束,旋转机构自然需要添加旋转控制,如图41所示,在程序面板中添加“设置旋转”控件,并如图接线。前面板点击“连续运行”并调节控件“旋转机构”,得到如图42的效果。
图39 加载旋转机构程序框图
图40 初次加载旋转机构的运行效果
图41 旋转机构调控程序框图
图42 旋转调控运行效果
至此旋转机构模型加载与调控程序编辑完成,下面加载起升模型
(5)加载起升机构模型:如图43所示仿照前面的方法,添加创建路径与对象添加控件,并如图所示连接程序框图。运行仿真的结果如图44所示,仍旧直接装配到旋转机构。同样为了实现起升控制的功能,添加如图45所示的“设置缩放”与“设置平移”控件,并利用开关(布尔)控件与条件结构相配合,实现控制效果。其运行效果如图46所示。
图43 加载起升机构程序框图
图44 初步加载起升机构运行效果
图45 起升控制程序框图设计
图46 起升控制运行效果
至此起升机构的加载与简单控制程序编辑完成,接下来我们编程实现行走功能。
(6)行走功能实现:行走功能即沿轨道进行平移,如图47所示,添加“设置平移”与控件,接线如图所示。前面板中“连续运行”状态下,调节“行走机构”控件,运行效果如图48所示。
图47 行走机构控制程序设计
图48 行走机构控制运行效果
至此加载港口起重机模型与运行控制程序编辑完成。
(7)背景色调节与运行改进:有时需要对3D图片的显示背景进行调节,此时可以利用“属性节点”调用的方法实现此功能,如图49所示即为添加“背景色”属性节点的操作,将其转换为写入后再添加其余控件与其配合,添加“延时等待”调整运行效果,如图50所示为最终程序框图效果。同样前面板“连续运行”状态下,调节“背景颜色”控件,运行效果如图51所示。
图49 背景色属性节点添加操作
图50 最终程序框图
图51 背景色切换效果
至此完整的LabVIEW读取与控制3D模型程序,分享完毕,总结至此,希望能为有需求的小伙伴提供思路,也希望能在这个“金钱至上”的社会,给大家提供更多免费的学习资源。
良心博主,且看且珍惜,如需分享,表明转载,小弟不胜感激!