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模型程序,分享完毕,总结至此,希望能为有需求的小伙伴提供思路,也希望能在这个“金钱至上”的社会,给大家提供更多免费的学习资源。
良心博主,且看且珍惜,如需分享,表明转载,小弟不胜感激!

LabVIEW学习分享(2)相关推荐

  1. 胡锐锋:组队学习分享(队长)

    组队学习分享(队长) 自我介绍 胡锐锋,现为Datawhale成员,目前担任<统计学习方法习题解答>开源项目的负责人,已工作近8年,由大数据平台研发工程师转变成一位项目管理人.我的人生目标 ...

  2. python anylogic_分享 | IE工具与仿真软件学习分享会

    原标题:分享 | IE工具与仿真软件学习分享会 6月18日晚,IE工具与仿真软件学习分享会在经济与管理学院704教室顺利举行,此次分享会,有幸邀请到了欧阳林寒老师.大三学长张宇航和葛胜贤为大家讲解相关 ...

  3. python中if语句缺省else_9_【Python学习分享文章】_if(条件语句)

    [Python学习分享文章]_if(条件语句)_logicalJudgement介绍及基本操作 综述 计算机的"条件语句"和生活中的"条件成立"是不一样的. 一 ...

  4. 学习分享会(2019.5.31)

    学习分享会 First(初三大佬发言) 初三大佬在为初二大佬讲一堆哲学的道理,虽然十分高深,但还是听懂了一点点 Second(初二大佬发言) 初二大佬开始"秀",首先是大佬LW讲了 ...

  5. datatable的数据进行组内排序_排序算法学习分享(四)希尔排序

    排序,也称为排序算法,可以说是我们学习算法的过程中遇到的第一个门槛,也是实际应用中使用得较为频繁的算法,我将自己对所学的排序算法进行一个归纳总结与分享,如有错误,欢迎指正! 排序算法学习分享(一)选择 ...

  6. Bootstrap的学习分享

    大家好,这里是demo软件园,今天为大家分享的是Bootstrap的学习分享. 众所周知Bootstrap是一款简洁.直观.强悍的前端开发框架,让web开发更迅速.简单. 流体布局容器 容器的widt ...

  7. LabView学习笔记(十):条件结构

    Labview学习笔记: LabView学习笔记(一):基础介绍 LabView学习笔记(二):滤波器实验 LabView学习笔记(三):基本控件 LabView学习笔记(四):动态数据类型 LabV ...

  8. LabView学习笔记(九):数组与簇

    Labview学习笔记: LabView学习笔记(一):基础介绍 LabView学习笔记(二):滤波器实验 LabView学习笔记(三):基本控件 LabView学习笔记(四):动态数据类型 LabV ...

  9. LabView学习笔记(八):属性节点

    Labview学习笔记: LabView学习笔记(一):基础介绍 LabView学习笔记(二):滤波器实验 LabView学习笔记(三):基本控件 LabView学习笔记(四):动态数据类型 LabV ...

最新文章

  1. 一文深入了解 Redis 内存模型,Redis 的快是有原因的!
  2. lnmp、lamp、lnmpa一键安装包
  3. Selenium 3 + BrowserMobProxy 2.1.4 模拟浏览器访问 (含趟坑)
  4. go语言游戏编程初识--`Ebiten`
  5. 数据结构:用栈实现中缀表达式的求值(文字描述+详细步骤示例)
  6. [面经]春季跳槽面筋总结 [2018年3月17]
  7. Bootstrap 滚动监听插件Scrollspy 的事件
  8. Android辅助服务监听dialog,Android开发中对话框辅助类——DialogHelper
  9. 机器学习在植物病害识别研究中的应用
  10. win10语音识别的设置和开启
  11. Win XP局域网设置及其无法访问解决方案
  12. 余姚计算机编程培训,余姚编程软件培训
  13. Android开发入门教程pdf
  14. Python 2与Python 3对H5牌九棋牌搭建的区别
  15. 计算机加域后数据库无法登录,[MDT] 解决因加域客户端 Windows 登录身份引发的无法打开登录所请求的数据库故障...
  16. 【Luogu】P7995 [USACO21DEC] Walking Home B
  17. java设置拨号界面_JS+CSS实现仿触屏手机拨号盘界面及功能模拟完整实例
  18. 海思SDK学习(11)海思媒体处理软件平台MMP(10)VGS视频图形子系统
  19. Mybatis-Plus配置和使用
  20. formate在python_python的format方法

热门文章

  1. 安全帽识别软件能够解决现场管理中的很多问题
  2. 索引的数据结构与优缺点
  3. 商务邮箱是什么怎么注册?邮箱客服电话
  4. YOLOv3测试人物和舰船检测效果
  5. 第 8 章 Python 计算生态
  6. May 17th Thursday (五月 十七日 木曜日)
  7. Windows battery report
  8. python竖着展示诗_竖着写诗的格式
  9. matlab近红外光谱曲线,Matlab关于偏最小二乘法应用于近红外光谱分析的问题
  10. ip_forward与路由转发