Browse Source

shorten sticks and add double pinout switch for on/off

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

121
3d/remote.scad

@ -10,23 +10,23 @@ use <lib/threads.scad>;
$fn=64;
show_top =0;
show_bottom =0;
show_bottom =1;
show_strapholder =0;
show_joysticks =0;
show_grip =1;
show_joysticks =1;
show_grip =0;
enable_text_engrave =0;
show_switch =0;
show_switch =1;
show_lcd =0;
show_sticks =0;
show_stm32 =0;
show_stm32 =1;
show_antenna =0;
show_cc2500 =0;
show_batery_charger =0;
show_batery =0;
show_joysticks_pcb =0;
show_usb_connector =0;
show_usb_connector =1;
show_stands=0;
@ -64,14 +64,16 @@ grip_h=14;
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] ];
top_text=["on", "arm", "mode", "beeper", "failsave", "prearm", "led" ];
bot_text=["off", "", "", "", "", "", "" ];
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" ];
bot_text= ["off", "", "", "", "", "", "" ];
bottom_h=25;
pos_sticks=[40,26,0];
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_lcd=[0,-43,-8.75];
pos_batery_charger=[-50,-40,-7];
@ -93,7 +95,7 @@ bottom_wall=3;
ps2_pcb_size=[26.15, 34.15, 1.6];
charger_pcb_size_small=[14.75, 26, 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];
batery_size=[24, 50, 15];
@ -139,11 +141,11 @@ module remote() {
LCD_1602_I2C(3, "RSSI 99 A99 ", " ARMED A99 ");
}
if(show_switch){
for(i=[0:1:len(text_pos)-1]) {
translate(text_pos[i])
translate([0,0,-5])
switch(thick);
if(show_switch) {
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) {
@ -299,30 +301,38 @@ module top_case() {
translate([-40.6,-20.25,0])
{
d_top=8.75;
d_bot=7.75;
d_bot=7.40;
// screwsholders
h=10;
translate([0,1,thick-h]){
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);};
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])
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])
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
{
for(i=[0:1:len(text_pos)-1]) {
for(i=[0:1:len(sw_pos)-1]) {
translate([0,0,thick-10])
translate(text_pos[i])
difference() {
aligned_cube([15,10,8]);
translate([0,0,-7.25])
aligned_cube([8.5,13,10]);
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() {
aligned_cube([13.5,10,8]);
translate([0,0,-7.25])
aligned_cube([8.5,13,10]);
}
}
}
}
@ -507,14 +517,16 @@ module top_case() {
text_engave(thick, font_size=font_size_name, text_=name);
// 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,
top_text=top_text[i],
bottom_text=bot_text[i]);
bottom_text=bot_text[i],
is_double=sw_is_double[i]
);
}
}
}
}
}
}
@ -534,7 +546,7 @@ module switch_with_text(thick=4,top_text="on",bottom_text="off")
}
if(enable_text_engrave) {
translate([0,dist_text,0])
translate([0,dist_text,0])
text_engave(thick, text_=top_text);
translate([0,1-dist_text-2.5,0])
text_engave(thick, text_=bottom_text);
@ -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
for(i=[1,-1]) {
@ -689,7 +717,7 @@ module bottom_case() {
}
module switch() {
module switch(is_double=false) {
// screw
color("silver")
cylinder(d=6.4,h=8.75);
@ -706,17 +734,32 @@ module switch() {
// body
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
color("silver")
for(i=[1,0,-1]) {
translate([0, i*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);
for(y=[1,0,-1]) {
if (is_double) {
for(x=[1,-1]) {
translate([x*2.5, 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);
}
}
} 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);
}
}
}

32
3d/stick.scad

@ -7,7 +7,7 @@ use <lib/cylinder.scad>
// draw itself
stick();
module stick(h=20)
module stick(h=10,is_ps2_shaft=0)
{
$fn=32;
translate([0,0,15-3]) {
@ -18,12 +18,13 @@ module stick(h=20)
}
// stick holder with cutout
translate([0,0,0]) {
stick_mount();
stick_mount(is_ps2_shaft);
}
// 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) {
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;
difference() {
color([1,0,1]) {
translate([0,0,5])
cylinder_flange_sphere($fn=32,r2=5, r1=3, h=5);
if ( is_ps2_shaft ) {
cylinder(d=6.75,h=10);
} else {
@ -84,9 +89,9 @@ module stick_mount(is_ps2_shaft=0) {
if ( is_ps2_shaft ) {
intersection() {
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);
} else {
aligned_cube([1.9,1.15,6]);
@ -94,21 +99,22 @@ module stick_mount(is_ps2_shaft=0) {
}
}
module protector_cone(thickness) {
d=30;
//dust protector
difference() {
union() {
sphere(d=30);
sphere(d=d+2*thickness);
translate([0,0,12.1])
//cylinder(d2=3,d1=17.5,h=7);
cylinder_flange_sphere($fn=32,r2=4/2, r1=17.5/2, h=20);
}
// 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
sphere(d=30-2*thickness);
sphere(d=d);
}
}

Loading…
Cancel
Save