Files
OneCAD/tests/oracle/82-thin-extrude-frame/recipe.json
T
Lasse Lian 6df69e9def Thin Extrude: walls of a set thickness along sketch curves (#721) (#991)
Thin Extrude builds walls of a set thickness along sketch curves, open chains and closed loops, with the wall centred, inside, outside or on both sides at two thicknesses. Saved under format 20 (thin on an Extrude); an extrude without thin saves as before. Closes #721.
2026-10-14 11:46:16 -04:00

150 lines
2.5 KiB
JSON

{
"id": "82-thin-extrude-frame",
"name": "Thin extrude frame",
"description": "40x40 square of lines centred on origin; a thin wall 3 mm inside and 1 mm outside the lines, extruded 10 mm.",
"exercises": [
"extrude",
"thin"
],
"units": {
"length": "mm",
"angle": "deg",
"area": "mm2",
"volume": "mm3"
},
"conventions": {
"world": "right-handed; Z up. XY/XZ/YZ are the origin planes.",
"sketch_frame": "sketch-local 2D coords; world = plane.origin + x*plane.x_dir + y*plane.y_dir (origin in mm). Profile 'loops' list sketch entity ids.",
"point_refs": "'<id>.start' / '<id>.end' / '<id>.center' reuse (share) that existing sketch point; 'at' is its position when referenced.",
"extrude_direction": "positive = along sketch plane normal unless stated",
"selections": "selected faces/edges carry 'point': a world-space point on the face / the edge's parametric midpoint; pick the nearest face/edge to it."
},
"parameters": [],
"features": [
{
"op": "sketch",
"name": "Sketch1",
"plane": {
"ref": "XY",
"origin": [
0.0,
0.0,
0.0
],
"x_dir": [
1.0,
0.0,
0.0
],
"y_dir": [
0.0,
1.0,
0.0
],
"normal": [
0.0,
0.0,
1.0
]
},
"entities": [
{
"type": "line",
"start": {
"at": [
-20,
-20
]
},
"end": {
"at": [
20,
-20
]
},
"id": "l1"
},
{
"type": "line",
"start": {
"ref": "l1.end",
"at": [
20.0,
-20.0
]
},
"end": {
"at": [
20,
20
]
},
"id": "l2"
},
{
"type": "line",
"start": {
"ref": "l2.end",
"at": [
20.0,
20.0
]
},
"end": {
"at": [
-20,
20
]
},
"id": "l3"
},
{
"type": "line",
"start": {
"ref": "l3.end",
"at": [
-20.0,
20.0
]
},
"end": {
"ref": "l1.start",
"at": [
-20.0,
-20.0
]
},
"id": "l4"
}
],
"constraints": [],
"dimensions": []
},
{
"op": "extrude",
"name": "Frame",
"operation": "new",
"extent": {
"type": "distance",
"distance": 10,
"direction": "positive"
},
"result_bodies": [
"Frame"
],
"thin": {
"sketch": "Sketch1",
"curves": [
"l1",
"l2",
"l3",
"l4"
],
"thickness": 3,
"side": "two_sides",
"thickness2": 1
}
}
]
}