forked from 1b-agent/opencadstudio-upstream
Complete 3D face creation and editing
This commit is contained in:
1 parent
cc430cdbe9
commit
b8fb6f5ddb
6 files changed
+616
-45
No files matched your search
@@ -454,6 +454,31 @@ impl OpenCADStudio {
|
||||
self.tabs[i].active_cmd = Some(Box::new(new_cmd));
|
||||
}
|
||||
|
||||
"3DFACE" => {
|
||||
use crate::modules::draw::draw::face3d::Face3dCommand;
|
||||
let new_cmd = Face3dCommand::new();
|
||||
self.command_line.push_info(&new_cmd.prompt());
|
||||
self.tabs[i].active_cmd = Some(Box::new(new_cmd));
|
||||
}
|
||||
|
||||
"EDGE" => {
|
||||
use crate::modules::draw::draw::face3d::FaceEdgeCommand;
|
||||
let faces = self.tabs[i]
|
||||
.scene
|
||||
.document
|
||||
.entities()
|
||||
.filter_map(|entity| match entity {
|
||||
acadrust::EntityType::Face3D(face) => {
|
||||
Some((face.common.handle, face.clone()))
|
||||
}
|
||||
_ => None,
|
||||
})
|
||||
.collect();
|
||||
let new_cmd = FaceEdgeCommand::new(faces);
|
||||
self.command_line.push_info(&new_cmd.prompt());
|
||||
self.tabs[i].active_cmd = Some(Box::new(new_cmd));
|
||||
}
|
||||
|
||||
// 2D filled solid. Reached via SO / SOLID2D — the bare SOLID verb is
|
||||
// currently the shaded-display toggle (token collision tracked).
|
||||
"SOLID" | "SOLID2D" => {
|
||||
|
||||
@@ -122,6 +122,9 @@ impl OpenCADStudio {
|
||||
acadrust::EntityType::LwPolyline(polyline) => Some(polyline.vertices.len()),
|
||||
acadrust::EntityType::Polyline2D(polyline) => Some(polyline.vertices.len()),
|
||||
acadrust::EntityType::Leader(leader) => Some(leader.vertices.len()),
|
||||
acadrust::EntityType::Face3D(face) => {
|
||||
Some(if face.is_triangle() { 3 } else { 4 })
|
||||
}
|
||||
acadrust::EntityType::Spline(spline) => {
|
||||
Some(if crate::entities::spline::shows_fit_points(spline) {
|
||||
spline.fit_points.len()
|
||||
|
||||
@@ -4901,6 +4901,9 @@ impl OpenCADStudio {
|
||||
match self.tabs[i].scene.document.get_entity(handles[0]) {
|
||||
Some(acadrust::EntityType::LwPolyline(p)) => p.vertices.len(),
|
||||
Some(acadrust::EntityType::Polyline2D(p)) => p.vertices.len(),
|
||||
Some(acadrust::EntityType::Face3D(face)) => {
|
||||
if face.is_triangle() { 3 } else { 4 }
|
||||
}
|
||||
Some(acadrust::EntityType::Table(table)) => {
|
||||
table.row_count().saturating_mul(table.column_count())
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user