feat: strengthen modeling, configuration, and assembly workflows
Preserve linked sketch identities through deterministic face projection and resizing. Fix origin-corner picking, persistent inline navigation, appearance editing, configuration styles, component properties, contact sweeps, sheet exports, analytic STEP offsets, and bounded rolling-ball fit accuracy. Validated with full cargo xtask ci, native workflow screenshots, repeated enclosure replays, and analytic geometry regressions.
This commit is contained in:
1 parent
22672585c9
commit
d71bdb78ec
54 files changed
+4179
-316
No files matched your search
@@ -360,7 +360,12 @@ pub fn rows(app: &mut SolveApp, ui: &mut egui::Ui, k: &mut Sm, inputs: &mut [Sel
|
||||
}
|
||||
row_label(ui, "");
|
||||
if ui.button("Export DXF…").clicked() {
|
||||
*status = Some(export_dxf(app, v["body"].as_str().unwrap_or("")));
|
||||
*status = Some(export_flat(app, v["body"].as_str().unwrap_or(""), "dxf"));
|
||||
}
|
||||
ui.end_row();
|
||||
row_label(ui, "");
|
||||
if ui.button("Export Bend Table…").clicked() {
|
||||
*status = Some(export_flat(app, v["body"].as_str().unwrap_or(""), "csv"));
|
||||
}
|
||||
ui.end_row();
|
||||
if let Some(s) = status {
|
||||
@@ -381,12 +386,13 @@ pub fn rows(app: &mut SolveApp, ui: &mut egui::Ui, k: &mut Sm, inputs: &mut [Sel
|
||||
enter
|
||||
}
|
||||
|
||||
fn export_dxf(app: &mut SolveApp, body: &str) -> String {
|
||||
let name = format!("{}-{body}.dxf", app.session.doc.name);
|
||||
let Some(path) = app.services.pick_save.as_ref().and_then(|f| f(&name, &["dxf"])) else {
|
||||
fn export_flat(app: &mut SolveApp, body: &str, extension: &str) -> String {
|
||||
let name = format!("{}-{body}.{extension}", app.session.doc.name);
|
||||
let Some(path) = app.services.pick_save.as_ref().and_then(|f| f(&name, &[extension])) else {
|
||||
return "Export cancelled".into();
|
||||
};
|
||||
match app.run("sheet.export_dxf", json!({"body": body, "path": path})) {
|
||||
let command = if extension == "csv" { "sheet.export_bend_table" } else { "sheet.export_dxf" };
|
||||
match app.run(command, json!({"body": body, "path": path})) {
|
||||
Ok(_) => {
|
||||
app.set_status(format!("Exported {path}"), false);
|
||||
format!("Saved {path}")
|
||||
|
||||
Reference in new issue
Block a user