negative space spar
This commit is contained in:
parent
e4863440c0
commit
b116558e78
1 changed files with 29 additions and 2 deletions
31
src/main.rs
31
src/main.rs
|
@ -45,8 +45,6 @@ fn main() {
|
||||||
}
|
}
|
||||||
|
|
||||||
// spars
|
// spars
|
||||||
// main wing
|
|
||||||
scad_file.add_object(spar(WINGSPAN+FUSELAGE_GAP*2.0, true));
|
|
||||||
|
|
||||||
// "fuselage"
|
// "fuselage"
|
||||||
scad_file.add_object(scad!(Rotate(-90.0, vec3(0.0, 0.0, 1.0));
|
scad_file.add_object(scad!(Rotate(-90.0, vec3(0.0, 0.0, 1.0));
|
||||||
|
@ -100,6 +98,35 @@ fn strut(airfoil: &Airfoil, chord: f32, width: f32) -> ScadObject {
|
||||||
let aerofoil = scad::PolygonParameters::new(airfoil.get_points().clone());
|
let aerofoil = scad::PolygonParameters::new(airfoil.get_points().clone());
|
||||||
let shape = scad!(Polygon(aerofoil));
|
let shape = scad!(Polygon(aerofoil));
|
||||||
|
|
||||||
|
let strut_hole = {
|
||||||
|
let points = &airfoil.get_points()[0..80];
|
||||||
|
let perimeter = span_length(points);
|
||||||
|
let span = points_in_range(&Vec::from(points), perimeter * 0.4.. perimeter);
|
||||||
|
|
||||||
|
let mut mask = scad!(Union);
|
||||||
|
|
||||||
|
let mut last: Option<ScadObject> = None;
|
||||||
|
for point in span {
|
||||||
|
let mut current = scad!(Square(vec2(0.001/ chord, CARDBOARD_WIDTH / chord)));
|
||||||
|
current = scad!(Translate2d(point.clone() - vec2(0.0, CARDBOARD_WIDTH/chord)); current);
|
||||||
|
if let Some(last_mask) = last {
|
||||||
|
let mut hull = scad!(Hull);
|
||||||
|
hull.add_child(current.clone());
|
||||||
|
hull.add_child(last_mask);
|
||||||
|
mask.add_child(hull);
|
||||||
|
}
|
||||||
|
last = Some(current);
|
||||||
|
}
|
||||||
|
register_part(mask.clone());
|
||||||
|
mask
|
||||||
|
};
|
||||||
|
|
||||||
|
let mut strut_shape = scad!(Difference);
|
||||||
|
strut_shape.add_child(shape);
|
||||||
|
strut_shape.add_child(strut_hole);
|
||||||
|
|
||||||
|
let shape = strut_shape;
|
||||||
|
|
||||||
let extrude = LinExtrudeParams {
|
let extrude = LinExtrudeParams {
|
||||||
height: width,
|
height: width,
|
||||||
center: true,
|
center: true,
|
||||||
|
|
Loading…
Reference in a new issue