remove global state (not thoroughly checked)
This commit is contained in:
parent
61d9fc0579
commit
21061d47f3
1 changed files with 5 additions and 15 deletions
20
src/main.rs
20
src/main.rs
|
@ -10,8 +10,6 @@ use std::ops::Range;
|
||||||
mod constants;
|
mod constants;
|
||||||
mod selig;
|
mod selig;
|
||||||
|
|
||||||
static PARTS: Mutex<Vec<ScadObject>> = Mutex::new(Vec::new());
|
|
||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
let mut scad_file = ScadFile::new();
|
let mut scad_file = ScadFile::new();
|
||||||
//let mut parts: Vec<ScadObject> = Vec::new();
|
//let mut parts: Vec<ScadObject> = Vec::new();
|
||||||
|
@ -70,7 +68,7 @@ fn main() {
|
||||||
|
|
||||||
scad_file.write_to_file(String::from("build/assembly.scad"));
|
scad_file.write_to_file(String::from("build/assembly.scad"));
|
||||||
|
|
||||||
for (idx, part) in PARTS.lock().unwrap().clone().into_iter().enumerate() {
|
for (idx, part) in parts.clone().into_iter().enumerate() {
|
||||||
let mut file = ScadFile::new();
|
let mut file = ScadFile::new();
|
||||||
file.set_detail(50);
|
file.set_detail(50);
|
||||||
file.add_object(part);
|
file.add_object(part);
|
||||||
|
@ -79,7 +77,7 @@ fn main() {
|
||||||
|
|
||||||
let mut allparts = ScadFile::new();
|
let mut allparts = ScadFile::new();
|
||||||
allparts.set_detail(50);
|
allparts.set_detail(50);
|
||||||
for (idx, part) in PARTS.lock().unwrap().iter().cloned().enumerate() {
|
for (idx, part) in parts.into_iter().enumerate() {
|
||||||
allparts.add_object(scad!(Translate2d(vec2(0.0, INF * idx as f32)); part));
|
allparts.add_object(scad!(Translate2d(vec2(0.0, INF * idx as f32)); part));
|
||||||
}
|
}
|
||||||
allparts.write_to_file("build/allparts.scad".to_string());
|
allparts.write_to_file("build/allparts.scad".to_string());
|
||||||
|
@ -256,7 +254,6 @@ fn extrude_strut(
|
||||||
strut_hole: ScadObject,
|
strut_hole: ScadObject,
|
||||||
width: f32,
|
width: f32,
|
||||||
chord: f32,
|
chord: f32,
|
||||||
register: bool,
|
|
||||||
) -> ScadObject {
|
) -> ScadObject {
|
||||||
let mut strut_shape = scad!(Difference);
|
let mut strut_shape = scad!(Difference);
|
||||||
strut_shape.add_child(shape);
|
strut_shape.add_child(shape);
|
||||||
|
@ -272,9 +269,6 @@ fn extrude_strut(
|
||||||
|
|
||||||
let unit: Vector3<f32> = Vector3::new(1.0, 1.0, 1.0);
|
let unit: Vector3<f32> = Vector3::new(1.0, 1.0, 1.0);
|
||||||
let scaled = scad!(Scale(unit * chord); shape);
|
let scaled = scad!(Scale(unit * chord); shape);
|
||||||
if register {
|
|
||||||
register_part(scaled.clone());
|
|
||||||
}
|
|
||||||
let strut = scad!(LinearExtrude(extrude); scaled);
|
let strut = scad!(LinearExtrude(extrude); scaled);
|
||||||
let rotated = scad!(Rotate(90.0, vec3(1.0, 0.0, 0.0)); strut);
|
let rotated = scad!(Rotate(90.0, vec3(1.0, 0.0, 0.0)); strut);
|
||||||
rotated
|
rotated
|
||||||
|
@ -303,14 +297,14 @@ fn topspar_negative(airfoil: &SeligFile, chord: f32, range: Range<f32>) -> ScadO
|
||||||
}
|
}
|
||||||
last = Some(current);
|
last = Some(current);
|
||||||
}
|
}
|
||||||
register_part(mask.clone());
|
|
||||||
mask
|
mask
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TODO: shift to trangle design
|
||||||
fn spar(length: f32, center: bool) -> ScadObject {
|
fn spar(length: f32, center: bool) -> ScadObject {
|
||||||
let mut spar = scad!(Union);
|
let mut spar = scad!(Union);
|
||||||
|
|
||||||
register_part(scad!(Square(vec2(length, SPAR_SIDE_WIDTH * 3.0))));
|
//register_part(scad!(Square(vec2(length, SPAR_SIDE_WIDTH * 3.0))));
|
||||||
|
|
||||||
for i in 0..3 {
|
for i in 0..3 {
|
||||||
let mut panel = scad!(Cube(vec3(SPAR_SIDE_WIDTH, length, CARDBOARD_WIDTH)));
|
let mut panel = scad!(Cube(vec3(SPAR_SIDE_WIDTH, length, CARDBOARD_WIDTH)));
|
||||||
|
@ -326,10 +320,6 @@ fn spar(length: f32, center: bool) -> ScadObject {
|
||||||
spar
|
spar
|
||||||
}
|
}
|
||||||
|
|
||||||
fn register_part(part: ScadObject) {
|
|
||||||
PARTS.lock().unwrap().push(part);
|
|
||||||
}
|
|
||||||
|
|
||||||
fn lerp(a: f32, b: f32, x: f32) -> f32 {
|
fn lerp(a: f32, b: f32, x: f32) -> f32 {
|
||||||
a * (1.0 - x) + b * x
|
a * (1.0 - x) + b * x
|
||||||
}
|
}
|
||||||
|
@ -379,7 +369,7 @@ fn topwing_spar(
|
||||||
let spacing = strut_idx as f32 * gap;
|
let spacing = strut_idx as f32 * gap;
|
||||||
|
|
||||||
let shape = topspar_negative(aerofoil, chord, 0.1..0.6);
|
let shape = topspar_negative(aerofoil, chord, 0.1..0.6);
|
||||||
let extruded = extrude_strut(shape.clone(), scad!(Union), CARDBOARD_WIDTH, chord, false);
|
let extruded = extrude_strut(shape.clone(), scad!(Union), CARDBOARD_WIDTH, chord);
|
||||||
|
|
||||||
let mut transform = scad!(Translate(vec3(0.0, spacing, 0.0)));
|
let mut transform = scad!(Translate(vec3(0.0, spacing, 0.0)));
|
||||||
transform.add_child(extruded);
|
transform.add_child(extruded);
|
||||||
|
|
Loading…
Reference in a new issue