API 参考
LinkCAD Python API 划分为以下模块,全部可通过稳定的 linkcad.v1 命名空间访问。每个 linkcad.v1.* 模块都会完整镜像对应顶层模块的公开命名空间,因此对象完全相同;从 v1 导入可将脚本固定到稳定的 API 表面。
linkcad 和 linkcad.v1 只发布这些模块,除此之外别无他物——顶层没有任何名称,因为各模块的内容会互相冲突。参见包结构。
整个 API、每个模块都贯穿四条约定:
- 名词是属性,动词是方法。
shape.area、cell.shapes、drawing.layers、bounds.width、task.progress、log.entry_count、conversion.succeeded——不带括号。destroy()、clone()、rotate()、mark_fatal()保留括号。 - 读取器/设置器成对时只是一个可读写属性,绝不是两个名称。 应写
layer.enabled = False,而不是layer.enable(False)。 - 几何图形由将要拥有它的对象创建。
drawing.add_cell(name)、drawing.add_layer(name)、cell.add_polygon(layer, vertices)、cell.add_ref(cell)。没有静态工厂。 - 当访问器需要参数时,属性覆盖常见情形,
filtered_*方法暴露其余:cell.shapes/cell.filtered_shapes(selected_only=True),controller.layers/controller.filtered_layers(sort_order=…)。
枚举成员一律通过其类型访问——EndCap.Round、HolesMode.Link——而不是作为模块上的散装属性。
| 模块 | 用途 | 文档 |
|---|---|---|
linkcad.v1.plugin | 插件框架——装饰器、选项、读取器/写入器基类、DrawingBuilder、WriterController、对话框规格 | 插件开发 |
linkcad.v1.db | 图纸数据库——单元、图层、形状、曲线、文本、锁、事务、图纸辅助方法 | 数据访问 |
linkcad.v1.geom | 几何基元——点、向量、变换、边界、角度 | 坐标计算 |
linkcad.v1.edit | 几何任务——合并、展平、对齐、连接、分解 | 批量操作 |
linkcad.v1.env | 选项与日志——读写持久选项、事件日志 | 设置与诊断 |
linkcad.v1.conv | 文件格式转换——以编程方式加载和保存图纸 | 格式 I/O |
linkcad.v1.libgraph | 布尔几何引擎——多边形的并集、交集、差集 | 形状运算 |
linkcad.v1.controller | 转换流程控制器——完整的向导流水线 | 高层转换 |
导入模式
导入模块,再通过它访问:
from linkcad.v1 import db, geom, edit, env, conv, libgraph, controller, plugin
with db.Drawing("scratch") as dwg: cell = dwg.add_cell("TOP") cell.add_polygon(dwg.add_layer("METAL1"), [(0, 0), (100, 0), (100, 100)])或者只导入你要用的名称:
# Plugin frameworkfrom linkcad.v1.plugin import tool, Tool, Option, TableColumnfrom linkcad.v1.plugin import format_reader, FormatReader, DrawingContext, DrawingBuilderfrom linkcad.v1.plugin import format_writer, FormatWriter, WriterContext, ShapeInfo, WriterControllerfrom linkcad.v1.plugin import DialogSpec, ChoiceItem, EventLog, Phase, LayerFlags, SortOrderfrom linkcad.v1.plugin import HolesMode, PolygonType, EndCap, FillRule, UNIT_IN_METERS
# Databasefrom linkcad.v1.db import Drawing, Cell, Layer, Shape, Polygon, Polylinefrom linkcad.v1.db import Arc, Ellipse, Donut, Nurbs, Text, Reffrom linkcad.v1.db import Object, DrawingObject, CellObject, Color, Propertyfrom linkcad.v1.db import ReadLock, WriteLock, Transactionfrom linkcad.v1.db import Unit, ObjectType, CellContext, EndCap, FillRulefrom linkcad.v1.db import BooleanOperation, MergeLayerPolarityResult
# Geometryfrom linkcad.v1.geom import Point, Vector, Bounds, Transformation, Angle, Resolution
# Edit tasksfrom linkcad.v1.edit import MergeTask, FlattenTask, FillRule, HolesMode, ShapesToConvertfrom linkcad.v1.edit import CellFilter, LayerFilter, ShapeFilter
# Options & loggingfrom linkcad.v1.env import get_option_boolean, set_option_boolean, EventLog, Severity
# File conversionfrom linkcad.v1.conv import Conversion, Conversions, FormatRegistry, FormatInfofrom linkcad.v1.conv import Format, FormatAttributes
# Boolean geometryfrom linkcad.v1.libgraph import boolean_and, boolean_or, ShapeProcessor, succeeded
# Conversion controllerfrom linkcad.v1.controller import ConversionController, ConversionState, ProgressInfo