1
0
mirror of https://github.com/nophead/NopSCADlib.git synced 2025-09-05 05:01:44 +02:00

Compare commits

...

5 Commits

Author SHA1 Message Date
Chris Palmer
1dbfafd366 Merge branch 'martinbudden-conditional_flip' 2020-11-20 12:13:44 +00:00
Chris Palmer
68b3dfb098 Updated readme. 2020-11-20 12:13:26 +00:00
Martin Budden
25dceee20a Made hflip and vflip conditional. 2020-11-20 08:46:17 +00:00
Chris Palmer
d70ddf5359 Type in drag chain blurb, fixes #100 2020-11-19 19:41:59 +00:00
Chris Palmer
70b60522ce Added drag_chain to the cover picture. 2020-11-18 16:25:45 +00:00
7 changed files with 12 additions and 7 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 841 KiB

After

Width:  |  Height:  |  Size: 848 KiB

View File

@@ -52,6 +52,7 @@ use <tests/circlips.scad>
use <tests/components.scad>
use <tests/d_connectors.scad>
use <tests/displays.scad>
use <tests/drag_chain.scad>
use <tests/extrusions.scad>
use <tests/extrusion_brackets.scad>
use <tests/fans.scad>
@@ -417,8 +418,12 @@ translate([x4 + 200, belts_y + 58]) {
translate([0, 60])
opengrab_test();
}
translate([x4 + 175, belts_y, -20])
drag_chains();
translate([x4, rails_y + 130])
rails();

View File

@@ -22,7 +22,7 @@
//!
//! Each link has a maximum bend angle of 45&deg;, so the mininium radius is proportional to the link length.
//!
//! The travel prpoery is how far it can move in each direction, i.e. half the maximum travel if the chain is mounted in the middle of the travel.
//! The travel property is how far it can move in each direction, i.e. half the maximum travel if the chain is mounted in the middle of the travel.
//
include <../core.scad>

View File

@@ -4558,7 +4558,7 @@ Parametric cable drag chain to limit the bend radius of a cable run.
Each link has a maximum bend angle of 45&deg;, so the mininium radius is proportional to the link length.
The travel prpoery is how far it can move in each direction, i.e. half the maximum travel if the chain is mounted in the middle of the travel.
The travel property is how far it can move in each direction, i.e. half the maximum travel if the chain is mounted in the middle of the travel.
[printed/drag_chain.scad](printed/drag_chain.scad) Implementation.
@@ -6057,11 +6057,11 @@ Global constants, functions and modules. This file is used directly or indirectl
| ```circle4n(r, d = undef)``` | Circle with multiple of 4 vertices |
| ```ellipse(xr, yr)``` | Draw an ellipse |
| ```extrude_if(h, center = true)``` | Extrudes 2D object to 3D when ```h``` is nonzero, otherwise leaves it 2D |
| ```hflip()``` | Invert children by doing a 180&deg; flip around the Y axis |
| ```hflip(flip=true)``` | Invert children by doing a 180&deg; flip around the Y axis |
| ```right_triangle(width, height, h, center = true)``` | A right angled triangle with the 90&deg; corner at the origin. 3D when ```h``` is nonzero, otherwise 2D |
| ```semi_circle(r, d = undef)``` | A semi circle in the positive Y domain |
| ```translate_z(z)``` | Shortcut for Z only translations |
| ```vflip()``` | Invert children by doing a 180&deg; flip around the X axis |
| ```vflip(flip=true)``` | Invert children by doing a 180&deg; flip around the X axis |
![global](tests/png/global.png)

View File

@@ -39,7 +39,7 @@ module belt_test() {
screw = find_screw(hs_cs_cap, pulley_bore(pulley));
insert = screw_insert(screw);
rotate([0, flip ? 180 : 0, 0]) {
hflip(flip) {
pulley_assembly(pulley);
translate_z(pulley_height(pulley) + pulley_offset(pulley) + screw_head_depth(screw, pulley_bore(pulley)))
screw(screw, 20);

Binary file not shown.

Before

Width:  |  Height:  |  Size: 104 KiB

After

Width:  |  Height:  |  Size: 106 KiB

View File

@@ -39,8 +39,8 @@ function r2sides4n(r) = floor((r2sides(r) + 3) / 4) * 4;
function limit(x, min, max) = max(min(x, max), min); //! Force x in range min <= x <= max
module translate_z(z) translate([0, 0, z]) children(); //! Shortcut for Z only translations
module vflip() rotate([180, 0, 0]) children(); //! Invert children by doing a 180&deg; flip around the X axis
module hflip() rotate([0, 180, 0]) children(); //! Invert children by doing a 180&deg; flip around the Y axis
module vflip(flip=true) rotate([flip ? 180 : 0, 0, 0]) children(); //! Invert children by doing a 180&deg; flip around the X axis
module hflip(flip=true) rotate([0, flip ? 180: 0, 0]) children(); //! Invert children by doing a 180&deg; flip around the Y axis
module ellipse(xr, yr) scale([1, yr / xr]) circle4n(xr); //! Draw an ellipse
function slice_str(str, start, end, s ="") = start >= end ? s : slice_str(str, start + 1, end, str(s, str[start])); // Helper for slice()