跳到主要内容

Sketch API

CadFlow 提供现代 SketchDocument 前端与兼容 Sketch 数据模型。两者都在一个平面上表示声明式二维几何;方法和辅助函数返回更新后的值,不修改之前的状态。

Document 工作流

with cad.Model() as model:
sketch = model.sketch("plate")
sketch = sketch.add_point("a", 0, 0).add_point("b", 40, 0)
sketch = sketch.add_point("c", 40, 20).add_point("d", 0, 20)
sketch = (
sketch.add_line("ab", "a", "b")
.add_line("bc", "b", "c")
.add_line("cd", "c", "d")
.add_line("da", "d", "a")
.constrain_horizontal("ab")
.constrain_vertical("bc")
.constrain_fix("a")
)
solve = sketch.inspect(strict=False)
face = sketch.to_native_face(model, strict=False)

实体名称是 Sketch 内部的稳定引用。Diagnostic 与 Constraint Reference 会报告这些名称,因此应使用描述明确且唯一的 ID。

实体类型

公共 API 覆盖 Point、Line、Circle、Arc 与 B-spline。SketchRef 标识实体或 Point 结果。兼容辅助函数使用 add_line_rsketch 等名称,并明确返回替代 Sketch。

约束

分组公共关系
关联coincident、connect、point-on、midpoint
方向horizontal、vertical、parallel、perpendicular、collinear
曲线tangent、concentric、equal radius
对称与相等symmetric、equal length
尺寸distance、X/Y distance、length、angle、radius、diameter
固定fix

避免冗余约束。只固定足以消除刚体自由度的几何,再由尺寸与几何关系决定剩余自由度。

Solver 与检查

SketchSolverOptions 控制 Tolerance 与迭代上限。Solver Backend 可注册、设为全局默认,或通过 sketch_solver_backend(...) 上下文临时选择。SketchSolveResult 报告状态、自由度、诊断与求解值。

构建和修复阶段使用 strict=False。发布边界要求欠约束或不一致立即失败时,使用 strict=Truerequire_fully_constrained=True

下沉为几何

make_wire_from_sketch_rwiremake_face_from_sketch_rface 求解并下沉选中的 Profile。SketchDocument.to_native_face(model, strict=...) 生成由 Model 持有的原生 Face。Profile Selector 可用索引或稳定名称;在受支持的轮廓中,Inner Profile 可定义孔洞。

Sketch 是源状态,Face 或 Wire 是派生拓扑。修改实体或约束后应重新下沉新 Shape,不要假定旧 Shape 自动更新。

全部符号见 47 个 Sketch API