forked from 1b-agent/opencadstudio-upstream
feat: 3D ARRAY (ARRAY3D / 3DARRAY command)
Three-dimensional rectangular array: prompts for rows, columns, levels and their respective spacings, then generates copies translated along X (columns), Z (rows in drawing plane), and Y (levels / height). Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
This commit is contained in:
1 parent
3cdd86a674
commit
9ede70ef1c
3 files changed
+127
-1
No files matched your search
@@ -1268,6 +1268,22 @@ impl H7CAD {
|
||||
}
|
||||
}
|
||||
|
||||
"ARRAY3D"|"3DARRAY" => {
|
||||
let handles: Vec<_> = self.tabs[i].scene.selected_entities()
|
||||
.into_iter().map(|(h, _)| h).collect();
|
||||
if handles.is_empty() {
|
||||
use crate::modules::home::select::SelectObjectsCommand;
|
||||
let cmd = SelectObjectsCommand::new("ARRAY3D");
|
||||
self.command_line.push_info(&cmd.prompt());
|
||||
self.tabs[i].active_cmd = Some(Box::new(cmd));
|
||||
} else {
|
||||
use crate::modules::home::modify::array::Array3DCommand;
|
||||
let new_cmd = Array3DCommand::new(handles);
|
||||
self.command_line.push_info(&new_cmd.prompt());
|
||||
self.tabs[i].active_cmd = Some(Box::new(new_cmd));
|
||||
}
|
||||
}
|
||||
|
||||
"CHAMFER"|"CHA" => {
|
||||
use crate::modules::home::modify::fillet::ChamferCommand;
|
||||
let entities: Vec<_> = self.tabs[i].scene.entity_wires().iter()
|
||||
|
||||
Reference in new issue
Block a user