1
0
mirror of https://github.com/nophead/NopSCADlib.git synced 2025-09-04 04:35:29 +02:00

Compare commits

...

9 Commits

Author SHA1 Message Date
Chris Palmer
5a06f79466 Updated gallery pic. 2020-05-26 18:24:04 +01:00
Chris Palmer
98e17080d8 Added meter_shunt_y() function to led_meter. 2020-05-26 15:19:38 +01:00
Chris Palmer
d3f308a45e Pixel differences in images due to OpenSCAD version update. 2020-05-20 21:58:07 +01:00
Chris Palmer
fe454884e0 Fixed Ampmeter typo. 2020-05-20 21:41:54 +01:00
Chris Palmer
c019448dd3 Unused imaged removed. 2020-05-20 21:40:13 +01:00
Chris Palmer
eadc541e8f Screw_and_washer() no longer adds washers for countersunk screws. 2020-05-18 15:29:19 +01:00
Chris Palmer
02791c40ac pbox_outer_shape() added and pbox_screw_positions() documented. 2020-05-18 15:28:26 +01:00
Chris Palmer
85b8ffbbc3 Fixed pin header parameter values passed from PCBs. 2020-05-18 15:27:22 +01:00
Chris Palmer
dd5d3869ad Removed old file 2020-05-18 15:04:41 +01:00
15 changed files with 42 additions and 29 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 174 KiB

After

Width:  |  Height:  |  Size: 178 KiB

View File

@@ -78,7 +78,7 @@ function pbox_screw_inset(type) = //! How far the base screws are inset
R = pbox_radius(type)
) max(r, R - (R - r) / sqrt(2));
module pbox_screw_positions(type) {
module pbox_screw_positions(type) { //! Place children at base screw positions
foot = pbox_foot(type);
inset = pbox_screw_inset(type);
for(x = [-1, 1], y = [-1, 1])
@@ -127,6 +127,9 @@ module pbox_inner_shape(type) {
rounded_square([w, d], rad, center = true);
}
module pbox_outer_shape(type) //! 2D outer shape of the box
offset(pbox_wall(type) / 2) pbox_mid_shape(type);
module pbox_base(type) { //! Generate the STL for the base
stl(str(pbox_name(type),"_base"));
t = pbox_base(type);
@@ -161,7 +164,7 @@ module pbox(type) { //! Generate the STL for the main case
difference() {
union() {
linear_extrude(total_height)
offset(wall / 2) pbox_mid_shape(type);
pbox_outer_shape(type);
if($children > 2)
children(2);

View File

@@ -1433,7 +1433,7 @@ The 7 SEGMENT.TTF font from the [docs](docs) directory needs to be installed to
| ```meter_lug_size(type)``` | Lug length and width |
| ```meter_offset(type)``` | Display position, 0 = center, +1 = top |
| ```meter_pcb_size(type)``` | PCB size excluding lugs |
| ```meter_shunt(type)``` | Ampmeter shunt wire |
| ```meter_shunt(type)``` | Ammeter shunt wire |
| ```meter_size(type)``` | Size of display |
### Functions
@@ -1443,6 +1443,7 @@ The 7 SEGMENT.TTF font from the [docs](docs) directory needs to be installed to
| ```meter_bezel_rad(type)``` | Printed bezel corner radius |
| ```meter_bezel_wall(type)``` | Printed bezel wall thickness |
| ```meter_bezel_width(type)``` | Printed bezel width |
| ```meter_shunt_y(type)``` | Shunt y coordinate |
### Modules
| Module | Description |
@@ -2094,7 +2095,7 @@ PCBs and perfboard with optional components. The shape can be a rectangle with o
### Vitamins
| Qty | Module call | BOM entry |
| ---:|:--- |:---|
| 1 | ```box_header(2p54header, 4, 2, smt = 0)``` | Box header 4 x 2 |
| 1 | ```box_header(2p54header, 4, 2)``` | Box header 4 x 2 |
| 1 | ```d_plug(DCONN9, pcb = true)``` | D-type 9 way PCB mount plug |
| 1 | ```dil_socket(12, 15.24)``` | DIL socket 24 x 0.6" |
| 1 | ```hdmi(hdmi_full)``` | HDMI socket |
@@ -2107,12 +2108,11 @@ PCBs and perfboard with optional components. The shape can be a rectangle with o
| 1 | ```microswitch(small_microswitch)``` | Microswitch DM1-00P-110-3 |
| 1 | ```hdmi(hdmi_mini)``` | Mini HDMI socket |
| 1 | ```molex_254(2)``` | Molex KK header 2 way |
| 1 | ```pin_header(2p54header, 4, 1, smt = 0)``` | Pin header 4 x 1 |
| 1 | ```pin_header(2p54header, 5, 1, smt = undef)``` | Pin header 5 x 1 |
| 1 | ```pin_socket(2p54header, 4, 1, right_angle = undef, height = undef, smt = undef)``` | Pin socket 4 x 1 |
| 1 | ```pin_header(2p54header, 4, 1)``` | Pin header 4 x 1 |
| 1 | ```pin_header(2p54header, 5, 1)``` | Pin header 5 x 1 |
| 1 | ```pin_socket(2p54header, 4, 1)``` | Pin socket 4 x 1 |
| 1 | ```pin_socket(2p54header, 6, 1)``` | Pin socket 6 x 1 |
| 1 | ```pin_socket(2p54header, 8, 1)``` | Pin socket 8 x 1 |
| 1 | ```pin_socket(2p54header, 8, 1, right_angle = undef, height = undef, smt = undef)``` | Pin socket 8 x 1 |
| 2 | ```pin_socket(2p54header, 8, 1)``` | Pin socket 8 x 1 |
| 1 | ```ax_res(res1_2, 10, tol = 10)``` | Resistor 10 Ohms 10% 0.5W |
| 1 | ```ax_res(res1_4, 100, tol = 2)``` | Resistor 100 Ohms 2% 0.25W |
| 1 | ```ax_res(res1_8, 1000)``` | Resistor 1000 Ohms 5% 0.125W |
@@ -4706,6 +4706,8 @@ It can also have printed feet on the base with the screws doubling up to hold th
| ```pbox_base(type)``` | Generate the STL for the base |
| ```pbox_base_screws(type, thickness = 0)``` | Place the screws and feet |
| ```pbox_inserts(type)``` | Place the inserts for the base screws |
| ```pbox_outer_shape(type)``` | 2D outer shape of the box |
| ```pbox_screw_positions(type)``` | Place children at base screw positions |
![printed_box](tests/png/printed_box.png)

View File

@@ -61,10 +61,10 @@ test_pcb = ["TestPCB", "Test PCB",
[ 20, -15, 0, "trimpot10", true],
[ 10, 2, 0, "smd_led", LED0805, "red"],
[ 10, 10, 0, "2p54header", 4, 1],
[ 25, 10, 0, "2p54header", 5, 1, undef, "blue" ],
[ 25, 10, 0, "2p54header", 5, 1, false, "blue" ],
[ 10, 20, 0, "2p54boxhdr", 4, 2],
[ 10, 30, 0, "2p54socket", 6, 1],
[ 25, 30, 0, "2p54socket", 4, 1, undef, undef, undef, "red" ],
[ 25, 30, 0, "2p54socket", 4, 1, false, 0, false, "red" ],
[ 10, 40, 0, "chip", 10, 5, 1, grey20],
[ 5, 50, 0, "led", LED3mm, "red"],
[ 12, 50, 0, "led", LED5mm, "orange"],
@@ -119,7 +119,7 @@ test_pcb = ["TestPCB", "Test PCB",
[ 80, 200, 0, "pdip", 24, "27C32", true, inch(0.6) ],
[ 80, 170, 0, "pdip", 8, "NE555" ],
[ 52, 206, 0, "2p54socket", 8, 1 ],
[ 52, 194, 0, "2p54socket", 8, 1, undef, undef, undef, "red" ],
[ 52, 194, 0, "2p54socket", 8, 1, false, 0, false, "red" ],
[ 50, 220, 0, "standoff", 5, 4.5, 12.5, 2.54],
[ 50, 240, 0, "potentiometer"],
[ 75, 240, 0, "potentiometer", 7, 8],

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.5 KiB

After

Width:  |  Height:  |  Size: 6.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 251 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 84 KiB

After

Width:  |  Height:  |  Size: 84 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 61 KiB

After

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 95 KiB

After

Width:  |  Height:  |  Size: 95 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 109 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 41 KiB

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 60 KiB

View File

@@ -34,7 +34,7 @@ function meter_lug_size(type) = type[4]; //! Lug length and width
function meter_lug_offset(type) = type[5]; //! Lug position, 0 = center, +1 = top
function meter_hole_pitch(type) = type[6]; //! Lug hole pitch
function meter_hole_radius(type) = type[7]; //! Lug hole radius
function meter_shunt(type) = type[8]; //! Ampmeter shunt wire
function meter_shunt(type) = type[8]; //! Ammeter shunt wire
function meter_pos(type) = (meter_pcb_size(type).y - meter_size(type).y) * meter_offset(type) / 2;
function meter_lug_pos(type) = (meter_pcb_size(type).y - meter_lug_size(type).y) * meter_lug_offset(type) / 2;
@@ -44,6 +44,8 @@ module meter_hole_positions(type) //! Position children over the holes
translate([side * meter_hole_pitch(type) / 2, meter_lug_pos(type)])
children();
function meter_shunt_y(type) = meter_pos(type) - meter_pcb_size(type).y / 2; //! Shunt y coordinate
module meter(type, colour = "red", value = "888", display_colour = false) //! Draw a meter with optional colour and display value
{
vitamin(str("meter(", type[0], arg(colour, "red", "colour"), "): LED ", meter_shunt(type) ? "am" : "volt", "meter ", colour));
@@ -80,7 +82,7 @@ module meter(type, colour = "red", value = "888", display_colour = false) //! Dr
shunt = meter_shunt(type);
if(shunt)
translate([0, -meter_pcb_size(type).y / 2 + meter_pos(type), size.z])
translate([0, meter_shunt_y(type), size.z])
vflip()
color("#b87333")
wire_link(shunt.y, shunt.x, shunt.z, tail = 2);

View File

@@ -883,9 +883,9 @@ module pcb_component(comp, cutouts = false, angle = undef) { //! Draw pcb compon
function param(n, default = 0) = len(comp) > n ? comp[n] : default;
rotate(comp.z) {
// Components that have a cutout parameter go in this section
if(show(comp, "2p54header")) pin_header(2p54header, comp[4], comp[5], param(6), false, cutouts, colour = param(7, undef));
if(show(comp, "2p54boxhdr")) box_header(2p54header, comp[4], comp[5], param(6), cutouts);
if(show(comp, "2p54socket")) pin_socket(2p54header, comp[4], comp[5], param(6, false), param(7), param(8, false), cutouts, param(9, undef));
if(show(comp, "2p54header")) pin_header(2p54header, comp[4], comp[5], param(6, false), false, cutouts, colour = param(7, undef));
if(show(comp, "2p54boxhdr")) box_header(2p54header, comp[4], comp[5], param(6, false), cutouts);
if(show(comp, "2p54socket")) pin_socket(2p54header, comp[4], comp[5], param(6, false), param(7, 0), param(8, false), cutouts, param(9, undef));
if(show(comp, "chip")) chip(comp[4], comp[5], comp[6], param(7, grey30), cutouts);
if(show(comp, "rj45")) rj45(cutouts);
if(show(comp, "usb_A")) usb_Ax1(cutouts);

View File

@@ -259,22 +259,28 @@ module screw_countersink(type) { //! Countersink shape
module screw_and_washer(type, length, star = false, penny = false) { //! Screw with a washer which can be standard or penny and an optional star washer on top
washer = screw_washer(type);
head_type = screw_head_type(type);
translate_z(exploded() * 6)
if(penny)
penny_washer(washer);
else
washer(washer);
if(head_type != hs_cs && head_type != hs_cs_cap) {
translate_z(exploded() * 6)
if(penny)
penny_washer(washer);
else
washer(washer);
translate_z(washer_thickness(washer)) {
if(star) {
translate_z(exploded() * 8)
star_washer(washer);
translate_z(washer_thickness(washer)) {
if(star) {
translate_z(exploded() * 8)
star_washer(washer);
translate_z(washer_thickness(washer))
translate_z(washer_thickness(washer))
screw(type, length);
}
else
screw(type, length);
}
else
screw(type, length);
}
else
translate_z(eps)
screw(type, length);
}