115 lines
2.9 KiB
OpenSCAD
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]);
|
|
}
|
|
}
|