Kernel rig: construction cases, where two edges meet or come closest, and parallel edges refused

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
jyviko
2026-10-29 17:10:12 -04:00
committed by Irakli Kourtis
parent 1ac12ba725
commit f721088956
6 changed files with 137 additions and 0 deletions
@@ -0,0 +1,15 @@
{
"sources": [],
"what": "where two box edges meet",
"source": "analytic",
"method": "box 40 x 30 x 20 with a corner at the origin (x 0..40, y 0..30, z 0..20): y 0, z 0 along X and x 40, z 0 along Y meet at (40,0,0)",
"construction": {
"P": {
"point": [
40,
0,
0
]
}
}
}
@@ -0,0 +1,33 @@
{
"commands": [
{
"command": "solid.box",
"params": {
"length": 40,
"width": 30,
"height": 20,
"body_name": "Box"
}
},
{
"command": "construct.point.two_edges",
"params": {
"a": {
"edge": [
20,
0,
0
]
},
"b": {
"edge": [
40,
15,
0
]
},
"name": "P"
}
}
]
}
@@ -0,0 +1,8 @@
{
"sources": [],
"what": "two parallel box edges",
"source": "analytic",
"method": "box 40 x 30 x 20 with a corner at the origin (x 0..40, y 0..30, z 0..20): the edges y 0, z 0 and y 30, z 0 both run along X: they never meet nor have one closest point: refused",
"outcome": "refused",
"refusal": "the edges are parallel"
}
@@ -0,0 +1,33 @@
{
"commands": [
{
"command": "solid.box",
"params": {
"length": 40,
"width": 30,
"height": 20,
"body_name": "Box"
}
},
{
"command": "construct.point.two_edges",
"params": {
"a": {
"edge": [
20,
0,
0
]
},
"b": {
"edge": [
20,
30,
0
]
},
"name": "P"
}
}
]
}
@@ -0,0 +1,15 @@
{
"sources": [],
"what": "where two skew box edges come closest",
"source": "analytic",
"method": "box 40 x 30 x 20 with a corner at the origin (x 0..40, y 0..30, z 0..20): y 0, z 0 along X and x 40, z 20 along Y come closest at (40,0,0) and (40,0,20): the point halfway between, (40,0,10)",
"construction": {
"P": {
"point": [
40,
0,
10
]
}
}
}
@@ -0,0 +1,33 @@
{
"commands": [
{
"command": "solid.box",
"params": {
"length": 40,
"width": 30,
"height": 20,
"body_name": "Box"
}
},
{
"command": "construct.point.two_edges",
"params": {
"a": {
"edge": [
20,
0,
0
]
},
"b": {
"edge": [
40,
15,
20
]
},
"name": "P"
}
}
]
}