找回密码
 注册
LabVIEW+单片机学习套件全套教程资料下载[免费]LabVIEW论坛精华列表贴USB0816数据采集卡《LabVIEW宝典》
LabWindows/CVI论坛精华贴NET0816以太网数据采集卡RC0210远程设备授权系统 关闭关停锁定打开设备 户外分布式数据采集
NET1624低速高精度以太网数据采集卡WIFI0824SD无线WIFI网络数据采集卡脱机运行 SD存储 小尺寸微型 串口采集远程采集 安卓 手持移动采集 纪录仪
查看: 977|回复: 6

很多问题请教高手!!!!

[复制链接]
发表于 2007-2-3 12:41:21 | 显示全部楼层 |阅读模式
小弟菜鸟最近使用LV的过程出,遇到了很多很多的问题,在这里跪求各位大哥大姐的解答!!!



1. 怎么从一个字符串中提取一个计算公式并放入LV的公式结点,比如从字符串中提取出"y=3*X/100+22.7"(公式从文件中读出,是动态的,非事先写好的)

2. 怎么让一个二维数组的显示(或控制)控件自动恰好显示全部数据(比如4*5的数组,显示在界面上的数组行列自动变为4行5列)

3.怎么锁定一个子VI窗口的控制权,即当调用一个VI时,该VI窗口始终最前,在其未关闭时,其它所有VI窗口的所有操作均无效

4.有没有办法在程序中动态生成控件,比如有1000个可在线监测的变量,根据用户选择,实时观测其中x个(x根据用户从变量列表里选择的数目而定,但有上限)的数值

5.有没有办法捕捉LV中3D图形控件中的鼠标位置?或者说有没有办法用鼠标对3D图像进行精确到点的调整?

6.怎么实现一个数字表格,即每个单元格里都是数字,而且有上下限、最小增量,且这个数字表格既可用数组输入,也可以输出,而且要显示行首和列首。



感激涕零!!!小弟磕头了!!
 楼主| 发表于 2007-2-4 23:45:48 | 显示全部楼层
再一次顶起,各位高手帮帮忙啊!!!
回复 顶

使用道具 举报

发表于 2007-2-5 09:14:13 | 显示全部楼层

回复 #1 xinlan84 的帖子

兄弟厉害!!能把自己遇到的问题提的这么清楚,也是一个本事,我就没有这个本事。
粗略看下,发现只能有把握回答你一个问题,就暂时把思路说下:
1:文件读取在labview中是file io子模板,而如何读取关键在于你的文件存储结构,比如你一个公式一行,那么可以用read txtfile以行方式读入。对字符串的解释运行,我想还是借助matlab的表达式解释器吧,把你的字符串赋值给s,然后用eval(s);
2:这个只要在属性节点设置下就可以了,先用array size取得数组大小,然后输入给该array的number of rows,number of colomns两属性节点;
3:这个暂时不清楚,你看下子vi的属性设定里面有没,我只是在以前看x86汇编的时候看到过有这功能,所以可以去查询下调用api实现;
4:动态1000个控件是不是太多了,面板也显示不下啊?不甚了解?
5:同样你看下有没属性节点可以取得鼠标坐标的?
6:做成一个numeric indicate的数组估计可以,至于两头你可以用一个1d的string indicate,然后把两个1d的string indicate和1个2d的numeric indicate  bundle起来,作成一个cluster
早上头脑比较晕,所以想问题不能太深入了,没必要全按我说的去思考,或许有别的更快捷的方法~~
回复 顶

使用道具 举报

发表于 2007-2-6 12:04:41 | 显示全部楼层
偶也发表下看法:
1.我从字符处理方面讲下,从文件中读取飞兄讲了怎么读,
处理首先要确定你的文件是否是固定格式
如:Formula1:y=3*X/100+22.7
      Formula1:y=3*X/100+22.6
这样只须做简单的字符处理就好了,若是乱的文件,你试下飞兄的方法吧~~~
2.如上,略
3.其实你在用SELECT A VI....运行VI,调用出来之后就会一直处理等侍这个VI的状态
对其它的操作都是不运行的,但是可以修改其值,
所以你可以用VISERVER来对其它的窗口的控件进行禁用,
或者你可以将其它的窗口进行隐藏,隐藏你可以用API也可以用VI属性
4.动态创建控件好像不行,但是你可以用其它方法,用数组可以吗?
或者用簇,
还有一种就是先创建好控件,然后须要多少显示多少
5.3D图形,这个还真没试过,你自己先看看吧。
6.这个你可以输入时进行处理,最大最小等,
你试下飞兄的方法
回复 顶

使用道具 举报

 楼主| 发表于 2007-2-7 09:35:12 | 显示全部楼层
第二个问题和第六个问题解决了,非常感谢!
第一个问题,重点是怎么让LV能够识别用户自己的公式,因为公式是动态的,不是一开始就写好在计算节点内的,所以,要么用一种方法把读出的计算式加入到计算节点内,要么就得自己写一个诸如+-*/符号进行判断的算法VI,有没有办法实现前者呢?我去试一下MATLAB的方法

动态创建控件的事我打算放弃了,用一个簇来实现好了

3D的没有鼠标捕捉,想其他方法实现吧。。。
窗口控制权的问题我回去试试再来,再次感谢!
回复 顶

使用道具 举报

发表于 2007-2-9 10:53:29 | 显示全部楼层
回复 顶

使用道具 举报

发表于 2007-2-9 14:10:28 | 显示全部楼层

回复 #5 xinlan84 的帖子

3D的是不是有个mouse move的event case?可以输出鼠标坐标
回复 顶

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|cpubbs论坛. ( 粤ICP备09171248号 )

GMT+8, 2026-9-30 00:56 , Processed in 0.037789 second(s), 8 queries , Gzip On, File On.

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表