added motion trajectory simulation

This commit is contained in:
ykcheungab
2026-09-23 09:58:00 +08:00
parent f1bec62ca4
commit 3347d17a20
25 changed files with 5198 additions and 1762 deletions
+23 -6
View File
@@ -210,20 +210,37 @@
"row_sensor_normal": "Surface normal",
"row_platform_point": "Platform point (mm)",
"row_pose": "Pose X / Y / yaw / pitch",
"row_table_move": "Table move X / Y",
"row_residual": "Alignment residual",
"row_frames": "Frame mapping",
"row_bundle": "Bundle",
"bundle_summary": "{vertices} vertices · {triangles} triangles · {extent} mm · {scale} mm per unit",
"plate_thickness": "Mounting plate",
"tool_offset": "Tool offset x,y,z",
"tool_xy": "Tool X / Y",
"tool_hint": "Where the tool is in the table frame, straight above the table origin by default. The table move is what carries the contact to this point. Measure it on the real setup.",
"sensor_xy": "Sensor X / Y",
"sensor_zy": "Sensor Z / yaw",
"setup_hint": "How the sensor actually sits on the stack with the machine at zero: X/Y/Z translation and a yaw about Z. Z is the mounting plate, shims included — there is no separate plate field. Measure it on the real setup.",
"clear_points": "Clear points",
"remove_selected": "Remove selected",
"move_up": "Move up",
"move_down": "Move down",
"selected_count": "{count} selected",
"table_hint": "Tick a row to select it, double-click a sensor coordinate or normal to edit it. The pose columns are solved from those, so they update themselves.",
"edit_not_a_number": "That cell needs a number; the previous value was kept.",
"point_count": "{count} points",
"residual_value": "{residual}° — {verdict}",
"reachable": "this normal can be aligned with Z",
"unreachable": "this normal cannot be aligned with Z (yaw travel limit)",
"reach_summary": "Alignable surface vertices {aligned}/{vertices} ({share}%), worst {worst}°",
"preview_legend": "Surface colour = alignment residual (green aligned, red not) · yellow is the tool axis · X/Y are the table, Z the tool travel",
"preview_legend": "What the colours mean: green→red is the surface's alignment residual · the red/green/blue triad is the table's X/Y/Z, at the origin · yellow line is the tool axis (+Z, at the tool's own X/Y) · orange dot is the table origin · amber outline is the sensor base plane, at the sensor's Z offset (the mounting plate) · cyan line is the planned path (stage arc, then table move) · the violet ring is the table's pose now and the faint one is where it finishes, against the fixed grid that is where it started · red dot is the point selected in the table · white dot with blue line is the picked contact and its normal.",
"preview_legend_short": "green→red = alignment residual · red/green/blue = table X/Y/Z · yellow = tool axis (+Z) · orange = origin · amber box = base plane · cyan = planned path · violet ring = table pose · white dot = contact",
"show_axes": "Show motion axes",
"show_table": "Show table origin plane",
"show_trajectory": "Show tool path",
"path_summary": "Planned path: travels {reach} mm; arc radius {radius} mm about the table origin.",
"landing": "lands X/Y {x} {y} mm",
"tool_at": "tool X/Y {x} {y} mm",
"landing_on_tool": "✓ on the tool",
"landing_off_tool": "✗ off the tool by {gap} mm",
"preview_legend_table": "The grey lines crossing at one origin are the two rotation axes. The grid is the initial state and does not move; the violet ring is the table's own frame, which the move carries away from it.",
"sim_play": "Play motion",
"sim_stop": "Stop",
"sim_hint": "Play the solved motion: the stages rotate the normal onto the tool axis, then the XY table moves. Pick a point first.",
@@ -234,7 +251,7 @@
"col_nx": "nx", "col_ny": "ny", "col_nz": "nz",
"col_X": "X", "col_Y": "Y", "col_Z": "Z",
"col_yaw": "yaw", "col_pitch": "pitch", "col_residual": "residual(°)",
"loaded": "Bundle loaded: {vertices} vertices · {extent} mm",
"loaded": "Bundle loaded: {vertices} vertices · {triangles} triangles · {extent} mm · {scale} mm per unit",
"load_failed": "Load failed: {error}",
"picked": "Picked: residual {residual}° · yaw {yaw}° · pitch {pitch}°"
},