mirror of
https://github.com/nophead/NopSCADlib.git
synced 2025-09-04 04:35:29 +02:00
Compare commits
5 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
d4402c6713 | ||
|
b9890ca589 | ||
|
026b9daf59 | ||
|
2afc00cfa9 | ||
|
84b5686af6 |
BIN
libtest.png
BIN
libtest.png
Binary file not shown.
Before Width: | Height: | Size: 787 KiB After Width: | Height: | Size: 787 KiB |
@@ -71,7 +71,7 @@ function pbox_mid_offset(type) = pbox_ridges(type).y + pbox_wall(type) / 2; // O
|
||||
|
||||
function pbox_screw_inset(type) = //! How far the base screws are inset
|
||||
let(foot = pbox_foot(type),
|
||||
r = foot ? foot_diameter(foot) / 2 : washer_radius(pbox_washer(type)),
|
||||
r = foot ? foot_diameter(foot) / 2 : pbox_base(type) ? washer_radius(pbox_washer(type)) : insert_hole_radius(pbox_insert(type)),
|
||||
R = pbox_radius(type)
|
||||
) max(r, R - (R - r) / sqrt(2));
|
||||
|
||||
|
@@ -2002,6 +2002,7 @@ PCBs and perfboard with optional components. The shape can be a rectangle with o
|
||||
| ```hdmi(type, cutout = false)``` | Draw HDMI socket |
|
||||
| ```jack(cutout = false)``` | Draw 3.5mm jack |
|
||||
| ```molex_254(ways)``` | Draw molex header |
|
||||
| ```molex_usb_Ax2(cutout)``` | Draw Molex USB connector suitable for perf board |
|
||||
| ```pcb(type)``` | Draw specified PCB |
|
||||
| ```pcb_assembly(type, height, thickness)``` | Draw PCB assembly with spaces and fasteners in place |
|
||||
| ```pcb_base(type, height, thickness, wall = 2)``` | Generate STL for a base with PCB spacers |
|
||||
@@ -2124,6 +2125,7 @@ PCBs and perfboard with optional components. The shape can be a rectangle with o
|
||||
| ```hdmi(type, cutout = false)``` | Draw HDMI socket |
|
||||
| ```jack(cutout = false)``` | Draw 3.5mm jack |
|
||||
| ```molex_254(ways)``` | Draw molex header |
|
||||
| ```molex_usb_Ax2(cutout)``` | Draw Molex USB connector suitable for perf board |
|
||||
| ```pcb(type)``` | Draw specified PCB |
|
||||
| ```pcb_assembly(type, height, thickness)``` | Draw PCB assembly with spaces and fasteners in place |
|
||||
| ```pcb_base(type, height, thickness, wall = 2)``` | Generate STL for a base with PCB spacers |
|
||||
|
@@ -71,10 +71,11 @@ test_pcb = ["TestPCB", "Test PCB",
|
||||
[ 10, 65, 180, "rj45"],
|
||||
[ 8, 85, 180, "usb_A"],
|
||||
[ 8, 105, 180, "usb_Ax2"],
|
||||
[ 3, 125, 180, "usb_uA"],
|
||||
[ 8, 140, 180, "usb_B"],
|
||||
[ 5, 160, 0, "buzzer", 4.5, 8.5],
|
||||
[ 20, 160, 0, "buzzer"],
|
||||
[ 3, 140, 180, "usb_uA"],
|
||||
[ 8, 155, 180, "usb_B"],
|
||||
[ 8.5, 125, 180, "molex_usb_Ax2"],
|
||||
[ 25, 200, 0, "buzzer", 4.5, 8.5],
|
||||
[ 25, 218, 0, "buzzer"],
|
||||
[ 8, 190, 180, "jack"],
|
||||
[ 6, 200, 180, "barrel_jack"],
|
||||
[ 5, 218, 180, "hdmi"],
|
||||
|
Binary file not shown.
Before Width: | Height: | Size: 164 KiB After Width: | Height: | Size: 168 KiB |
Binary file not shown.
Before Width: | Height: | Size: 161 KiB After Width: | Height: | Size: 161 KiB |
@@ -85,6 +85,23 @@ module chip(length, width, thickness, colour, cutout = false) //! Draw a coloure
|
||||
color(colour)
|
||||
translate_z(thickness / 2) cube([length, width, thickness], center = true);
|
||||
|
||||
module usb_A_tongue() {
|
||||
l = 9;
|
||||
w = 12;
|
||||
h = 2;
|
||||
|
||||
color("white")
|
||||
translate([-1, 0 , h / 2])
|
||||
rotate([90, 0, 90])
|
||||
hull() {
|
||||
linear_extrude(l - 2)
|
||||
square([w, h], center = true);
|
||||
|
||||
linear_extrude(l)
|
||||
square([w - 1, h - 1], center = true);
|
||||
}
|
||||
}
|
||||
|
||||
module usb_Ax1(cutout = false) { //! Draw USB type A single socket
|
||||
usb_A(h = 6.5, v_flange_l = 4.5, bar = 0, cutout = cutout);
|
||||
}
|
||||
@@ -107,7 +124,7 @@ module usb_A(h, v_flange_l, bar, cutout) {
|
||||
rotate([90, 0, 90])
|
||||
rounded_rectangle([w + 2 * v_flange_h + 2 * panel_clearance,
|
||||
h + 2 * h_flange_h + 2 * panel_clearance, 100], r = cnc_bit_r, center = false);
|
||||
else
|
||||
else {
|
||||
color("silver") rotate([0, 90, 0]) {
|
||||
linear_extrude(l, center = true)
|
||||
difference() {
|
||||
@@ -130,7 +147,72 @@ module usb_A(h, v_flange_l, bar, cutout) {
|
||||
}
|
||||
square([h - eps, w - eps], center = true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for(z = bar ? [-1, 1] : [0])
|
||||
translate_z(z * (bar / 2 + socket_h / 2))
|
||||
usb_A_tongue();
|
||||
}
|
||||
}
|
||||
|
||||
module molex_usb_Ax2(cutout) { //! Draw Molex USB connector suitable for perf board
|
||||
w = 15.9;
|
||||
h = 16.6;
|
||||
l = 17;
|
||||
pin_l = 2.8;
|
||||
clearance = 0.2;
|
||||
tag_l = 4.4;
|
||||
tag_r = 0.5;
|
||||
tag_w = 1.5;
|
||||
tag_t = 0.3;
|
||||
tag_p = 5.65;
|
||||
|
||||
if(cutout)
|
||||
translate([0, -w / 2 - clearance, -clearance])
|
||||
cube([100, w + 2 * clearance, h + 2 * clearance]);
|
||||
else {
|
||||
color(silver)
|
||||
translate([-l / 2, 0])
|
||||
rotate([90, 0, 90])
|
||||
translate([-w / 2, 0]) {
|
||||
cube([w, h, l - 9]);
|
||||
|
||||
linear_extrude(l)
|
||||
difference() {
|
||||
square([w, h]);
|
||||
|
||||
for(z = [-1, 1])
|
||||
translate([w / 2, h / 2 + z * 8.5 / 2])
|
||||
square([12.6, 5.08], center = true);
|
||||
}
|
||||
}
|
||||
|
||||
for(z = [-1, 1])
|
||||
translate_z(h / 2 + z * 8.5 / 2)
|
||||
usb_A_tongue();
|
||||
|
||||
color(silver)
|
||||
rotate(-90) {
|
||||
for(x = [-1.5 : 1 : 1.5], y = [0.5 : 1 : 1.5])
|
||||
translate([inch(x / 10), -l / 2 + inch(y / 10)])
|
||||
hull() {
|
||||
cube([0.6, 0.3, 2 * pin_l - 2], center = true);
|
||||
|
||||
cube([0.4, 0.3, 2 * pin_l], center = true);
|
||||
}
|
||||
|
||||
for(side = [-1, 1], end = [0, 1])
|
||||
translate([side * w / 2, -l / 2 + tag_w / 2 + end * tag_p])
|
||||
rotate(-side * 90)
|
||||
hull() {
|
||||
translate([0, tag_l - tag_r])
|
||||
cylinder(r = tag_r, h = tag_t);
|
||||
|
||||
translate([-tag_w / 2, 0])
|
||||
cube([tag_w, eps, tag_t]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
module rj45(cutout = false) { //! Draw RJ45 Ethernet connector
|
||||
@@ -827,6 +909,7 @@ module pcb_component(comp, cutouts = false, angle = undef) { //! Draw pcb compon
|
||||
if(show(comp, "led")) led(comp[4], comp[5], 2.6);
|
||||
if(show(comp, "pdip")) pdip(comp[4], comp[5], param(6, false), param(7, inch(0.3)));
|
||||
if(show(comp, "ax_res")) ax_res(comp[4], comp[5], param(6, 5), param(7, 0));
|
||||
if(show(comp, "molex_usb_Ax2")) molex_usb_Ax2(cutouts);
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -352,7 +352,7 @@ TP4056 = ["TP4056", "TP4056 Li-lon Battery charger module", 26.2, 17.5, 1.0, 0,
|
||||
]];
|
||||
|
||||
WD2002SJ = ["WD2002SJ", "WD2002SJ Buck Boost DC-DC converter", 78, 47, 1.6, 0, 3.2, 0, "#2140BE", false, [[4,4], [-4,4], [-4,-4], [4,-4]],
|
||||
[ [ 39, -20.5, 0, "-chip", 63, 41, 4, "silver"],
|
||||
[ [ 39, -20.5, 0, "-chip", 63, 41, 3.4, "silver"],
|
||||
[ -4, 12, 0, "gterm508", 2, [], "blue"],
|
||||
[ 4, 12, 180, "gterm508", 2, [], "blue"],
|
||||
[ -25.5, 3.1, 0, "trimpot10", true],
|
||||
|
Reference in New Issue
Block a user