Kernel rig: a symmetric surface extrude with no convention is the total distance (#9091); the per-side reading is its own case

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
jyviko
2026-10-29 19:10:38 -04:00
committed by Irakli Kourtis
parent 3f5efdf70f
commit dc093b0cb4
3 changed files with 91 additions and 5 deletions
@@ -0,0 +1,26 @@
{
"sources": [],
"what": "a line extruded symmetric 10 as a surface with the legacy per-side convention: 10 each way",
"source": "analytic",
"method": "convention legacy_per_side gives the distance on each side: the plane y = 0, x 0..10, z -10..10, area 200, 4 free edges",
"valid": false,
"body_count": 1,
"faces": 1,
"boundary_edges": 4,
"area_mm2": 200.0,
"surface_types": [
"plane"
],
"bbox": {
"min": [
0,
0,
-10
],
"max": [
10,
0,
10
]
}
}
@@ -0,0 +1,60 @@
{
"commands": [
{
"command": "sketch.create",
"params": {
"plane": {
"origin": [
0,
0,
0
],
"x_dir": [
1,
0,
0
],
"y_dir": [
0,
1,
0
]
},
"name": "S"
}
},
{
"command": "sketch.line",
"params": {
"points": [
[
0,
0
],
[
10,
0
]
],
"infer": false
}
},
{
"command": "sketch.finish",
"params": {}
},
{
"command": "surface.extrude",
"params": {
"sketch": "S",
"curves": [
"l1"
],
"distance": 10,
"direction": "symmetric",
"body_name": "Wall",
"convention": "legacy_per_side"
}
}
]
}
@@ -1,13 +1,13 @@
{
"sources": [],
"what": "a line extruded symmetric 10 as a surface: surface.extrude's distance is per side (its legacy convention, kept by default), so 10 each way",
"what": "a line extruded symmetric 10 as a surface with no convention: the total, 5 each side of the sketch plane, as for a solid extrude (#9091)",
"source": "analytic",
"method": "surface.extrude without `convention` keeps legacy_per_side (crates/engine/src/cmd/features.rs, extrude_convention_tests): the plane y = 0, x 0..10, z -10..10, area 200, 4 free edges",
"method": "surface.extrude without `convention` reads the distance as the total (default_extrude_convention): the plane y = 0, x 0..10, z -5..5, area 100, 4 free edges",
"valid": false,
"body_count": 1,
"faces": 1,
"boundary_edges": 4,
"area_mm2": 200.0,
"area_mm2": 100.0,
"surface_types": [
"plane"
],
@@ -15,12 +15,12 @@
"min": [
0,
0,
-10
-5
],
"max": [
10,
0,
10
5
]
}
}