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

Compare commits

...

8 Commits

Author SHA1 Message Date
Chris Palmer
7b3d7fab55 Fixed some more colour spellings 2020-03-29 21:36:11 +01:00
Chris Palmer
654571a70e Colour now always spelt colour except the call to color(). 2020-03-29 20:39:17 +01:00
Chris Palmer
e8abcde52f Removed the height parameter from linear_extrude 2020-03-29 20:18:57 +01:00
Chris Palmer
390957fdd0 Added MT3608 and TP4065 PCBs.
Perfboards now have their own row in the test to shorten the picture.
2020-03-28 10:54:06 +00:00
Chris Palmer
bde8cbe7a6 Added cutout for trimpot10. 2020-03-28 10:51:43 +00:00
Chris Palmer
fbe8533a42 Added function to get the height of pcb carriers. 2020-03-27 17:30:35 +00:00
Chris Palmer
a9c2f854c6 Can now have rectangular lands on PCB holes. 2020-03-27 17:29:50 +00:00
Chris Palmer
6187d90c57 Added 10 turn trimpots 2020-03-27 17:28:20 +00:00
96 changed files with 409 additions and 316 deletions

View File

@@ -51,7 +51,7 @@ $fa = 6;
$fs = extrusion_width / 2;
function round_to_layer(z) = ceil(z / layer_height) * layer_height;
// Some additional named colors
// Some additional named colours
grey20 = [0.2, 0.2, 0.2];
grey30 = [0.3, 0.3, 0.3];
grey40 = [0.4, 0.4, 0.4];

Binary file not shown.

Before

Width:  |  Height:  |  Size: 782 KiB

After

Width:  |  Height:  |  Size: 774 KiB

View File

@@ -171,8 +171,8 @@ hot_ends_y = pulleys_y + 60;
linear_bearings_y = hot_ends_y + 50;
sheets_y = linear_bearings_y + 100;
pcbs_y = sheets_y + 40;
displays_y = pcbs_y + 150;
fans_y = displays_y + 100;
displays_y = pcbs_y + 170;
fans_y = displays_y + 80;
transformers_y = fans_y + 120;
psus_y = transformers_y + 190;
@@ -380,7 +380,7 @@ translate([x4 + 150, belts_y + 58]) {
translate([x4, rails_y + 130])
rails();
translate([800, fans_y])
translate([800, fans_y + 50])
cable_strips();
translate([x4, kp_pillow_blocks_y])

View File

@@ -129,7 +129,7 @@ module box_corner_profile(type) { //! Generates the corner profile STL for 3D pr
length = box_height(type) - 2 * box_margin(type);
difference() {
linear_extrude(height = length, center = true, convexity = 5)
linear_extrude(length, center = true, convexity = 5)
box_corner_profile_2D(type);
for(z = [-1, 1])
@@ -148,24 +148,24 @@ module box_corner_profile_section(type, section, sections) { //! Generates inter
difference() {
union() {
linear_extrude(height = h, convexity = 5)
linear_extrude(h, convexity = 5)
box_corner_profile_2D(type);
if(!last_section) // male end always at the top
translate_z(section_length - 1)
for(i = [0 : 1], offset = i * layer_height)
linear_extrude(height = overlap + 1 - offset)
linear_extrude(overlap + 1 - offset)
offset(1 + offset - layer_height)
offset(-overlap_wall - 1)
box_corner_profile_2D(type);
}
if(section > 0)
translate_z(last_section ? h : 0) { // female at bottom unless last section
linear_extrude(height = 2 * (overlap + layer_height), center = true, convexity = 5)
linear_extrude(2 * (overlap + layer_height), center = true, convexity = 5)
offset(-overlap_wall)
box_corner_profile_2D(type);
linear_extrude(height = 2 * layer_height, center = true, convexity = 5)
linear_extrude(2 * layer_height, center = true, convexity = 5)
offset(-overlap_wall + layer_height)
box_corner_profile_2D(type);
}
@@ -223,7 +223,7 @@ module box_bezel(type, bottom) { //! Generates top and bottom bezel STLs
// slots for side panels
//
translate_z(-box_profile_overlap(type))
linear_extrude(height = 2 * box_profile_overlap(type), center = true)
linear_extrude(2 * box_profile_overlap(type), center = true)
for(i = [-1, 1]) {
translate([i * (box_width(type) / 2 + t / 2 - sheet_slot_clearance / 2), 0])
square([t, box_depth(type) - 2 * box_corner_gap(type)], center = true);
@@ -240,7 +240,7 @@ module box_bezel(type, bottom) { //! Generates top and bottom bezel STLs
// leave plastic over the corner profiles
//
translate_z(-box_profile_overlap(type) - 1)
linear_extrude(height = box_profile_overlap(type) + box_corner_gap(type) + 2)
linear_extrude(box_profile_overlap(type) + box_corner_gap(type) + 2)
union() {
difference() {
square([box_width(type) - 2 * box_inset(type),
@@ -273,7 +273,7 @@ module box_bezel_section(type, bottom, rows, cols, x, y) { //! Generates interlo
end_clearance = 0.5;
module male() {
rotate([90, 0, 90])
linear_extrude(height = dowel_length - 2 * end_clearance, center = true)
linear_extrude(dowel_length - 2 * end_clearance, center = true)
difference() {
union() {
h = dh - layer_height;

View File

@@ -59,7 +59,7 @@ module ribbon_grommet(ways, thickness) { //! Generate the STL for a printed ribb
union() {
for(side = [-1, 1])
translate_z(side * (width - wall) / 2)
linear_extrude(height = wall, center = true, convexity = 5)
linear_extrude(wall, center = true, convexity = 5)
difference() {
hull() {
translate([-length / 2, 0])
@@ -73,7 +73,7 @@ module ribbon_grommet(ways, thickness) { //! Generate the STL for a printed ribb
square([slot_length, slot_height]);
}
linear_extrude(height = width -1, center = true)
linear_extrude(width -1, center = true)
difference() {
ribbon_grommet_hole(ways, expand = false, h = 0);
@@ -170,14 +170,14 @@ module mouse_grommet(r, thickness) { //! Make the STL for a mouse grommet
union() {
for(side = [-1, 1])
translate_z(side * (width - wall) / 2)
linear_extrude(height = wall, center = true)
linear_extrude(wall, center = true)
difference() {
mouse_grommet_hole(r, z = r + wall, h = 0, expand = wall + overlap);
translate([0, wall])
mouse_grommet_hole(r, h = 0, expand = 0);
}
linear_extrude(height = width - 1, center = true)
linear_extrude(width - 1, center = true)
difference() {
mouse_grommet_hole(r, h = 0, z = r + wall, expand = wall);

View File

@@ -24,6 +24,8 @@ $extrusion_width = 0.5;
include <../utils/core/core.scad>
function carrier_height() = 3; //! Height of PCB carrier
module ESP12F_carrier_stl() { //! Generate the STL for an ESP12 carrier
stl("ESP12F_carrier");
pins = 8;
@@ -33,7 +35,7 @@ module ESP12F_carrier_stl() { //! Generate the STL for an ESP12 carrier
hole2 = pitch2 - 3 * extrusion_width;
length1 = (pins - 1) * pitch1 + hole + squeezed_wall * 2;
length2 = (pins - 1) * pitch2 + hole + squeezed_wall * 2;
height = 3;
height = carrier_height();
wpitch1 = (pins - 1) * pitch1;
wpitch2 = ceil(wpitch1 / 2.54) * 2.54;
@@ -71,7 +73,7 @@ module TP4056_carrier_stl() { //! Generate the STL for an TP4056 carrier, two re
pins = 6;
length1 = outer_pitch + hole + squeezed_wall * 2;
length2 = (pins - 1) * pitch + hole + squeezed_wall * 2;
height = 3;
height = carrier_height();
width = hole + squeezed_wall * 2;
spacing = inch(0.9);
@@ -106,7 +108,7 @@ module MT3608_carrier_stl() { //! Generate the STL for an MT3608 carrier, two re
l_pitch_top = 30.855;
l_pitch_bot = inch(1.2);
hole = 1;
height = 3;
height = carrier_height();
wall = 2 * extrusion_width;
width = hole + 2 * wall;
offset = (l_pitch_top - l_pitch_bot) / 2;

View File

@@ -60,7 +60,7 @@ module door_hinge(door_thickness) { //! Generates STL fo
union() {
rotate([90, 0, 0])
linear_extrude(height = width, center = true)
linear_extrude(width, center = true)
difference() {
hull() {
translate([dia / 2, thickness + door_thickness / 2])
@@ -76,7 +76,7 @@ module door_hinge(door_thickness) { //! Generates STL fo
translate([dia / 2, thickness + door_thickness / 2])
teardrop(r = screw_clearance_radius(pin_screw), h = 0);
}
linear_extrude(height = thickness)
linear_extrude(thickness)
difference() {
hull() {
translate([0, -width / 2])
@@ -108,7 +108,7 @@ module door_hinge_stat_stl() { //! Generates the STL for the stationary part
stl("door_hinge_stat");
union() {
linear_extrude(height = thickness)
linear_extrude(thickness)
difference() {
rounded_square([stat_length, stat_width], rad);
@@ -117,7 +117,7 @@ module door_hinge_stat_stl() { //! Generates the STL for the stationary part
}
rotate([90, 0, 0])
linear_extrude(height = stat_width, center = true)
linear_extrude(stat_width, center = true)
difference() {
hull() {
translate([0, dia / 2 + stat_clearance])

View File

@@ -81,7 +81,7 @@ module fixing_block(screw = def_screw) { //! Generate the STL
difference() {
union() {
linear_extrude(height = fb_height, convexity = 5)
linear_extrude(fb_height, convexity = 5)
difference() {
hull() {
for(side = [-1, 1]) {

View File

@@ -82,7 +82,7 @@ module hinge_male(type, female = false) { //! The half with the stationary
teardrop_r = kr / cos(22.5); // The corner on the teardrop
inset = sqrt(sqr(teardrop_r + gap) - sqr(kr - t)) - kr;
linear_extrude(height =t)
linear_extrude(t)
difference() {
hull() {
for(side = [-1, 1])
@@ -102,7 +102,7 @@ module hinge_male(type, female = false) { //! The half with the stationary
rotate([90, 0, -90])
for(z = [0 : (female ? fn : mn) - 1])
translate_z(-dir * w / 2 + z * dir * pitch + (female ? -fw - mw - gap : 0))
linear_extrude(height = female ? fw : mw)
linear_extrude(female ? fw : mw)
difference() {
hull() {
rotate(180)

View File

@@ -56,7 +56,7 @@ module foot(type = foot) { //! Generate STL
circle4n(r);
}
}
linear_extrude(height = t)
linear_extrude(t)
difference() {
circle(r1 + eps);
@@ -116,7 +116,7 @@ module insert_foot(type = insert_foot) { //! Generate STL for foot with insert
}
}
}
linear_extrude(height = h2 + eps)
linear_extrude(h2 + eps)
difference() {
circle(r5 + eps);

View File

@@ -62,7 +62,7 @@ module pcb_mount_ring()
}
module pcb_mount_washer_stl() //! A plastic washer to clamp a PCB
linear_extrude(height = washer_thickness)
linear_extrude(washer_thickness)
pcb_mount_ring();
module pcb_mount(pcb, height = 5, washers = true) { //! Make the STL of a pcb mount for the specified PCB.
@@ -85,10 +85,10 @@ module pcb_mount(pcb, height = 5, washers = true) { //! Make the STL of a pcb mo
cube([pillar_x_pitch(pcb) - 2 * wall, frame_w, frame_t], center = true);
pcb_mount_screw_positions(pcb)
linear_extrude(height = height)
linear_extrude(height)
pcb_mount_ring();
linear_extrude(height = height + pcb_thickness(pcb) - layer_height)
linear_extrude(height + pcb_thickness(pcb) - layer_height)
difference() {
pcb_mount_screw_positions(pcb)
pcb_mount_ring();

View File

@@ -129,7 +129,7 @@ module pbox_base(type) { //! Generate the STL for the base
t = pbox_base(type);
difference() {
union() {
linear_extrude(height = t)
linear_extrude(t)
offset(base_outset - 0.2)
pbox_inner_shape(type);
@@ -157,7 +157,7 @@ module pbox(type) { //! Generate the STL for the main case
difference() {
union() {
linear_extrude(height = total_height)
linear_extrude(total_height)
offset(wall / 2) pbox_mid_shape(type);
if($children > 2)
@@ -166,11 +166,11 @@ module pbox(type) { //! Generate the STL for the main case
difference() {
translate_z(top_thickness)
union() {
linear_extrude(height = height + eps)
linear_extrude(height + eps)
offset(-wall / 2) pbox_mid_shape(type);
translate_z(height) // Recess for the base
linear_extrude(height = total_height - height)
linear_extrude(total_height - height)
offset(base_outset)
pbox_inner_shape(type);
}
@@ -181,11 +181,11 @@ module pbox(type) { //! Generate the STL for the main case
rounded_rectangle([pbox_width(type) + 2 * outset, pbox_depth(type) + 2 * outset, ledge_h], 1, center = false);
hull() {
linear_extrude(height = ledge_h + eps)
linear_extrude(ledge_h + eps)
offset(ledge_inset)
pbox_inner_shape(type);
linear_extrude(height = eps)
linear_extrude(eps)
offset(ledge_outset)
pbox_inner_shape(type);
}

View File

@@ -113,21 +113,21 @@ module psu_shroud(type, cable_d, name, cables = 1) { //! Generate the STL file f
translate([centre_x, -centre_y]) {
rounded_rectangle([depth - eps, width - eps, top], rad, center = false);
linear_extrude(height = height)
linear_extrude(height)
difference() {
shape();
translate([depth / 2, width / 2 - 5])
square([2 * (depth - extent + terminal_clearance), 10], center = true);
}
linear_extrude(height = height - terminal_block_height(tb) - psu_terminal_block_z(type) - terminal_clearance)
linear_extrude(height - terminal_block_height(tb) - psu_terminal_block_z(type) - terminal_clearance)
shape();
}
// cable slots
for(i = [0 : 1 : cables - 1])
translate([centre_x - depth / 2 + wall / 2, -centre_y + (i - cables / 2 + 0.5) * psu_shroud_cable_pitch(cable_d), height / 2])
rotate([90, 0, 90])
linear_extrude(height = wall, center = true)
linear_extrude(wall, center = true)
difference() {
square([cable_d + eps, height], center = true);

View File

@@ -48,7 +48,7 @@ module screw_knob(screw) { //! Generate the STL for a knob to fit the specified
rotate(45)
circle(r = nut_trap_radius(screw_nut(screw)), $fn = 6);
}
linear_extrude(height = knob_thickness, convexity = 3)
linear_extrude(knob_thickness, convexity = 3)
difference() {
polygon(points = [for(a = [0 : 359]) [wave(a) * sin(a), wave(a) * cos(a)]]);

View File

@@ -52,12 +52,12 @@ module socket_box(type) { //! Generate STL of the backbox for the specified sock
insert_hole_radius = insert_hole_radius(insert);
difference() {
linear_extrude(height = height, convexity = 5)
linear_extrude(height, convexity = 5)
face_plate(type);
difference() {
translate_z(base_thickness)
linear_extrude(height = height, convexity = 5)
linear_extrude(height, convexity = 5)
offset(-wall) offset(1) face_plate(type);
for(side = [-1, 1])

View File

@@ -73,7 +73,7 @@ module ssr_shroud(type, cable_d, name) { //! Generate the STL file for a spec
translate([center_x, 0]) {
rounded_rectangle([depth - eps, width - eps, top], rad, center = false);
linear_extrude(height = height) difference() {
linear_extrude(height) difference() {
round(or = wall / 2 - eps, ir = 0) difference() {
rounded_square([depth, width], rad);
@@ -91,7 +91,7 @@ module ssr_shroud(type, cable_d, name) { //! Generate the STL file for a spec
for(side = [-1, 1])
translate([cable_x, side * (width / 2 - wall / 2), height / 2])
rotate([90, 0, 0])
linear_extrude(height = wall, center = true)
linear_extrude(wall, center = true)
difference() {
square([cable_d + eps, height], center = true);

View File

@@ -77,7 +77,7 @@ module strap(length, type = strap) { //! Generate the STL for the rubber strap
len = length - 2 * (wall + clearance);
w = strap_width(type);
linear_extrude(height = strap_thickness(type), convexity = 3)
linear_extrude(strap_thickness(type), convexity = 3)
difference() {
rounded_square([len, w], w / 2 - eps);
@@ -119,12 +119,12 @@ module strap_end(type = strap) { //! Generate the STL for end piece
}
union() {
linear_extrude(height = z1)
linear_extrude(z1)
with_hole()
outer();
translate_z(z1)
linear_extrude(height = strap_height(type) - z1)
linear_extrude(strap_height(type) - z1)
difference() {
outer();
@@ -137,11 +137,11 @@ module strap_end(type = strap) { //! Generate the STL for end piece
}
}
linear_extrude(height = strap_height(type) - layer_height)
linear_extrude(strap_height(type) - layer_height)
with_hole()
strap_boss_shape(type);
linear_extrude(height = z2)
linear_extrude(z2)
with_hole()
offset(cnc_bit_r)
offset(-step - cnc_bit_r)

View File

@@ -1905,7 +1905,7 @@ PCBs and perfboard with optional components. The shape can be a rectangle with o
| Module | Description |
|:--- |:--- |
| ```barrel_jack(cutout = false)``` | Draw barrel power jack |
| ```buzzer(height, diameter, colour)``` | Draw PCB buzzer with specified height, diameter and color |
| ```buzzer(height, diameter, colour)``` | Draw PCB buzzer with specified height, diameter and colour |
| ```chip(length, width, thickness, colour, cutout = false)``` | Draw a coloured cube to represent a chip, or other rectangular component |
| ```flat_flex(cutout = false)``` | Draw flat flexistrip connector as used on RPI0 |
| ```flex(cutout = false)``` | Draw flexistrip connector |
@@ -1923,7 +1923,9 @@ PCBs and perfboard with optional components. The shape can be a rectangle with o
| ```pcb_screw_positions(type)``` | Positions children at the mounting hole positions |
| ```pcb_spacer(screw, height, wall = 1.8, taper = 0)``` | Generate STL for PCB spacer |
| ```rj45(cutout = false)``` | Draw RJ45 Ethernet connector |
| ```standoff(h, d, h2, d2)``` | Draw a standoff |
| ```terminal_35(ways, colour = "blue")``` | Draw 3.5mm terminal block |
| ```trimpot10(vertical, cutout = false)``` | Draw a ten turn trimpot |
| ```uSD(size, cutout = false)``` | Draw uSD socket |
| ```usb_Ax1(cutout = false)``` | Draw USB type A single socket |
| ```usb_Ax2(cutout = false)``` | Draw USB type A dual socket |
@@ -1989,7 +1991,7 @@ PCBs and perfboard with optional components. The shape can be a rectangle with o
| Module | Description |
|:--- |:--- |
| ```barrel_jack(cutout = false)``` | Draw barrel power jack |
| ```buzzer(height, diameter, colour)``` | Draw PCB buzzer with specified height, diameter and color |
| ```buzzer(height, diameter, colour)``` | Draw PCB buzzer with specified height, diameter and colour |
| ```chip(length, width, thickness, colour, cutout = false)``` | Draw a coloured cube to represent a chip, or other rectangular component |
| ```flat_flex(cutout = false)``` | Draw flat flexistrip connector as used on RPI0 |
| ```flex(cutout = false)``` | Draw flexistrip connector |
@@ -2007,7 +2009,9 @@ PCBs and perfboard with optional components. The shape can be a rectangle with o
| ```pcb_screw_positions(type)``` | Positions children at the mounting hole positions |
| ```pcb_spacer(screw, height, wall = 1.8, taper = 0)``` | Generate STL for PCB spacer |
| ```rj45(cutout = false)``` | Draw RJ45 Ethernet connector |
| ```standoff(h, d, h2, d2)``` | Draw a standoff |
| ```terminal_35(ways, colour = "blue")``` | Draw 3.5mm terminal block |
| ```trimpot10(vertical, cutout = false)``` | Draw a ten turn trimpot |
| ```uSD(size, cutout = false)``` | Draw uSD socket |
| ```usb_Ax1(cutout = false)``` | Draw USB type A single socket |
| ```usb_Ax2(cutout = false)``` | Draw USB type A dual socket |
@@ -2029,6 +2033,7 @@ PCBs and perfboard with optional components. The shape can be a rectangle with o
| 1 | ```pcb(EnviroPlus)``` | Enviro+ |
| 1 | ```pcb(ExtruderPCB)``` | Extruder connection PCB |
| 1 | ```pcb(Keyes5p1)``` | Keyes5.1 Arduino Uno expansion board |
| 1 | ```pcb(MT3608)``` | MT3608 boost converter module |
| 1 | ```pcb(Melzi)``` | Melzi electronics |
| 4 | | Micro SD card |
| 1 | ```molex_254(2)``` | Molex KK header 2 way |
@@ -2048,15 +2053,20 @@ PCBs and perfboard with optional components. The shape can be a rectangle with o
| 1 | ```pcb(RAMPSEndstop)``` | RAMPS Endstop Switch |
| 1 | ```pcb(RPI3)``` | Raspberry Pi 3 |
| 1 | ```pcb(RPI0)``` | Raspberry Pi Zero |
| 16 | ```screw(M2_cap_screw, 25)``` | Screw M2 cap x 25mm |
| 12 | ```screw(M2_cap_screw, 16)``` | Screw M2 cap x 16mm |
| 4 | ```screw(M2_cap_screw, 20)``` | Screw M2 cap x 20mm |
| 2 | ```screw(M2p5_cap_screw, 16)``` | Screw M2.5 cap x 16mm |
| 12 | ```screw(M2p5_cap_screw, 20)``` | Screw M2.5 cap x 20mm |
| 4 | ```screw(M2p5_cap_screw, 20)``` | Screw M2.5 cap x 20mm |
| 4 | ```screw(M2p5_cap_screw, 25)``` | Screw M2.5 cap x 25mm |
| 4 | ```screw(M2p5_cap_screw, 30)``` | Screw M2.5 cap x 30mm |
| 4 | ```screw(M2p5_pan_screw, 20)``` | Screw M2.5 pan x 20mm |
| 8 | ```screw(M2p5_pan_screw, 25)``` | Screw M2.5 pan x 25mm |
| 4 | ```screw(M2p5_pan_screw, 35)``` | Screw M2.5 pan x 35mm |
| 8 | ```screw(M3_cap_screw, 30)``` | Screw M3 cap x 30mm |
| 12 | ```screw(M2p5_pan_screw, 25)``` | Screw M2.5 pan x 25mm |
| 4 | ```screw(M3_cap_screw, 16)``` | Screw M3 cap x 16mm |
| 4 | ```screw(M3_cap_screw, 30)``` | Screw M3 cap x 30mm |
| 4 | ```screw(M3_cap_screw, 35)``` | Screw M3 cap x 35mm |
| 12 | ```screw(M4_cap_screw, 35)``` | Screw M4 cap x 35mm |
| 8 | ```screw(M4_cap_screw, 30)``` | Screw M4 cap x 30mm |
| 4 | ```screw(M4_cap_screw, 35)``` | Screw M4 cap x 35mm |
| 1 | ```pcb(TP4056)``` | TP4056 Li-lon Battery charger module |
| 3 | ```terminal_35(2)``` | Terminal block 2 way 3.5mm |
| 2 | ```green_terminal(gt_2p54, 4)``` | Terminal block 4 way 0.1" |
| 1 | | USB A to Mini B lead |
@@ -2069,24 +2079,24 @@ PCBs and perfboard with optional components. The shape can be a rectangle with o
### Printed
| Qty | Filename |
| ---:|:--- |
| 4 | pcb_spacer20140.stl |
| 4 | pcb_spacer20150.stl |
| 4 | pcb_spacer20160.stl |
| 4 | pcb_spacer20170.stl |
| 4 | pcb_spacer2060.stl |
| 4 | pcb_spacer2070.stl |
| 4 | pcb_spacer2080.stl |
| 4 | pcb_spacer2090.stl |
| 4 | pcb_spacer25100.stl |
| 4 | pcb_spacer25110_2.stl |
| 4 | pcb_spacer25120_2.stl |
| 4 | pcb_spacer25110.stl |
| 4 | pcb_spacer25120.stl |
| 4 | pcb_spacer25130_2.stl |
| 4 | pcb_spacer25240.stl |
| 2 | pcb_spacer2550.stl |
| 4 | pcb_spacer2580.stl |
| 4 | pcb_spacer2590.stl |
| 4 | pcb_spacer30180.stl |
| 4 | pcb_spacer30190.stl |
| 4 | pcb_spacer30230.stl |
| 4 | pcb_spacer25140_2.stl |
| 4 | pcb_spacer25150_2.stl |
| 4 | pcb_spacer25170.stl |
| 2 | pcb_spacer2570.stl |
| 4 | pcb_spacer30160.stl |
| 4 | pcb_spacer30210.stl |
| 4 | pcb_spacer3050.stl |
| 4 | pcb_spacer40180.stl |
| 4 | pcb_spacer40190.stl |
| 4 | pcb_spacer40200.stl |
| 4 | pcb_spacer40210.stl |
| 4 | pcb_spacer40220.stl |
<a href="#top">Top</a>
@@ -2377,10 +2387,10 @@ Linear rails with carriages.
### Modules
| Module | Description |
|:--- |:--- |
| ```carriage(type, rail, end_color = grey20, wiper_color = grey20)``` | Draw the specified carriage |
| ```carriage(type, rail, end_colour = grey20, wiper_colour = grey20)``` | Draw the specified carriage |
| ```carriage_hole_positions(type)``` | Position children over screw holes |
| ```rail(type, length)``` | Draw the specified rail |
| ```rail_assembly(type, length, pos, carriage_end_color = grey20, carriage_wiper_color = grey20)``` | Rail and carriage assembly |
| ```rail_assembly(type, length, pos, carriage_end_colour = grey20, carriage_wiper_colour = grey20)``` | Rail and carriage assembly |
| ```rail_hole_positions(type, length, first = 0, screws = 100, both_ends = true)``` | Position children over screw holes |
| ```rail_screws(type, length, thickness, screws = 100)``` | Place screws in the rail |
@@ -2739,7 +2749,7 @@ The "Soft" parameter can be used to determinesif the sheet material needs machin
* If soft, wood screws will be used, with a pilot hole.
* If not soft, either tapped holes or a clearance hole and nuts will be used to retain screws.
The "Color" parameter is a quad-array: [R, G, B, Alpha], or can be a named color, see [OpenSCAD_User_Manual](https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/The_OpenSCAD_Language#color).
The "Colour" parameter is a quad-array: [R, G, B, Alpha], or can be a named colour, see [OpenSCAD_User_Manual](https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/The_OpenSCAD_Language#color).
For speed sheets should be modelled in 2D by subtracting holes from 2D templates made by ```sheet_2D()``` and then extruded to 3D with ```render_2D_sheet()```.
Note that modules that drill holes will return a 2D object if ```h``` is set to 0 to facilitate this.
@@ -2761,8 +2771,8 @@ Note that modules that drill holes will return a 2D object if ```h``` is set to
### Modules
| Module | Description |
|:--- |:--- |
| ```render_2D_sheet(type, color = false)``` | Extrude a 2D sheet template and give it the correct colour |
| ```render_sheet(type, color = false)``` | Render a sheet in the correct colour after holes have been subtracted |
| ```render_2D_sheet(type, colour = false)``` | Extrude a 2D sheet template and give it the correct colour |
| ```render_sheet(type, colour = false)``` | Render a sheet in the correct colour after holes have been subtracted |
| ```sheet(type, w, d, corners = [0, 0, 0, 0])``` | Draw specified sheet |
| ```sheet_2D(type, w, d, corners = [0, 0, 0, 0])``` | 2D sheet template with specified size and optionally rounded corners |
@@ -3482,7 +3492,7 @@ Just a BOM entry at the moment and cable bundle size functions for holes, plus c
| ```cable_tie_holes(cable_r, h = 100)``` | Holes to thread a ziptie through a panel to make a cable tie. |
| ```mouse_hole(cable, h = 100, teardrop = false)``` | A mouse hole to allow a panel to go over a wire bundle. |
| ```ribbon_cable(ways, length)``` | Add ribbon cable to the BOM |
| ```wire(color, strands, length, strand = 0.2)``` | Add stranded wire to the BOM |
| ```wire(colour, strands, length, strand = 0.2)``` | Add stranded wire to the BOM |
![wire](tests/png/wire.png)
@@ -3796,6 +3806,11 @@ Adapts ESP12 modules and various small PCBs to 0.1" grid. See <https://hydrarapt
[tests/carriers.scad](tests/carriers.scad) Code for this example.
### Functions
| Function | Description |
|:--- |:--- |
| ```carrier_height()``` | Height of PCB carrier |
### Modules
| Module | Description |
|:--- |:--- |

View File

@@ -98,6 +98,8 @@ test_pcb = ["TestPCB", "Test PCB",
[ 12, 444, 0, "2p54socket", 8, 1, undef, undef, undef, "red" ],
[ 10, 470, 0, "standoff", 5, 4.5, 12.5, 2.54],
[ 6, 480, 180, "uSD", [12, 11.5, 1.4]],
[ 20, -5, 180, "trimpot10"],
[ 20, -15, 0, "trimpot10", true],
],
// accessories
[]

View File

@@ -21,11 +21,16 @@ include <../vitamins/pcbs.scad>
use <../utils/layout.scad>
module pcbs()
module pcbs() {
layout([for(p = pcbs) pcb_width(p)], 10)
translate([0, pcb_length(pcbs[$i]) / 2])
rotate(90)
pcb_assembly(pcbs[$i], 5 + $i, 3);
translate([0, 120])
layout([for(p = perfboards) pcb_length(p)], 10)
translate([0, -pcb_width(perfboards[$i]) / 2])
pcb_assembly(perfboards[$i], 5 + $i, 3);
}
if($preview)
pcbs();

View File

@@ -20,7 +20,7 @@ include <../global_defs.scad>
use <../utils/dogbones.scad>
module dogbones() {
#linear_extrude(height = eps)
#linear_extrude(eps)
dogbone_square([10, 20]);
#translate([15, 0])

View File

@@ -20,7 +20,7 @@
include <../utils/core/core.scad>
module globals() {
linear_extrude(height = eps) {
linear_extrude(eps) {
semi_circle(r = 10);
translate([30, 0])

View File

@@ -22,7 +22,7 @@ use <../utils/layout.scad>
diams = [3, 7, 5, 11];
module layouts() {
linear_extrude(height = eps)
linear_extrude(eps)
layout(diams, gap = 1)
circle(d = diams[$i]);
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 89 KiB

After

Width:  |  Height:  |  Size: 90 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 143 KiB

After

Width:  |  Height:  |  Size: 166 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 160 KiB

After

Width:  |  Height:  |  Size: 160 KiB

View File

@@ -34,7 +34,7 @@ module polyholes() {
children();
}
color(pp1_colour) linear_extrude(height = 3, center = true)
color(pp1_colour) linear_extrude(3, center = true)
difference() {
square([100, 27]);

View File

@@ -22,7 +22,7 @@ use <../utils/quadrant.scad>
module quadrants() {
linear_extrude(height = eps)
linear_extrude(eps)
quadrant(10, 4);
}

View File

@@ -28,14 +28,14 @@ module shape()
}
module rounds() {
linear_extrude(height = eps)
linear_extrude(eps)
round(or = 4, ir = 2)
shape();
translate([50, 0])
round_3D(or = 4, ir = 2, chamfer_base = true, $fn = 16)
linear_extrude(height = 40, center = true)
linear_extrude(40, center = true)
shape();
}

View File

@@ -22,7 +22,7 @@ use <../utils/rounded_cylinder.scad>
module rounded_cylinders() {
linear_extrude(height = eps)
linear_extrude(eps)
rounded_corner(10, 20, 3, 5);
translate([30, 10])

View File

@@ -46,7 +46,7 @@ module rounded_polygons() {
length = rounded_polygon_length(profile, tangents);
rotate([70, 0, 315])
linear_extrude(height = eps)
linear_extrude(eps)
rounded_polygon(profile, tangents);
translate([0, -10])

View File

@@ -20,7 +20,7 @@
include <../utils/core/core.scad>
module rounded_rectangles() {
linear_extrude(height = eps)
linear_extrude(eps)
rounded_square([30, 20], 3);
translate([40, 0])

View File

@@ -22,7 +22,7 @@ use <../utils/sector.scad>
module sectors() {
linear_extrude(height = eps)
linear_extrude(eps)
sector(50, 45, 180);
}

View File

@@ -23,7 +23,7 @@ module teardrops() {
color(pp1_colour)
rotate([90, 0, -45])
difference() {
linear_extrude(height = 3) {
linear_extrude(3) {
difference() {
square([80, 40]);

View File

@@ -22,7 +22,7 @@ use <../utils/tube.scad>
module tubes() {
linear_extrude(height = eps)
linear_extrude(eps)
ring(10, 8);
translate([50, 10])

View File

@@ -56,7 +56,7 @@ module wires() {
color(pp1_colour) {
rotate([90, 0, 90])
linear_extrude(height = thickness)
linear_extrude(thickness)
difference() {
translate([-w / 2, 0])
square([w, h]);
@@ -65,7 +65,7 @@ module wires() {
}
translate_z(-thickness)
linear_extrude(height = thickness)
linear_extrude(thickness)
difference() {
translate([thickness -d, -w / 2])
square([d, w]);

View File

@@ -26,7 +26,7 @@ include <../utils/core/core.scad>
module label(str, scale = 0.25, valign = "baseline", halign = "left") //! Draw text that always faces the camera
color("black")
%rotate($vpr != [0, 0, 0] ? $vpr : [70, 0, 315])
linear_extrude(height = eps)
linear_extrude(eps)
scale(scale)
text(str, valign = valign, halign = halign);

View File

@@ -43,7 +43,7 @@ module ellipse(xr, yr) scale([1, yr / xr]) circle4n(xr);
module extrude_if(h, center = true) //! Extrudes 2D object to 3D when ```h``` is nonzero, otherwise leaves it 2D
if(h)
linear_extrude(height = h, center = center, convexity = 2) // 3D
linear_extrude(h, center = center, convexity = 2) // 3D
children();
else
children(); // 2D

View File

@@ -28,6 +28,6 @@ module rounded_square(size, r, center = true) //! Like ```square()``` but with w
module rounded_rectangle(size, r, center = true, xy_center = true) //! Like ```cube()``` but corners rounded in XY plane and separate centre options for xy and z.
{
linear_extrude(height = size[2], center = center)
linear_extrude(size[2], center = center)
rounded_square([size[0], size[1]], r, xy_center);
}

View File

@@ -47,7 +47,7 @@ module hanging_hole(z, ir, h = 100, h2 = 100) { //! Hole radius ```ir``` hanging
difference() {
translate_z(-below)
linear_extrude(height = below + 2 * layer_height)
linear_extrude(below + 2 * layer_height)
children();
rotate(infill_angle)

View File

@@ -29,5 +29,5 @@ module ring(or, ir) //! Create a ring with specified external and internal radii
}
module tube(or, ir, h, center = true) //! Create a tube with specified external and internal radii and height ```h```
linear_extrude(height = h, center = center, convexity = 5)
linear_extrude(h, center = center, convexity = 5)
ring(or, ir);

View File

@@ -44,7 +44,7 @@ module ball_bearing(type) { //! Draw a ball bearing
id = bb_bore(type);
module tube(od, id, h)
linear_extrude(height = h, center = true, convexity = 5)
linear_extrude(h, center = true, convexity = 5)
difference() {
circle(d = od);
circle(d = id);

View File

@@ -75,7 +75,7 @@ module battery(type) { //! Draw a battery
if(battery_usb_offset(type))
translate([battery_diameter(type) / 2, 0, len / 2 - battery_usb_offset(type) + h / 2])
rotate([-90, 0, 90])
linear_extrude(height = l + 1)
linear_extrude(l + 1)
offset(delta = t)
D();
}
@@ -87,14 +87,14 @@ module battery(type) { //! Draw a battery
if(battery_usb_offset(type))
translate([battery_diameter(type) / 2 - 1, 0, len / 2 - battery_usb_offset(type) + h / 2])
rotate([-90, 0, 90]) {
linear_extrude(height = l)
linear_extrude(l)
difference() {
offset(t) D();
D();
}
translate_z(l - 1)
linear_extrude(height = 1)
linear_extrude(1)
D();
}
@@ -132,7 +132,7 @@ module battery_contact(type, pos = true) { //! Draw a positive or negative batte
translate([0, -h / 2, t])
rotate([90, 0, 0])
linear_extrude(height = t)
linear_extrude(t)
difference() {
hull() {
translate([-tw / 2, -1])

View File

@@ -62,7 +62,7 @@ module belt(type, points, gap = 0, gap_pt = undef, belt_colour = grey20, tooth_c
square([gap, thickness + eps], center = true);
color(belt_colour)
linear_extrude(height = width, center = true)
linear_extrude(width, center = true)
difference() {
offset(thickness - belt_pitch_height(type)) shape();
offset(-belt_pitch_height(type) + belt_tooth_height(type)) shape();
@@ -70,7 +70,7 @@ module belt(type, points, gap = 0, gap_pt = undef, belt_colour = grey20, tooth_c
}
color(tooth_colour)
linear_extrude(height = width, center = true)
linear_extrude(width, center = true)
difference() {
offset(-belt_pitch_height(type) + belt_tooth_height(type)) shape();
offset(-belt_pitch_height(type)) shape();

View File

@@ -72,7 +72,7 @@ module blower(type) { //! Draw specified blower
color(fan_colour) {
// screw lugs
linear_extrude(height = blower_lug(type), center = false)
linear_extrude(blower_lug(type), center = false)
for(hole = blower_screw_holes(type))
difference() {
hull() {
@@ -94,7 +94,7 @@ module blower(type) { //! Draw specified blower
*%square([length, width]);
// base
linear_extrude(height = blower_base(type))
linear_extrude(blower_base(type))
difference() {
shape();
@@ -102,7 +102,7 @@ module blower(type) { //! Draw specified blower
circle(d = 2);
}
// sides
linear_extrude(height = depth)
linear_extrude(depth)
difference() {
shape();
@@ -112,7 +112,7 @@ module blower(type) { //! Draw specified blower
// top
translate_z(depth -blower_top(type))
linear_extrude(height = blower_top(type))
linear_extrude(blower_top(type))
difference() {
shape();

View File

@@ -34,7 +34,7 @@ function cable_strip_thickness() = cable_strip_thickness;
use <../utils/bezier.scad>
use <../utils/sweep.scad>
cable_strip_color = "green";
cable_strip_colour = "green";
function cable_strip_control_points(depth, min_z, pos) = let(z = min(min_z, min_z + pos))
[
@@ -62,7 +62,7 @@ module bezier_cable_strip(ways, depth, length, below, extra, pos = 0) { //! Draw
path = [v[0] + extra_v, each bezier_path(v, steps), v[3] + extra_v];
color(cable_strip_color)
color(cable_strip_colour)
translate_z(-extra)
sweep(path, rectangle_points(width, thickness));
*echo(cable_strip_lengh = length);
@@ -89,7 +89,7 @@ module cable_strip(ways, depth, travel, extra = 15, pos = 0) { //! Draw a cable
vitamin(str("cable_strip(", ways, ", ", depth, ", ", travel, arg(extra, 15), "): Polypropylene strip ", total, "mm x ", w, "mm x ", thickness, "mm"));
color(cable_strip_color) linear_extrude(height = w, center = true, convexity = 4)
color(cable_strip_colour) linear_extrude(w, center = true, convexity = 4)
difference() {
union() {
translate([-bottom, radius])
@@ -142,7 +142,7 @@ module elliptical_cable_strip(ways, p1, p2, pmax, extra = 15) {
[delta[2] / delta[0], 0, 1, delta[2] / 2],
[0, 0, 0, 1] ])
color(cable_strip_color) linear_extrude(height = w, center = true, convexity = 4)
color(cable_strip_colour) linear_extrude(w, center = true, convexity = 4)
difference() {
union() {
square([(a + thickness) * 2, extra * 2], center = true);

View File

@@ -57,7 +57,7 @@ module internal_circlip(type, open = 0) { //! Draw specified internal circlip, o
y_offset = (sqr(p.x) + sqr(p.y) - sqr(or - b)) / (or - b - p.y) / 2;
ir = or - b + y_offset;
color(circlip_colour)
linear_extrude(height = circlip_thickness(type), center = true)
linear_extrude(circlip_thickness(type), center = true)
round((a - d5) / 5)
union() {
difference() {

View File

@@ -147,7 +147,7 @@ module al_clad_resistor(type, value, leads = true) { //! Draw an aluminium clad
color("silver") {
rotate([90, 0, 90])
linear_extrude(height = length, center = true)
linear_extrude(length, center = true)
hull() {
translate([0, al_clad_height(type) / 2])
intersection() {
@@ -158,7 +158,7 @@ module al_clad_resistor(type, value, leads = true) { //! Draw an aluminium clad
translate([0, thickness / 2])
square([body, thickness], center = true);
}
linear_extrude(height = thickness)
linear_extrude(thickness)
difference() {
for(end = [-1, 1])
translate([end * (length - tab) / 2, end * (width - width / 2) / 2])
@@ -176,7 +176,7 @@ module al_clad_resistor(type, value, leads = true) { //! Draw an aluminium clad
for(end = [-1, 1])
translate([end * (al_clad_wire_length(type) - terminal_l) / 2, 0, height / 2])
rotate([90, 0, 0])
linear_extrude(height = terminal_t, center = true) difference() {
linear_extrude(terminal_t, center = true) difference() {
square([terminal_l, terminal_h], center = true);
circle(r = 1);
@@ -226,7 +226,7 @@ module TO220(description, leads = 3, lead_length = 16) { //! Draw a TO220 packa
translate([0, -length + hole_y]) {
color("silver") {
linear_extrude(height = TO220_thickness())
linear_extrude(TO220_thickness())
difference() {
translate([-width / 2, inset])
square([width, length - inset]);
@@ -305,7 +305,7 @@ module panel_USBA() { //! Draw a panel mount USBA connector
vflip() {
color("dimgrey") {
linear_extrude(height = thickness)
linear_extrude(thickness)
difference() {
hull()
for(side = [-1, 1])
@@ -345,14 +345,14 @@ module panel_USBA() { //! Draw a panel mount USBA connector
}
translate_z(height3)
linear_extrude(height = l - height3)
linear_extrude(l - height3)
difference() {
rounded_square([length2, width], r = r1);
square([w - flange_t, h - flange_t], center = true);
}
linear_extrude(height = height3)
linear_extrude(height3)
difference() {
rounded_square([length2, width], r = r1);
@@ -363,7 +363,7 @@ module panel_USBA() { //! Draw a panel mount USBA connector
*cube([12, 4.5, 32], center = true);
color("silver") {
linear_extrude(height = l)
linear_extrude(l)
difference() {
square([w, h], center = true);
@@ -373,7 +373,7 @@ module panel_USBA() { //! Draw a panel mount USBA connector
translate_z(l - flange_t / 2)
cube([w, h, flange_t], center = true);
linear_extrude(height = flange_t)
linear_extrude(flange_t)
difference() {
union() {
square([h_flange_l, h + 2 * h_flange_h], center = true);
@@ -418,7 +418,7 @@ module thermal_cutout(type) { //! Draw specified thermal cutout
spade = spade6p4;
color("silver") {
linear_extrude(height = tc_thickness(type))
linear_extrude(tc_thickness(type))
difference() {
hull()
for(side = [-1, 1])

View File

@@ -23,9 +23,9 @@
include <../utils/core/core.scad>
use <../utils/thread.scad>
d_pillar_color = grey90;
d_plug_shell_color = grey80;
d_plug_insulator_color = grey20;
d_pillar_colour = grey90;
d_plug_shell_colour = grey80;
d_plug_insulator_colour = grey20;
function d_flange_length(type) = type[1]; //! Length of the flange
function d_lengths(type) = type[2]; //! Lengths of the D for plug and socket
@@ -56,20 +56,20 @@ module d_pillar() { //! Draw a pillar for a D-connector
translate_z(-screw_length)
if(show_threads)
male_metric_thread(screw, pitch, screw_length, false, top = 0, colour = d_pillar_color);
male_metric_thread(screw, pitch, screw_length, false, top = 0, colour = d_pillar_colour);
else
color(d_pillar_color)
color(d_pillar_colour)
cylinder(d = screw, h = screw_length + 1);
color(d_pillar_color) {
linear_extrude(height = height)
color(d_pillar_colour) {
linear_extrude(height)
difference() {
circle(r = rad, $fn = 6);
circle(d = screw);
}
}
if(show_threads)
female_metric_thread(screw, pitch, height, false, colour = d_pillar_color);
female_metric_thread(screw, pitch, height, false, colour = d_pillar_colour);
}
module d_plug(type, socket = false, pcb = false, idc = false) { //! Draw specified D plug, which can be IDC, PCB or plain solder bucket
@@ -106,8 +106,8 @@ module d_plug(type, socket = false, pcb = false, idc = false) { //! Draw specifi
//
// Shell
//
color(d_plug_shell_color) {
linear_extrude(height = d_flange_thickness(type))
color(d_plug_shell_colour) {
linear_extrude( d_flange_thickness(type))
difference() {
rounded_square([flange_length, flange_width], 2);
@@ -115,7 +115,7 @@ module d_plug(type, socket = false, pcb = false, idc = false) { //! Draw specifi
circle(hole_r);
}
linear_extrude(height = front_height, convexity = 5)
linear_extrude(front_height, convexity = 5)
difference() {
D(d_length, d_width, 2.5);
D(d_length - 2 * dwall, d_width - 2 * dwall, 2.5 - dwall);
@@ -123,21 +123,21 @@ module d_plug(type, socket = false, pcb = false, idc = false) { //! Draw specifi
if(!idc)
rotate([0,180,0])
linear_extrude(height = back_height, convexity = 5)
linear_extrude(back_height, convexity = 5)
D(d_lengths(type)[0] + 2 * dwall, d_widths(type)[0] + 2 * dwall, 2.5 + dwall);
}
//
// Insulator
//
color(d_plug_insulator_color) {
color(d_plug_insulator_colour) {
translate_z(d_flange_thickness(type) + eps)
rotate([0, 180, 0])
linear_extrude(height = back_height + 1 + d_flange_thickness(type), convexity = 5)
linear_extrude(back_height + 1 + d_flange_thickness(type), convexity = 5)
D(d_length - dwall, d_width - dwall, 2.5 - dwall/2);
if(socket)
linear_extrude(height = front_height - eps, convexity = 5)
linear_extrude(front_height - eps, convexity = 5)
difference() {
D(d_length - dwall, d_width - dwall, 2.5 - dwall/2);
@@ -169,11 +169,11 @@ module d_plug(type, socket = false, pcb = false, idc = false) { //! Draw specifi
if(pcb)
rotate([0, 180, 0]) {
linear_extrude(height = back_height + 1 + 4.5)
linear_extrude(back_height + 1 + 4.5)
pin_positions()
circle(r = 0.75 / 2, $fn = 12);
linear_extrude(height = back_height + 1 + 1)
linear_extrude(back_height + 1 + 1)
pin_positions()
circle(r = 0.75, $fn = 12);
}
@@ -183,7 +183,7 @@ module d_plug(type, socket = false, pcb = false, idc = false) { //! Draw specifi
pin_positions()
rotate(180 + ($i % 2) * 180)
render() difference() {
linear_extrude(height = 8)
linear_extrude(8)
difference() {
circle(1);

View File

@@ -80,10 +80,10 @@ module fan(type) { //! Draw specified fan, origin in the centre
if(middle > 0) {
for(z = [-1, 1])
translate_z(z * (depth - thickness) / 2)
linear_extrude(height = thickness, center = true)
linear_extrude(thickness, center = true)
shape();
linear_extrude(height = middle, center = true)
linear_extrude(middle, center = true)
difference() {
shape();
difference() {
@@ -100,13 +100,13 @@ module fan(type) { //! Draw specified fan, origin in the centre
}
}
else
linear_extrude(height = depth, center = true)
linear_extrude(depth, center = true)
shape();
// Blades
blade_ir = fan_hub(type) / 2 - 1;
blade_len = fan_bore(type) / 2 - 0.75 - blade_ir;
linear_extrude(height = depth - 1, center = true, convexity = 4, twist = -30, slices = round(depth / 2))
linear_extrude(depth - 1, center = true, convexity = 4, twist = -30, slices = round(depth / 2))
for(i = [0 : fan_blades(type) - 1])
rotate((360 * i) / fan_blades(type))
translate([blade_ir, -1.5 / 2])

View File

@@ -68,7 +68,7 @@ module fuseholder(thickness) { //! Fuseholder with nut in place for specified pa
color(colour) {
tube(or = nut_d / 2, ir = thread_d / 2, h = nut_flange_t, center = false);
linear_extrude(height = nut_t)
linear_extrude(nut_t)
difference() {
circle(d = nut_d, $fn = 6);
@@ -87,7 +87,7 @@ module fuseholder(thickness) { //! Fuseholder with nut in place for specified pa
cylinder(r = 5, h = flange_t - 1);
linear_extrude(height = flange_t)
linear_extrude(flange_t)
difference() {
circle(r = 5);
@@ -96,7 +96,7 @@ module fuseholder(thickness) { //! Fuseholder with nut in place for specified pa
vflip() {
if(!show_threads)
linear_extrude(height = thread)
linear_extrude(thread)
intersection() {
circle(d = thread_d - 0.3);
@@ -127,7 +127,7 @@ module fuseholder(thickness) { //! Fuseholder with nut in place for specified pa
for(side = [-1, 1])
translate([side * contact_slot_d / 2, 0, contact_slot_z])
rotate([0, -70, 90 - side * 90])
linear_extrude(height = contact_t, center = true) difference() {
linear_extrude(contact_t, center = true) difference() {
hull() {
square([eps, contact_w], center = true);

View File

@@ -61,7 +61,7 @@ module geared_stepper(type) { //! Draw the specified geared stepper
cylinder(d = gs_boss_d(type), h = 2 * gs_boss_h(type), center = true);
linear_extrude(height = gs_lug_t(type))
linear_extrude(gs_lug_t(type))
difference() {
hull()
geared_stepper_screw_positions(type)
@@ -78,7 +78,7 @@ module geared_stepper(type) { //! Draw the specified geared stepper
color(brass) {
d = gs_shaft_d(type);
h = gs_shaft_length(type);
linear_extrude(height = h)
linear_extrude(h)
intersection() {
circle(d = d);
@@ -95,7 +95,7 @@ module geared_stepper(type) { //! Draw the specified geared stepper
h2 = gs_bulge2_h(type);
translate([0, - offset, h1 + 1 - h2])
linear_extrude(height = h2)
linear_extrude(h2)
round(0.5)
intersection() {
circle(gs_bulge2_d(type));

View File

@@ -80,7 +80,7 @@ module green_terminal(type, ways, skip = [], colour = "lime") { //! Draw green t
color(colour) {
rotate([90, 0, 0])
linear_extrude(height = pitch, center = true, convexity = 5)
linear_extrude(pitch, center = true, convexity = 5)
polygon(points = [ // Vertical section
[y + depth / 2, 0],
[y + depth / 2, ledge_height / 2 - box_h1 / 2],
@@ -105,7 +105,7 @@ module green_terminal(type, ways, skip = [], colour = "lime") { //! Draw green t
]);
translate([y2, 0, ledge_height / 2 + box_h2 / 2]) // Screw socket
linear_extrude(height = height - ledge_height / 2 - box_h2 / 2)
linear_extrude(height - ledge_height / 2 - box_h2 / 2)
difference() {
square([screw_r * 2 + 0.1, pitch], center = true);
@@ -113,7 +113,7 @@ module green_terminal(type, ways, skip = [], colour = "lime") { //! Draw green t
}
linear_extrude(height = ledge_height)
linear_extrude(ledge_height)
intersection() {
horizontal_section();
@@ -121,7 +121,7 @@ module green_terminal(type, ways, skip = [], colour = "lime") { //! Draw green t
square([10, 10]);
}
linear_extrude(height = back)
linear_extrude(back)
intersection() {
horizontal_section();
@@ -131,7 +131,7 @@ module green_terminal(type, ways, skip = [], colour = "lime") { //! Draw green t
if(tube_h)
translate([y2, 0, height])
linear_extrude(height = tube_h - height)
linear_extrude(tube_h - height)
intersection() {
ring(or = top / 2, ir = screw_r);
@@ -149,7 +149,7 @@ module green_terminal(type, ways, skip = [], colour = "lime") { //! Draw green t
cylinder(r = screw_r, h = slot_depth);
translate_z(screw_top - slot_depth) // screw head
linear_extrude(height = slot_depth)
linear_extrude(slot_depth)
difference() {
circle(screw_r);
@@ -158,7 +158,7 @@ module green_terminal(type, ways, skip = [], colour = "lime") { //! Draw green t
}
translate([box_back, 0, ledge_height / 2]) {
rotate([0, 90, 0])
linear_extrude(height = box_front - box_back)
linear_extrude(box_front - box_back)
difference() {
square([box_h2, box_w2], center = true);

View File

@@ -69,7 +69,7 @@ module hygrometer() { //! Draw a hygrometer
cylinder(d = apperture_d, h = eps);
color("black")
linear_extrude(height = 0.2, center = true) {
linear_extrude(0.2, center = true) {
translate([0, 3])
text("20_4", font = "7 segment", valign = "bottom", halign = "center", size = apperture_d / 6);

View File

@@ -137,7 +137,7 @@ module iec(type) { //! Draw specified IEC connector
color(grey20) {
// Flange
flange_t = iec_flange_t(type);
linear_extrude(height = flange_t)
linear_extrude(flange_t)
difference() {
hull() {
rounded_square([iec_flange_w(type), iec_flange_h(type)], iec_flange_r(type));
@@ -164,7 +164,7 @@ module iec(type) { //! Draw specified IEC connector
}
// Bezel
translate_z(iec_flange_t(type))
linear_extrude(height = iec_bezel_t(type))
linear_extrude(iec_bezel_t(type))
difference() {
rounded_square([iec_bezel_w(type), iec_bezel_h(type)], iec_bezel_r(type));
@@ -174,7 +174,7 @@ module iec(type) { //! Draw specified IEC connector
// Body
h = socket_d - iec_flange_t(type) - iec_bezel_t(type);
translate_z(-h)
linear_extrude(height = h)
linear_extrude(h)
difference() {
body_shape();
@@ -182,7 +182,7 @@ module iec(type) { //! Draw specified IEC connector
}
// Back
translate_z(-iec_depth(type))
linear_extrude(height = iec_depth(type) - h)
linear_extrude(iec_depth(type) - h)
body_shape();
}
if(!iec_male(type))

View File

@@ -108,10 +108,10 @@ module insert_boss(type, z, wall = 2 * extrusion_width) { //! Make a boss to tak
hull()
poly_ring(or, ir);
linear_extrude(height = z)
linear_extrude(z)
poly_ring(or, ir);
linear_extrude(height = z - insert_hole_length(type))
linear_extrude(z - insert_hole_length(type))
difference() {
shape();
@@ -119,7 +119,7 @@ module insert_boss(type, z, wall = 2 * extrusion_width) { //! Make a boss to tak
}
if(z > insert_hole_length(type) + 2 * layer_height)
linear_extrude(height = 2 * layer_height) // cap the end if room
linear_extrude(2 * layer_height) // cap the end if room
shape();
}
@@ -143,7 +143,7 @@ module insert_lug(insert, wall, counter_bore = 0, extension = 0, corner_r = 0, f
}
translate_z(-boss_h)
linear_extrude(height = boss_h)
linear_extrude(boss_h)
difference() {
shape();
@@ -152,7 +152,7 @@ module insert_lug(insert, wall, counter_bore = 0, extension = 0, corner_r = 0, f
// insert boss counter_bore
translate_z(-boss_h2) {
linear_extrude(height = counter_bore + eps)
linear_extrude(counter_bore + eps)
difference() {
shape();
@@ -162,7 +162,7 @@ module insert_lug(insert, wall, counter_bore = 0, extension = 0, corner_r = 0, f
// support cone
if(flying)
hull() {
linear_extrude(height = eps)
linear_extrude(eps)
shape();
translate([boss_r + extension - wall - eps, 0, - (2 * boss_r + extension - wall)])

View File

@@ -206,7 +206,7 @@ module post_4mm(colour, thickness, display_colour = false) { //! Draw a 4mm bind
nut_t = 2.3;
color(silver)
linear_extrude(height = nut_t) difference() {
linear_extrude(nut_t) difference() {
circle(d = 6.3 / cos(30), $fn = 6);
circle(d = thread_d);
@@ -229,7 +229,7 @@ module post_4mm(colour, thickness, display_colour = false) { //! Draw a 4mm bind
cylinder(d = d, h = base_h);
translate_z(-collar_t)
linear_extrude(height = base_h) {
linear_extrude(base_h) {
circle(post_4mm_hole_radius - 0.1);
spigot();
@@ -284,7 +284,7 @@ module post_4mm(colour, thickness, display_colour = false) { //! Draw a 4mm bind
explode(-15)
color(actual_colour) {
translate_z(-thickness - base_h) {
linear_extrude(height = base_h)
linear_extrude(base_h)
difference() {
circle(d = d);

View File

@@ -52,7 +52,7 @@ module heater_block(type, resistor, thermistor) {
color(brass) {
render() difference() {
rotate([90, 0, 0])
linear_extrude(height = heater_width(type), center = true) difference() {
linear_extrude(heater_width(type), center = true) difference() {
square([heater_length(type), h], center = true);
translate([resistor_x(type), 0])

View File

@@ -25,7 +25,7 @@ use <../utils/tube.scad>
use <washer.scad>
use <ball_bearing.scad>
kp_pillow_block_color = grey70;
kp_pillow_block_colour = grey70;
function kp_diameter(type) = type[1]; //! Rod hole diameter
function kp_hole_offset(type) = type[2]; //! Rod hole offset
@@ -50,7 +50,7 @@ module kp_pillow_block(type) { //! Draw the KP pillow block
b = type[11];
bolthole_radius = type[12];
color(kp_pillow_block_color)
color(kp_pillow_block_colour)
translate([0, -H, 0]) {
fillet = 1;
squareSizeX = (L - H0) / 2 + fillet;

View File

@@ -71,17 +71,17 @@ module LDR(type, lead_length = 3) { //! Draw an LDR, can specify the lead length
t = ldr_thickness(type);
color("white")
linear_extrude(height = t - 0.4)
linear_extrude(t - 0.4)
shape();
color("orange")
translate_z(t - 0.4)
linear_extrude(height = 0.1)
linear_extrude(0.1)
shape();
color([0.9, 0.9, 0.9])
translate_z(t - 0.3)
linear_extrude(height = 0.1)
linear_extrude(0.1)
difference() {
offset(-serpentine_t())
shape();
@@ -100,6 +100,6 @@ module LDR(type, lead_length = 3) { //! Draw an LDR, can specify the lead length
}
color([1, 1, 1, 0.25])
translate_z(t - 0.3 + eps)
linear_extrude(height = 0.3)
linear_extrude(0.3)
shape();
}

View File

@@ -64,7 +64,7 @@ module leadnut(type) { //! Draw specified leadnut
thread(bore_d, lead, h, thread_profile(pitch / 2, pitch * 0.366, 30), false, starts = lead / pitch, female = true, solid = false);
translate_z(leadnut_flange_offset(type))
linear_extrude(height = leadnut_flange_t(type))
linear_extrude(leadnut_flange_t(type))
difference() {
circle(d = leadnut_flange_dia(type));

View File

@@ -40,7 +40,7 @@ module led(type, colour = "red", lead = 5) { //! Draw specified LED with desired
rotate_extrude()
rounded_corner(r = d / 2, h = led_height(type), r2 = d / 2);
linear_extrude(height = led_rim_t(type))
linear_extrude(led_rim_t(type))
difference() {
circle(d = led_rim_dia(type));

View File

@@ -85,7 +85,7 @@ module light_strip(type, segs = undef) { //! Draw specified light strip, segs ca
color("silver")
rotate([90, 0, 90])
linear_extrude(height = l, center = true)
linear_extrude(l, center = true)
polygon([
[ x1, 0], [ x1, d], [ x2, d], [ x3, y5], [ x3, y4], [ x2, y4],
[ x2, y3], [ x3, y3], [ x3, y2], [ x2, y2], [ x2, y1],
@@ -99,42 +99,42 @@ module light_strip(type, segs = undef) { //! Draw specified light strip, segs ca
translate_z(y4) {
color("white")
linear_extrude(height = 1.6)
linear_extrude(1.6)
led_positions()
square([5, 5], center = true);
color("yellow")
linear_extrude(height = 1.6 + eps)
linear_extrude(1.6 + eps)
led_positions()
circle(d = 3.5);
color("silver")
linear_extrude(height = 0.8)
linear_extrude(0.8)
led_positions()
for(side = [-1,1], end = [-1:1])
translate([side * 2.2, end * 1.6])
square([1, 0.9], center = true);
color("black")
linear_extrude(height = 0.1)
linear_extrude(0.1)
segment_positions(segments - 1)
translate([segment_length, 0])
square([0.2, a], center = true);
color("silver")
linear_extrude(height = 0.15)
linear_extrude(0.15)
segment_positions()
for(end = [-1, 1], side = [-1, 1])
translate([end * (segment_length / 2 - 1.25) + segment_length / 2, side * 2.5])
square(2.5, center = true);
color("silver")
linear_extrude(height = 0.55)
linear_extrude(0.55)
resistor_positions()
square([3.2, 1.5], center = true);
color("black")
linear_extrude(height = 0.55 + eps)
linear_extrude(0.55 + eps)
resistor_positions()
square([2.1, 1.5 + 2 * eps], center = true);
@@ -152,7 +152,7 @@ function light_strip_clip_length(light) = light_strip_clip_slot(light) + 2 * wal
function light_strip_clip_width(light) = light_strip_depth(light) + 2 * wall; //! Outside width
module light_strip_clip(light) { //! Make a clip to go over the strip to be incorporated into a bracket
linear_extrude(height = light_strip_clip_depth(light), convexity = 2)
linear_extrude(light_strip_clip_depth(light), convexity = 2)
difference() {
translate([-light_strip_clip_length(light) / 2, -wall])
square([light_strip_clip_length(light), light_strip_clip_width(light)]);

View File

@@ -87,10 +87,10 @@ module mains_socket(type) { //! Draw specified 13A socket
color("white") render() difference() {
hull() {
linear_extrude(height = eps)
linear_extrude(eps)
face_plate(type);
linear_extrude(height = height)
linear_extrude(height)
offset(-(mains_socket_width(type) - mains_socket_top_w(type)) / 2)
face_plate(type);
}
@@ -105,7 +105,7 @@ module mains_socket(type) { //! Draw specified 13A socket
}
// Hollow out the back
difference() {
linear_extrude(height = height - mains_socket_t(type))
linear_extrude(height - mains_socket_t(type))
offset(-mains_socket_t(type))
face_plate(type);

View File

@@ -56,7 +56,7 @@ module meter(type = led_meter, colour = "red", value = "888", display_colour = f
color("green")
translate_z(meter_height(type))
linear_extrude(height = meter_pcb_thickness(type))
linear_extrude(meter_pcb_thickness(type))
difference() {
union() {
square([meter_pcb_length(type), meter_pcb_width(type)], center = true);
@@ -68,7 +68,7 @@ module meter(type = led_meter, colour = "red", value = "888", display_colour = f
}
color(display_colour ? display_colour : colour)
linear_extrude(height = 0.2, center = true)
linear_extrude(0.2, center = true)
mirror([1,0,0])
text(value, font = "7 segment", valign = "center", halign = "center", size = meter_width(type) - 2, spacing = 1.2);
}
@@ -102,14 +102,14 @@ module meter_bezel(type = led_meter) { //! Generate the STL for the meter bezel
h = meter_height(type);
union() {
linear_extrude(height = h)
linear_extrude(h)
difference() {
rounded_square([l + 2 * wall, w + 2 * wall], rad);
square([l + 2 * clearance, w + 2 * clearance], center = true);
}
linear_extrude(height = flange_t)
linear_extrude(flange_t)
difference() {
rounded_square([l + 2 * wall + 2 * overlap, w + 2 * wall + 2 * overlap], rad + overlap);

View File

@@ -22,7 +22,7 @@
//
include <../utils/core/core.scad>
microswitch_contact_color = brass;
microswitch_contact_colour = brass;
function microswitch_thickness(type) = type[2]; //! Body thickness
function microswitch_width(type) = type[3]; //! Body width
@@ -63,7 +63,7 @@ module microswitch(type) { //! Draw specified microswitch
d = microswitch_button_t(type);
color(microswitch_body_clr(type))
linear_extrude(height = microswitch_thickness(type), center = true)
linear_extrude(microswitch_thickness(type), center = true)
difference() { // main body
rounded_square([microswitch_length(type), microswitch_width(type)], microswitch_radius(type));
@@ -73,7 +73,7 @@ module microswitch(type) { //! Draw specified microswitch
color(microswitch_button_clr(type)) // orange button
translate(microswitch_button_pos(type) - [0, d / 2])
linear_extrude(height = microswitch_button_w(type), center = true)
linear_extrude(microswitch_button_w(type), center = true)
hull() {
circle(d = d);
@@ -81,7 +81,7 @@ module microswitch(type) { //! Draw specified microswitch
circle(d = d);
}
color(microswitch_contact_color) // yellow contacts
color(microswitch_contact_colour) // yellow contacts
for(pos = microswitch_legs(type))
translate(pos) {
leg = microswitch_leg(type);
@@ -89,7 +89,7 @@ module microswitch(type) { //! Draw specified microswitch
if(vertical)
rotate([0, 90, 0])
linear_extrude(height = leg.x, center = true)
linear_extrude(leg.x, center = true)
difference() {
square([leg.z, leg.y], center = true);
@@ -99,7 +99,7 @@ module microswitch(type) { //! Draw specified microswitch
}
else
rotate([90, 0, 0])
linear_extrude(height = leg.y, center = true)
linear_extrude(leg.y, center = true)
difference() {
square([leg.x, leg.z], center = true);

View File

@@ -32,7 +32,7 @@ panel_clearance = 0.2;
module microview(cutout = false) { //! Draw microview or generate a panel cutout for it
rotate([0, 0, -90])
if(cutout)
linear_extrude(height = 100)
linear_extrude(100)
offset(panel_clearance)
projection()
hull()

View File

@@ -84,7 +84,7 @@ module mod(type) { //! Draw specified module
color("silver")
rotate([90, 0, 90])
linear_extrude(height = body_l, center = true)
linear_extrude(body_l, center = true)
profile();
color(grey20)
@@ -92,18 +92,18 @@ module mod(type) { //! Draw specified module
translate([end * body_l / 2, 0, 0])
rotate([90, 0, end * 90])
union() {
linear_extrude(height = end_t) // endcap
linear_extrude(end_t) // endcap
profile();
translate_z(end_t)
rotate([90, 0, 180])
linear_extrude(height = lug_t) // lug
linear_extrude(lug_t) // lug
lug();
for(side = [-1, 1]) {
translate([side * vane_p / 2, lug_t, end_t]) // buttress vanes
rotate([0, -90, 0])
linear_extrude(height = vane_t, center = true)
linear_extrude(vane_t, center = true)
polygon([[0, 0], [0, vane_h - lug_t], [vane_l, 0]]);
translate([side * vane_p / 2, h / 2, end_t]) // bosses

View File

@@ -58,7 +58,7 @@ module nut(type, nyloc = false, brass = false, nylon = false) { //! Draw specifi
colour = brass ? brass_colour : nylon ? grey30: grey70;
explode(nyloc ? 10 : 0) {
color(colour) {
linear_extrude(height = thickness)
linear_extrude(thickness)
difference() {
circle(outer_rad, $fn = 6);
@@ -120,7 +120,7 @@ module wingnut(type) { //! Draw a wingnut
[hole_rad, thickness]
]);
for(rot = [0, 180])
rotate([90, 0, rot]) linear_extrude(height = wing_thickness, center = true)
rotate([90, 0, rot]) linear_extrude(wing_thickness, center = true)
hull() {
translate([wing_span / 2 - wing_width / 2, wing_height - wing_width / 2])
circle(wing_width / 2);
@@ -207,7 +207,7 @@ module nut_square(type, brass = false, nylon = false) { //! Draw specified squar
colour = brass ? brass_colour : nylon ? grey30 : grey70;
color(colour)
difference() {
linear_extrude(height = thickness) {
linear_extrude(thickness) {
difference() {
square([width, width], center = true);

View File

@@ -69,7 +69,7 @@ module opengrab() { //! Draw OpenGrab module
translate_z(1)
opengrab_hole_positions() {
color(brass)
linear_extrude(height = depth - 1)
linear_extrude(depth - 1)
difference() {
circle(d = 4.7 / cos(30), $fn = 6);
@@ -85,7 +85,7 @@ module opengrab_target() { //! Draw OpenGrab target
vitamin("opengrab_target(): OpenGrab silicon steel target plate");
color(grey80)
linear_extrude(height = target)
linear_extrude(target)
difference() {
square([width, width], center = true);

View File

@@ -106,7 +106,7 @@ module usb_A(h, v_flange_l, bar, cutout) {
h + 2 * h_flange_h + 2 * panel_clearance, 100], r = cnc_bit_r, center = false);
else
color("silver") rotate([0, 90, 0]) {
linear_extrude(height = l, center = true)
linear_extrude(l, center = true)
difference() {
square([h, w], center = true);
@@ -119,7 +119,7 @@ module usb_A(h, v_flange_l, bar, cutout) {
cube([h, w, 1], center = true);
translate_z(l / 2 - flange_t)
linear_extrude(height = flange_t) difference() {
linear_extrude(flange_t) difference() {
union() {
square([h + 2 * h_flange_h, h_flange_l], center = true);
@@ -150,7 +150,7 @@ module rj45(cutout = false) { //! Draw RJ45 Ethernet connector
rotate([0, 90, 0]) {
mouth = plug_z + plug_h - tab_z;
color("silver") {
linear_extrude(height = l, center = true)
linear_extrude(l, center = true)
difference() {
square([h, w], center = true);
@@ -163,7 +163,7 @@ module rj45(cutout = false) { //! Draw RJ45 Ethernet connector
}
color(grey30) {
linear_extrude(height = l - 0.2, center = true)
linear_extrude(l - 0.2, center = true)
difference() {
square([h - 0.1, w - 0.1], center = true);
@@ -195,7 +195,7 @@ module jack(cutout = false) { //! Draw 3.5mm jack
else
color(grey20)
rotate([0, 90, 0]) {
linear_extrude(height = l / 2)
linear_extrude(l / 2)
difference() {
square([h, w], center = true);
@@ -209,7 +209,7 @@ module jack(cutout = false) { //! Draw 3.5mm jack
}
}
module buzzer(height, diameter, colour) { //! Draw PCB buzzer with specified height, diameter and color
module buzzer(height, diameter, colour) { //! Draw PCB buzzer with specified height, diameter and colour
color (colour)
tube(or = diameter / 2, ir = height > 5 ? 1 : 0.75, h = height, center = false);
color("white")
@@ -271,13 +271,13 @@ module hdmi(type, cutout = false) { //! Draw HDMI socket
if(cutout)
rotate([90, 0, 90])
linear_extrude(height = 100)
linear_extrude(100)
offset(t + panel_clearance)
D();
else
color("silver")
rotate([90, 0, 90]) {
linear_extrude(height = l, center = true)
linear_extrude(l, center = true)
difference() {
offset(t)
D();
@@ -285,7 +285,7 @@ module hdmi(type, cutout = false) { //! Draw HDMI socket
}
translate_z(-l / 2)
linear_extrude(height = 1)
linear_extrude(1)
offset(t)
D();
}
@@ -314,12 +314,12 @@ module usb_uA(cutout = false) { //! Draw USB micro A connector
if(cutout)
rotate([90, 0, 90])
linear_extrude(height = 100)
linear_extrude(100)
offset((flange_h - ih2) / 2 + 2 * panel_clearance)
D();
else
color("silver") rotate([90, 0, 90]) {
linear_extrude(height = l, center = true)
linear_extrude(l, center = true)
difference() {
offset(t)
D();
@@ -328,12 +328,12 @@ module usb_uA(cutout = false) { //! Draw USB micro A connector
}
translate_z(-l / 2)
linear_extrude(height = 1)
linear_extrude(1)
offset(t)
D();
translate_z(l / 2 - t)
linear_extrude(height = t) difference() {
linear_extrude(t) difference() {
union() {
translate([0, h - t - ih1 / 2])
square([flange_w, ih1], center = true);
@@ -375,7 +375,7 @@ module usb_B(cutout = false) { //! Draw USB B connector
else
translate_z(h / 2) rotate([90, 0, 90]) {
color("silver") {
linear_extrude(height = l, center = true)
linear_extrude(l, center = true)
difference() {
square([w, h], center = true);
@@ -388,7 +388,7 @@ module usb_B(cutout = false) { //! Draw USB B connector
}
color("white") {
linear_extrude(height = l - 0.4, center = true)
linear_extrude(l - 0.4, center = true)
difference() {
square([w - 0.2, h - 0.2], center = true);
@@ -423,7 +423,7 @@ module barrel_jack(cutout = false) { //! Draw barrel power jack
;
else {
color(grey20) rotate([0, 90, 0]) {
linear_extrude(height = l, center = true) {
linear_extrude(l, center = true) {
difference() {
translate([-h / 2, 0])
rounded_square([h, w], r);
@@ -437,7 +437,7 @@ module barrel_jack(cutout = false) { //! Draw barrel power jack
}
}
translate_z(l / 2 - front)
linear_extrude(height = front) {
linear_extrude(front) {
difference() {
translate([-h / 2, 0])
rounded_square([h, w], r);
@@ -484,7 +484,7 @@ module uSD(size, cutout = false) { //! Draw uSD socket
translate_z(size.z / 2) {
color("silver")
rotate([90, 0, 90]) {
linear_extrude(height = size.y, center = true)
linear_extrude(size.y, center = true)
difference() {
square([size.x, size.z], center = true);
square([size.x - 2 * t, size.z - 2 * t], center = true);
@@ -497,7 +497,7 @@ module uSD(size, cutout = false) { //! Draw uSD socket
color(grey20)
rotate([90, 0, 90])
translate_z(t)
linear_extrude(height = size.y - t, center = true)
linear_extrude(size.y - t, center = true)
difference() {
square([size.x - 2 * t, size.z - 2 * t], center = true);
@@ -526,7 +526,7 @@ module flex(cutout = false) { //! Draw flexistrip connector
translate_z(0.5)
cube([l, w, 1], center = true);
linear_extrude(height = h)
linear_extrude(h)
difference() {
square([l, w], center = true);
@@ -535,7 +535,7 @@ module flex(cutout = false) { //! Draw flexistrip connector
}
translate_z(h - top_t)
linear_extrude(height = top_t)
linear_extrude(top_t)
difference() {
union() {
square([top_l, w], center = true);
@@ -581,7 +581,7 @@ module flat_flex(cutout = false) { //! Draw flat flexistrip connector as used on
color(grey30) {
translate([w / 2 - w1, 0, h1 / 2])
rotate([90, 0, 90])
linear_extrude(height = w1)
linear_extrude(w1)
difference() {
square([l1, h1], center = true);
@@ -623,7 +623,7 @@ module terminal_35(ways, colour = "blue") { //! Draw 3.5mm terminal block
screw_r = 1;
color(colour) {
rotate([90, 0, 0])
linear_extrude(height = pitch, center = true)
linear_extrude(pitch, center = true)
polygon(points = [
[ depth / 2, 0],
[ depth / 2, box_z],
@@ -640,7 +640,7 @@ module terminal_35(ways, colour = "blue") { //! Draw 3.5mm terminal block
[-depth / 2, 0],
]);
linear_extrude(height = box_z + box_h)
linear_extrude(box_z + box_h)
difference() {
square([depth, pitch], center = true);
@@ -651,7 +651,7 @@ module terminal_35(ways, colour = "blue") { //! Draw 3.5mm terminal block
}
translate_z(box_z + box_h)
linear_extrude(height = height - box_z - box_h)
linear_extrude(height - box_z - box_h)
difference() {
square([2 * screw_r + 0.1, pitch], center = true);
@@ -663,7 +663,7 @@ module terminal_35(ways, colour = "blue") { //! Draw 3.5mm terminal block
translate_z(screw_z) {
cylinder(r = screw_r, h = height - screw_z - 1); // screw
linear_extrude(height = height - screw_z - 0.5)
linear_extrude(height - screw_z - 0.5)
difference() {
circle(1);
@@ -678,7 +678,7 @@ module terminal_35(ways, colour = "blue") { //! Draw 3.5mm terminal block
translate_z(box_z + box_h / 2) // terminal
rotate([0, -90, 0]) {
linear_extrude(height = depth - 2, center = true)
linear_extrude(depth - 2, center = true)
difference() {
square([box_h, box_w], center = true);
@@ -721,7 +721,7 @@ module molex_254(ways) { //! Draw molex header
cube([0.44, 0.75, above + below], center = true);
}
module standoff(h, d, h2, d2) {
module standoff(h, d, h2, d2) { //! Draw a standoff
color("white") {
cylinder(d = d, h = h);
@@ -735,6 +735,52 @@ module standoff(h, d, h2, d2) {
}
}
module trimpot10(vertical, cutout = false) { //! Draw a ten turn trimpot
l = 10;
w = 9.5;
h = 4.8;
foot_w = 1;
foot_h = 0.5;
screw_h = 1.5;
screw_d = 2.25;
slot_w = 0.6;
slot_h = 0.8;
module screw_pos()
translate([-w / 2 + screw_d / 2, -l / 2, h - screw_d / 2])
rotate([90, 0, 0])
children();
translate(vertical ? [0, -h / 2, l / 2] : [0, 0])
rotate([vertical ? -90 : 0, 0, 0]) {
if(cutout)
screw_pos()
cylinder(d = screw_d + 1, h = 100);
else
color("#2CA1FD") {
translate([0, -foot_h / 2, foot_h / 2 + h / 2])
cube([w, l - foot_h, h - foot_h], center = true);
for(x = [-1, 1], y = [-1, 1])
translate([x * (w - foot_w) / 2, y * (l - foot_w) / 2, h / 2])
cube([foot_w, foot_w, h], center = true);
}
color(brass)
screw_pos() {
cylinder(d = screw_d, h = screw_h - slot_h);
linear_extrude(screw_h)
difference() {
circle(d = screw_d);
square([slot_w, screw_d + 1], center = true);
}
}
}
}
module pcb_component(comp, cutouts = false, angle = undef) { //! Draw pcb component from description
function show(comp, part) = (comp[3] == part || comp[3] == str("-",part)) && (!cutouts || angle == undef || angle == comp.z);
function param(n, default = 0) = len(comp) > n ? comp[n] : default;
@@ -773,6 +819,7 @@ module pcb_component(comp, cutouts = false, angle = undef) { //! Draw pcb compon
if(show(comp, "pcb")) if(!cutouts) translate_z(comp[4]) pcb(comp[5]);
if(show(comp, "standoff")) if(!cutouts) standoff(comp[4], comp[5], comp[6], comp[7]);
if(show(comp, "uSD")) uSD(comp[4], cutouts);
if(show(comp, "trimpot10")) trimpot10(param(4, false), cutouts);
}
}
@@ -834,7 +881,7 @@ module pcb(type) { //! Draw specified PCB
pcb_components(type);
color(pcb_colour(type)) linear_extrude(height = t) difference() {
color(pcb_colour(type)) linear_extrude(t) difference() {
if(Len(pcb_polygon(type)))
polygon(pcb_polygon(type));
else
@@ -848,16 +895,26 @@ module pcb(type) { //! Draw specified PCB
circle(d = 1 + eps);
}
land = pcb_land_d(type);
hole = pcb_hole_d(type);
color("silver")
translate_z(t / 2)
pcb_hole_positions(type)
tube(or = max(pcb_land_d(type), 1) / 2, ir = pcb_hole_d(type) / 2, h = t + 2 * eps);
if(is_list(land))
linear_extrude(t + 2 * eps, center = true)
difference() {
square(land, center = true);
circle(d = hole);
}
else
tube(or = max(land, 1) / 2, ir = hole / 2, h = t + 2 * eps);
fr4 = pcb_colour(type) != "sienna";
plating = 0.15;
color(pcb_colour(type) == "green" ? "silver" : "gold")
translate_z(-plating)
linear_extrude(height = fr4 ? t + 2 * plating : plating)
linear_extrude(fr4 ? t + 2 * plating : plating)
if(Len(grid)) {
pcb_grid_positions(type)
difference() {
@@ -886,11 +943,11 @@ module pcb_spacer(screw, height, wall = 1.8, taper = 0) { //! Generate STL for P
or = corrected_radius(ir) + wall;
if(height > taper)
linear_extrude(height = height - taper)
linear_extrude(height - taper)
poly_ring(or, ir);
if(taper)
linear_extrude(height = height)
linear_extrude(height)
poly_ring(ir + 2 * extrusion_width, ir);
}
@@ -900,7 +957,7 @@ module pcb_base(type, height, thickness, wall = 2) { //! Generate STL for a base
or = corrected_radius(ir) + wall;
union() {
linear_extrude(height = thickness)
linear_extrude(thickness)
difference() {
hull()
pcb_screw_positions(type)
@@ -910,7 +967,7 @@ module pcb_base(type, height, thickness, wall = 2) { //! Generate STL for a base
poly_circle(ir);
}
linear_extrude(height = height)
linear_extrude(height)
pcb_screw_positions(type)
poly_ring(or, ir);
}

View File

@@ -327,6 +327,16 @@ ZC_A0591 = ["ZC_A0591", "ZC-A0591 ULN2003 driver PCB", 35, 32, 1.6, 0, 2.5, 0, "
[], [], [], [], M2p5_pan_screw];
MT3608 = ["MT3608", "MT3608 boost converter module", 37, 17, 1.2, 2, 1.5, [5, 3], "#2140BE", false, [[3.0725, 5.095], [3.0725, -5.095], [-3.0725, 5.095], [-3.0725, -5.095]],
[ [-12.05 , -6.8, 180, "trimpot10"]
]];
TP4056 = ["TP4056", "TP4056 Li-lon Battery charger module", 26.2, 17.5, 1.0, 0, 1.0, [2.4, 2.4], "#2140BE", false,
[[1.67, 1.8], [1.67, -1.8], [-1.67, 1.8], [-1.67, -1.8], [-1.67, -4.98], [-1.67, 4.98]],
[ [ 2, 17.5 / 2, 180, "usb_uA"],
]];
PERF80x20 = ["PERF80x20", "Perfboard 80 x 20mm", 80, 20, 1.6, 0, 2.3, 0, "green", true, [[2,2],[-2,2],[2,-2],[-2,-2]], [], [], [5.87, 3.49]];
PERF70x50 = ["PERF70x50", "Perfboard 70 x 50mm", 70, 50, 1.6, 0, 2.3, 0, "green", true, [[2,2],[-2,2],[2,-2],[-2,-2]], [], [], [5.87, 3.49]];
@@ -352,6 +362,8 @@ RAMPSEndstop = ["RAMPSEndstop", "RAMPS Endstop Switch",
[]];
pcbs = [RAMPSEndstop, ExtruderPCB, PI_IO, RPI0, EnviroPlus, RPI3, ArduinoUno3, ArduinoLeonardo, Keyes5p1, PERF80x20, PERF70x50, PERF70x30, PERF60x40, PERF74x51, PSU12V1A, DuetE, Duex2, Duex5, Melzi, ZC_A0591];
pcbs = [TP4056, MT3608, RAMPSEndstop, ExtruderPCB, PI_IO, ZC_A0591, RPI0, EnviroPlus, ArduinoUno3, ArduinoLeonardo, Keyes5p1, PSU12V1A, RPI3, DuetE, Duex2, Duex5, Melzi];
perfboards = [PERF74x51, PERF70x50, PERF60x40, PERF70x30, PERF80x20];
use <pcb.scad>

View File

@@ -66,7 +66,7 @@ module pillar(type) { //! Draw specified pillar
cylinder(h = top_thread_l, d = thread_d);
color(pillar_i_colour(type)) {
linear_extrude(height = height)
linear_extrude(height)
difference() {
circle(d = pillar_id(type), $fn = fn(pillar_ifn(type)));
circle(d = thread_d);
@@ -90,7 +90,7 @@ module pillar(type) { //! Draw specified pillar
}
if(pillar_od(type) > pillar_id(type))
color(pillar_o_colour(type)) linear_extrude(height = height)
color(pillar_o_colour(type)) linear_extrude(height)
difference() {
circle(d = pillar_od(type), $fn = fn(pillar_ofn(type)));

View File

@@ -81,7 +81,7 @@ module pin_header(type, cols = 1, rows = 1, smt = false, right_angle = false, cu
translate([0, right_angle ? -ra_offset - pitch / 2 : 0, right_angle ? width / 2 : 0])
rotate([right_angle ? 90 : 0, 0, 0])
color(base_colour)
linear_extrude(height = h)
linear_extrude(h)
for(x = [0 : cols - 1], y = [0 : rows - 1])
translate([pitch * (x - (cols - 1) / 2), pitch * (y - (rows - 1) / 2), pitch / 2])
hull() {
@@ -111,10 +111,10 @@ module box_header(type, cols = 1, rows = 1, smt = false, cutout = false) { //! D
pin(type, hdr_pin_length(type) - pitch + base);
color(hdr_base_colour(type)) {
linear_extrude(height = base)
linear_extrude(base)
square([w, l], center = true);
linear_extrude(height = h)
linear_extrude(h)
difference() {
square([w, l], center = true);
@@ -140,7 +140,7 @@ module idc_transition(type, cols = 5, skip = [], cutout = false) { //! Draw IDC
color(hdr_base_colour(type))
rotate([90, 0, 0])
linear_extrude(height = width, center = true, convexity = cols * rows)
linear_extrude(width, center = true, convexity = cols * rows)
difference() {
translate([0, height / 2])
square([length, height], center = true);
@@ -177,7 +177,7 @@ module pin_socket(type, cols = 1, rows = 1, right_angle = false, height = 0, smt
translate([0, right_angle ? -ra_offset - pitch / 2 : 0, right_angle ? width / 2 : 0])
rotate([right_angle ? 90 : 0, 0, 0])
translate_z(depth / 2)
linear_extrude(height = depth, center = true)
linear_extrude(depth, center = true)
difference() {
square([length, width], center = true);

View File

@@ -85,7 +85,7 @@ module terminal_block(type, ways) { //! Draw a power supply terminal block
for(i = [0 : ways])
translate([0, i * pitch + div])
rotate([90, 0, 0])
linear_extrude(height = div)
linear_extrude(div)
hull() {
r = 2;
square([depth, eps]);
@@ -170,7 +170,7 @@ module psu(type) { //! Draw a power supply
multmatrix(psu_face_transform(type, i))
translate([xo, 0, -t]) {
color("silver") linear_extrude(height = t)
color("silver") linear_extrude(t)
union() {
difference() {
square([xw, yw], center = true);
@@ -260,7 +260,7 @@ module psu(type) { //! Draw a power supply
heatsink_offset = 13.5;
color("#FCD67E")
translate([(-right - rt) / 2, (ft - bt) / 2, z - pcb_thickness])
linear_extrude(height = pcb_thickness)
linear_extrude(pcb_thickness)
difference() {
square([pl, pw], center = true);
@@ -306,7 +306,7 @@ module psu(type) { //! Draw a power supply
color("silver")
translate([l / 2, -w / 2])
rotate([90, 0, 180])
linear_extrude(height = length) {
linear_extrude(length) {
translate([right + rt, z_top])
rotate(135)
square([rt, right * sqrt(2)]);
@@ -336,7 +336,7 @@ module atx_psu_cutout(type) { //! Cut out for the rear of an ATX
holes = psu_face_holes(psu_faces(type)[f_front]);
translate([holes[0].x, -psu_width(type) / 2, psu_height(type) / 2 + holes[0].y])
rotate([90, 0, 0])
linear_extrude(height = 100, center = true)
linear_extrude(100, center = true)
round(5)
polygon([ // https://www.techpowerup.com/forums/threads/pc-component-dimensions.157239, tweaked
[18.7, -13],

View File

@@ -69,7 +69,7 @@ module pulley(type) { //! Draw a pulley
ir = pulley_ir(type);
module core() {
translate_z(pulley_hub_length(type) + ft)
linear_extrude(height = w) let($fa = 1, $fs = 0.1)
linear_extrude(w) let($fa = 1, $fs = 0.1)
difference() {
circle(or);

View File

@@ -65,7 +65,7 @@ module carriage_hole_positions(type) { //! Position children over screw holes
children();
}
module carriage(type, rail, end_color = grey20, wiper_color = grey20) { //! Draw the specified carriage
module carriage(type, rail, end_colour = grey20, wiper_colour = grey20) { //! Draw the specified carriage
total_l = carriage_length(type);
block_l = carriage_block_length(type);
block_w = carriage_width(type);
@@ -84,7 +84,7 @@ module carriage(type, rail, end_color = grey20, wiper_color = grey20) { //! Draw
color(grey90) {
rotate([90, 0, 90])
linear_extrude(height = block_l, center = true)
linear_extrude(block_l, center = true)
difference() {
translate([-block_w / 2, carriage_clearance(type)])
square([block_w, block_h - screw_depth]);
@@ -93,7 +93,7 @@ module carriage(type, rail, end_color = grey20, wiper_color = grey20) { //! Draw
}
translate_z(carriage_height(type) - screw_depth)
linear_extrude(height = screw_depth)
linear_extrude(screw_depth)
difference() {
square([block_l, block_w], center = true);
@@ -104,13 +104,13 @@ module carriage(type, rail, end_color = grey20, wiper_color = grey20) { //! Draw
module carriage_end(type, end_w, end_h, end_l) {
wiper_length = 0.5;
color(wiper_color) translate_z(-end_l/2) linear_extrude(wiper_length)
color(wiper_colour) translate_z(-end_l/2) linear_extrude(wiper_length)
difference() {
translate([-end_w/2, carriage_clearance(type)])
square([end_w, end_h]);
cutout();
}
color(end_color) translate_z(wiper_length-end_l/2) linear_extrude(end_l-wiper_length)
color(end_colour) translate_z(wiper_length-end_l/2) linear_extrude(end_l-wiper_length)
difference() {
translate([-end_w/2, carriage_clearance(type)])
square([end_w, end_h]);
@@ -166,11 +166,11 @@ module rail(type, length) { //! Draw the specified rail
}
}
module rail_assembly(type, length, pos, carriage_end_color = grey20, carriage_wiper_color = grey20) { //! Rail and carriage assembly
module rail_assembly(type, length, pos, carriage_end_colour = grey20, carriage_wiper_colour = grey20) { //! Rail and carriage assembly
rail(type, length);
translate([pos, 0])
carriage(rail_carriage(type), type, carriage_end_color, carriage_wiper_color);
carriage(rail_carriage(type), type, carriage_end_colour, carriage_wiper_colour);
}

View File

@@ -60,7 +60,7 @@ module ring_terminal(type) { //! Draw specifeid ring terminal
children();
color("silver") union() {
linear_extrude(height = t)
linear_extrude(t)
difference() {
hull_if_crimp() {
circle(d = od);
@@ -102,7 +102,7 @@ module ring_terminal(type) { //! Draw specifeid ring terminal
else
translate([0, -bend])
rotate([-angle, 0, 0])
linear_extrude(height = t)
linear_extrude(t)
difference() {
length = l - od / 2 - bend;
hull() {

View File

@@ -54,7 +54,7 @@ module rocker(type, colour) { //! Draw the specified rocker switch
explode(30) {
color(grey20) {
linear_extrude(height = rocker_flange_t(type))
linear_extrude(rocker_flange_t(type))
difference() {
rounded_square([rocker_flange_w(type), rocker_flange_h(type)], 0.5);
@@ -68,7 +68,7 @@ module rocker(type, colour) { //! Draw the specified rocker switch
color(colour ? colour : grey30)
translate_z(rocker_pivot(type))
rotate([90, 0, 90])
linear_extrude(height = rocker_w, center = true)
linear_extrude(rocker_w, center = true)
difference() {
circle(rocker_r, $fa = 1);

View File

@@ -114,7 +114,7 @@ module screw(type, length, hob_point = 0, nylon = false) { //! Draw specified sc
cylinder(r = head_rad, h = head_height - socket_depth);
translate_z(head_height - socket_depth)
linear_extrude(height = socket_depth)
linear_extrude(socket_depth)
difference() {
circle(head_rad);
@@ -128,7 +128,7 @@ module screw(type, length, hob_point = 0, nylon = false) { //! Draw specified sc
color(colour) {
r = show_threads ? rad - pitch / 2 : rad;
translate_z(-socket_depth)
linear_extrude(height = socket_depth)
linear_extrude(socket_depth)
difference() {
circle(r);
@@ -161,7 +161,7 @@ module screw(type, length, hob_point = 0, nylon = false) { //! Draw specified sc
square([socket_rad, 10]);
}
linear_extrude(height = head_height)
linear_extrude(head_height)
difference() {
circle(socket_rad + eps);
@@ -187,7 +187,7 @@ module screw(type, length, hob_point = 0, nylon = false) { //! Draw specified sc
square([socket_rad, 10]);
}
}
linear_extrude(height = head_height)
linear_extrude(head_height)
difference() {
circle(socket_rad + eps);
circle(socket_rad, $fn = 6);
@@ -211,7 +211,7 @@ module screw(type, length, hob_point = 0, nylon = false) { //! Draw specified sc
}
translate_z(-socket_depth)
linear_extrude(height = socket_depth)
linear_extrude(socket_depth)
difference() {
circle(socket_rad + 0.1);
@@ -234,7 +234,7 @@ module screw(type, length, hob_point = 0, nylon = false) { //! Draw specified sc
}
translate_z(-socket_depth)
linear_extrude(height = socket_depth)
linear_extrude(socket_depth)
difference() {
circle(socket_rad + 0.1);

View File

@@ -41,7 +41,7 @@ function scs_circlip(type) = type[15]; //! Circlip used
function scs_spacer(type) = type[16]; //! Spacer used in long bearings
sks_bearing_block_color = grey90;
sks_bearing_block_colour = grey90;
module scs_bearing_block(type) { //! Draw the specified SCS bearing block
vitamin(str("scs_bearing_block(", type[0], "): ", type[0], " bearing block"));
@@ -71,7 +71,7 @@ module scs_bearing_block(type) { //! Draw the specified SCS bearing block
boltHoleRadius = screw_clearance_radius(S1);
footHeight = min(0.75, (G - bearing_dia(bearing) - 1.5) / 2); // estimate, not specified on drawings
color(sks_bearing_block_color) {
color(sks_bearing_block_colour) {
linear_extrude(L, center = true) {
bearingRadius = bearing_dia(bearing) / 2;
// center section with bearing hole

View File

@@ -48,6 +48,6 @@ module sealing_strip(length) { //! Draw specified length of sealing strip
vitamin(str("sealing_strip(", length, "): Sealing strip 10mm x 4mm x ", length, "mm"));
rotate([90, 0, 90])
color("Sienna")
linear_extrude(height = length, center = true)
linear_extrude(length, center = true)
rounded_polygon(profile);
}

View File

@@ -25,7 +25,7 @@
//! * If soft, wood screws will be used, with a pilot hole.
//! * If not soft, either tapped holes or a clearance hole and nuts will be used to retain screws.
//!
//! The "Color" parameter is a quad-array: [R, G, B, Alpha], or can be a named color, see [OpenSCAD_User_Manual](https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/The_OpenSCAD_Language#color).
//! The "Colour" parameter is a quad-array: [R, G, B, Alpha], or can be a named colour, see [OpenSCAD_User_Manual](https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/The_OpenSCAD_Language#color).
//!
//! For speed sheets should be modelled in 2D by subtracting holes from 2D templates made by ```sheet_2D()``` and then extruded to 3D with ```render_2D_sheet()```.
//! Note that modules that drill holes will return a 2D object if ```h``` is set to 0 to facilitate this.
@@ -75,14 +75,14 @@ module sheet_2D(type, w, d, corners = [0, 0, 0, 0]) { //! 2D sheet template with
}
module sheet(type, w, d, corners = [0, 0, 0, 0]) //! Draw specified sheet
linear_extrude(height = sheet_thickness(type), center = true)
linear_extrude(sheet_thickness(type), center = true)
sheet_2D(type, w, d, corners);
module render_sheet(type, color = false) //! Render a sheet in the correct colour after holes have been subtracted
color(color ? color : sheet_colour(type))
module render_sheet(type, colour = false) //! Render a sheet in the correct colour after holes have been subtracted
color(colour ? colour : sheet_colour(type))
render() children();
module render_2D_sheet(type, color = false) //! Extrude a 2D sheet template and give it the correct colour
color(color ? color : sheet_colour(type))
linear_extrude(height = sheet_thickness(type), center = true)
module render_2D_sheet(type, colour = false) //! Extrude a 2D sheet template and give it the correct colour
color(colour ? colour : sheet_colour(type))
linear_extrude(sheet_thickness(type), center = true)
children();

View File

@@ -24,7 +24,7 @@ include <../utils/fillet.scad>
use <washer.scad>
sk_bracket_color = grey70;
sk_bracket_colour = grey70;
function sk_diameter(type) = type[1]; //! Rod hole diameter
function sk_hole_offset(type) = type[2]; //! Rod hole offset
@@ -47,7 +47,7 @@ module sk_bracket(type) { //! SK shaft support bracket
S = type[10];
bolthole_radius = type[11];
color(sk_bracket_color) {
color(sk_bracket_colour) {
translate([0 , -h, 0]) {
fillet = 0.5;
rotate([-90, 0, 0])

View File

@@ -37,7 +37,7 @@ module spade(type, height = 14) { //! Draw a spade of the specified type and tot
color("silver")
rotate([90, 0, 0])
linear_extrude(height = spade_t(type), center = true)
linear_extrude(spade_t(type), center = true)
difference() {
union() {
if(shank_l > 0)

View File

@@ -44,7 +44,7 @@ module ssr(type) { //! Draw specified SSR
t = ssr_base_t(type);
h = ssr_height(type);
color("silver") linear_extrude(height = t) difference() {
color("silver") linear_extrude(t) difference() {
square([l, w], center = true);
ssr_hole_positions(type)
@@ -52,7 +52,7 @@ module ssr(type) { //! Draw specified SSR
}
color([242/255, 236/255, 220/255])
translate_z(t)
linear_extrude(height = h - t) difference() {
linear_extrude(h - t) difference() {
square([l, w], center = true);
for(end = [-1, 1])

View File

@@ -65,7 +65,7 @@ module NEMA(type, shaft_angle = 0) { //! Draw specified NEMA stepper motor
union() {
color(stepper_body_colour) // black laminations
translate_z(-length / 2)
linear_extrude(height = length - cap * 2, center = true)
linear_extrude(length - cap * 2, center = true)
intersection() {
square([side, side], center = true);
@@ -77,7 +77,7 @@ module NEMA(type, shaft_angle = 0) { //! Draw specified NEMA stepper motor
for(end = [-1, 1])
translate_z(-length / 2 + end * (length - cap) / 2) {
linear_extrude(height = cap, center = true)
linear_extrude(cap, center = true)
difference() {
intersection() {
square([side, side], center = true);

View File

@@ -130,7 +130,7 @@ module toggle(type, thickness) { //! Draw specified toggle switch with the nuts
rotate([max(angle, 0), 0, 0])
if(toggle_paddle_w(type))
translate_z(l)
linear_extrude(height = eps, center = true)
linear_extrude(eps, center = true)
intersection() {
circle(d = d1);
@@ -151,7 +151,7 @@ module toggle(type, thickness) { //! Draw specified toggle switch with the nuts
rows = pins > 3 ? 2 : 1;
color("gold")
translate_z(-toggle_depth(type) - toggle_pin_l(type) / 2)
linear_extrude(height = toggle_pin_l(type), center = true)
linear_extrude(toggle_pin_l(type), center = true)
for(i = [0 : pins - 1]) {
x = rows < 2 ? 0 : (i % 2) - 0.5;
y = rows < 2 ? i - 1 : floor(i / 2) - 1;

View File

@@ -44,7 +44,7 @@ module transformer(type) { //! Draw specified transformer
vitamin(str("transformer(", type[0], "): Transformer ", tx_part(type)));
color("silver") {
linear_extrude(height = tx_foot_thickness(type))
linear_extrude(tx_foot_thickness(type))
difference() {
rounded_square([tx_foot_width(type), tx_foot_depth(type)], r = 2);

View File

@@ -37,7 +37,7 @@ module tubing(type, length = 15, forced_id = 0) { //! Draw specified tubing with
else
vitamin(str("tubing(", type[0], arg(length, 15), "): ", tubing_material(type), " OD ", original_od, "mm ID ", original_id,"mm x ",length, "mm"));
color(tubing_colour(type))
linear_extrude(height = length, center = true, convexity = 4)
linear_extrude(length, center = true, convexity = 4)
difference() {
circle(d = od);
circle(d = id);

View File

@@ -54,7 +54,7 @@ module variac_holes(type, h = 100) { //! Drill panel holes for specified vari
}
module variac_dial(type) //! Draw the dial for the specified variac
color("silver") linear_extrude(height = variac_dial_thickness(type))
color("silver") linear_extrude(variac_dial_thickness(type))
difference() {
circle(d = variac_dial_dia(type));
@@ -81,7 +81,7 @@ module variac(type, thickness = 3, dial = true) { //! Draw the specified varia
translate_z(-h) {
color("#A66955") {
linear_extrude(height = h)
linear_extrude(h)
difference() {
shape();
@@ -89,7 +89,7 @@ module variac(type, thickness = 3, dial = true) { //! Draw the specified varia
circle(screw_radius(variac_screw(type)));
}
linear_extrude(height = h - 10)
linear_extrude(h - 10)
shape();
}
color("silver")

View File

@@ -86,7 +86,7 @@ module veroboard(type) { //! Draw specified veroboard with missing tracks and tr
vitamin(str("veroboard(", type[0], "): Veroboard ", holes, " holes x ", strips, "strips"));
color(colour) linear_extrude(height = vero_thickness(type))
color(colour) linear_extrude(vero_thickness(type))
difference() {
rounded_square([length, width], r = 0.5, center = true);
@@ -98,7 +98,7 @@ module veroboard(type) { //! Draw specified veroboard with missing tracks and tr
circle(r = screw_radius(vero_screw(type)));
}
color(tc) vflip() linear_extrude(height = vero_track_thickness(type))
color(tc) vflip() linear_extrude(vero_track_thickness(type))
difference() {
vflip()
for(y = [0 : strips -1])

View File

@@ -53,7 +53,7 @@ module washer(type) { //! Draw specified washer
else
vitamin(str("washer(", type[0], "_washer): Washer ", penny ? "penny " : "", " M", hole, " x ", diameter, "mm x ", thickness, "mm"));
color(washer_colour(type))
linear_extrude(height = thickness - 0.05)
linear_extrude( thickness - 0.05)
difference() {
circle(d = diameter);
circle(d = washer_id(type));
@@ -80,7 +80,7 @@ module star_washer(type) { //! Draw star version of washer
spoke = rad - hole / 2;
vitamin(str("star_washer(", type[0], "_washer): Washer star M", hole, " x ", thickness, "mm"));
color(star_washer_colour)
linear_extrude(height = thickness)
linear_extrude(thickness)
difference() {
circle(rad);
@@ -123,7 +123,7 @@ module printed_washer(type, name = false) { //! Create printed washer
or = washer_radius(type);
ir = washer_id(type) / 2;
color(pp1_colour)
linear_extrude(height = t, center = false, convexity = 2)
linear_extrude(t, center = false, convexity = 2)
poly_ring(or, ir);
if($children)

View File

@@ -23,8 +23,8 @@
include <../utils/core/core.scad>
include <zipties.scad>
module wire(color, strands, length, strand = 0.2) //! Add stranded wire to the BOM
vitamin(str(": Wire ", color, " ", strands, "/", strand, "mm strands, length ",length, "mm"));
module wire(colour, strands, length, strand = 0.2) //! Add stranded wire to the BOM
vitamin(str(": Wire ", colour, " ", strands, "/", strand, "mm strands, length ",length, "mm"));
module ribbon_cable(ways, length) //! Add ribbon cable to the BOM
vitamin(str(": Ribbon cable ", ways, " way ", length, "mm"));

View File

@@ -53,7 +53,7 @@ module ziptie(type, r, t = 0) //! Draw specified ziptie wrapped around radius ``
vitamin(str("ziptie(", type[0], ", ", r, "): Ziptie ", width, "mm x ", len, "mm min length"));
color(ziptie_colour(type)){
linear_extrude(height = width, center = true)
linear_extrude(width, center = true)
difference() {
rounded_polygon(outside_path, tangents);
rounded_polygon(inside_path);

View File

@@ -17,7 +17,7 @@
// If not, see <https://www.gnu.org/licenses/>.
//
// [width, thickness, [latch_x, latch_y, latch_z], color, tail]
// [width, thickness, [latch_x, latch_y, latch_z], colour, tail]
small_ziptie = ["small_ziptie", 2.5, 1.0, [4.7, 4.25, 3.0], "white", 25];
ziptie_3mm = ["ziptie_3mm", 3.0, 1.0, [5.4, 5.44, 4.5], "white", 25];
ziptie_3p6mm = ["ziptie_3p6mm", 3.6, 1.2, [6.4, 6.62, 4.7], "white", 25];