diff --git a/src/app/update/mod.rs b/src/app/update/mod.rs index 27f6f648..140fbc07 100644 --- a/src/app/update/mod.rs +++ b/src/app/update/mod.rs @@ -1182,7 +1182,15 @@ impl OpenCADStudio { .push_error(crate::t!("STLOUT: no 3D mesh data in this drawing.").as_ref()); return Task::none(); } - self.cam_export_filename = format!("{}.stl", self.tabs[i].tab_display_name()); + // tab_display_name() is the drawing's real filename including + // its own extension (e.g. "Drawing1.dwg") - appending ".stl" + // directly produced "Drawing1.dwg.stl" instead of replacing + // it (CMMS bug report, 2026-08-27). + let base = std::path::Path::new(&self.tabs[i].tab_display_name()) + .file_stem() + .map(|s| s.to_string_lossy().into_owned()) + .unwrap_or_else(|| self.tabs[i].tab_display_name()); + self.cam_export_filename = format!("{base}.stl"); self.active_modal = Some(crate::app::ModalKind::CamExportDialog); Task::none() }