From 055f1cdb1a1ac86ee64ea3eccd550ce55014a22f Mon Sep 17 00:00:00 2001 From: Hakan Seven Date: Sat, 5 Sep 2026 14:46:06 +0300 Subject: [PATCH] Redesign modelling ribbon icons --- assets/icons/model/box.svg | 8 +++++++ assets/icons/model/chamfer.svg | 9 ++++++++ assets/icons/model/cone.svg | 6 ++++++ assets/icons/model/cylinder.svg | 8 +++++++ assets/icons/model/extrude.svg | 9 ++++++++ assets/icons/model/fillet.svg | 9 ++++++++ assets/icons/model/intersect.svg | 13 ++++++++++++ assets/icons/model/loft.svg | 7 +++++++ assets/icons/model/polysolid.svg | 10 +++++++++ assets/icons/model/presspull.svg | 11 ++++++++++ assets/icons/model/pyramid.svg | 8 +++++++ assets/icons/model/revolve.svg | 8 +++++++ assets/icons/model/sphere.svg | 6 ++++++ assets/icons/model/subtract.svg | 12 +++++++++++ assets/icons/model/sweep.svg | 8 +++++++ assets/icons/model/torus.svg | 6 ++++++ assets/icons/model/union.svg | 10 +++++++++ assets/icons/model/wedge.svg | 7 +++++++ src/modules/model/mod.rs | 36 ++++++++++++++++---------------- 19 files changed, 173 insertions(+), 18 deletions(-) create mode 100644 assets/icons/model/box.svg create mode 100644 assets/icons/model/chamfer.svg create mode 100644 assets/icons/model/cone.svg create mode 100644 assets/icons/model/cylinder.svg create mode 100644 assets/icons/model/extrude.svg create mode 100644 assets/icons/model/fillet.svg create mode 100644 assets/icons/model/intersect.svg create mode 100644 assets/icons/model/loft.svg create mode 100644 assets/icons/model/polysolid.svg create mode 100644 assets/icons/model/presspull.svg create mode 100644 assets/icons/model/pyramid.svg create mode 100644 assets/icons/model/revolve.svg create mode 100644 assets/icons/model/sphere.svg create mode 100644 assets/icons/model/subtract.svg create mode 100644 assets/icons/model/sweep.svg create mode 100644 assets/icons/model/torus.svg create mode 100644 assets/icons/model/union.svg create mode 100644 assets/icons/model/wedge.svg diff --git a/assets/icons/model/box.svg b/assets/icons/model/box.svg new file mode 100644 index 000000000..b5bdd3387 --- /dev/null +++ b/assets/icons/model/box.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/assets/icons/model/chamfer.svg b/assets/icons/model/chamfer.svg new file mode 100644 index 000000000..709ae1d0c --- /dev/null +++ b/assets/icons/model/chamfer.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/assets/icons/model/cone.svg b/assets/icons/model/cone.svg new file mode 100644 index 000000000..1de0d9973 --- /dev/null +++ b/assets/icons/model/cone.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/icons/model/cylinder.svg b/assets/icons/model/cylinder.svg new file mode 100644 index 000000000..e67f2ddd3 --- /dev/null +++ b/assets/icons/model/cylinder.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/assets/icons/model/extrude.svg b/assets/icons/model/extrude.svg new file mode 100644 index 000000000..2d4313745 --- /dev/null +++ b/assets/icons/model/extrude.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/assets/icons/model/fillet.svg b/assets/icons/model/fillet.svg new file mode 100644 index 000000000..94745172c --- /dev/null +++ b/assets/icons/model/fillet.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/assets/icons/model/intersect.svg b/assets/icons/model/intersect.svg new file mode 100644 index 000000000..a0c28e880 --- /dev/null +++ b/assets/icons/model/intersect.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/assets/icons/model/loft.svg b/assets/icons/model/loft.svg new file mode 100644 index 000000000..983a96523 --- /dev/null +++ b/assets/icons/model/loft.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/assets/icons/model/polysolid.svg b/assets/icons/model/polysolid.svg new file mode 100644 index 000000000..2f56acdaf --- /dev/null +++ b/assets/icons/model/polysolid.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/assets/icons/model/presspull.svg b/assets/icons/model/presspull.svg new file mode 100644 index 000000000..ecc793f02 --- /dev/null +++ b/assets/icons/model/presspull.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/assets/icons/model/pyramid.svg b/assets/icons/model/pyramid.svg new file mode 100644 index 000000000..d2a5a1324 --- /dev/null +++ b/assets/icons/model/pyramid.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/assets/icons/model/revolve.svg b/assets/icons/model/revolve.svg new file mode 100644 index 000000000..047ebf48f --- /dev/null +++ b/assets/icons/model/revolve.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/assets/icons/model/sphere.svg b/assets/icons/model/sphere.svg new file mode 100644 index 000000000..3ff1a9687 --- /dev/null +++ b/assets/icons/model/sphere.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/icons/model/subtract.svg b/assets/icons/model/subtract.svg new file mode 100644 index 000000000..933b09690 --- /dev/null +++ b/assets/icons/model/subtract.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/assets/icons/model/sweep.svg b/assets/icons/model/sweep.svg new file mode 100644 index 000000000..c7e69eee0 --- /dev/null +++ b/assets/icons/model/sweep.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/assets/icons/model/torus.svg b/assets/icons/model/torus.svg new file mode 100644 index 000000000..75835fea7 --- /dev/null +++ b/assets/icons/model/torus.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/icons/model/union.svg b/assets/icons/model/union.svg new file mode 100644 index 000000000..34a79d089 --- /dev/null +++ b/assets/icons/model/union.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/assets/icons/model/wedge.svg b/assets/icons/model/wedge.svg new file mode 100644 index 000000000..d54f4b295 --- /dev/null +++ b/assets/icons/model/wedge.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/modules/model/mod.rs b/src/modules/model/mod.rs index c430ffc30..18ee79a87 100644 --- a/src/modules/model/mod.rs +++ b/src/modules/model/mod.rs @@ -10,24 +10,24 @@ use crate::modules::{CadModule, IconKind, ModuleEvent, RibbonGroup, RibbonItem, pub struct ModelModule; -const BOX_ICON: &[u8] = include_bytes!("../../../assets/icons/box3d.svg"); -const CYLINDER_ICON: &[u8] = include_bytes!("../../../assets/icons/cylinder3d.svg"); -const CONE_ICON: &[u8] = include_bytes!("../../../assets/icons/cone3d.svg"); -const SPHERE_ICON: &[u8] = include_bytes!("../../../assets/icons/sphere3d.svg"); -const PYRAMID_ICON: &[u8] = include_bytes!("../../../assets/icons/pyramid3d.svg"); -const WEDGE_ICON: &[u8] = include_bytes!("../../../assets/icons/wedge3d.svg"); -const TORUS_ICON: &[u8] = include_bytes!("../../../assets/icons/torus3d.svg"); -const POLYSOLID_ICON: &[u8] = include_bytes!("../../../assets/icons/polysolid.svg"); -const EXTRUDE_ICON: &[u8] = include_bytes!("../../../assets/icons/extrude.svg"); -const REVOLVE_ICON: &[u8] = include_bytes!("../../../assets/icons/revolve.svg"); -const LOFT_ICON: &[u8] = include_bytes!("../../../assets/icons/loft.svg"); -const SWEEP_ICON: &[u8] = include_bytes!("../../../assets/icons/sweep.svg"); -const PRESSPULL_ICON: &[u8] = include_bytes!("../../../assets/icons/presspull.svg"); -const UNION_ICON: &[u8] = include_bytes!("../../../assets/icons/union.svg"); -const SUBTRACT_ICON: &[u8] = include_bytes!("../../../assets/icons/subtract.svg"); -const INTERSECT_ICON: &[u8] = include_bytes!("../../../assets/icons/intersect.svg"); -const FILLET_ICON: &[u8] = include_bytes!("../../../assets/icons/fillet.svg"); -const CHAMFER_ICON: &[u8] = include_bytes!("../../../assets/icons/chamfer.svg"); +const BOX_ICON: &[u8] = include_bytes!("../../../assets/icons/model/box.svg"); +const CYLINDER_ICON: &[u8] = include_bytes!("../../../assets/icons/model/cylinder.svg"); +const CONE_ICON: &[u8] = include_bytes!("../../../assets/icons/model/cone.svg"); +const SPHERE_ICON: &[u8] = include_bytes!("../../../assets/icons/model/sphere.svg"); +const PYRAMID_ICON: &[u8] = include_bytes!("../../../assets/icons/model/pyramid.svg"); +const WEDGE_ICON: &[u8] = include_bytes!("../../../assets/icons/model/wedge.svg"); +const TORUS_ICON: &[u8] = include_bytes!("../../../assets/icons/model/torus.svg"); +const POLYSOLID_ICON: &[u8] = include_bytes!("../../../assets/icons/model/polysolid.svg"); +const EXTRUDE_ICON: &[u8] = include_bytes!("../../../assets/icons/model/extrude.svg"); +const REVOLVE_ICON: &[u8] = include_bytes!("../../../assets/icons/model/revolve.svg"); +const LOFT_ICON: &[u8] = include_bytes!("../../../assets/icons/model/loft.svg"); +const SWEEP_ICON: &[u8] = include_bytes!("../../../assets/icons/model/sweep.svg"); +const PRESSPULL_ICON: &[u8] = include_bytes!("../../../assets/icons/model/presspull.svg"); +const UNION_ICON: &[u8] = include_bytes!("../../../assets/icons/model/union.svg"); +const SUBTRACT_ICON: &[u8] = include_bytes!("../../../assets/icons/model/subtract.svg"); +const INTERSECT_ICON: &[u8] = include_bytes!("../../../assets/icons/model/intersect.svg"); +const FILLET_ICON: &[u8] = include_bytes!("../../../assets/icons/model/fillet.svg"); +const CHAMFER_ICON: &[u8] = include_bytes!("../../../assets/icons/model/chamfer.svg"); /// Helper to declare a ribbon tool that fires a named command. fn tool(id: &'static str, label: &'static str, icon: &'static [u8]) -> ToolDef {