mirror of
https://github.com/nophead/NopSCADlib.git
synced 2025-09-23 05:31:31 +02:00
Compare commits
15 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
450224ec39 | ||
|
dcd2624a12 | ||
|
83e8502ecb | ||
|
a722df0b2b | ||
|
6d223c8d1f | ||
|
6d59ea2bc8 | ||
|
8243b244af | ||
|
f97070099e | ||
|
729891b675 | ||
|
4b533cffd2 | ||
|
a40a2190dc | ||
|
6556d14a11 | ||
|
c7d12b20c9 | ||
|
760e3a890d | ||
|
bd4f7b155b |
@@ -251,7 +251,7 @@ module drag_chain_link(type, start = false, end = false, check_kids = true) { //
|
||||
}
|
||||
|
||||
// Need to use a wrapper because can't define nested modules in an assembly
|
||||
module _drag_chain_assembly(type, pos = 0) {
|
||||
module _drag_chain_assembly(type, pos = 0, render = false) {
|
||||
s = drag_chain_size(type);
|
||||
x = (1 + exploded()) * s.x;
|
||||
r = drag_chain_radius(type) * x / s.x;
|
||||
@@ -278,8 +278,11 @@ module _drag_chain_assembly(type, pos = 0) {
|
||||
module link(n) // Position and colour link with origin at the hinge hole
|
||||
translate([-z / 2, 0, -z / 2]) {
|
||||
stl_colour(n < 0 || n == npoints - 1 ? pp3_colour : n % 2 ? pp1_colour : pp2_colour)
|
||||
drag_chain_link(type, start = n == -1, end = n == npoints - 1, check_kids = false)
|
||||
let($fasteners = 0) children();
|
||||
render_if(render)
|
||||
drag_chain_link(type, start = n == -1, end = n == npoints - 1, check_kids = false)
|
||||
let($fasteners = 0)
|
||||
children();
|
||||
|
||||
let($fasteners = 1) children();
|
||||
}
|
||||
|
||||
@@ -307,15 +310,15 @@ module _drag_chain_assembly(type, pos = 0) {
|
||||
|
||||
//! 1. Remove the support material from the links with side cutters.
|
||||
//! 1. Clip the links together with the special ones at the ends.
|
||||
module drag_chain_assembly(type, pos = 0) //! Drag chain assembly
|
||||
module drag_chain_assembly(type, pos = 0, render = false) //! Drag chain assembly
|
||||
assembly(str(drag_chain_name(type), "_drag_chain"), big = true)
|
||||
if($children == 2)
|
||||
_drag_chain_assembly(type, pos) {
|
||||
_drag_chain_assembly(type, pos, render) {
|
||||
children(0);
|
||||
children(1);
|
||||
}
|
||||
else if($children == 1)
|
||||
_drag_chain_assembly(type, pos)
|
||||
_drag_chain_assembly(type, pos, render)
|
||||
children(0);
|
||||
else
|
||||
_drag_chain_assembly(type, pos);
|
||||
_drag_chain_assembly(type, pos, render);
|
||||
|
15
readme.md
15
readme.md
@@ -313,7 +313,7 @@ Models of radial blowers.
|
||||
| 4 | `screw(M2_cap_screw, 8)` | Screw M2 cap x 8mm |
|
||||
| 3 | `screw(M3_cap_screw, 20)` | Screw M3 cap x 20mm |
|
||||
| 2 | `screw(M4_cap_screw, 25)` | Screw M4 cap x 25mm |
|
||||
| 1 | `blower(BL40x10)` | Square radial 4010 |
|
||||
| 1 | `blower(BL40x10)` | Square radial fan 4010 |
|
||||
| 4 | `washer(M2_washer)` | Washer M2 x 5mm x 0.3mm |
|
||||
| 3 | `washer(M3_washer)` | Washer M3 x 7mm x 0.5mm |
|
||||
| 2 | `washer(M4_washer)` | Washer M4 x 9mm x 0.8mm |
|
||||
@@ -1102,17 +1102,17 @@ Needs updating as mostly obsolete versions.
|
||||
### Vitamins
|
||||
| Qty | Module call | BOM entry |
|
||||
| ---:|:--- |:---|
|
||||
| 2 | `tubing(HSHRNK16)` | Heatshrink sleeving ID 1.6mm x 15mm |
|
||||
| 2 | `tubing(HSHRNK16)` | Heatshrink sleeving ID 1.6mm x 15mm - not shown |
|
||||
| 4 | `tubing(HSHRNK64, 60)` | Heatshrink sleeving ID 6.4mm x 60mm |
|
||||
| 1 | `e3d_hot_end(E3Dv5, 3)` | Hot end E3D V5 direct 3mm |
|
||||
| 1 | `e3d_hot_end(E3Dv6, 3)` | Hot end E3D V6 direct 3mm |
|
||||
| 1 | `e3d_hot_end(E3D_clone, 3)` | Hot end E3D clone aliexpress 3mm |
|
||||
| 1 | `jhead_hot_end(JHeadMk5, 3)` | Hot end JHead MK5 3mm |
|
||||
| 2 | `tubing(PTFE07, 62)` | PTFE sleeving OD 1.2mm ID 0.71mm x 62mm |
|
||||
| 2 | `tubing(PTFE20, 45)` | PTFE sleeving OD 2.6mm ID 2mm x 45mm |
|
||||
| 1 | `resistor(RIE1212UB5C5R6)` | Resistor UB5C 5R6F 5R6 3W vitreous enamel |
|
||||
| 2 | `tubing(PTFE07, 62)` | PTFE sleeving OD 1.2mm ID 0.71mm x 62mm - not shown |
|
||||
| 2 | `tubing(PTFE20, 45)` | PTFE sleeving OD 2.6mm ID 2mm x 45mm - not shown |
|
||||
| 1 | `resistor(RIE1212UB5C5R6)` | Resistor UB5C 5R6F 5R6 3W vitreous enamel - not shown |
|
||||
| 1 | | Tape self amalgamating silicone 110mm x 25mm |
|
||||
| 1 | `resistor(Epcos)` | Thermistor Epcos B57560G104F 100K 1% |
|
||||
| 1 | `resistor(Epcos)` | Thermistor Epcos B57560G104F 100K 1% - not shown |
|
||||
| 2 | | Wire Red PTFE 16/0.2mm strands, length 170mm |
|
||||
| 4 | `ziptie(small_ziptie, 8)` | Ziptie 2.5mm x 100mm min length |
|
||||
|
||||
@@ -3776,6 +3776,7 @@ Veroboard with mounting holes, track breaks, removed tracks, solder points and c
|
||||
| Function | Description |
|
||||
|:--- |:--- |
|
||||
| `vero_length(type)` | Length of the board |
|
||||
| `vero_size(type)` | Board size |
|
||||
| `vero_thickness(type)` | Thickness of the substrate |
|
||||
| `vero_track_thickness(type)` | Thickness of the tracks |
|
||||
| `vero_track_width(type)` | The width of the tracks |
|
||||
@@ -4558,7 +4559,7 @@ to the assembly, for example to add inserts.
|
||||
### Modules
|
||||
| Module | Description |
|
||||
|:--- |:--- |
|
||||
| `drag_chain_assembly(type, pos = 0)` | Drag chain assembly |
|
||||
| `drag_chain_assembly(type, pos = 0, render = false)` | Drag chain assembly |
|
||||
| `drag_chain_link(type, start = false, end = false, check_kids = true)` | One link of the chain, special case for start and end |
|
||||
| `drag_chain_screw_positions(type, end)` | Place children at the screw positions, end = 0 for the start, 1 for the end |
|
||||
| `screw_lug(screw, h = 0)` | Create a D shaped lug for a screw |
|
||||
|
@@ -24,7 +24,7 @@
|
||||
// h h s t t
|
||||
RB5015 = ["RB5015", "Blower Runda RB5015", 51.3, 51, 15, 31.5, M4_cap_screw, 26, [27.3, 25.4], 4.5, [[4.3, 45.4], [47.3,7.4]], 20, 14, 1.5, 1.3, 1.2, 15];
|
||||
PE4020 = ["PE4020", "Blower Pengda Technology 4020", 40, 40, 20, 27.5, M3_cap_screw, 22, [21.5, 20 ], 3.2, [[37,3],[3,37],[37,37]], 29.3, 17, 1.7, 1.2, 1.3, 13];
|
||||
BL40x10 =["BL40x10","Square radial 4010", 40, 40,9.5, 27, M2_cap_screw, 16, [24, 20 ], 2.4, [[2,2],[38,2],[2,38],[38,38]], 30 , 9.5, 1.5, 1.5, 1.1, 1.5];
|
||||
BL40x10 =["BL40x10","Square radial fan 4010", 40, 40,9.5, 27, M2_cap_screw, 16, [24, 20 ], 2.4, [[2,2],[38,2],[2,38],[38,38]], 30 , 9.5, 1.5, 1.5, 1.1, 1.5];
|
||||
|
||||
blowers = [BL40x10, PE4020, RB5015];
|
||||
|
||||
|
@@ -194,12 +194,14 @@ module jhead_hot_end_assembly(type, filament, naked = false) { //! Assembly with
|
||||
if(exploded())
|
||||
heater_components();
|
||||
else
|
||||
intersection() {
|
||||
heater_components();
|
||||
if(naked) // hide the wires when not exploded
|
||||
intersection() {
|
||||
heater_components();
|
||||
|
||||
if(naked)
|
||||
color("grey") cylinder(r = 12, h = 100, center = true);
|
||||
else
|
||||
cube(1, true); // hide the wires when not exploded
|
||||
}
|
||||
color("grey")
|
||||
cylinder(r = 12, h = 100, center = true);
|
||||
}
|
||||
else
|
||||
hidden() // hidden by the tape
|
||||
heater_components();
|
||||
}
|
||||
|
@@ -64,6 +64,7 @@ module pulley(type) { //! Draw a pulley
|
||||
hl = pulley_hub_length(type);
|
||||
w = pulley_width(type);
|
||||
r1 = pulley_bore(type) / 2;
|
||||
screw_z = pulley_screw_z(type);
|
||||
|
||||
or = od / 2;
|
||||
ir = pulley_ir(type);
|
||||
@@ -100,33 +101,42 @@ module pulley(type) { //! Draw a pulley
|
||||
}
|
||||
}
|
||||
|
||||
module screw_holes() {
|
||||
if(pulley_screws(type))
|
||||
translate_z(pulley_screw_z(type))
|
||||
for(i = [0 : pulley_screws(type) - 1])
|
||||
rotate([-90, 0, i * -90])
|
||||
cylinder(r = screw_radius(pulley_screw(type)), h = 100);
|
||||
}
|
||||
module hub()
|
||||
rotate_extrude() translate([r1, 0]) {
|
||||
if(hl)
|
||||
square([pulley_hub_dia(type) / 2 - r1, hl]);
|
||||
|
||||
color("silver") {
|
||||
render() difference() {
|
||||
rotate_extrude() translate([r1, 0]) {
|
||||
if(hl)
|
||||
square([pulley_hub_dia(type) / 2 - r1, hl]);
|
||||
|
||||
for(z = [pulley_hub_length(type), hl + ft + w])
|
||||
translate([0, z])
|
||||
square([pulley_flange_dia(type) / 2 - r1, ft]);
|
||||
}
|
||||
if(pulley_screw_z(type) < hl)
|
||||
screw_holes();
|
||||
for(z = [pulley_hub_length(type), hl + ft + w])
|
||||
translate([0, z])
|
||||
square([pulley_flange_dia(type) / 2 - r1, ft]);
|
||||
}
|
||||
render() difference() { // T5 pulleys have screw through the teeth
|
||||
|
||||
module screw_holes()
|
||||
translate_z(screw_z)
|
||||
for(i = [0 : pulley_screws(type) - 1])
|
||||
rotate([-90, 0, i * -90])
|
||||
cylinder(r = screw_radius(pulley_screw(type)), h = 100);
|
||||
|
||||
color(silver) {
|
||||
if(screw_z && screw_z < hl)
|
||||
render()
|
||||
difference() {
|
||||
hub();
|
||||
|
||||
screw_holes();
|
||||
}
|
||||
else
|
||||
hub();
|
||||
|
||||
if(screw_z && screw_z > hl) // T5 pulleys have screw through the teeth
|
||||
render()
|
||||
difference() {
|
||||
core();
|
||||
|
||||
screw_holes();
|
||||
}
|
||||
else
|
||||
core();
|
||||
|
||||
if(pulley_screw_z(type) > hl)
|
||||
screw_holes();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -262,7 +262,7 @@ module screw_countersink(type, drilled = true) { //! Countersink shape
|
||||
if(drilled)
|
||||
cylinder(h = head_height + eps, r1 = 0, r2 = head_rad + head_t);
|
||||
else
|
||||
intersection() {
|
||||
render() intersection() {
|
||||
cylinder(h = head_height + eps, r1 = 0, r2 = head_rad + head_t);
|
||||
|
||||
cylinder(h = head_height + eps, r = head_rad + eps);
|
||||
|
@@ -41,6 +41,8 @@ function vero_track_width(type) = vero_pitch(type) * 0.8; //! The width of th
|
||||
function vero_length(type) = vero_holes(type) * vero_pitch(type); //! Length of the board
|
||||
function vero_width(type) = vero_strips(type) * vero_pitch(type); //! Width of the board
|
||||
|
||||
function vero_size(type) = [vero_length(type), vero_width(type), vero_thickness(type)]; //! Board size
|
||||
|
||||
module solder_meniscus(type) {
|
||||
h = 1;
|
||||
r = vero_track_width(type) / 2;
|
||||
|
Reference in New Issue
Block a user