1
0
mirror of https://github.com/nophead/NopSCADlib.git synced 2025-09-18 11:11:31 +02:00

Compare commits

..

10 Commits

Author SHA1 Message Date
Chris Palmer
99a5570e24 Fixed ziptie bug for small wires and corners made sharper. 2022-03-17 20:48:43 +00:00
Chris Palmer
b70911dc13 Image odd pixel changes due to move to summer computer. 2022-03-17 20:37:16 +00:00
Chris Palmer
2d20fb130a Removed dead code in spiral_paths(). 2022-03-01 08:12:30 +00:00
Chris Palmer
738c7914e2 Updated chnagelog. 2022-02-25 10:41:11 +00:00
Chris Palmer
7596bcacf4 Merge branch 'martinbudden-typos' 2022-02-25 10:38:21 +00:00
Chris Palmer
943deededf Updated the readme. 2022-02-25 10:37:33 +00:00
Chris Palmer
c8f16f4cdb Merge branch 'typos' of https://github.com/martinbudden/NopSCADlib into martinbudden-typos 2022-02-25 10:27:55 +00:00
Chris Palmer
a30aff9613 Fixed missing brackets for sheets with chamfered corners. 2022-02-25 10:27:23 +00:00
Martin Budden
c0d9067b74 Fixed typos. 2022-02-24 09:13:25 +00:00
Chris Palmer
7e8f03df2e Updated changelog. 2022-02-23 23:54:42 +00:00
19 changed files with 40 additions and 21 deletions

View File

@@ -3,6 +3,16 @@
This changelog is generated by `changelog.py` using manually added semantic version tags to classify commits as breaking changes, additions or fixes.
#### [v20.1.1](https://github.com/nophead/NopSCADlib/releases/tag/v20.1.1 "show release") Fixes [...](https://github.com/nophead/NopSCADlib/compare/v20.1.0...v20.1.1 "diff with v20.1.0")
* 2022-02-25 [`943deed`](https://github.com/nophead/NopSCADlib/commit/943deededfe2b258f23ca64001ae7c010ed626bc "show commit") [C.P.](# "Chris Palmer") Updated the readme.
* 2022-02-24 [`c0d9067`](https://github.com/nophead/NopSCADlib/commit/c0d9067b740fc5ea4a41e696c88613a284685118 "show commit") [M.B.](# "Martin Budden") Fixed typos.
* 2022-02-25 [`a30aff9`](https://github.com/nophead/NopSCADlib/commit/a30aff9613f51092bbad7052bfe1194a61557efc "show commit") [C.P.](# "Chris Palmer") Fixed missing brackets for sheets with chamfered corners.
### [v20.1.0](https://github.com/nophead/NopSCADlib/releases/tag/v20.1.0 "show release") Additions [...](https://github.com/nophead/NopSCADlib/compare/v20.0.1...v20.1.0 "diff with v20.0.1")
* 2022-02-23 [`f173284`](https://github.com/nophead/NopSCADlib/commit/f173284709acdbd32de21f0d27cb3ab10b42eb2a "show commit") [C.P.](# "Chris Palmer") Can now inhibit exploded lines for issue [#220](https://github.com/nophead/NopSCADlib/issues/220 "show issue").
#### [v20.0.1](https://github.com/nophead/NopSCADlib/releases/tag/v20.0.1 "show release") Fixes [...](https://github.com/nophead/NopSCADlib/compare/v20.0.0...v20.0.1 "diff with v20.0.0")
* 2022-02-23 [`0206b2e`](https://github.com/nophead/NopSCADlib/commit/0206b2e868119b3b5fdea6111839bf5055eae438 "show commit") [C.P.](# "Chris Palmer") Updated images.

View File

@@ -31,7 +31,7 @@
//! Star washers can be omitted by setting `star_washers` to false.
//!
//! A 2screw_block is a thinner version with two screws and two mating surfaces. It can be used as an alternative to fixing blocks when
//! high lateral rigity is not required.
//! high lateral rigidity is not required.
//
include <../core.scad>
use <../vitamins/insert.scad>

View File

@@ -20,7 +20,7 @@
//
//! Parametric knobs for potentiometers and encoders.
//!
//! A knob can be constructed by specififying all the parameters or the potentiometer can be specified to customise it for its shaft with a recess to clear the nut, washer and thread.
//! A knob can be constructed by specifying all the parameters or the potentiometer can be specified to customise it for its shaft with a recess to clear the nut, washer and thread.
//! An optional skirt and / or a pointer can be specified.
//!
//! The STL includes a support membrane that needs to be cut out and a thread needs to be tapped for the grub screw.

View File

@@ -20,7 +20,7 @@
//
//! Clamp for ribbon cable and polypropylene strip or one or more ribbon cables.
//!
//! * When `ways` is a scalar number the slot is sized for one rubbon cable and a PP strip.
//! * When `ways` is a scalar number the slot is sized for one ribbon cable and a PP strip.
//! * When `ways` is a two element vector the second element indicates the number of cables and the slot is size for just the cables.
//
include <../core.scad>

View File

@@ -4890,7 +4890,7 @@ This allows the block and one set of fasteners to be on one assembly and the oth
Star washers can be omitted by setting `star_washers` to false.
A 2screw_block is a thinner version with two screws and two mating surfaces. It can be used as an alternative to fixing blocks when
high lateral rigity is not required.
high lateral rigidity is not required.
[printed/corner_block.scad](printed/corner_block.scad) Implementation.
@@ -5449,7 +5449,7 @@ Printed handle that can be printed without needing support material due to its t
## Knob
Parametric knobs for potentiometers and encoders.
A knob can be constructed by specififying all the parameters or the potentiometer can be specified to customise it for its shaft with a recess to clear the nut, washer and thread.
A knob can be constructed by specifying all the parameters or the potentiometer can be specified to customise it for its shaft with a recess to clear the nut, washer and thread.
An optional skirt and / or a pointer can be specified.
The STL includes a support membrane that needs to be cut out and a thread needs to be tapped for the grub screw.
@@ -5847,7 +5847,7 @@ The stl and assembly must be given a name and parameterless wrappers for the stl
## Ribbon_clamp
Clamp for ribbon cable and polypropylene strip or one or more ribbon cables.
* When `ways` is a scalar number the slot is sized for one rubbon cable and a PP strip.
* When `ways` is a scalar number the slot is sized for one ribbon cable and a PP strip.
* When `ways` is a two element vector the second element indicates the number of cables and the slot is size for just the cables.
[printed/ribbon_clamp.scad](printed/ribbon_clamp.scad) Implementation.
@@ -6807,7 +6807,7 @@ The `pose()` module allows assembly views in the readme to be posed differently
| Qty | Module call | BOM entry |
| ---:|:--- |:---|
| 1 | `insert(F1BM3)` | Heatfit insert M3 |
| 1 | `widget(3)` | Rivit like thing for 3mm sheets |
| 1 | `widget(3)` | Rivet like thing for 3mm sheets |
| 1 | `screw(M3_cap_screw, 8)` | Screw M3 cap x 8mm |
| 1 | `sheet(PMMA3, 20, 20, 1)` | Sheet acrylic 20mm x 20mm x 3mm |
| 1 | `washer(M3_washer)` | Washer M3 x 7mm x 0.5mm |

View File

@@ -422,7 +422,7 @@ def views(target, do_assemblies = None):
times.add_time(html_name, t)
times.print_times(pngs + [html_name])
#
# Make the printme.html by replacing empty spans that invisbly mark the page breaks by page break divs.
# Make the printme.html by replacing empty spans that invisibly mark the page breaks by page break divs.
#
with open(html_name, 'rt') as src:
lines = src.readlines()

View File

@@ -32,7 +32,7 @@ height = 10;
insert = screw_insert(screw);
module widget(thickness) {
vitamin(str("widget(", thickness, "): Rivit like thing for ", thickness, "mm sheets"));
vitamin(str("widget(", thickness, "): Rivet like thing for ", thickness, "mm sheets"));
t = 1;
color("silver") {
cylinder(d = 3, h = thickness + 2 * eps, center = true);
@@ -85,7 +85,7 @@ assembly("widget_top") {
module widget_assembly()
assembly("widget") {
widget_base_assembly(); // Note this is not exloded because it is sub-assembly
widget_base_assembly(); // Note this is not exploded because it is sub-assembly
translate_z(height) {
translate_z(sheet_thickness(sheet))

Binary file not shown.

Before

Width:  |  Height:  |  Size: 85 KiB

After

Width:  |  Height:  |  Size: 85 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 133 KiB

After

Width:  |  Height:  |  Size: 133 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 119 KiB

After

Width:  |  Height:  |  Size: 119 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 102 KiB

After

Width:  |  Height:  |  Size: 103 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 44 KiB

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 181 KiB

After

Width:  |  Height:  |  Size: 181 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 49 KiB

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

After

Width:  |  Height:  |  Size: 36 KiB

View File

@@ -16,14 +16,23 @@
// You should have received a copy of the GNU General Public License along with NopSCADlib.
// If not, see <https://www.gnu.org/licenses/>.
//
wire_r = 5; // [1 : 20]
t = 0; // [0 : 3]
include <../utils/core/core.scad>
use <../utils/layout.scad>
include <../vitamins/zipties.scad>
module zipties()
layout([for(z = zipties) 9], 10)
ziptie(zipties[$i], 5);
layout([for(z = zipties) 9], 2 * wire_r) {
ziptie(zipties[$i], wire_r, t);
if(t)
color(grey(20))
cylinder(r = wire_r, h = 10, center = true);
}
if($preview)
zipties();

View File

@@ -241,8 +241,7 @@ function segmented_path(path, min_segment) = [ //! Add points to a path to enfo
function spiral_paths(path, n, r, twists, start_angle) = let( //! Create a new paths which sprial around the given path. Use for making twisted cables
segment = twists ? path_length(path) / twists / r2sides(2 * r) : inf,
transforms = sweep_transforms(segmented_path(path, segment), twist = 360 * twists),
initial = [r, 0, 0, 1] * rotate(start_angle)
transforms = sweep_transforms(segmented_path(path, segment), twist = 360 * twists)
) [for(i = [0 : n - 1]) let(initial = [r, 0, 0, 1] * rotate(start_angle + i * 360 / n)) [for(t = transforms) initial * t]];
function rounded_path_vertices(path) = [path[0], for(i = [1 : 2 : len(path) - 1]) path[i]]; //! Show the unrounded version of a rounded_path for debug

View File

@@ -52,7 +52,7 @@ module corner(r) {
if(r < 0)
translate([-r, r])
rotate(45)
square(-r * sqrt(2), -r * sqrt(2), center = true);
square([-r * sqrt(2), -r * sqrt(2)], center = true);
else
translate([0.5, -0.5])
square(1, center = true);

View File

@@ -33,17 +33,16 @@ function ziptie_tail(type) = type[5]; //! The length without teeth
module ziptie(type, r = 5, t = 0) //! Draw specified ziptie wrapped around radius `r` and optionally through panel thickness `t`
{
latch = ziptie_latch(type);
lx = latch.x / 2;
zt = ziptie_thickness(type);
cr = zt; // sharp corner radius
lx = min(latch.x / 2, r + zt / 2);
right_bulge = (r > lx - zt / 2) || !t;
cr = zt / 2; // sharp corner radius
z = r + t - cr;
x = r - cr;
inside_corners = t ? [ [0, 0, r], [-x, z, cr], [x, z, cr] ] : [];
outside_corners = t ? [ [0, 0, r + zt], [-x, z, cr + zt], [x, z, cr + zt] ] : [];
x1 = lx - zt / 2;
x2 = x1 + x1 * zt / r;
inside_path = concat([ [0, 0, r], [x1, -r, eps] ], inside_corners);
outside_path = concat([ [0, 0, r + zt], [x2, -r - zt, eps] ], outside_corners);
outside_path = concat([ if(right_bulge) [0, 0, r + zt], [x2, -r - zt, eps] ], outside_corners);
tangents = rounded_polygon_tangents(outside_path);
length = ceil(rounded_polygon_length(outside_path, tangents) + ziptie_tail(type) + latch.z + 1);
@@ -56,7 +55,9 @@ module ziptie(type, r = 5, t = 0) //! Draw specified ziptie wrapped around radiu
linear_extrude(width, center = true)
difference() {
rounded_polygon(outside_path, tangents);
rounded_polygon(inside_path);
offset(-zt)
rounded_polygon(outside_path, tangents);
}
translate([lx, -r])