scad/gpd-atreus.scad

115 lines
2.9 KiB
OpenSCAD

$atreus_bottom_length = 90;
$stand_width = 4;
$atreus_hook_height = 4;
$atreus_hook_angle = 20;
$riser_height = 50;
$gpd_rotate_down = 10;
$gpd_canti_length = 60;
$gpd_canti_offset = 40;
$gpd_cup_r=5;
$gpd_cup_h=2;
$gpd_sph_r=7;
$flats = 1;
$hub_l = 1;
$hub_radius = 4;
include <PELA-blocks/style.scad>
include <PELA-blocks/material.scad>
use <PELA-blocks/PELA-block.scad>
use <PELA-blocks/axle/PELA-technic-hub.scad>
module cup() {
translate([0,0,-1*($gpd_sph_r-$gpd_cup_h)])
intersection() {
difference() {
sphere(r=$gpd_sph_r+$flats);
sphere(r=$gpd_sph_r);
}
translate([0,0,$gpd_sph_r-$gpd_cup_h])
cylinder(r=$gpd_sph_r, h=$gpd_cup_h+$flats);
};
};
union () {
cube([$stand_width,
$atreus_bottom_length,
$flats]);
rotate([0,0,$atreus_hook_angle])
cube([$stand_width,
$flats,
$atreus_hook_height]);
translate([0, $atreus_bottom_length, 0])
cube([$stand_width, $flats, $riser_height]);
$riser_rotate_translation =
tan($gpd_rotate_down) * $gpd_canti_offset;
translate([0,
$atreus_bottom_length-$gpd_canti_offset,
$riser_height-$riser_rotate_translation-0.2]) {
rotate([$gpd_rotate_down, 0, 0]) {
intersection() {
translate([0,-2*$gpd_sph_r,-2*$flats])
cube([$stand_width*2,
$gpd_canti_length+4*($gpd_sph_r),
$flats*4]);
union() {
translate([$stand_width/2, -1*$gpd_cup_r,$flats]) rotate([0,180,0]) cup();
cube([$stand_width,
$gpd_canti_length,
$flats]);
translate([$stand_width/2, $gpd_canti_length+$gpd_cup_r,$flats]) rotate([0,180,0]) cup();
}
}
}
}
_cut_line = 0;
_material = 0;
_large_nozzle = true;
_axle_radius = 2.3; // [0.1:1:20]
_center_radius = 0.83; // [0.1:0.01:4]
_axle_rounding = 0.73; // [0.2:0.01:4.0]
translate([0,
$atreus_bottom_length+$hub_radius,
$hub_radius])
rotate([45,0,0])
rotate([0,90,0])
hub(material=_material, large_nozzle=_large_nozzle, hub_l=$hub_l, hub_radius=$hub_radius, axle_rounding=_axle_rounding, axle_radius=_axle_radius, center_radius=_center_radius);
translate([0,
$atreus_bottom_length+$hub_radius,
$riser_height-$hub_radius+1.1])
rotate([45,0,0])
rotate([0,90,0])
hub(material=_material, large_nozzle=_large_nozzle, hub_l=$hub_l, hub_radius=$hub_radius, axle_rounding=_axle_rounding, axle_radius=_axle_radius, center_radius=_center_radius);
translate([0, $atreus_bottom_length, 0])
rotate([-90,0,0])
rotate([0,90,0])
difference() {
cylinder(r=3, h=$stand_width);
translate([-3,0,-3])
cube([3*3,3,3*3]);
}
// tan($gpd_rotate_down)
translate([0, $atreus_bottom_length, $riser_height+0.2])
rotate([90,0,0])
rotate([0,90,0])
difference() {
cylinder(r=3, h=$stand_width);
translate([-3,0,-3])
cube([3*3,3,3*3]);
}
}