diff --git a/src/main.rs b/src/main.rs index eb371aa..64dc9ac 100644 --- a/src/main.rs +++ b/src/main.rs @@ -9,37 +9,20 @@ mod selig; fn main() { let mut scad_file = ScadFile::new(); - //let mut parts: Vec = Vec::new(); let mut parts = Vec::new(); scad_file.set_detail(50); // cambered airfoil, used in the wing let wing_airfoil: SeligFile = SeligFile::parse(include_str!("../ag24.dat")); - println!( - "name {}, perim {}", - wing_airfoil.get_name(), - wing_airfoil.get_points().length() - ); - println!( - "desc {}", - wing_airfoil - .get_description() - .clone() - .unwrap_or("no desc".to_string()) - ); - // symetric airfoil, used in the control surfaces + // symmetric airfoil, used in the control surfaces let control_airfoil: SeligFile = SeligFile::parse(include_str!("../edgevertical.dat")); - let wing_transform = mirrored_wing(&wing_airfoil, &WING); - - let mut wing_spar = ScadFile::new(); - let wing_spar_outline = wing_transform.parts.last().unwrap().clone(); - wing_spar.add_object(wing_spar_outline); - wing_spar.write_to_file("build/wingspar.scad".to_string()); - - // spars + // main wing + let mut wing_transform = mirrored_wing(&wing_airfoil, &WING); + scad_file.add_object(wing_transform.visualization); + parts.append(wing_transform.parts.as_mut()); // "fuselage" scad_file.add_object(scad!(Rotate(-90.0, vec3(0.0, 0.0, 1.0)); @@ -60,16 +43,14 @@ fn main() { scad_file.add_object(rudder); // elevator - let mut elevator = mirrored_wing(&wing_airfoil, &ELEVATOR); scad_file.add_object(scad!(Translate(vec3(LENGTH - ELEVATOR_CHORD, 0.0, 0.0)); elevator.visualization)); parts.append(&mut elevator.parts); - let cardboard = vec3(0.38, 0.26, 0.26); - scad_file.add_object(scad!(Color(cardboard); wing_transform.visualization)); - + // every part visualized together scad_file.write_to_file(String::from("build/assembly.scad")); + // every part in seperate files for (idx, part) in parts.clone().into_iter().enumerate() { let mut file = ScadFile::new(); file.set_detail(50); @@ -77,6 +58,7 @@ fn main() { file.write_to_file(format!("build/part{idx}.scad")); } + // all parts in one file let mut allparts = ScadFile::new(); allparts.set_detail(50); for (idx, part) in parts.into_iter().enumerate() { @@ -84,6 +66,7 @@ fn main() { } allparts.write_to_file("build/allparts.scad".to_string()); + // test airfoil let mut test = ScadFile::new(); let test_airfoil = SeligFile::parse(include_str!("../m1-il.dat")); let wing = wing(&test_airfoil, &RUDDER, SparType::Top);