switchover elevator to negative spar
This commit is contained in:
parent
7e9cd942fb
commit
91e6c8b7b7
2 changed files with 17 additions and 3 deletions
|
@ -11,7 +11,7 @@ pub const STRUTS: usize = 12;
|
||||||
pub const CARDBOARD_WIDTH: f32 = 2.4;
|
pub const CARDBOARD_WIDTH: f32 = 2.4;
|
||||||
/// length of each side of the triangular spar
|
/// length of each side of the triangular spar
|
||||||
pub const SPAR_SIDE_WIDTH: f32 = 0.75 * IN2MM;
|
pub const SPAR_SIDE_WIDTH: f32 = 0.75 * IN2MM;
|
||||||
pub const FUSELAGE_GAP: f32 = 2.0 * IN2MM;
|
pub const FUSELAGE_GAP: f32 = 0.4 * IN2MM;
|
||||||
/// a very large number, used to place unknown objects such that they do not intersect
|
/// a very large number, used to place unknown objects such that they do not intersect
|
||||||
pub const INF: f32 = 1000.0;
|
pub const INF: f32 = 1000.0;
|
||||||
pub const RUDDER_HEIGHT: f32 = 5.0 *IN2MM;
|
pub const RUDDER_HEIGHT: f32 = 5.0 *IN2MM;
|
||||||
|
|
18
src/main.rs
18
src/main.rs
|
@ -35,6 +35,7 @@ fn main() {
|
||||||
let mut wing_transform = scad!(Translate(vec3(0.0,0.0,0.0)));
|
let mut wing_transform = scad!(Translate(vec3(0.0,0.0,0.0)));
|
||||||
|
|
||||||
// struts
|
// struts
|
||||||
|
let mut symetric_spar = scad!(Union);
|
||||||
for port in [true,false] {
|
for port in [true,false] {
|
||||||
let mut wing = wing(&wing_airfoil, STRUTS/2, WINGSPAN/2.0, CHORD, CHORD * WING_TAPER, SparType::Top);
|
let mut wing = wing(&wing_airfoil, STRUTS/2, WINGSPAN/2.0, CHORD, CHORD * WING_TAPER, SparType::Top);
|
||||||
let top_spar = topwing_spar(&wing_airfoil, STRUTS/2, WINGSPAN/2.0, CHORD, CHORD * WING_TAPER);
|
let top_spar = topwing_spar(&wing_airfoil, STRUTS/2, WINGSPAN/2.0, CHORD, CHORD * WING_TAPER);
|
||||||
|
@ -44,7 +45,8 @@ fn main() {
|
||||||
|
|
||||||
wing.add_child(scad!(NamedColor("red".to_string()); top_spar_neg.clone()));
|
wing.add_child(scad!(NamedColor("red".to_string()); top_spar_neg.clone()));
|
||||||
|
|
||||||
register_part(scad!(Projection(false); top_spar_neg));
|
symetric_spar.add_child(top_spar_neg);
|
||||||
|
|
||||||
wing = scad!(Translate(vec3(0.0, FUSELAGE_GAP,0.0)); wing);
|
wing = scad!(Translate(vec3(0.0, FUSELAGE_GAP,0.0)); wing);
|
||||||
if port {
|
if port {
|
||||||
wing = scad!(Mirror(vec3(0.0, 1.0, 0.0)); wing);
|
wing = scad!(Mirror(vec3(0.0, 1.0, 0.0)); wing);
|
||||||
|
@ -52,6 +54,12 @@ fn main() {
|
||||||
wing_transform.add_child(wing);
|
wing_transform.add_child(wing);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// fuselage affixment point
|
||||||
|
symetric_spar.add_child(centered_cube(vec3(CHORD, FUSELAGE_GAP*2.0, 1.0), (false,true,false)));
|
||||||
|
wing_transform.add_child(symetric_spar.clone());
|
||||||
|
register_part(scad!(Projection(false); symetric_spar));
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// spars
|
// spars
|
||||||
|
|
||||||
|
@ -69,17 +77,23 @@ fn main() {
|
||||||
|
|
||||||
// elevator
|
// elevator
|
||||||
let mut elevator = scad!(Translate(vec3(LENGTH-ELEVATOR_CHORD, 0.0,0.0)));
|
let mut elevator = scad!(Translate(vec3(LENGTH-ELEVATOR_CHORD, 0.0,0.0)));
|
||||||
|
let mut symetric_spar = scad!(Union);
|
||||||
for port in [true,false] {
|
for port in [true,false] {
|
||||||
let mut wing = wing(&wing_airfoil, ELEVATOR_STRUTS, ELEVATOR_HEIGHT, ELEVATOR_CHORD, ELEVATOR_CHORD * ELEVATOR_TAPER, SparType::Top);
|
let mut wing = wing(&wing_airfoil, ELEVATOR_STRUTS, ELEVATOR_HEIGHT, ELEVATOR_CHORD, ELEVATOR_CHORD * ELEVATOR_TAPER, SparType::Top);
|
||||||
|
let top_spar = topwing_spar(&wing_airfoil, ELEVATOR_STRUTS, ELEVATOR_HEIGHT, ELEVATOR_CHORD, ELEVATOR_CHORD * ELEVATOR_TAPER);
|
||||||
|
let mut top_spar_neg = scad!(Difference; top_spar);
|
||||||
|
top_spar_neg.add_child(wing.clone());
|
||||||
|
symetric_spar.add_child(top_spar_neg.clone());
|
||||||
wing = scad!(Translate(vec3(0.0, FUSELAGE_GAP,0.0)); wing);
|
wing = scad!(Translate(vec3(0.0, FUSELAGE_GAP,0.0)); wing);
|
||||||
if port {
|
if port {
|
||||||
wing = scad!(Mirror(vec3(0.0, 1.0, 0.0)); wing);
|
wing = scad!(Mirror(vec3(0.0, 1.0, 0.0)); wing);
|
||||||
}
|
}
|
||||||
elevator.add_child(wing);
|
elevator.add_child(wing);
|
||||||
}
|
}
|
||||||
elevator.add_child(spar(ELEVATOR_HEIGHT*2.0+FUSELAGE_GAP*2.0, true));
|
|
||||||
scad_file.add_object(elevator);
|
scad_file.add_object(elevator);
|
||||||
|
|
||||||
|
symetric_spar.add_child(centered_cube(vec3(CHORD, FUSELAGE_GAP*2.0, 1.0), (false,true,false)));
|
||||||
|
register_part(scad!(Projection(false); symetric_spar));
|
||||||
|
|
||||||
|
|
||||||
let cardboard = vec3(0.38, 0.26, 0.26);
|
let cardboard = vec3(0.38, 0.26, 0.26);
|
||||||
|
|
Loading…
Reference in a new issue