feat(view): -VIEW orthographic UCS, sEttings and Window like the reference

An orthographic preset sets its orthographic UCS while UCSORTHO is on
(*FRONT*, *RIGHT*, …; TOP returns to the world UCS); presets no longer
flip to the opposite view when repeated. -VIEW runs as its own command:
Window asks for the name and corners, sEttings loops over Background,
Categorize, Layer snapshot, live Section, Ucs and Visual style with the
reference prompts and messages, Save keeps the UCS with the view while
UCSVIEW is on and Restore brings it back. UCSORTHO and UCSVIEW are
profile variables.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
ramox81andClaude Opus 5.5 committed 2026-10-09 09:07:05 +03:00
1 parent 62ff1daade
commit cfe64ae6a4
10 files changed
+945 -127

No files matched your search

-13
View File
@@ -642,9 +642,6 @@ pub struct KeywordCommand {
/// Keyword a bare Enter dispatches at the verb step (`<Default>` prompts,
/// e.g. PLAN's `<Current>`). `None` = Enter cancels, as before.
default: Option<&'static str>,
/// Keywords taken at the verb step without being offered in the prompt
/// (-VIEW's view presets).
hidden: &'static [&'static str],
}
impl KeywordCommand {
@@ -654,12 +651,6 @@ impl KeywordCommand {
self
}
/// Keywords accepted at the verb step but not listed in the prompt.
pub fn with_hidden(mut self, keywords: &'static [&'static str]) -> Self {
self.hidden = keywords;
self
}
pub fn new(
name: &'static str,
prompt: &'static str,
@@ -671,7 +662,6 @@ impl KeywordCommand {
options,
pending: None,
default: None,
hidden: &[],
}
}
}
@@ -746,9 +736,6 @@ impl CadCommand for KeywordCommand {
None => {
// A leading underscore marks the English keyword, as in scripts.
let t = t.strip_prefix('_').unwrap_or(t);
if let Some(keyword) = self.hidden.iter().find(|keyword| keyword.eq_ignore_ascii_case(t)) {
return Some(CmdResult::Dispatch(format!("{} {keyword}", self.name)));
}
let Some((_, keyword, value_prompt)) = match_cmd_option(&self.options, t) else {
// Unknown verb — keep prompting rather than dispatch garbage.
return Some(CmdResult::NeedPoint);