脚本执行
大约 3 分钟
脚本执行
脚本执行功能允许批量执行多条命令,实现自动化绑图。
EXECSTR - 执行脚本
弹出脚本输入对话框,执行用户输入的命令脚本。
命令名: EXECSTR
用法
命令: EXECSTR执行命令后会弹出脚本输入对话框,在对话框中输入脚本内容,点击"执行"按钮执行脚本。
对话框功能
| 按钮 | 说明 |
|---|---|
| 执行 | 执行输入的脚本 |
| 取消 | 取消执行 |
| 清空 | 清空编辑区内容 |
| 模板 | 加载默认脚本模板 |
脚本语法
基本格式
脚本由多行组成,每行可以是:
- 命令名
- 命令参数(坐标、数值、关键字)
- 注释(
; 或 //开头,会被跳过)
注意:空行和注释行在命令参数读取时会被自动跳过,可以自由添加用于提高可读性。
选择对象
需要选择对象的命令(如 MOVE、COPY、SCALE 等),需要先手动选择对象,然后再运行脚本。脚本会使用预先选择的对象进行操作。
示例脚本
; 这是一个简单的脚本示例
LINE
0,0
100,0
100,100
0,100
C
CIRCLE
50,50
30注释
支持两种注释格式:
; 分号开头的注释
// 双斜杠开头的注释注释行会被跳过,不执行任何操作。
变量
定义变量
使用 SET 语句定义变量:
SET VAR_NAME=value
SET WIDTH=100
SET HEIGHT=200
SET NAME=MyBlock使用变量
使用 $() 语法引用变量:
SET WIDTH=100
SET HEIGHT=50
LINE
0,0
$(WIDTH),0
LINE
$(WIDTH),0
$(WIDTH),$(HEIGHT)内置变量
| 变量 | 说明 |
|---|---|
$(PI) | 圆周率 3.14159... |
$(LASTPOINT_X) | 上次输入点的 X 坐标 |
$(LASTPOINT_Y) | 上次输入点的 Y 坐标 |
$(CLAYER) | 当前图层名 |
$(CECOLOR) | 当前颜色索引 |
$(OSMODE) | 对象捕捉模式 |
表达式
数学运算
在 $() 中可以进行数学运算:
SET BASE=100
LINE
0,0
$(BASE*2),$(BASE/2)
; 计算结果: 200, 50支持的运算符:
+加法-减法*乘法/除法()括号
数学函数
| 函数 | 说明 | 示例 |
|---|---|---|
SIN(angle) | 正弦(角度制) | $(SIN(45)) |
COS(angle) | 余弦(角度制) | $(COS(60)) |
TAN(angle) | 正切(角度制) | $(TAN(30)) |
SQRT(n) | 平方根 | $(SQRT(2)) |
ABS(n) | 绝对值 | $(ABS(-5)) |
ROUND(n) | 四舍五入 | $(ROUND(3.7)) |
FLOOR(n) | 向下取整 | $(FLOOR(3.7)) |
CEIL(n) | 向上取整 | $(CEIL(3.2)) |
实用脚本示例
绘制矩形
LINE
0,0
100,0
LINE
100,0
100,50
LINE
100,50
0,50
LINE
0,50
0,0绘制三条平行线
LINE
0,0
100,0
LINE
0,20
100,20
LINE
0,40
100,40绘制同心圆
CIRCLE
100,100
20
CIRCLE
100,100
40
CIRCLE
100,100
60使用循环绘制同心圆
SET CX=200
SET CY=200
SET R=20
REPEAT 5
CIRCLE
$(CX),$(CY)
$(R)
SET R=$(R+20)
ENDREPEAT使用循环绘制网格点
SET X=0
REPEAT 4
SET Y=0
REPEAT 4
CIRCLE
$(X),$(Y)
5
SET Y=$(Y+50)
ENDREPEAT
SET X=$(X+50)
ENDREPEAT编程接口
TypeScript 调用
import { ExecuteStrCommand } from 'vjcad';
// 创建命令实例
const cmd = new ExecuteStrCommand();
// 执行脚本字符串
await cmd.executeString(`
LINE
0,0
100,100
CIRCLE
50,50
30
`);注意事项
- 空行处理: 空行相当于按回车,用于结束当前命令
- 大小写: 命令名不区分大小写,变量名不区分大小写
- 坐标格式: 使用
x,y格式,不要有多余空格 - 逐行执行: 脚本按行解析后逐条执行
下一步
另请参阅
三层自动化能力对比
| 层级 | 命令 | 目标用户 | 能力范围 |
|---|---|---|---|
| 脚本执行 | EXECSTR | 不会 JS 的用户 | 命令序列、变量、循环 |
| 代码执行 | EXECJS | 懂 JS 的用户 | 异步 JS 代码、访问 Engine API |
| 插件系统 | PLUGINS | 专业开发者 | 完整生命周期、UI 扩展、打包发布 |