Browse Source

shorten sticks and add double pinout switch for on/off

master
Schoenberger, Philipp 6 years ago
parent
commit
584696657f
  1. 95
      3d/remote.scad
  2. 32
      3d/stick.scad

95
3d/remote.scad

@ -10,23 +10,23 @@ use <lib/threads.scad>;
$fn=64; $fn=64;
show_top =0; show_top =0;
show_bottom =0;
show_bottom =1;
show_strapholder =0; show_strapholder =0;
show_joysticks =0;
show_grip =1;
show_joysticks =1;
show_grip =0;
enable_text_engrave =0; enable_text_engrave =0;
show_switch =0;
show_switch =1;
show_lcd =0; show_lcd =0;
show_sticks =0; show_sticks =0;
show_stm32 =0;
show_stm32 =1;
show_antenna =0; show_antenna =0;
show_cc2500 =0; show_cc2500 =0;
show_batery_charger =0; show_batery_charger =0;
show_batery =0; show_batery =0;
show_joysticks_pcb =0; show_joysticks_pcb =0;
show_usb_connector =0;
show_usb_connector =1;
show_stands=0; show_stands=0;
@ -64,14 +64,16 @@ grip_h=14;
name=""; name="";
text_pos=[[-6.75,-17,0], [6.75,-17,0], [-43,55,0], [-20,55,0], [0,39,0], [20,55,0], [43,55,0] ];
sw_is_double= [ true, false, false, false, false, false, false];
sw_pos= [[-6.75,-17,0], [6.75,-17,0], [-43,55,0], [-20,55,0], [0,39,0], [20,55,0], [43,55,0] ];
top_text= ["on", "arm", "mode", "beeper", "failsave", "prearm", "led" ]; top_text= ["on", "arm", "mode", "beeper", "failsave", "prearm", "led" ];
bot_text= ["off", "", "", "", "", "", "" ]; bot_text= ["off", "", "", "", "", "", "" ];
bottom_h=25; bottom_h=25;
pos_sticks=[40,26,0]; pos_sticks=[40,26,0];
pos_cc2500=[0,12,-7]; pos_cc2500=[0,12,-7];
pos_stm32=[40.5,-13.5,-4.5];
pos_stm32=[40.0,-13.5,-4.5];
pos_antenna=[0,130/2+8.20,-15]; pos_antenna=[0,130/2+8.20,-15];
pos_lcd=[0,-43,-8.75]; pos_lcd=[0,-43,-8.75];
pos_batery_charger=[-50,-40,-7]; pos_batery_charger=[-50,-40,-7];
@ -93,7 +95,7 @@ bottom_wall=3;
ps2_pcb_size=[26.15, 34.15, 1.6]; ps2_pcb_size=[26.15, 34.15, 1.6];
charger_pcb_size_small=[14.75, 26, 1.6]; charger_pcb_size_small=[14.75, 26, 1.6];
charger_pcb_size=[18, 26.6, 1.6]; charger_pcb_size=[18, 26.6, 1.6];
stm32_pcb_size=[52.3, 22.6, 1.6];
stm32_pcb_size=[52.7, 22.6, 1.6];
cc2500_pcb_size=[34.3, 21.4, 0.9]; cc2500_pcb_size=[34.3, 21.4, 0.9];
batery_size=[24, 50, 15]; batery_size=[24, 50, 15];
@ -140,10 +142,10 @@ module remote() {
} }
if(show_switch) { if(show_switch) {
for(i=[0:1:len(text_pos)-1]) {
translate(text_pos[i])
translate([0,0,-5])
switch(thick);
for(i=[0:1:len(sw_pos)-1]) {
translate(sw_pos[i])
translate([0,0,-3.5])
switch(sw_is_double[i]);
} }
} }
if(show_batery_charger) { if(show_batery_charger) {
@ -299,33 +301,41 @@ module top_case() {
translate([-40.6,-20.25,0]) translate([-40.6,-20.25,0])
{ {
d_top=8.75; d_top=8.75;
d_bot=7.75;
d_bot=7.40;
// screwsholders // screwsholders
h=10; h=10;
translate([0,1,thick-h]){ translate([0,1,thick-h]){
translate([2.5,4,-1]) rotate([0,0,0]) translate([2.5,4,-1]) rotate([0,0,0])
difference() {cylinder(d=d_bot,h=h); translate([0,0,-eps]) cylinder(d=screw_d, h=4);}; difference() {cylinder(d=d_bot,h=h); translate([0,0,-eps]) cylinder(d=screw_d, h=4);};
translate([2.5,35,-1]) rotate([0,0,0]) translate([2.5,35,-1]) rotate([0,0,0])
difference() {cylinder(d=d_top,h=h); translate([0,0,-eps]) cylinder(d=screw_d, h=4);};
difference() {cylinder(d=d_bot,h=h); translate([0,0,-eps]) cylinder(d=screw_d, h=4);};
translate([78.5,4,-1]) rotate([0,0,0]) translate([78.5,4,-1]) rotate([0,0,0])
difference() {cylinder(d=d_bot,h=h); translate([0,0,-eps]) cylinder(d=screw_d, h=4);}; difference() {cylinder(d=d_bot,h=h); translate([0,0,-eps]) cylinder(d=screw_d, h=4);};
translate([78.5,35,-1]) rotate([0,0,0]) translate([78.5,35,-1]) rotate([0,0,0])
difference() {cylinder(d=d_top,h=h); translate([0,0,-eps]) cylinder(d=screw_d, h=4);};
difference() {cylinder(d=d_bot,h=h); translate([0,0,-eps]) cylinder(d=screw_d, h=4);};
} }
} }
// button holders // button holders
{ {
for(i=[0:1:len(text_pos)-1]) {
for(i=[0:1:len(sw_pos)-1]) {
translate([0,0,thick-10]) translate([0,0,thick-10])
translate(text_pos[i])
translate(sw_pos[i])
if(sw_is_double[i]) {
difference() {
aligned_cube([17.5,10,8]);
translate([0,0,-7.25])
aligned_cube([13.5,13,10]);
}
} else {
difference() { difference() {
aligned_cube([15,10,8]);
aligned_cube([13.5,10,8]);
translate([0,0,-7.25]) translate([0,0,-7.25])
aligned_cube([8.5,13,10]); aligned_cube([8.5,13,10]);
} }
} }
} }
}
// stm32 holder // stm32 holder
{ {
@ -507,11 +517,13 @@ module top_case() {
text_engave(thick, font_size=font_size_name, text_=name); text_engave(thick, font_size=font_size_name, text_=name);
// switches // switches
for(i=[0:1:len(text_pos)-1]) {
translate(text_pos[i]) {
for(i=[0:1:len(sw_pos)-1]) {
translate(sw_pos[i]) {
switch_with_text(thick=thick+2*eps, switch_with_text(thick=thick+2*eps,
top_text=top_text[i], top_text=top_text[i],
bottom_text=bot_text[i]);
bottom_text=bot_text[i],
is_double=sw_is_double[i]
);
} }
} }
} }
@ -619,6 +631,22 @@ module bottom_case() {
} }
} }
} }
// usb connector wall
color("red") {
translate(pos_usb_connector)
rotate(rot_usb_connector) {
for(i=[1,-1]) {
// left right
translate([8, 9*i,-1]) {
aligned_cube([10,4,8], [0,1,1]);
}
//back
translate([16, 7*i,-1]) {
aligned_cube([4,8,8], [0,1,1]);
}
}
}
}
} }
// ps2 holder // ps2 holder
for(i=[1,-1]) { for(i=[1,-1]) {
@ -689,7 +717,7 @@ module bottom_case() {
} }
module switch() {
module switch(is_double=false) {
// screw // screw
color("silver") color("silver")
cylinder(d=6.4,h=8.75); cylinder(d=6.4,h=8.75);
@ -706,12 +734,17 @@ module switch() {
// body // body
color([0.3,0.3,0.6,1]) color([0.3,0.3,0.6,1])
aligned_cube([8.05,13,10],[1,1,2]);
if (is_double)
aligned_cube([12.6,13.1,10],[1,1,2]);
else
aligned_cube([8.05,13.1,10],[1,1,2]);
// pins // pins
color("silver") color("silver")
for(i=[1,0,-1]) {
translate([0, i*4.5,-10])
for(y=[1,0,-1]) {
if (is_double) {
for(x=[1,-1]) {
translate([x*2.5, y*4.5,-10])
difference() { difference() {
aligned_cube([2,0.7, 4.2], [1,1,2]); aligned_cube([2,0.7, 4.2], [1,1,2]);
translate([0,0,-3]) translate([0,0,-3])
@ -719,6 +752,16 @@ module switch() {
cylinder(d=1, h=2, center=true); cylinder(d=1, h=2, center=true);
} }
} }
} else {
translate([0, y*4.5,-10])
difference() {
aligned_cube([2,0.7, 4.2], [1,1,2]);
translate([0,0,-3])
rotate([90,0,0])
cylinder(d=1, h=2, center=true);
}
}
}
// top plate // top plate
color("silver") color("silver")

32
3d/stick.scad

@ -7,7 +7,7 @@ use <lib/cylinder.scad>
// draw itself // draw itself
stick(); stick();
module stick(h=20)
module stick(h=10,is_ps2_shaft=0)
{ {
$fn=32; $fn=32;
translate([0,0,15-3]) { translate([0,0,15-3]) {
@ -18,12 +18,13 @@ module stick(h=20)
} }
// stick holder with cutout // stick holder with cutout
translate([0,0,0]) { translate([0,0,0]) {
stick_mount();
stick_mount(is_ps2_shaft);
} }
// dust protector // dust protector
translate([0,0,-3]) {
protector_cone(thickness=1.25);
translate([0,0,-3+2.9]) {
resize([30,30,22])
protector_cone(thickness=0.4*2.5);
} }
} }
@ -67,13 +68,17 @@ module gabber_part() {
} }
module stick_mount(is_ps2_shaft=0) { module stick_mount(is_ps2_shaft=0) {
ps2_dia=4*1.269;
ps2_hight=5;
ps2_width=3*1.276;
ps2_dia=4+0.4;
ps2_width=3+0.4;
mount_h=5;
eps = 0.01; eps = 0.01;
difference() { difference() {
color([1,0,1]) { color([1,0,1]) {
translate([0,0,5])
cylinder_flange_sphere($fn=32,r2=5, r1=3, h=5);
if ( is_ps2_shaft ) { if ( is_ps2_shaft ) {
cylinder(d=6.75,h=10); cylinder(d=6.75,h=10);
} else { } else {
@ -84,9 +89,9 @@ module stick_mount(is_ps2_shaft=0) {
if ( is_ps2_shaft ) { if ( is_ps2_shaft ) {
intersection() { intersection() {
cube(center=true,[ps2_width,100,100]); cube(center=true,[ps2_width,100,100]);
cylinder(d=ps2_dia,h=ps2_hight);
cylinder(d=ps2_dia,h=mount_h);
} }
translate([0,0,ps2_hight])
translate([0,0,mount_h])
cylinder(d1=ps2_dia,d2=1.5,h=1.5); cylinder(d1=ps2_dia,d2=1.5,h=1.5);
} else { } else {
aligned_cube([1.9,1.15,6]); aligned_cube([1.9,1.15,6]);
@ -94,21 +99,22 @@ module stick_mount(is_ps2_shaft=0) {
} }
} }
module protector_cone(thickness) { module protector_cone(thickness) {
d=30;
//dust protector //dust protector
difference() { difference() {
union() { union() {
sphere(d=30);
sphere(d=d+2*thickness);
translate([0,0,12.1]) translate([0,0,12.1])
//cylinder(d2=3,d1=17.5,h=7); //cylinder(d2=3,d1=17.5,h=7);
cylinder_flange_sphere($fn=32,r2=4/2, r1=17.5/2, h=20); cylinder_flange_sphere($fn=32,r2=4/2, r1=17.5/2, h=20);
} }
// cut lower half // cut lower half
translate([-15,-15,-30])
cube([30,30,30]);
translate([-d,-d,-30])
cube([2*d,2*d,30]);
// cut innerpart so its a shell // cut innerpart so its a shell
sphere(d=30-2*thickness);
sphere(d=d);
} }
} }

Loading…
Cancel
Save