Rotate 旋转

Rotate 是 Geometry(几何)分类下的行为之一,和 Move、Scale 并列,都用来改变组件自身的几何状态。当已获得“当前角度”这个数值(一般是从 PLC 标签读出来的角度),希望组件按这个角度绕某个支点转动时,就用 Rotate。它不做区间百分比映射,而是直接把配置的角度应用到图形上。和颜色、文本行为一样,它绑定在单个组件上:在行为浏览器左侧树选中组件,从右侧 Geometry 里把 Rotate 拖到该组件节点上即可绑定。

几何

几何: Rotate 旋转

几何行为之一:把一个角度值(通常来自标签)应用到组件上,让组件绕选定的支点旋转。用于指针、阀门、风扇等需要按当前角度转动的图形。

它是什么 / 用来做什么

Rotate 是 Geometry(几何)分类下的行为之一,和 Move、Scale 并列,都用来改变组件自身的几何状态。当已获得“当前角度”这个数值(一般是从 PLC 标签读出来的角度),希望组件按这个角度绕某个支点转动时,就用 Rotate。它不做区间百分比映射,而是直接把配置的角度应用到图形上。和颜色、文本行为一样,它绑定在单个组件上:在行为浏览器左侧树选中组件,从右侧 Geometry 里把 Rotate 拖到该组件节点上即可绑定。

使用方法:编辑器控件逐项说明

双击组件下的 Rotate 行为打开编辑器。Rotate 不做 Source Min / Source Max 的区间映射,它直接把 Rotation Input 当成角度值使用,再按 Pivot Point 选择的支点旋转。

  • General / Behavior Name:行为显示名,只影响树里的识别,不改变旋转目标。
  • General / Component Name:当前组件名,只读;不对就回到 Behavior Browser 重新选组件。
  • Quality Override / Quality Border:勾选后启用 GOOD / BAD 色块;GOOD 默认 #000000,BAD 默认 #FF8800。
  • Script 函数按钮:打开脚本片段选择器,把片段插入当前聚焦表达式框;未聚焦时默认插入 Rotation Input。
  • Rotation Input:要应用的角度表达式,单位是度,默认 0;常用 ReadTagDouble(...) 读角度,也可写 shape.rotation 这类表达式。
  • Condition:运行条件表达式,默认 true;返回 false 时本次 Rotate 跳过。
  • Max Rotation:最大旋转角度表达式,默认 360。Quick Max 按钮会把 45 / 90 / 180 / 270 / 360 直接写进这个字段。
  • Pivot Point:旋转支点,单选 Center / Top / Bottom / Left / Right;未匹配到有效值时默认 Center,保存时 Center 对应内部值 Centre。
  • Hide outside rotation range:角度超出旋转范围时隐藏组件;不希望隐藏时保持未勾选。
  • 底部状态 / OK / Cancel:状态区显示实时校验结果;OK 校验通过才保存,Cancel 或关闭窗口放弃修改。
// Rotation Input
ReadTagDouble("Device.TAGNAME", 0)

// Max Rotation = 360
// Pivot Point = Center

适用场景

当图形需要“按当前角度转起来”时用 Rotate,典型现场场景:

  • 仪表指针:把压力/温度对应的角度读出来,驱动指针绕中心转动
  • 阀门开度:阀门图标按开度角度转动,支点选在阀杆的真实机械中心
  • 风扇 / 搅拌叶片:按运行角度旋转叶片,表现转动状态

边界与易错点

常见误区:

  • Rotation Input 给的是角度(度),不是百分比,也不是区间映射;如果目标是“按量程比例动”,那是 Move/Scale 的思路,不是 Rotate
  • 支点要对准真实机械中心:指针选 Center,绕一端转动的部件按实际转轴选 Top/Bottom/Left/Right,选错支点会出现“甩着转”
  • Quick Max 只改 Max Rotation,不会改 Rotation Input;角度来源还是上面的输入表达式
  • Condition 为 false 时整个旋转不生效,调试发现不转先检查这个条件表达式
Rotate 旋转行为编辑器
图示 1: Rotate 编辑器

把角度值应用到组件,按选定支点旋转,可设最大旋转和支点位置。