diff --git a/assets/icons/modify_ncopy.svg b/assets/icons/modify_ncopy.svg new file mode 100644 index 000000000..a7ce9f0ba --- /dev/null +++ b/assets/icons/modify_ncopy.svg @@ -0,0 +1 @@ + diff --git a/src/app/commands/blocks.rs b/src/app/commands/blocks.rs index d020e42cc..50f4aedbc 100644 --- a/src/app/commands/blocks.rs +++ b/src/app/commands/blocks.rs @@ -659,6 +659,13 @@ impl OpenCADStudio { // every nested object is copied — the block is not exploded). "NCOPY" | "NCOPYALL" => { use crate::modules::draw::modify::explode::explode_entity; + if cmd == "NCOPY" && self.tabs[i].scene.selected.is_empty() { + use crate::modules::draw::select::SelectObjectsCommand; + let selection = SelectObjectsCommand::new("NCOPY"); + self.command_line.push_info(&selection.prompt()); + self.tabs[i].active_cmd = Some(Box::new(selection)); + return Some(self.finish_dispatch(cmd)); + } let inserts: Vec = self.tabs[i] .scene .selected_entities() diff --git a/src/ui/ribbon/modify_tools/11_ncopy.rs b/src/ui/ribbon/modify_tools/11_ncopy.rs new file mode 100644 index 000000000..e926ce540 --- /dev/null +++ b/src/ui/ribbon/modify_tools/11_ncopy.rs @@ -0,0 +1,6 @@ +Tool { + command: "NCOPY", + label: "Copy Nested Objects", + icon: include_bytes!(concat!(env!("CARGO_MANIFEST_DIR"), "/assets/icons/modify_ncopy.svg")), + options: &[], +}