图8.1.3 ISDX曲面模块用户界面2.ISDX曲面模块下拉菜单图8.1.4、图8.1.5和图8.1.6所示为ISDX曲面模块的“编辑”、“视图”和“造型”下拉菜单。图8.1.6 “造型”下拉菜单图8.1.7 工具栏按钮图8.1.7所示工具栏中各按钮的说明如下:A:设置活动基准平面。......
2025-09-29
针对基本状态机模式的第4)~5)个问题,需要对模式进行改进。通过搜索的方式来捕捉所有的“单击按钮”事件或其他事件,往往会占用大量的CPU资源。另外,状态机模式并不能捕捉其他一些常见的事件,如鼠标移动、关闭窗口和单击某个菜单项等。为了解决这些问题,程序员可以使用用户界面事件模式。这种交互方式能够处理目前使用到的绝大部分事件,这是LabVIEW中用于人机交互的一种强大而高效的模式,而且事件捕获的方式采用中断实现,在事件没有发生期间,CPU可以处理其他的操作,这就极大地减轻了CPU的负担。
根据来源的不同,事件可以分为用户界面事件、外部I/O事件和其他程序事件。其中,用户界面事件包括鼠标单击、键盘按键等动作;外部I/O事件包括当数据采集完毕或发生错误时硬件定时器或触发器发出信号等情况;其他程序事件可通过编程生成并与程序的不同部分通信。LabVIEW支持用户界面事件和通过编程生成的事件,但不支持外部I/O事件。
用户界面事件模式一般由While循环和事件结构组成,程序开始后进入等待状态,等待某个事件发生后进入相应处理代码,处理结束后回到等待状态。这种程序模式的执行顺序取决于具体发生的事件及事件发生的顺序。
【例5-4】统计循环次数和按下按钮次数
本例采用用户界面事件模式统计循环次数和按下按钮次数,程序前面板如图5-18所示,程序框图分别如图5-19、5-20所示。

图5-18 程序前面板

图5-19 统计“确定”按钮次数的事件分支程序框图

图5-20 统计“停止”按钮次数的事件分支程序框图
【例5-5】画板应用
本例要模拟一个简单的画图板功能。它有4个功能选项:点(point)、线(line)、圆(circle)和椭圆(oval),一次完整的绘画过程是:在画布上单击鼠标开始绘制→按住鼠标的同时在画布上拖动鼠标→在画布上放开鼠标结束绘制。
程序的前面板如图5-21所示,由上下两大部分组成。上面用于选择需要画图的样式,下面是画布,右上方的“×”表示程序结束。

图5-21 画板前面板
由于系统需要响应鼠标在画布上单击、移动和释放事件,因此使用状态机模式是无法解决的,只能通过事件结构。因此本例将使用用户界面事件模式实现上述的画图板功能。
程序框图如图5-22所示,共有4个事件,分别如下:
1)前面板关闭:响应前面板的关闭动作,这是一个过滤性事件,当事件发生时并不真正关闭前面板而只是停止程序的运行。
2)Picture鼠标按下:表示绘画开始。(https://www.chuimin.cn)
3)Picture鼠标移动:表示绘画的路径和轨迹。
4)Picture鼠标释放;鼠标离开:表示绘画结束,此时一定要加入鼠标离开事件,因为当鼠标移动到画布的外面时就可以认为是绘画结束了,并不需要一定要求鼠标在画布中释放。

图5-22 画板程序框图
Picture鼠标按下事件如图5-23所示,这个步骤表示绘制开始,每次绘制都必须从这个步骤开始。事件分支左侧的Button参数表示单击鼠标的键位,只有在单击鼠标左键时才被认为是合理的和有效的,当单击其他的键位时并不开始绘制。在有效绘制中,需要将画笔移动到鼠标当前单击的位置。当选择的画图模式是Line和Point时,使用Draw point.vi函数可以在当前的位置上画一个点并且将画笔移动到当前位置。

图5-23 Picture鼠标按下事件程序框图
从图中可以看出系统定义了4个移位寄存器变量以实现不同事件分支的共享,它们的含义如下:
1)表示当前画布中的图像,事实上就是前面板picture中的内容。因为每次画图时都是在当前画布上图像进行叠加,所以需要使用移位寄存器以避免过多的局域变量。
2)表示开始绘制时的鼠标位置,也就是Mouse Down在画布上的相对位置,绘制的起点。
3)表示是否开始了绘制。前面提过每次的绘制过程都是从MouseDown开始的,如果没有这个动作,那么在鼠标在画布上的移动是无效的。
4)表示开始绘制时的图像,这个变量与变量1是不一样的。它表示在MouseDown时画布上的图像,而不是画布中的实时图像。
Picture鼠标按下事件如图5-23所示,该事件是在绘图的过程中,因此移位寄存器3的值必须是true。可以根据不同的画图类型使用相应的函数进行绘图,如画Line时,只需要把当前鼠标的位置作为Line的终点。Picture鼠标移动事件程序框图如图5-24所示。

图5-24 Picture鼠标移动事件程序框图
Picture鼠标释放;鼠标离开事件如图5-25所示,该事件表示绘制的结束,因此只需要把移位寄存器3的值设置为false即可。

图5-25 Picture鼠标释放;鼠标离开事件
本例的实现过程并不复杂,但是涉及了4个移位寄存器变量。一旦变量共享的数据较多时往往需要使用大量的移位寄存器,因此建议使用簇的形式将各个变量有序地组织起来。
相关文章
图8.1.3 ISDX曲面模块用户界面2.ISDX曲面模块下拉菜单图8.1.4、图8.1.5和图8.1.6所示为ISDX曲面模块的“编辑”、“视图”和“造型”下拉菜单。图8.1.6 “造型”下拉菜单图8.1.7 工具栏按钮图8.1.7所示工具栏中各按钮的说明如下:A:设置活动基准平面。......
2025-09-29
而在5220m至5560m的距离下,抢劫事件的空间网络K函数值开始减少并逐渐小于蒙特卡洛模拟下限曲线值,说明在5220m及以上的距离上,抢劫事件逐渐表现出空间均匀分布的特征。图6.4抢劫事件时空网络K函数对于盗窃事件,用2017年纽约市发生盗窃事件共计147489起进行分析,图6.5为对应的分析结果,图中各项含义与图6.3相同。......
2025-09-29
UCS图标可以帮助用户使用户坐标系的当前方向可视化。用户也可以切换至“三维建模”工作空间在功能区“常用”选项卡的“坐标”面板中单击“UCS图标,特性”按钮来打开“UCS图标”对话框以控制UCS图标的样式、大小和颜色。图9-2 “UCS图标”对话框AutoCAD中的UCS图标可以显示有图9-3所示的3种版本。“在原点处显示UCS图标”按钮用于仅在原点处显示UCS图标;“显示UCS图标”按钮用于在原点或视口角点处显示UCS图标;“隐藏UCS图标”按钮用于隐藏UCS图标。......
2025-09-29
Spectre提供的仿真功能可以让所有电路设计者快速完成模拟设定、环境建立与模拟结果分析,基本的环境中包含了Spectre/RF Circuit Simulator、Ultrasim Full-chip Simulator、AMS、Spectre Verilog和Ultrasim Verilog这几种混合信号仿真器。为了满足快速仿真和更大规模晶体管级的验证,新版本的Spectre还集成了Spectre APS和Spectre XPS。Spectre APS旨在调用多核处理器,快速并行地完成高精度的晶体管级电路仿真。而Spectre XPS则是下一代的快速SPICE仿真器,可以提供高性能、大容量的全芯片级验证。图2.1 Spectre中包含的各种仿真器......
2025-09-29
下面以Inventor Professional 2018为例介绍Inventor软件及其操作方法。双击图标按钮,等待几秒钟,系统启动并进入Inventor Professional 2018的启动界面,如图1-43所示。“查找范围”文本框显示激活项目文件所指定的当前文件夹,主窗口列出所选位置中所有的文件和子文件夹,预览窗口列出所选Inventor文件的预览图形,如图1-44所示。......
2025-09-29
图1-21 选择下端面图1-22 绘制端口截面5)单击组中的按钮完成截面的创建,打开选项卡并勾选选项,在拉伸控制板中输入拉伸距离为“120.00”,单击按钮显示如图1-23所示特征。21)按住Ctrl键同时选择端口曲面和对称拉伸曲面,单击选项卡组的按钮,打开控制板将其合为同一面组。......
2025-09-29
在用户视图中所作的更改立即生效,但是在运行时所作的更改将不会在工程系统中更新。重新下载HMI程序后,运行时在用户视图所作的修改将被覆盖。图7-16 用户视图属性对话框HMI运行时,可以获得当前登录用户名称并显示。单击“注销”按钮,则注销该用户。图7-17 模拟运行项目单击“登录”按钮,打开登录对话框,修改用户为Wang,由于该用户没有“用户管理”权限,则用户视图仅显示其自身,且其只能更改自己的用户名、密码和注销时间。......
2025-09-29
目前,国内外对于单气泡界面传质研究较为深入,而对于高流速、高紊动下的气泡界面传质研究还处于起步阶段。式提供了计算气水两相流中气泡界面传质系数的可靠性,避免了测量气泡上升速度、气泡总面积等所产生的误差,公式所涉及的气泡平均直径和气体体积分数,参考文献[11~13]可供借鉴。......
2025-09-29
相关推荐