v4 3d model

This commit is contained in:
crinq
2017-03-08 15:31:50 +01:00
parent 33f54ac931
commit 8e6bbb7530
7 changed files with 5645 additions and 12 deletions
View File
+6
View File
@@ -0,0 +1,6 @@
module clip(){
$fn = 500;
difference(){
linear_extrude(height = 2, center = true, convexity = 10) import(file = "clip.dxf", layer = "0");
}
}
+1 -1
View File
@@ -279,7 +279,7 @@ module Socket_Strip_Angled_2x06(){
module fan(){
difference(){
color([0.2, 0.2, 0.2]) cube([45, 45, 10], false);
color([0.2, 0.2, 0.2]) cube([45, 45, 10.5], false);
color([0.2, 0.2, 0.2]) translate([22.5, 22.5, -1]) cylinder(r = 20, h = 12);
color([0.2, 0.2, 0.2]) translate([4, 4, -1]) cylinder(r = 1.5, h = 12);
color([0.2, 0.2, 0.2]) translate([4 + 37, 4, -1]) cylinder(r = 1.5, h = 12);
+103
View File
@@ -0,0 +1,103 @@
include <lib.scad>
pcb_height = 1.6;
pcb_height = 1.60000;
module pcb(){
difference(){
color("green") linear_extrude(height = 1.60000, convexity = 10, twist = 0) polygon( points=[
[99.00000, -49.75000],
[98.00000, -50.75000],
[98.00000, -90.00000],
[99.00000, -91.00000],
[102.25000, -91.00000],
[103.75000, -92.50000],
[103.75000, -95.50000],
[104.75000, -96.50000],
[107.50000, -96.50000],
[109.00000, -98.00000],
[109.00000, -100.50000],
[110.00000, -101.50000],
[111.00000, -101.50000],
[111.00000, -104.50000],
[110.00000, -105.50000],
[110.00000, -148.75000],
[111.00000, -149.75000],
[197.00000, -149.75000],
[198.00000, -148.75000],
[198.00000, -106.00000],
[197.00000, -105.00000],
[185.50000, -105.00000],
[185.50000, -102.00000],
[197.00000, -102.00000],
[198.00000, -101.00000],
[198.00000, -50.75000],
[197.00000, -49.75000],
[99.00000, -49.75000],
]);
color("green") translate([0, 0, -0.1]) linear_extrude(height = 1.60000 + 0.2, convexity = 10, twist = 0) polygon( points=[
[115.50000, -104.50000],
[115.50000, -101.50000],
[127.50000, -101.50000],
[128.50000, -100.50000],
[128.50000, -100.00000],
[129.50000, -99.00000],
[133.50000, -99.00000],
[134.50000, -100.00000],
[134.50000, -100.50000],
[135.50000, -101.50000],
[140.50000, -101.50000],
[140.50000, -104.50000],
[115.50000, -104.50000],
]);
color("green") translate([0, 0, -0.1]) linear_extrude(height = 1.60000 + 0.2, convexity = 10, twist = 0) polygon( points=[
[147.00000, -104.50000],
[147.00000, -101.50000],
[181.00000, -101.50000],
[181.00000, -104.50000],
[171.50000, -104.50000],
[170.50000, -105.50000],
[170.50000, -111.00000],
[167.50000, -111.00000],
[167.50000, -105.50000],
[166.50000, -104.50000],
[147.00000, -104.50000],
]);
}
}
module place(){
translate([160.500000, -135.750000, 0]) rotate([180, 0, 0]) rotate([0, 0, 360 - 45.000000]) C_Radial_D26_L45_P10(); // C21 270µ
translate([133.500000, -135.750000, 0]) rotate([180, 0, 0]) rotate([0, 0, 360 - 135.000000]) C_Radial_D26_L45_P10(); // C22 270µ
translate([143.250000, -77.750000, 0]) rotate([180, 0, 0]) rotate([0, 0, 360 - 180.000000]) ESD(); // G*** ESD
translate([201.000000, -92.500000, 0]) rotate([180, 0, 0]) rotate([0, 0, 360 - 90.000000]) RJ45_LED(); // J1 RJ45_LED
translate([201.000000, -76.000000, 0]) rotate([180, 0, 0]) rotate([0, 0, 360 - 90.000000]) RJ45_LED(); // J2 RJ45_LED
translate([201.000000, -59.500000, 0]) rotate([180, 0, 0]) rotate([0, 0, 360 - 90.000000]) RJ45_LED(); // J3 RJ45_LED
translate([176.000000, -112.750000, 0]) rotate([180, 0, 0]) rotate([0, 0, 360 - 0.000000]) SOLDER_JUMPER(); // JP1 Jumper_NO_Small
translate([107.750000, -88.750000, 0]) rotate([180, 0, 0]) rotate([0, 0, 360 - 180.000000]) Symbol_OSHW_Logo_SilkScreen(); // LOGO1 OPEN_HARDWARE_1
translate([147.000000, -144.750000, 0]) rotate([180, 0, 0]) rotate([0, 0, 360 - 180.000000]) Symbol_OSHW_Logo_SilkScreen(); // LOGO1 OPEN_HARDWARE_1
translate([117.000000, -146.750000, 0]) rotate([180, 0, 0]) rotate([0, 0, 360 - 90.000000]) akl182_2(); // P2 CONN_01X02
translate([103.000000, -59.500000, 0]) rotate([180, 0, 0]) rotate([0, 0, 360 - 90.000000]) akl182_2(); // P3 CONN_01X02
translate([126.750000, -67.040000, 0]) rotate([180, 0, 0]) rotate([0, 0, 360 - 0.000000]) Pin_Header_Angled_1x02(); // P4 CONN_01X02
translate([103.000000, -82.500000, 0]) rotate([180, 0, 0]) rotate([0, 0, 360 - 90.000000]) akl182_6(); // P5 CONN_01X06
translate([119.000000, -123.750000, 0]) rotate([180, 0, 0]) rotate([0, 0, 360 - 270.000000]) RM5_08_1x2(); // P6 CONN_01X02
translate([186.500000, -118.750000, 0]) rotate([180, 0, 0]) rotate([0, 0, 360 - 270.000000]) Pin_Header_Straight_1x04(); // P7 CONN_01X04
translate([119.000000, -106.920000, 0]) rotate([180, 0, 0]) rotate([0, 0, 360 - 270.000000]) RM5_08_1x3(); // P8 CONN_01X03
translate([108.000000, -56.750000, 0]) rotate([180, 0, 0]) rotate([0, 0, 360 - 0.000000]) akl182_6(); // P9 CONN_01X06
translate([139.000000, -61.500000, 0]) rotate([180, 0, 0]) rotate([0, 0, 360 - 0.000000]) Socket_Strip_Angled_2x06(); // P10 CONN_02X06
translate([178.920000, -107.250000, 0]) rotate([180, 0, 0]) rotate([0, 0, 360 - 270.000000]) Pin_Header_Straight_1x04(); // P12 CONN_01X04
translate([161.000000, -108.500000, 0]) rotate([180, 0, 0]) rotate([0, 0, 360 - 180.000000]) Socket_Strip_Straight_1x04(); // P13 CONN_01X04
translate([131.000000, -56.750000, 0]) rotate([180, 0, 0]) rotate([0, 0, 360 - 0.000000]) akl182_2(); // P15 CONN_01X02
translate([196.750000, -117.750000, 1.60000]) rotate([0, 0, 270.000000]) LED_0805(); // D1 red
translate([99.000000, -80.750000, 1.60000]) rotate([0, 0, 90.000000]) LED_0805(); // D4 green
translate([112.750000, -126.250000, 1.60000]) rotate([0, 0, 90.000000]) LED_0805(); // D8 green
translate([99.000000, -73.750000, 1.60000]) rotate([0, 0, 90.000000]) LED_0805(); // D14 green
translate([99.000000, -66.750000, 1.60000]) rotate([0, 0, 90.000000]) LED_0805(); // D15 green
translate([150.500000, -50.750000, 1.60000]) rotate([0, 0, 0.000000]) LED_0805(); // D16 red
translate([145.250000, -50.750000, 1.60000]) rotate([0, 0, 0.000000]) LED_0805(); // D17 yellow
translate([140.000000, -50.750000, 1.60000]) rotate([0, 0, 0.000000]) LED_0805(); // D18 green
translate([111.500000, -50.750000, 1.60000]) rotate([0, 0, 0.000000]) LED_0805(); // D19 green
translate([122.000000, -50.750000, 1.60000]) rotate([0, 0, 0.000000]) LED_0805(); // D20 green
translate([99.000000, -57.750000, 1.60000]) rotate([0, 0, 90.000000]) LED_0805(); // D24 green
translate([160.500000, -51.750000, 1.60000]) rotate([0, 0, 180.000000]) USB_Micro_B_10103594_0001LF(); // P1 USB_OTG
translate([195.750000, -111.000000, 1.60000]) rotate([0, 0, 90.000000]) USB_Micro_B_10103594_0001LF(); // P11 USB_OTG
translate([147.000000, -99.750000, 1.60000]) rotate([0, 0, 270.000000]) Pin_Header_Angled_1x04(); // P14 CONN_01X04
translate([147.000000, -136.750000, 1.60000]) rotate([0, 0, 180.000000]) IRAM256(); // U12 IRAM256a
}
+115 -9
View File
@@ -1,5 +1,6 @@
include <pcb.scad>
include <pcb_simple.scad>
include <v4_bracket.scad>
include <clip.scad>
module pin(){
for(a = [0:3]){
@@ -45,18 +46,120 @@ module m3(l){
}
}
module corner(r, l){
difference(){
color("grey") cube([r, r, l]);
translate([r, r, -1]) color("grey") cylinder(r = r, h = l + 2);
}
}
module corner2(r, l){
color("grey") linear_extrude(height = l, convexity = 10, twist = 0) polygon( points = [[r, 0], [0, -r / 5], [-r / 5, 0], [0, r], [r, 0]]);
}
f3();
module cover(){
$fn = 40;
wall_t = 0.9;
space = 0.5;
fan_t = 10.5;
fan_h = 12;
fan_l = 45;
fan_m3_l = 37;
heatsink_m3_l = 36;
heatsink_m3_h = -2.5;
heatsink_l = 94;
heatsink_w = 46;
heatsink_h = 5;
pcb_t = 1.6;
f3_h = 8 + heatsink_h;
f4_h = 2.5 + pcb_t + f3_h;
f4_l = 52.25;
f4_y = 4.75 + 2.54 / 2;
f4_x = 2;
f4_t = 100;
rj45_h = 1.25;
rj45_l = 16.5 * 3;
rj45_t = 13.5;
akl220_h = 11;
akl220_l = 1.26;
akl220_p = 5.08;
akl182_h = 7;
akl182_l = 1.6;
akl182_p = 3.5;
corner_r = 3;
difference(){
union(){
difference(){
translate([-wall_t, -wall_t, 0]) color("grey") cube([heatsink_l + fan_t + wall_t * 2, heatsink_w + wall_t * 2, f4_h + f4_l + wall_t]);
color("grey") translate([0, 0, -1]) cube([heatsink_l + fan_t, heatsink_w, f4_h + f4_l + 1]);
translate([0, 0, -1]) corner2(2, heatsink_h + 1);
translate([0, heatsink_w, -1]) rotate([0, 0, -90]) corner2(2, heatsink_h + 1);
translate([heatsink_l + fan_t, heatsink_w, -1]) rotate([0, 0, 180]) corner2(2, heatsink_h + fan_h + 1);
translate([heatsink_l + fan_t, 0, -1]) rotate([0, 0, 90]) corner2(2, heatsink_h + fan_h + 1);
}
translate([0, 0, f4_h + 11]) rotate([0, 0, 0]) corner(corner_r, f4_l - 11);
translate([heatsink_l + fan_t, heatsink_w, f4_h]) rotate([0, 0, 180]) corner(corner_r, f4_l);
translate([heatsink_l + fan_t, 0, f4_h]) rotate([0, 0, 90]) corner(corner_r, f4_l);
translate([0, heatsink_w, f4_h + 5]) rotate([0, 0, -90]) corner(corner_r, f4_l - 5);
translate([0, 0, f4_h + f4_l]) rotate([-90, 0, 0]) corner(corner_r, heatsink_w);
translate([heatsink_l + fan_t, heatsink_w, f4_h + f4_l]) rotate([-90, 0, 180]) corner(corner_r, heatsink_w);
translate([0, 0, f4_h + f4_l]) rotate([0, 90, 0]) corner(corner_r, heatsink_l + fan_t);
translate([heatsink_l + fan_t, heatsink_w, f4_h + f4_l]) rotate([180, 90, 0]) corner(corner_r, heatsink_l + fan_t);
}
color("grey") translate([f4_x, f4_y - space, f4_h]) cube([f4_t, pcb_t + space * 2, f4_l]);
color("grey") translate([heatsink_l + fan_t - wall_t, heatsink_w / 2, heatsink_h + fan_h - fan_l / 2]) rotate([0, 90, 0]) cylinder(r = 22, h = wall_t * 3); // fan
color("grey") translate([heatsink_l + fan_t - wall_t, heatsink_w / 2 - fan_m3_l / 2, heatsink_h + fan_h - fan_l / 2 + fan_m3_l / 2]) rotate([0, 90, 0]) cylinder(r = 1.75, h = wall_t * 3); // front m3
color("grey") translate([heatsink_l + fan_t - wall_t, heatsink_w / 2 + fan_m3_l / 2, heatsink_h + fan_h - fan_l / 2 + fan_m3_l / 2]) rotate([0, 90, 0]) cylinder(r = 1.75, h = wall_t * 3); // front m3
color("grey") translate([heatsink_l + fan_t - wall_t, f4_y + pcb_t - space, heatsink_h + fan_h + rj45_h - space]) cube([wall_t * 3, rj45_t + space * 2, rj45_l + space * 2]); // rj45
color("grey") translate([-wall_t * 2, 0, f3_h + pcb_t - space]) cube([wall_t * 3, akl220_l + akl220_p * 3 + akl220_l + akl220_p * 2 + space, akl220_h + space * 2]); // uvw + hv
color("grey") translate([-wall_t * 2, 37 - space, f3_h + pcb_t - space]) cube([wall_t * 3, akl182_l + akl182_p * 2 + space * 2, akl182_h + space * 2]); // mot temp
color("grey") translate([-wall_t * 2, f4_y + pcb_t - space, f4_h + 17 - space]) cube([wall_t * 3, akl182_h + space * 2, akl182_l * 2 + akl182_p * 8 + space * 2 + 0.4]); // 24v + out
color("grey") translate([-wall_t * 2, heatsink_w / 2 - heatsink_m3_l / 2, heatsink_h + heatsink_m3_h]) rotate([0, 90, 0]) cylinder(r = 1.75, h = wall_t * 3); // back m3
color("grey") translate([-wall_t * 2, heatsink_w / 2 + heatsink_m3_l / 2, heatsink_h + heatsink_m3_h]) rotate([0, 90, 0]) cylinder(r = 1.75, h = wall_t * 3); // back m3
color("grey") translate([9, f4_y + pcb_t - space, f4_h + f4_l - wall_t]) cube([akl182_l * 2 + akl182_p * 8 + space * 2 + 0.4, akl182_h + space * 2, wall_t * 3]); // cmd + in
color("grey") translate([9 + 31 - space, f4_y + pcb_t - space, f4_h + f4_l - wall_t]) cube([2.54 * 6 + space * 6, 2.54 * 2 + space * 2, wall_t * 3]); // io
color("grey") translate([9 + 51.5 - space, f4_y - 2.5 - space, 68]) union(){
translate([2.5 / 2 + space, 0, 0]) cube([8 - 2.5 , 2.5 + space * 2, wall_t * 3]);
translate([2.5 / 2 + space, 2.5 / 2 + space, 0]) cylinder(r = 2.5 / 2 + space, h = wall_t * 3);
translate([8 - 2.5 / 2 + space, 2.5 / 2 + space, 0]) cylinder(r = 2.5 / 2 + space, h = wall_t * 3);
}; // usb
color("grey") translate([-wall_t * 2, 5 + 1 * 6, 7]) rotate([0, 90, 0]) cylinder(r = 2, h = wall_t * 3);
color("grey") translate([-wall_t * 2, 5 + 5 * 6, 7]) rotate([0, 90, 0]) cylinder(r = 2, h = wall_t * 3);
color("grey") translate([-wall_t * 2, 5 + 1 * 6, -2]) cube([wall_t * 3, 24, 11]);
color("grey") translate([-wall_t * 2, 5 + 1 * 6 - 2, -2]) cube([wall_t * 3, 28, 9]);
//for(i = [1:6]){
// color("grey") translate([-1, 4, 28 + i * 6]) rotate([0, 90, 0]) cylinder(r = 2, h = 3);
//}
color("grey") translate([heatsink_l + fan_t - wall_t, f4_y + pcb_t - space, 0]) cube([wall_t * 3, rj45_t + space * 2, f4_h + rj45_h]); // rj45 slot
color("grey") translate([37, heatsink_w - wall_t, 47]) rotate([-90, 0, 0]) cylinder(r = 1.75, h = wall_t * 3);
}
translate([heatsink_l + fan_t - 2, f4_y - wall_t + pcb_t - space, fan_h + heatsink_h + space]) color("grey") cube([2, wall_t, f4_l]);
translate([heatsink_l + fan_t - 7, f4_y + pcb_t + rj45_t + space, fan_h + heatsink_h]) color("grey") cube([7, wall_t, f4_l]);
translate([heatsink_l + fan_t - 15.5 - space, f4_y + pcb_t + rj45_t + space, f4_h + f4_l - 7]) color("grey") cube([10, wall_t, 7]);
translate([heatsink_l + fan_t - 15.5 - space - wall_t, f4_y + pcb_t + space + akl182_h, f4_h + f4_l - 7]) color("grey") cube([wall_t, f4_y + pcb_t + rj45_t + space + wall_t - (f4_y + pcb_t + space + akl182_h), 7]);
translate([0, f4_y + pcb_t - wall_t - space, f4_h + 9]) color("grey") cube([2 - space, wall_t, f4_l - 9]);
translate([0, f4_y + pcb_t + space + akl182_h, f4_h + 9]) color("grey") cube([7, wall_t, f4_l - 9]);
translate([0, f4_y + pcb_t + space + akl182_h, f4_h + f4_l - 7]) color("grey") cube([heatsink_l + fan_t - 15.5 - space, wall_t, 7]);
color("grey") translate([37, heatsink_w - 7, 47 + 3 + space]) cube([wall_t, 7, f4_h + f4_l - 47 - 3 - space]);
color("grey") translate([37, f4_y + pcb_t + space + akl182_h, f4_h + f4_l - 7]) cube([wall_t, heatsink_w - (f4_y + pcb_t + space + akl182_h), 7]);
//translate([100, 48, 50]) color("grey") rotate([90, 0, 180]) linear_extrude(height = 0.6) text("STMBL 4.0", font = "Liberation Sans", size = 13);
}
translate([-88, 0, -5]) cover();
translate([14, 4.75 + 1.27 + pcb_height, 45 - 33 - pcb_height]) rotate([90, 0, 0]) f4();
translate([6, 0, -33]) rotate([0, 0, 90]) heatsink();
translate([6, 0, 45 - 33]) rotate([0, 90, 0]) fan();
translate([-51, 46 + 1.5, 42]) rotate([-90, 0, 0]) m3(6);
f3();translate([6, 0, -33]) rotate([0, 0, 90]) heatsink();
translate([6, 0.5, 45 - 33]) rotate([0, 90, 0]) fan();
translate([16, 4.5, 4 - 33]) rotate([0, 90, 0]) m3(15);
translate([16, 4.5 + 37, 4 - 33]) rotate([0, 90, 0]) m3(15);
translate([17, 4.5, 4 + 37 - 33]) rotate([0, 90, 0]) m3(10);
translate([17, 4.5 + 37, 4 + 37 - 33]) rotate([0, 90, 0]) m3(10);
translate([16.5, 4.5, 4 - 33]) rotate([0, 90, 0]) m3(15);
translate([16.5, 4.5 + 37, 4 - 33]) rotate([0, 90, 0]) m3(15);
translate([16.5 + 1.3, 4.5, 4 + 37 - 33]) rotate([0, 90, 0]) m3(10);
translate([16.5 + 1.3, 4.5 + 37, 4 + 37 - 33]) rotate([0, 90, 0]) m3(10);
// translate([6, 20, 33]) spacer(8);
// translate([6 + 36, 20, 33]) spacer(8);
// translate([6, 20, 33 + 8 + pcb_hight]) m3(15);
@@ -72,3 +175,6 @@ translate([-89, 5, -2]) rotate([0, -90, 0]) m3(5);
translate([-89, 5 + 36, -2]) rotate([0, -90, 0]) m3(5);
translate([-70.5 + 27 + 6, 32, 42]) rotate([0, 0, 180]) bracket2();
translate([-52.5, 7.5 - 1.6, 42]) rotate([90, 0, 0]) m3(6);
translate([-25, 0.5, -34]) rotate([0, 0, 90]) clip();
translate([-41, 0.5 + 4, -35]) rotate([180, 0, 0]) m3(6);
translate([-41, 0.5 + 4 + 37, -35]) rotate([180, 0, 0]) m3(6);
File diff suppressed because it is too large Load Diff
+2 -2
View File
@@ -1,7 +1,7 @@
module bracket(){
$fn = 500;
difference(){
linear_extrude(height = 6, center = true, convexity = 10) import(file = "/Users/crinq/seafile/reroo/stmbl/v4_bracket.dxf", layer = "ding");
linear_extrude(height = 6, center = true, convexity = 10) import(file = "v4_bracket.dxf", layer = "ding");
translate([27/2 + 1.75, 24.6, 0]) rotate([90, 0, 0]) cylinder(r = 1.35, h = 5);
translate([27/2 - 1.75, 24.6, 0]) rotate([90, 0, 0]) cylinder(r = 1.35, h = 5);
//translate([27 / 2 + 3/2, 8, 3]) rotate([0, 0, 90]) text("STMBL",3.5);
@@ -11,7 +11,7 @@ module bracket(){
module bracket2(){
$fn = 500;
difference(){
linear_extrude(height = 6, center = true, convexity = 10) import(file = "/Users/crinq/seafile/reroo/stmbl/v4_bracket.dxf", layer = "ding2");
linear_extrude(height = 6, center = true, convexity = 10) import(file = "v4_bracket.dxf", layer = "ding2");
translate([27/2 + 1.75, 24.6, 0]) rotate([90, 0, 0]) cylinder(r = 1.35, h = 5);
translate([27/2 - 1.75, 24.6, 0]) rotate([90, 0, 0]) cylinder(r = 1.35, h = 5);
translate([27/2, -14.1, 0]) rotate([90, 0, 180]) cylinder(r = 1.35, h = 5.1);