编写工具插件
本教程说明如何创建一个显示在 LinkCAD 菜单系统中的 Python 工具,并带有自动生成的选项对话框。
工具框架
工具插件由以下部分组成:
- 一个使用
@tool()装饰并扩展Tool的类 - 定义 UI 对话框的选项类属性
- 一个实现逻辑的
run()方法
示例:图层统计
在你的插件目录中创建文件 layer_stats.py:
from linkcad.plugin import tool, Tool, Option
@tool( name="Layer Statistics", menu="Tools/Analysis", tooltip="Show shape count per layer",)class LayerStats(Tool): include_empty = Option.boolean( "Include empty layers", default=False, tooltip="Show layers with zero shapes", )
def run(self, drawing) -> None: for layer_name, shapes in drawing.shapes_by_layer(): count = sum(1 for _ in shapes) if count > 0 or self.include_empty: print(f"{layer_name}: {count} shapes")工作原理
@tool()将类注册为 LinkCAD 工具name显示在菜单中,menu设置菜单路径Option.boolean(...)在自动生成的对话框中创建复选框- 用户在对话框中点击 OK 后会调用
run()
选项类型
| 工厂方法 | UI 控件 | 示例 |
|---|---|---|
Option.integer() | 微调框 | Option.integer("Count", default=1, min=0, max=100) |
Option.real() | 双精度微调框 | Option.real("Scale", default=1.0, decimals=4) |
Option.boolean() | 复选框 | Option.boolean("Enable", default=True) |
Option.string() | 文本字段 | Option.string("Name", default="output") |
Option.choice() | 下拉框 | Option.choice("Mode", choices=["Fast", "Precise"]) |
Option.path() | 文件选择器 | Option.path("Output", file_filter="*.csv") |
Option.color() | 颜色选择器 | Option.color("Fill", default="#FF0000") |
Option.table() | 可编辑网格 | 请参阅面板拼版 |
Option.cell_choice() | 单元下拉框 | Option.cell_choice("Target Cell") |
条件选项
使用 enabled_when 动态显示/隐藏选项:
class MyTool(Tool): mode = Option.choice("Mode", choices=["Simple", "Advanced"]) threshold = Option.real( "Threshold", default=0.5, enabled_when=lambda self: self.mode == "Advanced", )threshold 字段仅在 mode 为 “Advanced” 时启用。
键盘快捷键
@tool( name="My Tool", menu="Tools/Custom", shortcut="Ctrl+Shift+M",)class MyTool(Tool): ...