Skip to content

Commit 200b5ac

Browse files
committed
Add input co-ordinates to STEP import options
1 parent e4a7772 commit 200b5ac

File tree

2 files changed

+32
-8
lines changed

2 files changed

+32
-8
lines changed

modeling-cmds/src/convert_client_crate.rs

+14-6
Original file line numberDiff line numberDiff line change
@@ -141,9 +141,13 @@ mod format {
141141
InputFormat::Sldprt(sldprt::import::Options { split_closed_faces }) => {
142142
kt::InputFormat::Sldprt { split_closed_faces }
143143
}
144-
InputFormat::Step(step::import::Options { split_closed_faces }) => {
145-
kt::InputFormat::Step { split_closed_faces }
146-
}
144+
InputFormat::Step(step::import::Options {
145+
coords,
146+
split_closed_faces,
147+
}) => kt::InputFormat::Step {
148+
coords,
149+
split_closed_faces,
150+
},
147151
InputFormat::Stl(stl::import::Options { coords, units }) => kt::InputFormat::Stl {
148152
coords: coords.into(),
149153
units: units.into(),
@@ -168,9 +172,13 @@ mod format {
168172
kt::InputFormat::Sldprt { split_closed_faces } => {
169173
Self::Sldprt(crate::format::sldprt::import::Options { split_closed_faces })
170174
}
171-
kt::InputFormat::Step { split_closed_faces } => {
172-
Self::Step(crate::format::step::import::Options { split_closed_faces })
173-
}
175+
kt::InputFormat::Step {
176+
coords,
177+
split_closed_faces,
178+
} => Self::Step(crate::format::step::import::Options {
179+
coords,
180+
split_closed_faces,
181+
}),
174182
kt::InputFormat::Stl { coords, units } => Self::Stl(crate::format::stl::import::Options {
175183
coords: coords.into(),
176184
units: units.into(),

modeling-cmds/src/format/step.rs

+18-2
Original file line numberDiff line numberDiff line change
@@ -9,17 +9,33 @@ pub mod import {
99
use super::*;
1010

1111
/// Options for importing STEP format.
12-
#[derive(Clone, Debug, Default, Eq, Hash, PartialEq, Serialize, Deserialize, JsonSchema, Display, FromStr)]
13-
#[display("split_closed_faces: {split_closed_faces}")]
12+
#[derive(Clone, Debug, Eq, Hash, PartialEq, Serialize, Deserialize, JsonSchema, Display, FromStr)]
13+
#[display("coords: {coords}, split_closed_faces: {split_closed_faces}")]
1414
#[serde(default, rename = "StepImportOptions")]
1515
#[cfg_attr(feature = "ts-rs", derive(ts_rs::TS))]
1616
#[cfg_attr(feature = "ts-rs", ts(export_to = "ModelingCmd.ts"))]
1717
pub struct Options {
18+
/// Co-ordinate system of input data.
19+
///
20+
/// Defaults to the [KittyCAD co-ordinate system].
21+
///
22+
/// [KittyCAD co-ordinate system]: ../coord/constant.KITTYCAD.html
23+
pub coords: coord::System,
24+
1825
/// Splits all closed faces into two open faces.
1926
///
2027
/// Defaults to `false` but is implicitly `true` when importing into the engine.
2128
pub split_closed_faces: bool,
2229
}
30+
31+
impl Default for Options {
32+
fn default() -> Self {
33+
Self {
34+
coords: *coord::KITTYCAD,
35+
split_closed_faces: false,
36+
}
37+
}
38+
}
2339
}
2440

2541
/// Export models in STEP format.

0 commit comments

Comments
 (0)