diff --git a/Makefile b/Makefile index f2e7208..f88d7d5 100644 --- a/Makefile +++ b/Makefile @@ -67,3 +67,8 @@ vis: build/assembly.scad build/testwing-clear.scad: build/testwing.scad sed 's/color("clear-red")/color([1.0,1.0,0.0,0.9])/g' $< > $@ sed 's/color("clear-blue")/color([0.0,1.0,1.0,1.0])/g' -i $@ + +build/assembly-clear.scad: build/assembly.scad + sed 's/color("clear-red")/color([1.0,0.0,0.0,0.9])/g' $< > $@ + sed 's/color("clear-blue")/color([0.0,1.0,0.0,0.9])/g' -i $@ + sed 's/color("clear-blue")/color([0.0,0.0,1.0,0.9])/g' -i $@ diff --git a/src/main.rs b/src/main.rs index a872d40..eb371aa 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,9 +1,6 @@ -use std::sync::Mutex; - use constants::*; use nalgebra::Vector3; use scad::*; -use selig::Point; use selig::SeligFile; use selig::Span; use std::ops::Range; @@ -37,6 +34,11 @@ fn main() { 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 // "fuselage" @@ -147,12 +149,12 @@ fn mirrored_wing(wing_airfoil: &SeligFile, wing_config: &WingConfig) -> Construc wing_transform.add_child(wing); } // fuselage affixment point + wing_transform.add_child(symetric_spar.clone()); symetric_spar.add_child(centered_cube( vec3(CHORD, FUSELAGE_GAP * 2.0, 1.0), (false, true, false), )); parts.push(scad!(Projection(false); symetric_spar.clone())); - wing_transform.add_child(symetric_spar); Construct::new( wing_transform.clone() , parts) @@ -162,7 +164,7 @@ fn mirrored_wing(wing_airfoil: &SeligFile, wing_config: &WingConfig) -> Construc fn wing(wing_airfoil: &SeligFile, wing_config: &WingConfig, spar: SparType) -> (Construct, Construct) { let (wing, wing_parts) = wing_struts( wing_airfoil, - &wing_config, + wing_config, &spar, ).tup(); // TODO: other spar types @@ -350,7 +352,7 @@ fn wing_struts( let mut transform = scad!(Translate(vec3(0.0, spacing, 0.0))); - let mut strut = strut(aerofoil, chord, CARDBOARD_WIDTH, &spar); + let mut strut = strut(aerofoil, chord, CARDBOARD_WIDTH, spar); transform.add_child(strut.visualization); parts.append(strut.parts.as_mut()); wing.add_child(transform); @@ -365,7 +367,6 @@ fn topwing_spar( ) -> ScadObject { let mut wing = scad!(Hull); - let mut last_segment: Option = None; let mut pre_vis = scad!(Union); // struts @@ -382,26 +383,7 @@ fn topwing_spar( let mut transform = scad!(Translate(vec3(0.0, spacing, 0.0))); transform.add_child(extruded); - // in betweens - if let Some(last) = last_segment { - let mut hull = scad!(Hull); - let extrude = LinExtrudeParams { - height: 0.01, - center: true, - ..Default::default() - }; - - let mut last_t = scad!(Translate(vec3(0.0, -gap, 0.0))); - last_t.add_child(scad!(LinearExtrude(extrude.clone()); last)); - //hull.add_child(last_t); - //hull.add_child(scad!(LinearExtrude(extrude); shape.clone())); - - transform.add_child(hull); - } - pre_vis.add_child(transform); - - last_segment = Some(shape); } wing.add_child(pre_vis);