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

Compare commits

...

12 Commits

Author SHA1 Message Date
Chris Palmer
c815c1592d SHOW_THREADS renamed NOPSCADLIB_SHOW_THREADS for #61 2020-03-01 19:10:40 +00:00
Chris Palmer
e32ef88c90 Small optimisation to views.py 2020-03-01 19:09:18 +00:00
Chris Palmer
702c450a27 Small optimisation to exports.py 2020-03-01 18:35:53 +00:00
Chris Palmer
1a197ac823 Fixed missing screw holes in blowers. 2020-02-29 20:34:05 +00:00
Chris Palmer
ab592e049c Screws.scad is now included in core.scad, so doesn't need to be included
anywhere else. utils/core/core.scad is the old version without fasteners to
be used internally in the library.
2020-02-29 17:52:36 +00:00
Chris Palmer
9b104e4fe7 Changed the default printed part colour, pp1_colour to RepRap logo green. 2020-02-29 10:30:15 +00:00
Chris Palmer
f0b4d767e9 Replaced "lime" with pp1_colour. 2020-02-29 10:26:25 +00:00
Chris Palmer
82baed4c8f Updated images and readme. 2020-02-29 09:00:20 +00:00
Chris Palmer
acb2cb2a48 Changed PSU list order to get all the shrouds together. 2020-02-29 08:55:40 +00:00
Chris Palmer
cf94972b18 Merge branch 'psu_vents' of https://github.com/martinbudden/NopSCADlib into martinbudden-psu_vents 2020-02-29 08:48:33 +00:00
Chris Palmer
7c0a48d0c1 Added parametric printed box 2020-02-29 01:27:17 +00:00
Martin Budden
a5a640e273 Added facility to add vents to PSU. Added vents to S_300_12. 2020-02-28 21:21:11 +00:00
235 changed files with 794 additions and 329 deletions

View File

@@ -18,22 +18,10 @@
//
//
// Include this file to use the miniumum library
// Include this file to use the miniumum library plus screws, nuts and washers
//
include <global_defs.scad>
include <utils/core/core.scad>
//
// Global functions and modules
// Fasteners used by a lot of other vitamins
//
use <utils/core/global.scad>
module use_stl(name) { //! Import an STL to make a build platter
stl(name);
import(str("../stls/", name, ".stl"));
}
module use_dxf(name) { //! Import a DXF to make a build panel
dxf(name);
import(str("../dxfs/", name, ".dxf"));
}
include <vitamins/screws.scad>

View File

@@ -116,8 +116,8 @@ get shared if other files in the project include ```lib.scad``` as well, or if y
One downside is that any change to the library will mean all the project files need regenerating.
A more optimised approach for large projects is to include [NopSCADlib/core.scad](../core.scad) instead.
That only has the a small set of utilities and the global settings in [global_defs.scad](../global_defs.scad). Any vitamins used need to be included explicitly.
One can copy the include or use line from [NopSCADlib/lib.scad](../lib.scad).
That only has the a small set of utilities and the global settings in [global_defs.scad](../global_defs.scad) plus screws, nuts and washers that are required by a lot of other vitamins.
Any other vitamins used need to be included explicitly. One can copy the includes or use a line from [NopSCADlib/lib.scad](../lib.scad).
### Parametric parts.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 15 KiB

View File

@@ -34,7 +34,7 @@ layer_height = is_undef($layer_height) ? 0.25 : $layer_height; // lay
extrusion_width = is_undef($extrusion_width) ? 0.5 : $extrusion_width; // filament width when printing
nozzle = is_undef($nozzle) ? 0.45 : $nozzle; // 3D printer nozzle
cnc_bit_r = is_undef($cnc_bit_r) ? 1.2 : $cnc_bit_r; // miniumum tool radius when milling 2D objects
pp1_colour = is_undef($pp1_colour) ? "lime" : $pp1_colour; // printed part colour 1
pp1_colour = is_undef($pp1_colour) ? [0, 146/255, 0] : $pp1_colour; // printed part colour 1, RepRap logo colour
pp2_colour = is_undef($pp2_colour) ? "red" : $pp2_colour; // printed part colour 2
pp3_colour = is_undef($pp3_colour) ? "blue" : $pp3_colour; // printed part colour 3
pp4_colour = is_undef($pp4_colour) ? "darkorange" : $pp4_colour;// printed part colour 4

View File

@@ -23,43 +23,40 @@
include <core.scad>
include <vitamins/psus.scad>
include <vitamins/pcbs.scad>
include <vitamins/batteries.scad>
include <vitamins/blowers.scad>
include <vitamins/bulldogs.scad>
include <vitamins/buttons.scad>
include <vitamins/components.scad>
include <vitamins/displays.scad>
include <vitamins/extrusions.scad>
include <vitamins/geared_steppers.scad>
include <vitamins/hot_ends.scad>
include <vitamins/inserts.scad>
include <vitamins/ldrs.scad>
include <vitamins/leadnuts.scad>
include <vitamins/leds.scad>
include <vitamins/light_strips.scad>
include <vitamins/mains_sockets.scad>
include <vitamins/modules.scad>
include <vitamins/pillars.scad>
include <vitamins/pulleys.scad>
include <vitamins/ring_terminals.scad>
include <vitamins/rails.scad>
include <vitamins/belts.scad>
include <vitamins/pulleys.scad>
include <vitamins/sheets.scad>
include <vitamins/stepper_motors.scad>
include <vitamins/components.scad>
include <vitamins/hot_ends.scad>
include <vitamins/tubings.scad>
include <vitamins/zipties.scad>
include <vitamins/scs_bearing_blocks.scad>
include <vitamins/rod.scad>
include <vitamins/leadnuts.scad>
include <vitamins/bulldogs.scad>
include <vitamins/pillars.scad>
include <vitamins/scs_bearing_blocks.scad>
include <vitamins/sheets.scad>
include <vitamins/sk_brackets.scad>
include <vitamins/spools.scad>
include <vitamins/ssrs.scad>
include <vitamins/d_connectors.scad>
include <vitamins/buttons.scad>
include <vitamins/pcbs.scad>
include <vitamins/modules.scad>
include <vitamins/displays.scad>
include <vitamins/blowers.scad>
include <vitamins/leds.scad>
include <vitamins/stepper_motors.scad>
include <vitamins/toggles.scad>
include <vitamins/transformers.scad>
include <vitamins/tubings.scad>
include <vitamins/variacs.scad>
include <vitamins/springs.scad>
include <vitamins/batteries.scad>
include <vitamins/ball_bearings.scad>
include <vitamins/light_strips.scad>
include <vitamins/spools.scad>
include <vitamins/mains_sockets.scad>
include <vitamins/ldrs.scad>
include <vitamins/geared_steppers.scad>
include <vitamins/extrusions.scad>
include <vitamins/sk_brackets.scad>
include <vitamins/zipties.scad>
use <vitamins/jack.scad>
use <vitamins/meter.scad>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 782 KiB

After

Width:  |  Height:  |  Size: 781 KiB

View File

@@ -87,16 +87,17 @@ use <tests/door_hinge.scad>
use <tests/door_latch.scad>
use <tests/fan_guard.scad>
use <tests/fixing_block.scad>
use <tests/flat_hinge.scad>
use <tests/foot.scad>
use <tests/handle.scad>
use <tests/pcb_mount.scad>
use <tests/printed_box.scad>
use <tests/ribbon_clamp.scad>
use <tests/screw_knob.scad>
use <tests/socket_box.scad>
use <tests/strap_handle.scad>
use <tests/ssr_shroud.scad>
use <tests/psu_shroud.scad>
use <tests/flat_hinge.scad>
use <tests/pcb_mount.scad>
x0 = 0;
x1 = x0 + 100;
@@ -146,9 +147,14 @@ translate([x5, cable_grommets_y + 250])
translate([950, 600])
box_test();
translate([890, 730])
printed_boxes();
translate([850, 1260])
bbox_test();
inserts_y = 0;
nuts_y = inserts_y + 20;
washers_y = nuts_y + 100;

View File

@@ -31,7 +31,7 @@
//!
//! Normally the side sheets are the same type but they can be overridden individually as long as the substitute has the same thickness.
//
include <../core.scad>
include <../utils/core/core.scad>
use <../vitamins/sheet.scad>
use <../vitamins/screw.scad>
use <../vitamins/washer.scad>

View File

@@ -21,7 +21,7 @@
//! Printed cable grommets for passing cables through panels avoiding sharp edges and in the case
//! of conductive panels, an extra layer of insulation.
//
include <../core.scad>
include <../utils/core/core.scad>
use <../vitamins/cable_strip.scad>
base = 1.25;

View File

@@ -22,7 +22,7 @@
//
$extrusion_width = 0.5;
include <../core.scad>
include <../utils/core/core.scad>
module ESP12F_carrier_stl() { //! Generate the STL for an ESP12 carrier
stl("ESP12F_carrier");

View File

@@ -31,7 +31,6 @@
//! Star washers can be omitted by setting ```star_washers``` to false.
//
include <../core.scad>
include <../vitamins/screws.scad>
use <../vitamins/insert.scad>
use <../utils/rounded_cylinder.scad>
use <../utils/maths.scad>

View File

@@ -24,7 +24,6 @@
//! Rubber door [sealing strip](#sealing_strip) is used to make it airtight and a [door_latch](#door_latch) holds it closed.
//
include <../core.scad>
include <../vitamins/screws.scad>
width = 18;
thickness = 4;
@@ -142,7 +141,7 @@ module door_hinge_assembly(top, door_thickness = 6) { //! The moving assembly th
translate([0, pin_y - (thickness + door_thickness / 2), dir * width / 2]) {
rotate([90, 0, 180])
color("red") door_hinge(door_thickness);
color(pp2_colour) door_hinge(door_thickness);
rotate([90, 0, 0])
door_hinge_hole_positions()
@@ -166,7 +165,7 @@ module door_hinge_static_assembly(top, sheet_thickness = 3) { //! The stationary
translate([pin_x, 0, -dir * (stat_width / 2 + washer_thickness(screw_washer(pin_screw)))])
rotate([90, 0, 0]) {
color("lime") door_hinge_stat_stl();
color(pp1_colour) door_hinge_stat_stl();
door_hinge_stat_hole_positions() {
screw_and_washer(stat_screw, stat_screw_length);

View File

@@ -22,7 +22,6 @@
//
include <../core.scad>
use <../utils/hanging_hole.scad>
include <../vitamins/screws.scad>
length = 35;
width = 12;
@@ -66,7 +65,7 @@ module door_latch_assembly(sheet_thickness = 3) { //! The assembly for a specifi
translate([0, -height - washer_thickness(washer)])
rotate([-90, 0, 0]) {
color("lime") render() door_latch_stl();
color(pp1_colour) render() door_latch_stl();
translate_z(nut_trap_depth)
vflip()

View File

@@ -31,7 +31,6 @@
//! Star washers can be omitted by setting ```star_washers``` to false.
//
include <../core.scad>
include <../vitamins/screws.scad>
use <../vitamins/insert.scad>
use <../utils/maths.scad>

View File

@@ -30,7 +30,6 @@
//! This allows the hinges and one set of screws to belong to one assembly and the other set of screws to another assembly.
//
include <../core.scad>
include <../vitamins/screws.scad>
function hinge_width(type) = type[1]; //! Width
function hinge_depth(type) = type[2]; //! Depth of each leaf

View File

@@ -22,7 +22,6 @@
//! inserts don't grip well in rubber.
//
include <../core.scad>
include <../vitamins/screws.scad>
use <../vitamins/insert.scad>
foot = [25, 12, 3, 2, M4_cap_screw, 10];

View File

@@ -21,7 +21,6 @@
//! Printed handle that can be printed without needing support material due to its truncated teardrop profile.
//
include <../core.scad>
include <../vitamins/screws.scad>
use <../vitamins/insert.scad>
dia = 18;

View File

@@ -22,7 +22,6 @@
//! The stl must be given a parameterless wrapper in the project that uses it.
//
include <../core.scad>
include <../vitamins/screws.scad>
use <../vitamins/pcb.scad>
clearance = 0.2;

229
printed/printed_box.scad Normal file
View File

@@ -0,0 +1,229 @@
//
// NopSCADlib Copyright Chris Palmer 2020
// nop.head@gmail.com
// hydraraptor.blogspot.com
//
// This file is part of NopSCADlib.
//
// NopSCADlib is free software: you can redistribute it and/or modify it under the terms of the
// GNU General Public License as published by the Free Software Foundation, either version 3 of
// the License, or (at your option) any later version.
//
// NopSCADlib is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
// without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
// See the GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License along with NopSCADlib.
// If not, see <https://www.gnu.org/licenses/>.
//
//
//! A fully parametric 3D printed case that can be customised with cutouts and additions specified by children.
//!
//! The walls can be made wavy, which possibly reduces warping when printing and looks nice, however if holes need to be made
//! in the sides you can't print a wavy bridge. Any holes need to be surrounded by a 45&deg; chamfer to make the bridges straight.
//! See the mounting points for the feet in the first example.
//!
//! It can also have printed feet on the base with the screws doubling up to hold the base on.
//
include <../core.scad>
use <../vitamins/insert.scad>
use <foot.scad>
function pbox_name(type) = type[0]; //! Name to allow more than one box in a project
function pbox_wall(type) = type[1]; //! Wall thickness
function pbox_top(type) = type[2]; //! Top thickness
function pbox_base(type) = type[3]; //! Base thickness, can be zero for no base
function pbox_foot(type) = type[4]; //! Printed foot, can be false to suppress feet
function pbox_base_screw(type) = type[5]; //! Screw type if no feet
function pbox_radius(type) = type[6]; //! Internal corner radius
function pbox_ridges(type) = type[7]; //! Ridge wavelength and amplitude
function pbox_width(type) = type[8]; //! Internal width
function pbox_depth(type) = type[9]; //! Internal depth
function pbox_height(type) = type[10]; //! Internal height
base_outset = 1; // How much the base overlaps the inner dimensions
base_overlap = 2; // The width of ledge the base sits on
height_overlap = 1; // How far the edges sit below the base
function pbox_inclusion(type) = pbox_base(type) ? base_overlap - base_outset : 0; //! How far the ledge for the base extends inwards
function pbox_total_height(type) = //! Total height including base overlap
let(base = pbox_base(type),
foot = pbox_foot(type),
washer = pbox_washer(type),
screw = pbox_screw(type))
pbox_height(type) + pbox_top(type) + base + (base ? height_overlap : 0) + (foot || !base ? 0 : washer_thickness(washer) + screw_head_height(screw));
function pbox_screw(type) = //! Foot screw if got feet else base_screw
let(foot = pbox_foot(type)) foot ? foot_screw(foot) : pbox_base_screw(type);
function pbox_insert(type) = screw_insert(pbox_screw(type)); //! The insert for the base screws
function pbox_washer(type) = screw_washer(pbox_screw(type)); //! The washer for the base screws
function pbox_screw_length(type, panel_thickness = 0) = //! Length of the base screw
let(foot = pbox_foot(type))
screw_shorter_than(pbox_base(type) + washer_thickness(pbox_washer(type))
+ insert_length(pbox_insert(type))
+ (foot ? foot_thickness(foot) : panel_thickness));
function pbox_mid_offset(type) = pbox_ridges(type).y + pbox_wall(type) / 2; // Offset to wall midpoint
function pbox_screw_inset(type) = //! How far the base screws are inset
let(foot = pbox_foot(type),
r = foot ? foot_diameter(foot) / 2 : washer_radius(pbox_washer(type)),
R = pbox_radius(type)
) max(r, R - (R - r) / sqrt(2));
module pbox_screw_positions(type) {
foot = pbox_foot(type);
inset = pbox_screw_inset(type);
for(x = [-1, 1], y = [-1, 1])
translate([x * (pbox_width(type) / 2 - inset), y * (pbox_depth(type) / 2 - inset)])
rotate((y > 0 ? -x * 45 : -x * 135) + 90)
children();
}
module pbox_mid_shape(type) {
ridges = pbox_ridges(type);
offset = ridges.y + pbox_wall(type) / 2;
rad = pbox_radius(type) + offset;
w = pbox_width(type) + 2 * offset;
d = pbox_depth(type) + 2 * offset;
module waves(length) {
l = length - 2 * rad;
waves = round(l / ridges.x);
points = 16;
translate([-l / 2, ridges.y / 2])
polygon(concat([[0, -10]], [for(i = [0 : waves * points], a = 360 * i / points) [i * l / waves / points, -cos(a) * ridges.y / 2] ], [[l, -10]]));
}
difference() {
rounded_square([w, d], rad, center = true);
if(ridges.y)
for(side = [-1, 1]) {
translate([0, side * d / 2])
rotate(90 + side * 90)
waves(w);
translate([side * w / 2, 0])
rotate(side * 90)
waves(d);
}
}
}
module pbox_inner_shape(type) {
rad = pbox_radius(type);
w = pbox_width(type);
d = pbox_depth(type);
rounded_square([w, d], rad, center = true);
}
module pbox_base(type) { //! Generate the STL for the base
stl(str(pbox_name(type),"_base"));
t = pbox_base(type);
difference() {
union() {
linear_extrude(height = t)
offset(base_outset - 0.2)
pbox_inner_shape(type);
if($children > 0)
children(0);
}
pbox_screw_positions(type)
poly_cylinder(r = screw_clearance_radius(pbox_screw(type)), h = 2 * t + eps, center = true);
if($children > 1)
children(1);
}
}
module pbox(type) { //! Generate the STL for the main case
stl(pbox_name(type));
height = pbox_height(type);
total_height = pbox_total_height(type);
top_thickness = pbox_top(type);
wall = pbox_wall(type);
ledge_outset = pbox_ridges(type).y;
ledge_inset = base_outset - base_overlap;
ledge_h = pbox_base(type) ? (ledge_outset - ledge_inset) * 2 : 0;
difference() {
union() {
linear_extrude(height = total_height)
offset(wall / 2) pbox_mid_shape(type);
if($children > 2)
children(2);
}
difference() {
translate_z(top_thickness)
union() {
linear_extrude(height = height + eps)
offset(-wall / 2) pbox_mid_shape(type);
translate_z(height) // Recess for the base
linear_extrude(height = total_height - height)
offset(base_outset)
pbox_inner_shape(type);
}
// Ledge to support the lid
if(ledge_h)
translate_z(top_thickness + height - ledge_h)
difference() {
rounded_rectangle([pbox_width(type) + 2 * outset, pbox_depth(type) + 2 * outset, ledge_h], 1, center = false);
hull() {
linear_extrude(height = ledge_h + eps)
offset(ledge_inset)
pbox_inner_shape(type);
linear_extrude(height = eps)
offset(ledge_outset)
pbox_inner_shape(type);
}
pbox_screw_positions(type)
insert_hole(pbox_insert(type));
}
// Corner lugs for inserts
outset = wall + pbox_ridges(type).y;
or = pbox_radius(type) + outset;
inset = pbox_screw_inset(type) + outset;
br = insert_boss_radius(pbox_insert(type), wall);
ext = sqrt(2) * inset - or * (sqrt(2) - 1) - br;
translate_z(height + top_thickness)
pbox_screw_positions(type)
insert_lug(pbox_insert(type), wall, counter_bore = 0, extension = ext, corner_r = or);
if($children > 0)
children(0);
}
if($children > 1)
children(1);
}
}
module pbox_inserts(type) //! Place the inserts for the base screws
translate_z(pbox_height(type) + pbox_top(type))
pbox_screw_positions(type)
insert(pbox_insert(type));
module pbox_base_screws(type, thickness = 0) //! Place the screws and feet
translate_z(pbox_height(type) + pbox_top(type) + pbox_base(type))
pbox_screw_positions(type) {
foot = pbox_foot(type);
if(foot)
color(pp4_colour)
foot(foot);
translate_z(foot ? foot_thickness(foot) : thickness)
screw_and_washer(pbox_screw(type), pbox_screw_length(type, thickness));
}

View File

@@ -22,7 +22,6 @@
//! The stl and assembly must be given a name and parameterless wrappers for the stl and assembly added to the project.
//
include <../core.scad>
include <../vitamins/screws.scad>
use <../vitamins/insert.scad>
use <../vitamins/wire.scad>

View File

@@ -21,7 +21,6 @@
//! Clamp for ribbon cable and polypropylene strip.
//
include <../core.scad>
include <../vitamins/screws.scad>
use <../vitamins/insert.scad>
use <../vitamins/cable_strip.scad>

View File

@@ -21,7 +21,6 @@
//! Knob with embedded hex head screw.
//
include <../core.scad>
include <../vitamins/screws.scad>
use <../utils/hanging_hole.scad>
knob_wall = 2;

View File

@@ -22,9 +22,8 @@
//
include <../core.scad>
include <../vitamins/mains_sockets.scad>
include <../vitamins/screws.scad>
use <../vitamins/insert.scad>
include <../vitamins/ring_terminals.scad>
use <../vitamins/insert.scad>
box_height = 19;
base_thickness = 2;
@@ -93,7 +92,7 @@ assembly(str("socket_box_", type[0])) {
screw = mains_socket_screw(type);
insert = screw_insert(screw);
color("lime") render() socket_box(type);
color(pp1_colour) render() socket_box(type);
mains_socket_hole_positions(type)
translate_z(height)

View File

@@ -19,10 +19,9 @@
//
//! A cover to go over the mains end of an SSR to make it safe to be touched.
//! The stl and assembly must be given a name and parameterless wrappers for the stl and assembly added to the project.
//! The STL and assembly must be given a name and parameterless wrappers for the stl and assembly added to the project.
//
include <../core.scad>
include <../vitamins/screws.scad>
use <../vitamins/insert.scad>
use <../vitamins/wire.scad>

View File

@@ -22,7 +22,6 @@
//! be fully customised by passing a list of properties.
//
include <../core.scad>
include <../vitamins/screws.scad>
use <../vitamins/insert.scad>
strap = [18, 2, M3_pan_screw, 3, 25];

View File

@@ -31,13 +31,13 @@ See [usage](docs/usage.md) for requirements, installation instructions and a usa
<tr><td> <a href = "#Extrusion_brackets">Extrusion_brackets</a> </td><td> <a href = "#Ring_terminals">Ring_terminals</a> </td><td> <a href = "#Foot">Foot</a> </td><td> <a href = "#Rounded_cylinder">Rounded_cylinder</a> </td><td></td></tr>
<tr><td> <a href = "#Extrusions">Extrusions</a> </td><td> <a href = "#Rockers">Rockers</a> </td><td> <a href = "#Handle">Handle</a> </td><td> <a href = "#Rounded_polygon">Rounded_polygon</a> </td><td></td></tr>
<tr><td> <a href = "#Fans">Fans</a> </td><td> <a href = "#Rod">Rod</a> </td><td> <a href = "#Pcb_mount">Pcb_mount</a> </td><td> <a href = "#Sector">Sector</a> </td><td></td></tr>
<tr><td> <a href = "#Fuseholder">Fuseholder</a> </td><td> <a href = "#Screws">Screws</a> </td><td> <a href = "#Psu_shroud">Psu_shroud</a> </td><td> <a href = "#Sweep">Sweep</a> </td><td></td></tr>
<tr><td> <a href = "#Geared_steppers">Geared_steppers</a> </td><td> <a href = "#Scs_bearing_blocks">Scs_bearing_blocks</a> </td><td> <a href = "#Ribbon_clamp">Ribbon_clamp</a> </td><td> <a href = "#Thread">Thread</a> </td><td></td></tr>
<tr><td> <a href = "#Green_terminals">Green_terminals</a> </td><td> <a href = "#Sealing_strip">Sealing_strip</a> </td><td> <a href = "#Screw_knob">Screw_knob</a> </td><td> <a href = "#Tube">Tube</a> </td><td></td></tr>
<tr><td> <a href = "#Hot_ends">Hot_ends</a> </td><td> <a href = "#Sheets">Sheets</a> </td><td> <a href = "#Socket_box">Socket_box</a> </td><td></td><td></td></tr>
<tr><td> <a href = "#Hygrometer">Hygrometer</a> </td><td> <a href = "#Sk_brackets">Sk_brackets</a> </td><td> <a href = "#Ssr_shroud">Ssr_shroud</a> </td><td></td><td></td></tr>
<tr><td> <a href = "#Iecs">Iecs</a> </td><td> <a href = "#Spades">Spades</a> </td><td> <a href = "#Strap_handle">Strap_handle</a> </td><td></td><td></td></tr>
<tr><td> <a href = "#Inserts">Inserts</a> </td><td> <a href = "#Spools">Spools</a> </td><td></td><td></td><td></td></tr>
<tr><td> <a href = "#Fuseholder">Fuseholder</a> </td><td> <a href = "#Screws">Screws</a> </td><td> <a href = "#Printed_box">Printed_box</a> </td><td> <a href = "#Sweep">Sweep</a> </td><td></td></tr>
<tr><td> <a href = "#Geared_steppers">Geared_steppers</a> </td><td> <a href = "#Scs_bearing_blocks">Scs_bearing_blocks</a> </td><td> <a href = "#Psu_shroud">Psu_shroud</a> </td><td> <a href = "#Thread">Thread</a> </td><td></td></tr>
<tr><td> <a href = "#Green_terminals">Green_terminals</a> </td><td> <a href = "#Sealing_strip">Sealing_strip</a> </td><td> <a href = "#Ribbon_clamp">Ribbon_clamp</a> </td><td> <a href = "#Tube">Tube</a> </td><td></td></tr>
<tr><td> <a href = "#Hot_ends">Hot_ends</a> </td><td> <a href = "#Sheets">Sheets</a> </td><td> <a href = "#Screw_knob">Screw_knob</a> </td><td></td><td></td></tr>
<tr><td> <a href = "#Hygrometer">Hygrometer</a> </td><td> <a href = "#Sk_brackets">Sk_brackets</a> </td><td> <a href = "#Socket_box">Socket_box</a> </td><td></td><td></td></tr>
<tr><td> <a href = "#Iecs">Iecs</a> </td><td> <a href = "#Spades">Spades</a> </td><td> <a href = "#Ssr_shroud">Ssr_shroud</a> </td><td></td><td></td></tr>
<tr><td> <a href = "#Inserts">Inserts</a> </td><td> <a href = "#Spools">Spools</a> </td><td> <a href = "#Strap_handle">Strap_handle</a> </td><td></td><td></td></tr>
<tr><td> <a href = "#Jack">Jack</a> </td><td> <a href = "#Springs">Springs</a> </td><td></td><td></td><td></td></tr>
<tr><td> <a href = "#Kp_pillow_blocks">Kp_pillow_blocks</a> </td><td> <a href = "#Ssrs">Ssrs</a> </td><td></td><td></td><td></td></tr>
<tr><td> <a href = "#Ldrs">Ldrs</a> </td><td> <a href = "#Stepper_motors">Stepper_motors</a> </td><td></td><td></td><td></td></tr>
@@ -2171,6 +2171,7 @@ Face order is bottom, top, left, right, front, back.
| ```psu_face_iec(type)``` | IEC connector x,y, rotation and type |
| ```psu_face_switch(type)``` | Rocker switch x,y, rotation and type |
| ```psu_face_thickness(type)``` | The thickness |
| ```psu_face_vents(type)``` | Vents array position x,y, rotation, size and corner radius |
| ```psu_faces(type)``` | List of face descriptions |
| ```psu_height(type)``` | Height |
| ```psu_left_bay(type)``` | Bay for terminals |
@@ -4295,6 +4296,87 @@ The stl must be given a parameterless wrapper in the project that uses it.
| 1 | pcb_mount_PI_IO_5.stl |
<a href="#top">Top</a>
---
<a name="Printed_box"></a>
## Printed_box
A fully parametric 3D printed case that can be customised with cutouts and additions specified by children.
The walls can be made wavy, which possibly reduces warping when printing and looks nice, however if holes need to be made
in the sides you can't print a wavy bridge. Any holes need to be surrounded by a 45&deg; chamfer to make the bridges straight.
See the mounting points for the feet in the first example.
It can also have printed feet on the base with the screws doubling up to hold the base on.
[printed/printed_box.scad](printed/printed_box.scad) Implementation.
[tests/printed_box.scad](tests/printed_box.scad) Code for this example.
### Properties
| Function | Description |
|:--- |:--- |
| ```pbox_base(type)``` | Base thickness, can be zero for no base |
| ```pbox_base_screw(type)``` | Screw type if no feet |
| ```pbox_depth(type)``` | Internal depth |
| ```pbox_foot(type)``` | Printed foot, can be false to suppress feet |
| ```pbox_height(type)``` | Internal height |
| ```pbox_name(type)``` | Name to allow more than one box in a project |
| ```pbox_radius(type)``` | Internal corner radius |
| ```pbox_ridges(type)``` | Ridge wavelength and amplitude |
| ```pbox_top(type)``` | Top thickness |
| ```pbox_wall(type)``` | Wall thickness |
| ```pbox_width(type)``` | Internal width |
### Functions
| Function | Description |
|:--- |:--- |
| ```pbox_inclusion(type)``` | How far the ledge for the base extends inwards |
| ```pbox_insert(type)``` | The insert for the base screws |
| ```pbox_screw(type)``` | Foot screw if got feet else base_screw |
| ```pbox_screw_inset(type)``` | How far the base screws are inset |
| ```pbox_screw_length(type, panel_thickness = 0)``` | Length of the base screw |
| ```pbox_total_height(type)``` | Total height including base overlap |
| ```pbox_washer(type)``` | The washer for the base screws |
### Modules
| Module | Description |
|:--- |:--- |
| ```pbox(type)``` | Generate the STL for the main case |
| ```pbox_base(type)``` | Generate the STL for the base |
| ```pbox_base_screws(type, thickness = 0)``` | Place the screws and feet |
| ```pbox_inserts(type)``` | Place the inserts for the base screws |
![printed_box](tests/png/printed_box.png)
### Vitamins
| Qty | Module call | BOM entry |
| ---:|:--- |:---|
| 4 | ```insert(F1BM)``` | Heatfit insert M2 |
| 4 | ```insert(F1BM3)``` | Heatfit insert M3 |
| 4 | ```screw(M2_cap_screw, 6)``` | Screw M2 cap x 6mm |
| 3 | ```screw(M3_pan_screw, 6)``` | Screw M3 pan x 6mm |
| 4 | ```screw(M3_pan_screw, 10)``` | Screw M3 pan x 10mm |
| 4 | ```washer(M2_washer)``` | Washer M2 x 5mm x 0.3mm |
| 7 | ```washer(M3_washer)``` | Washer M3 x 7mm x 0.5mm |
### Printed
| Qty | Filename |
| ---:|:--- |
| 1 | box1.stl |
| 1 | box1_base.stl |
| 7 | foot.stl |
| 1 | smooth_box.stl |
| 1 | smooth_box_base.stl |
### Assemblies
| Qty | Name |
| ---:|:--- |
| 1 | box1_assembly |
| 1 | box2_assembly |
<a href="#top">Top</a>
---
@@ -4503,7 +4585,7 @@ UK 13A socket and printed backbox with earth terminal for the panel it is mounte
<a name="Ssr_shroud"></a>
## Ssr_shroud
A cover to go over the mains end of an SSR to make it safe to be touched.
The stl and assembly must be given a name and parameterless wrappers for the stl and assembly added to the project.
The STL and assembly must be given a name and parameterless wrappers for the stl and assembly added to the project.
[printed/ssr_shroud.scad](printed/ssr_shroud.scad) Implementation.

View File

@@ -102,13 +102,6 @@ def make_parts(target, part_type, parts = None):
part = base_name + '.' + part_type
if part in targets:
#
# make a file to use the module
#
part_maker_name = part_type + ".scad"
with open(part_maker_name, "w") as f:
f.write("use <%s/%s>\n" % (dir, filename))
f.write("%s();\n" % module);
#
# Run openscad on the created file
#
part_file = target_dir + "/" + part
@@ -119,15 +112,21 @@ def make_parts(target, part_type, parts = None):
changed = "No bounds"
if changed:
print(changed)
#
# make a file to use the module
#
part_maker_name = part_type + ".scad"
with open(part_maker_name, "w") as f:
f.write("use <%s/%s>\n" % (dir, filename))
f.write("%s();\n" % module);
t = time.time()
openscad.run("-D$bom=1", "-d", dname, "-o", part_file, part_maker_name)
times.add_time(part, t)
if part_type == 'stl':
bounds = c14n_stl.canonicalise(part_file)
bounds_map[part] = bounds
os.remove(part_maker_name)
targets.remove(part)
os.remove(part_maker_name)
#
# Write new bounds file
#

View File

@@ -23,7 +23,7 @@ import json, os, deps
def check_options(dir = '.'):
global options, options_mtime
options = { "show_threads": str(os.getenv("SHOW_THREADS")) }
options = { "show_threads": str(os.getenv("NOPSCADLIB_SHOW_THREADS")) }
options_fname = dir + '/options.json'
try:
with open(options_fname) as json_file:

View File

@@ -59,7 +59,7 @@ def render(target, type):
if mtime(part_file) > mtime(png_name):
png_maker_name = "png.scad"
with open(png_maker_name, "w") as f:
f.write('color("lime") import("%s");\n' % part_file)
f.write('color([0, 146/255, 0]) import("%s");\n' % part_file)
cam = "--camera=0,0,0,70,0,315,500" if type == 'stl' else "--camera=0,0,0,0,0,0,500"
render = "--preview" if type == 'stl' else "--render"
tmp_name = 'tmp.png'

View File

@@ -151,13 +151,6 @@ def views(target, do_assemblies = None):
break
if not do_assemblies or module in do_assemblies:
#
# make a file to use the module
#
png_maker_name = 'png.scad'
with open(png_maker_name, "w") as f:
f.write("use <%s/%s>\n" % (dir, filename))
f.write("%s();\n" % module);
#
# Run openscad on the created file
#
dname = deps_name(deps_dir, filename)
@@ -171,16 +164,23 @@ def views(target, do_assemblies = None):
tmp_name = 'tmp.png'
if changed:
print(changed)
#
# make a file to use the module
#
png_maker_name = 'png.scad'
with open(png_maker_name, "w") as f:
f.write("use <%s/%s>\n" % (dir, filename))
f.write("%s();\n" % module);
t = time.time()
openscad.run_list(options.list() + ["-D$pose=1", "-D$explode=%d" % explode, colour_scheme, "--projection=p", "--imgsize=4096,4096", "--autocenter", "--viewall", "-d", dname, "-o", tmp_name, png_maker_name]);
times.add_time(png_name, t)
do_cmd(["magick", tmp_name, "-trim", "-resize", "1004x1004", "-bordercolor", background, "-border", "10", tmp_name])
update_image(tmp_name, png_name)
os.remove(png_maker_name)
tn_name = png_name.replace('.png', '_tn.png')
if mtime(png_name) > mtime(tn_name):
do_cmd(("magick "+ png_name + " -trim -resize 280x280 -background " + background + " -gravity Center -extent 280x280 -bordercolor " + background + " -border 10 " + tmp_name).split())
update_image(tmp_name, tn_name)
os.remove(png_maker_name)
done_assemblies.append(module)
else:
if module == 'main_assembly':

View File

@@ -16,7 +16,7 @@
// You should have received a copy of the GNU General Public License along with NopSCADlib.
// If not, see <https://www.gnu.org/licenses/>.
//
include <../core.scad>
include <../utils/core/core.scad>
use <../utils/annotation.scad>
module annotations() {

View File

@@ -16,10 +16,9 @@
// You should have received a copy of the GNU General Public License along with NopSCADlib.
// If not, see <https://www.gnu.org/licenses/>.
//
include <../core.scad>
include <../utils/core/core.scad>
use <../utils/layout.scad>
include <../vitamins/springs.scad>
include <../vitamins/batteries.scad>
module batteries()

View File

@@ -18,8 +18,6 @@
//
include <../core.scad>
include <../vitamins/belts.scad>
include <../vitamins/screws.scad>
include <../vitamins/pulleys.scad>
use <../vitamins/insert.scad>
use <../utils/layout.scad>

View File

@@ -16,7 +16,7 @@
// You should have received a copy of the GNU General Public License along with NopSCADlib.
// If not, see <https://www.gnu.org/licenses/>.
//
include <../core.scad>
include <../utils/core/core.scad>
use <../utils/bezier.scad>
use <../utils/sweep.scad>
use <../utils/annotation.scad>

View File

@@ -19,7 +19,6 @@
include <../core.scad>
use <../utils/layout.scad>
include <../vitamins/screws.scad>
include <../vitamins/blowers.scad>
module blowers()

View File

@@ -21,7 +21,6 @@
//! BOM and assembly demonstration
//
include <../core.scad>
include <../vitamins/screws.scad>
include <../vitamins/sheets.scad>
use <../vitamins/insert.scad>
$explode = 1; // Normally set on the command line when generating assembly views with views.py

View File

@@ -18,7 +18,6 @@
//
include <../core.scad>
include <../vitamins/screws.scad>
include <../vitamins/sheets.scad>
use <../vitamins/insert.scad>

View File

@@ -16,7 +16,7 @@
// You should have received a copy of the GNU General Public License along with NopSCADlib.
// If not, see <https://www.gnu.org/licenses/>.
//
include <../core.scad>
include <../utils/core/core.scad>
use <../utils/layout.scad>
include <../vitamins/bulldogs.scad>

View File

@@ -18,7 +18,6 @@
//
include <../core.scad>
include <../vitamins/screws.scad>
include <../vitamins/sheets.scad>
use <../vitamins/insert.scad>

View File

@@ -16,7 +16,7 @@
// You should have received a copy of the GNU General Public License along with NopSCADlib.
// If not, see <https://www.gnu.org/licenses/>.
//
include <../core.scad>
include <../utils/core/core.scad>
use <../utils/layout.scad>
include <../vitamins/buttons.scad>

View File

@@ -16,7 +16,7 @@
// You should have received a copy of the GNU General Public License along with NopSCADlib.
// If not, see <https://www.gnu.org/licenses/>.
//
include <../core.scad>
include <../utils/core/core.scad>
use <../printed/cable_grommets.scad>

View File

@@ -16,7 +16,7 @@
// You should have received a copy of the GNU General Public License along with NopSCADlib.
// If not, see <https://www.gnu.org/licenses/>.
//
include <../core.scad>
include <../utils/core/core.scad>
use <../vitamins/cable_strip.scad>

View File

@@ -16,7 +16,7 @@
// You should have received a copy of the GNU General Public License along with NopSCADlib.
// If not, see <https://www.gnu.org/licenses/>.
//
include <../core.scad>
include <../utils/core/core.scad>
use <../printed/carriers.scad>
module carriers()

View File

@@ -17,7 +17,7 @@
// If not, see <https://www.gnu.org/licenses/>.
//
include <../core.scad>
include <../utils/core/core.scad>
module clips() {
clip(xmin = 0, ymin = 0, zmin = 0, zmax = 40) sphere(50);

View File

@@ -19,7 +19,6 @@
include <../core.scad>
use <../utils/layout.scad>
include <../vitamins/screws.scad>
include <../vitamins/components.scad>
module resistors()

View File

@@ -19,8 +19,6 @@
include <../core.scad>
use <../printed/corner_block.scad>
include <../vitamins/screws.scad>
screws = [M2_cap_screw, M2p5_pan_screw, M3_dome_screw, M4_dome_screw];
module do_corner_block(screw)

View File

@@ -16,7 +16,7 @@
// You should have received a copy of the GNU General Public License along with NopSCADlib.
// If not, see <https://www.gnu.org/licenses/>.
//
include <../core.scad>
include <../utils/core/core.scad>
use <../utils/layout.scad>
include <../vitamins/d_connectors.scad>

View File

@@ -16,7 +16,7 @@
// You should have received a copy of the GNU General Public License along with NopSCADlib.
// If not, see <https://www.gnu.org/licenses/>.
//
include <../core.scad>
include <../utils/core/core.scad>
use <../printed/door_hinge.scad>
include <../vitamins/sheets.scad>

View File

@@ -16,7 +16,7 @@
// You should have received a copy of the GNU General Public License along with NopSCADlib.
// If not, see <https://www.gnu.org/licenses/>.
//
include <../core.scad>
include <../utils/core/core.scad>
use <../printed/door_latch.scad>
module door_latches()

View File

@@ -16,7 +16,7 @@
// You should have received a copy of the GNU General Public License along with NopSCADlib.
// If not, see <https://www.gnu.org/licenses/>.
//
include <../core.scad>
include <../utils/core/core.scad>
include <../vitamins/extrusion_brackets.scad>
include <../vitamins/extrusions.scad>

View File

@@ -16,7 +16,7 @@
// You should have received a copy of the GNU General Public License along with NopSCADlib.
// If not, see <https://www.gnu.org/licenses/>.
//
include <../core.scad>
include <../utils/core/core.scad>
use <../utils/layout.scad>
include <../vitamins/extrusions.scad>
@@ -27,4 +27,3 @@ module extrusions()
if ($preview)
extrusions();

View File

@@ -17,11 +17,11 @@
// If not, see <https://www.gnu.org/licenses/>.
//
include <../core.scad>
use <../utils/layout.scad>
include <../printed/fan_guard.scad>
include <../vitamins/fans.scad>
use <../utils/layout.scad>
module fan_guards()
layout([for(f = fans) fan_width(f)], 10)
color(pp1_colour) fan_guard(fans[$i], spokes = fan_width(fans[$i]) > 60 ? 8 : 4);

View File

@@ -17,11 +17,11 @@
// If not, see <https://www.gnu.org/licenses/>.
//
include <../core.scad>
use <../utils/layout.scad>
include <../vitamins/fans.scad>
include <../printed/fan_guard.scad>
include <../vitamins/fans.scad>
use <../utils/layout.scad>
module fans()
layout([for(f = fans) fan_width(f)], 10)

View File

@@ -20,8 +20,6 @@ include <../core.scad>
use <../printed/fixing_block.scad>
use <../utils/layout.scad>
include <../vitamins/screws.scad>
screws = [M2_cap_screw, M2p5_pan_screw, M3_dome_screw, M4_dome_screw];
module fixing_block_test(screw)

View File

@@ -17,7 +17,6 @@
// If not, see <https://www.gnu.org/licenses/>.
//
include <../core.scad>
include <../vitamins/screws.scad>
use <../utils/layout.scad>
use <../printed/flat_hinge.scad>

View File

@@ -16,7 +16,7 @@
// You should have received a copy of the GNU General Public License along with NopSCADlib.
// If not, see <https://www.gnu.org/licenses/>.
//
include <../core.scad>
include <../utils/core/core.scad>
use <../printed/foot.scad>
module feet()

View File

@@ -16,7 +16,7 @@
// You should have received a copy of the GNU General Public License along with NopSCADlib.
// If not, see <https://www.gnu.org/licenses/>.
//
include <../core.scad>
include <../utils/core/core.scad>
use <../vitamins/fuseholder.scad>

View File

@@ -17,7 +17,7 @@
// If not, see <https://www.gnu.org/licenses/>.
//
include <../core.scad>
include <../utils/core/core.scad>
module globals() {
linear_extrude(height = eps) {

View File

@@ -16,7 +16,7 @@
// You should have received a copy of the GNU General Public License along with NopSCADlib.
// If not, see <https://www.gnu.org/licenses/>.
//
include <../core.scad>
include <../utils/core/core.scad>
use <../printed/handle.scad>
module handle()

View File

@@ -16,7 +16,7 @@
// You should have received a copy of the GNU General Public License along with NopSCADlib.
// If not, see <https://www.gnu.org/licenses/>.
//
include <../core.scad>
include <../utils/core/core.scad>
use <../utils/layout.scad>
include <../vitamins/hot_ends.scad>

View File

@@ -17,10 +17,10 @@
// If not, see <https://www.gnu.org/licenses/>.
//
include <../core.scad>
use <../utils/layout.scad>
include <../vitamins/iecs.scad>
use <../utils/layout.scad>
module iecs()
layout([for(i = iecs) iec_flange_h(i)], 10)
rotate(90)

View File

@@ -16,7 +16,7 @@
// You should have received a copy of the GNU General Public License along with NopSCADlib.
// If not, see <https://www.gnu.org/licenses/>.
//
include <../core.scad>
include <../utils/core/core.scad>
use <../utils/layout.scad>
include <../vitamins/inserts.scad>

View File

@@ -16,7 +16,7 @@
// You should have received a copy of the GNU General Public License along with NopSCADlib.
// If not, see <https://www.gnu.org/licenses/>.
//
include <../core.scad>
include <../utils/core/core.scad>
use <../vitamins/jack.scad>

View File

@@ -17,10 +17,9 @@
// If not, see <https://www.gnu.org/licenses/>.
//
include <../core.scad>
use <../utils/layout.scad>
include <../vitamins/kp_pillow_blocks.scad>
include <../vitamins/nuts.scad>
use <../utils/layout.scad>
module kp_pillow_blocks() {
screws = [M4_cap_screw, M4_cap_screw, M5_cap_screw, M5_cap_screw];

View File

@@ -19,7 +19,6 @@
include <../core.scad>
use <../utils/layout.scad>
include <../vitamins/screws.scad>
include <../vitamins/leadnuts.scad>
module leadnuts()

View File

@@ -16,7 +16,7 @@
// You should have received a copy of the GNU General Public License along with NopSCADlib.
// If not, see <https://www.gnu.org/licenses/>.
//
include <../core.scad>
include <../utils/core/core.scad>
use <../utils/layout.scad>
include <../vitamins/leds.scad>

View File

@@ -16,7 +16,7 @@
// You should have received a copy of the GNU General Public License along with NopSCADlib.
// If not, see <https://www.gnu.org/licenses/>.
//
include <../core.scad>
include <../utils/core/core.scad>
use <../utils/layout.scad>
include <../vitamins/light_strips.scad>
@@ -29,7 +29,7 @@ module light_strips()
for(end = [-1, 1])
translate([end * (light_strip_cut_length(light, segs) / 2 - d / 2), 0])
rotate([90, 0, 90])
color("lime") render()
color(pp1_colour) render()
translate_z(-d / 2)
light_strip_clip(light);
}

View File

@@ -16,7 +16,7 @@
// You should have received a copy of the GNU General Public License along with NopSCADlib.
// If not, see <https://www.gnu.org/licenses/>.
//
include <../core.scad>
include <../utils/core/core.scad>
use <../utils/layout.scad>
include <../vitamins/linear_bearings.scad>

View File

@@ -16,7 +16,7 @@
// You should have received a copy of the GNU General Public License along with NopSCADlib.
// If not, see <https://www.gnu.org/licenses/>.
//
include <../core.scad>
include <../utils/core/core.scad>
use <../utils/layout.scad>
include <../vitamins/mains_sockets.scad>

View File

@@ -16,7 +16,7 @@
// You should have received a copy of the GNU General Public License along with NopSCADlib.
// If not, see <https://www.gnu.org/licenses/>.
//
include <../core.scad>
include <../utils/core/core.scad>
use <../utils/maths.scad>
use <../utils/annotation.scad>

View File

@@ -16,7 +16,7 @@
// You should have received a copy of the GNU General Public License along with NopSCADlib.
// If not, see <https://www.gnu.org/licenses/>.
//
include <../core.scad>
include <../utils/core/core.scad>
use <../vitamins/meter.scad>

View File

@@ -16,7 +16,7 @@
// You should have received a copy of the GNU General Public License along with NopSCADlib.
// If not, see <https://www.gnu.org/licenses/>.
//
include <../core.scad>
include <../utils/core/core.scad>
use <../utils/layout.scad>
include <../vitamins/microswitches.scad>

View File

@@ -17,10 +17,9 @@
// If not, see <https://www.gnu.org/licenses/>.
//
include <../core.scad>
include <../vitamins/modules.scad>
use <../utils/layout.scad>
include <../vitamins/screws.scad>
include <../vitamins/modules.scad>
module modules()
layout([for(m = modules) mod_length(m)], 5)

View File

@@ -19,8 +19,6 @@
include <../core.scad>
use <../utils/layout.scad>
include <../vitamins/screws.scad>
module nuts() {
layout([for(n = nuts) 2 * nut_radius(n)], 5) let(n = nuts[$i]) {
for(nyloc = [false, true])

View File

@@ -17,7 +17,7 @@
// If not, see <https://www.gnu.org/licenses/>.
//
include <../core.scad>
include <../utils/core/core.scad>
use <../utils/offset.scad>
module shape()

View File

@@ -16,7 +16,7 @@
// You should have received a copy of the GNU General Public License along with NopSCADlib.
// If not, see <https://www.gnu.org/licenses/>.
//
include <../core.scad>
include <../utils/core/core.scad>
use <../vitamins/opengrab.scad>

View File

@@ -17,11 +17,11 @@
// If not, see <https://www.gnu.org/licenses/>.
//
include <../core.scad>
use <../vitamins/pcb.scad>
include <../vitamins/microswitches.scad>
include <../vitamins/d_connectors.scad>
use <../vitamins/pcb.scad>
gt_5x17 = ["gt_5x17", 5, 10, 17, 5, 11, 0.4, 9, 2,1.5, 1, 3, 6, 0, 0, 0];
gt_5x11 = ["gt_5x11", 5, 8, 11, 5, 7, 0.4, 7, 1.5,1.5, 1,2.5, 6, 0, 0, 0];

View File

@@ -16,7 +16,7 @@
// You should have received a copy of the GNU General Public License along with NopSCADlib.
// If not, see <https://www.gnu.org/licenses/>.
//
include <../core.scad>
include <../utils/core/core.scad>
use <../printed/pcb_mount.scad>
PI_IO = ["PI_IO", "PI_IO V2", 35.56, 25.4, 1.6, 0, 0, 0, "green", true, [],

View File

@@ -17,11 +17,10 @@
// If not, see <https://www.gnu.org/licenses/>.
//
include <../core.scad>
use <../utils/layout.scad>
include <../vitamins/d_connectors.scad>
include <../vitamins/pcbs.scad>
use <../utils/layout.scad>
module pcbs()
layout([for(p = pcbs) pcb_width(p)], 10)
translate([0, pcb_length(pcbs[$i]) / 2])

View File

@@ -16,7 +16,7 @@
// You should have received a copy of the GNU General Public License along with NopSCADlib.
// If not, see <https://www.gnu.org/licenses/>.
//
include <../core.scad>
include <../utils/core/core.scad>
use <../utils/layout.scad>
include <../vitamins/pillars.scad>

View File

@@ -16,7 +16,7 @@
// You should have received a copy of the GNU General Public License along with NopSCADlib.
// If not, see <https://www.gnu.org/licenses/>.
//
include <../core.scad>
include <../utils/core/core.scad>
use <../utils/layout.scad>
include <../vitamins/pin_headers.scad>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 50 KiB

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 114 KiB

After

Width:  |  Height:  |  Size: 112 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 63 KiB

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 70 KiB

After

Width:  |  Height:  |  Size: 67 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 118 KiB

After

Width:  |  Height:  |  Size: 118 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 75 KiB

After

Width:  |  Height:  |  Size: 74 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 60 KiB

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 116 KiB

After

Width:  |  Height:  |  Size: 118 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 118 KiB

After

Width:  |  Height:  |  Size: 117 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 149 KiB

After

Width:  |  Height:  |  Size: 148 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 92 KiB

After

Width:  |  Height:  |  Size: 91 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 60 KiB

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 89 KiB

After

Width:  |  Height:  |  Size: 87 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 115 KiB

After

Width:  |  Height:  |  Size: 115 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 112 KiB

After

Width:  |  Height:  |  Size: 111 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 144 KiB

After

Width:  |  Height:  |  Size: 144 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 116 KiB

After

Width:  |  Height:  |  Size: 114 KiB

Some files were not shown because too many files have changed in this diff Show More