Onshape FeatureScript Generator
Quick Start
Analyze request → Match pattern → Gen FS code → Validate logic.
Core Workflow:
- 1. Precondition: Enums/lengths/reals w/ bounds.
- Body: Sketches → Extrudes → Booleans → Shell → Wrap/Thicken labels.
- Pitfalls: qOwnedByBody(finalBody), if/else (no ternary lengths), cylinder(coordSystem).
Key Patterns (Memorize)
export enum AlignmentStyle { Centered, Tangent, Offset };
if (definition.alignment == AlignmentStyle.Offset) { isLength(def.offsetDistance...); }
var capFaces = qFacesParallelToDirection(qOwnedByBody(finalBody, EntityType.FACE), vector(0,1,0));
qUnion([qCreatedBy(id+"inlet", EntityType.BODY), ...]);
- - Wrapped Label: skText → opWrap → opThicken.
Dust Fittings Lib
Z-axis: Inlet Z=0 (-Z), Outlet Z=trans (+Z), Branch +X.
See
FITTINGS.md for full spec/pitfalls.
Resources
- - API Patterns: PATTERNS.md
- Fonts: AllertaStencil-Regular.ttf for labels.
- Validate: Test mentally; no runtime here.
Gen code → User pastes to Onshape FS editor.
Onshape FeatureScript 生成器
快速入门
分析请求 → 匹配模式 → 生成FS代码 → 验证逻辑。
核心工作流程:
- 1. 前置条件:带边界的枚举/长度/实数。
- 主体:草图 → 拉伸 → 布尔运算 → 抽壳 → 包裹/加厚标签。
- 常见陷阱:qOwnedByBody(finalBody),if/else(无三元长度),cylinder(coordSystem)。
关键模式(需牢记)
export enum AlignmentStyle { Centered, Tangent, Offset };
if (definition.alignment == AlignmentStyle.Offset) { isLength(def.offsetDistance...); }
var capFaces = qFacesParallelToDirection(qOwnedByBody(finalBody, EntityType.FACE), vector(0,1,0));
qUnion([qCreatedBy(id+inlet, EntityType.BODY), ...]);
- - 包裹标签:skText → opWrap → opThicken。
防尘接头库
Z轴:入口Z=0(-Z方向),出口Z=trans(+Z方向),支管+X方向。
完整规格/陷阱请参见
FITTINGS.md。
资源
- - API模式:PATTERNS.md
- 字体:标签使用AllertaStencil-Regular.ttf。
- 验证:仅进行逻辑推演;此处无运行时环境。
生成代码 → 用户粘贴至Onshape FS编辑器。