跳转到内容

Python 脚本

LinkCAD 包含一个嵌入式 Python 解释器,用于自定义自动化、工具开发和格式插件创建。Python 脚本可以访问图纸数据库、几何 API 以及 linkcad.v1 插件框架。

功能

  • 自定义工具——创建处理图纸几何图形的菜单项
  • 格式插件——使用 FormatReaderFormatWriterDrawingBuilderWriterController 添加导入/导出格式
  • 交互式控制台——实时探索和操作图纸
  • 脚本编辑器——在 LinkCAD 内编写并运行脚本

Python API 仍位于稳定的 linkcad.v1 命名空间中。当前的格式插件和数据库新增内容都属于 v1,没有需要迁移到 v2 的路径。该包还附带类型存根,因此编辑器开箱即可为 linkcad.* 提供补全和类型检查——参见设置与要求

入门

  1. 设置与要求——Python 环境和先决条件
  2. 你的第一个脚本——Python 控制台中的 “Hello World”
  3. 编写工具插件——创建集成到菜单的工具
  4. 编写格式插件——添加新的文件格式
  5. 面板拼版教程——完整的真实场景示例

API 参考

  • 选项类型——integer、real、boolean、string、choice、path、color、table、cell_choice
  • 工具装饰器——@tool() 装饰器和 Tool 基类
  • 格式装饰器——@format_reader()@format_writer() 和基类
  • API 模块——所有模块:linkcad.v1.pluginlinkcad.v1.dblinkcad.v1.geomlinkcad.v1.editlinkcad.v1.envlinkcad.v1.convlinkcad.v1.libgraphlinkcad.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.cellscell.shapes 是属性,不是方法。整个 API 都遵循这一约定:名词是属性,动词是方法,读取器/设置器成对时只是一个可读写属性。几何图形始终由将要拥有它的对象创建——drawing.add_cell(name)cell.add_polygon(layer, vertices)

linkcadlinkcad.v1 发布的是 API 的模块,而不是模块的内容,因此请导入你需要的模块:from linkcad.v1 import db,然后使用 db.Drawing