feat: add spindle direction selection contract

This commit is contained in:
Nick Hermes
2026-06-02 15:40:16 +00:00
parent 02d9323c43
commit beeb521ca7
21 changed files with 689 additions and 133 deletions

View File

@@ -65,13 +65,23 @@
"description": "Explicit record of every constraint, clip, or approximation applied.",
"items": {
"type": "object",
"required": ["source_pass_id", "field", "description"],
"required": [
"source_pass_id",
"field",
"description"
],
"properties": {
"source_pass_id": { "type": "string" },
"field": { "type": "string" },
"source_pass_id": {
"type": "string"
},
"field": {
"type": "string"
},
"planned_value": {},
"translated_value": {},
"description": { "type": "string" }
"description": {
"type": "string"
}
}
}
}
@@ -86,31 +96,71 @@
"duration_s",
"commanded_force_n",
"commanded_table_rpm",
"commanded_spindle_rpm"
"commanded_spindle_rpm",
"commanded_spindle_direction"
],
"properties": {
"segment_id": { "type": "string" },
"sequence_index": { "type": "integer", "minimum": 1 },
"segment_id": {
"type": "string"
},
"sequence_index": {
"type": "integer",
"minimum": 1
},
"source_pass_id": {
"type": "string",
"description": "Back-reference to the planning pass this segment came from."
},
"duration_s": { "type": "number", "minimum": 0 },
"commanded_force_n": { "type": "number", "minimum": 0 },
"commanded_table_rpm": { "type": "number", "minimum": 0 },
"commanded_spindle_rpm": { "type": "number", "minimum": 0 },
"commanded_cam_amplitude_deg": { "type": "number" },
"commanded_cam_offset_deg": { "type": "number" },
"duration_s": {
"type": "number",
"minimum": 0
},
"commanded_force_n": {
"type": "number",
"minimum": 0
},
"commanded_table_rpm": {
"type": "number",
"minimum": 0
},
"commanded_spindle_rpm": {
"type": "number",
"minimum": 0
},
"commanded_cam_amplitude_deg": {
"type": "number"
},
"commanded_cam_offset_deg": {
"type": "number"
},
"force_modulation": {
"type": "object",
"properties": {
"harmonic": { "type": "integer" },
"amplitude_n": { "type": "number" },
"phase_deg": { "type": "number" }
"harmonic": {
"type": "integer"
},
"amplitude_n": {
"type": "number"
},
"phase_deg": {
"type": "number"
}
}
},
"dither_profile": { "type": "string" },
"notes": { "type": "string" }
"dither_profile": {
"type": "string"
},
"notes": {
"type": "string"
},
"commanded_spindle_direction": {
"type": "string",
"enum": [
"cw",
"ccw"
],
"description": "Toolhead spindle rotation direction, as viewed from above the toolhead looking down toward the mirror/tool contact. ODrive sign mapping is commissioned to match this physical convention."
}
}
}
}