- name
- onshape-featurescript
Onshape FeatureScript Generator
Quick Start
Analyze request → Match pattern → Gen FS code → Validate logic.
Core Workflow:
- 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)
- Enum + Cond Param:
export enum AlignmentStyle { Centered, Tangent, Offset };
if (definition.alignment == AlignmentStyle.Offset) { isLength(def.offsetDistance...); }- Safe Shell Caps:
var capFaces = qFacesParallelToDirection(qOwnedByBody(finalBody, EntityType.FACE), vector(0,1,0));- Union Primary First:
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.