feat(3drotate): rotate about an axis picked in space

3DROTATE (ROTATE3D) took the drawing's rotation path, so a polyline only
turned in its own plane. It now asks for a base point, an axis — X, Y, Z
or a second point — and an angle, and rotates the selection about that
axis in space.

Fixes #1641

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Hakan SevenandClaude Opus 5.5 committed 2026-10-07 08:50:06 +03:00
1 parent e854481f72
commit f485df7636
24 files changed
+170 -16

No files matched your search

+3
View File
@@ -4878,6 +4878,9 @@ pub(super) fn message_attribute(source: &str) -> Option<(&'static str, &'static
"Unknown command: {}" => Some(("command", "unknown-command-cmd")),
"Unsaved changes will be discarded." => Some(("common", "unsaved-changes-will-be-discarded")),
"Discard & close" => Some(("common", "discard-close")),
"3DROTATE Specify base point [%{count} objects]:" => Some(("common", "threedrotate-specify-base-point-count-objects")),
"3DROTATE Specify rotation axis [X/Y/Z] or a second point on it <Z>:" => Some(("common", "threedrotate-specify-rotation-axis")),
"3DROTATE Specify rotation angle <%{a}>:" => Some(("common", "threedrotate-specify-rotation-angle-a")),
"Select Template" => Some(("common", "select-template-title")),
"CHSPACE: Command not allowed in the Model tab." => Some(("common", "chspace-model-tab")),
"CHSPACE: No plan-view viewport to change space through." => Some(("common", "chspace-no-viewport")),