Python 脚本
LinkCAD 包含一个嵌入式 Python 解释器,用于自定义自动化、工具开发和格式插件创建。Python 脚本可以访问图纸数据库、几何 API 以及 linkcad.v1 插件框架。
功能
- 自定义工具——创建处理图纸几何图形的菜单项
- 格式插件——使用
FormatReader、FormatWriter、DrawingBuilder和WriterController添加导入/导出格式 - 交互式控制台——实时探索和操作图纸
- 脚本编辑器——在 LinkCAD 内编写并运行脚本
Python API 仍位于稳定的 linkcad.v1 命名空间中。当前的格式插件和数据库新增内容都属于 v1,没有需要迁移到 v2 的路径。该包还附带类型存根,因此编辑器开箱即可为 linkcad.* 提供补全和类型检查——参见设置与要求。
入门
- 设置与要求——Python 环境和先决条件
- 你的第一个脚本——Python 控制台中的 “Hello World”
- 编写工具插件——创建集成到菜单的工具
- 编写格式插件——添加新的文件格式
- 面板拼版教程——完整的真实场景示例
API 参考
- 选项类型——integer、real、boolean、string、choice、path、color、table、cell_choice
- 工具装饰器——
@tool()装饰器和 Tool 基类 - 格式装饰器——
@format_reader()、@format_writer()和基类 - API 模块——所有模块:
linkcad.v1.plugin、linkcad.v1.db、linkcad.v1.geom、linkcad.v1.edit、linkcad.v1.env、linkcad.v1.conv、linkcad.v1.libgraph、linkcad.v1.controller
快速示例
一个按图层统计形状数量的简单工具:
from collections import Counter
from linkcad.v1.plugin import tool, Tool
@tool( name="Layer Statistics", menu="Tools/Analysis", tooltip="Count shapes per layer",)class LayerStats(Tool): def run(self, drawing) -> dict: counts = Counter( shape.layer.name for cell in drawing.cells for shape in cell.shapes if shape.layer is not None ) return { "layers": dict(counts), "summary": f"{len(counts)} layers, {sum(counts.values())} shapes", }drawing.cells 和 cell.shapes 是属性,不是方法。整个 API 都遵循这一约定:名词是属性,动词是方法,读取器/设置器成对时只是一个可读写属性。几何图形始终由将要拥有它的对象创建——drawing.add_cell(name)、cell.add_polygon(layer, vertices)。
linkcad 和 linkcad.v1 发布的是 API 的模块,而不是模块的内容,因此请导入你需要的模块:from linkcad.v1 import db,然后使用 db.Drawing。