mirror of
https://github.com/DJSundog/NopSCADlib.git
synced 2024-11-27 09:10:02 -05:00
Added carbon fiber tubing with woven pattern.
This commit is contained in:
parent
eac0086199
commit
1810160103
@ -31,3 +31,41 @@ 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```
|
module tube(or, ir, h, center = true) //! Create a tube with specified external and internal radii and height ```h```
|
||||||
linear_extrude(h, center = center, convexity = 5)
|
linear_extrude(h, center = center, convexity = 5)
|
||||||
ring(or, ir);
|
ring(or, ir);
|
||||||
|
|
||||||
|
module woven_tube(or, ir, h, center= true, colour = grey(30), colour2, warp = 2, weft) {//! Create a woven tube with specified external and internal radii, height ```h```, colours, warp and weft
|
||||||
|
colour2 = colour2 ? colour2 : colour * 0.8;
|
||||||
|
weft = weft ? weft : warp;
|
||||||
|
warp_count = max(floor(PI * or / warp), 0.5);
|
||||||
|
angle = 360 / (2 * warp_count);
|
||||||
|
|
||||||
|
module layer(weft) {
|
||||||
|
points = [[ir, weft / 2], [or, weft / 2], [or, -weft / 2], [ir, -weft / 2]];
|
||||||
|
color(colour)
|
||||||
|
for (i = [0 : warp_count])
|
||||||
|
rotate(2 * i * angle)
|
||||||
|
rotate_extrude(angle = angle)
|
||||||
|
polygon(points);
|
||||||
|
color(colour2)
|
||||||
|
for (i = [0 : warp_count])
|
||||||
|
rotate((2 * i + 1) * angle)
|
||||||
|
rotate_extrude(angle = angle)
|
||||||
|
polygon(points);
|
||||||
|
}
|
||||||
|
|
||||||
|
translate_z(center ? -h / 2 : 0) {
|
||||||
|
weft_count = floor(h / weft);
|
||||||
|
if (weft_count > 0)
|
||||||
|
for (i = [0 : weft_count - 1]) {
|
||||||
|
translate_z(i * weft + weft / 2)
|
||||||
|
rotate(i * angle)
|
||||||
|
layer(weft);
|
||||||
|
}
|
||||||
|
remainder = h - weft * weft_count;
|
||||||
|
if (remainder) {
|
||||||
|
translate_z(weft_count * weft + remainder / 2)
|
||||||
|
rotate(weft_count * angle)
|
||||||
|
layer(remainder);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@ -21,6 +21,7 @@
|
|||||||
//! Tubing and sleeving. The internal diameter can be forced to stretch it over something.
|
//! Tubing and sleeving. The internal diameter can be forced to stretch it over something.
|
||||||
//
|
//
|
||||||
include <../utils/core/core.scad>
|
include <../utils/core/core.scad>
|
||||||
|
include <../utils/tube.scad>
|
||||||
|
|
||||||
function tubing_material(type) = type[1]; //! Material description
|
function tubing_material(type) = type[1]; //! Material description
|
||||||
function tubing_od(type) = type[2]; //! Outside diameter
|
function tubing_od(type) = type[2]; //! Outside diameter
|
||||||
@ -38,6 +39,10 @@ module tubing(type, length = 15, forced_id = 0, center = true) { //! Draw specif
|
|||||||
vitamin(str("tubing(", type[0], arg(length, 15), "): ", tubing_material(type), " ID ", original_id, "mm x ",length, "mm"));
|
vitamin(str("tubing(", type[0], arg(length, 15), "): ", tubing_material(type), " ID ", original_id, "mm x ",length, "mm"));
|
||||||
else
|
else
|
||||||
vitamin(str("tubing(", type[0], arg(length, 15), "): ", tubing_material(type), " OD ", original_od, "mm ID ", original_id,"mm x ",length, "mm"));
|
vitamin(str("tubing(", type[0], arg(length, 15), "): ", tubing_material(type), " OD ", original_od, "mm ID ", original_id,"mm x ",length, "mm"));
|
||||||
|
|
||||||
|
if(tubing_material(type) == "Carbon fiber")
|
||||||
|
woven_tube(od / 2, id /2, length, colour = tubing_colour(type));
|
||||||
|
else
|
||||||
color(tubing_colour(type))
|
color(tubing_colour(type))
|
||||||
linear_extrude(length, center = center, convexity = 4)
|
linear_extrude(length, center = center, convexity = 4)
|
||||||
difference() {
|
difference() {
|
||||||
@ -45,3 +50,4 @@ module tubing(type, length = 15, forced_id = 0, center = true) { //! Draw specif
|
|||||||
circle(d = id);
|
circle(d = id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
|
|
||||||
//
|
//
|
||||||
// Tubing and sleeving
|
// Tubing and sleeving
|
||||||
//
|
// Description OD ID Colour
|
||||||
PVC64 = ["PVC64", "PVC aquarium tubing", 6, 4, [0.8, 0.8, 0.8, 0.75 ]];
|
PVC64 = ["PVC64", "PVC aquarium tubing", 6, 4, [0.8, 0.8, 0.8, 0.75 ]];
|
||||||
PVC85 = ["PVC85", "PVC aquarium tubing", 8, 5, [0.8, 0.8, 0.8, 0.75 ]];
|
PVC85 = ["PVC85", "PVC aquarium tubing", 8, 5, [0.8, 0.8, 0.8, 0.75 ]];
|
||||||
NEOP85 = ["NEOP85", "Neoprene tubing", 8, 5, [0.2,0.2,0.2]];
|
NEOP85 = ["NEOP85", "Neoprene tubing", 8, 5, [0.2,0.2,0.2]];
|
||||||
@ -34,7 +34,8 @@ HSHRNK24 = ["HSHRNK24", "Heatshrink sleeving", 2.8, 2.4, "grey"];
|
|||||||
HSHRNK32 = ["HSHRNK32", "Heatshrink sleeving", 3.6, 3.2, "grey"];
|
HSHRNK32 = ["HSHRNK32", "Heatshrink sleeving", 3.6, 3.2, "grey"];
|
||||||
HSHRNK64 = ["HSHRNK64", "Heatshrink sleeving", 6.8, 6.4, "grey"];
|
HSHRNK64 = ["HSHRNK64", "Heatshrink sleeving", 6.8, 6.4, "grey"];
|
||||||
HSHRNK100 = ["HSHRNK100", "Heatshrink sleeving",10.4, 10.0, [0.2,0.2,0.2]];
|
HSHRNK100 = ["HSHRNK100", "Heatshrink sleeving",10.4, 10.0, [0.2,0.2,0.2]];
|
||||||
|
CARBONFIBER10 = ["CBNFIB10", "Carbon fiber", 10.0, 8.0, [0.3,0.3,0.3]];
|
||||||
|
|
||||||
tubings = [PVC64, PVC85, NEOP85, PTFE07, PTFE20, PF7, PTFE2_3, PTFE2_4, PTFE4_6, HSHRNK16, HSHRNK24, HSHRNK64, HSHRNK100];
|
tubings = [PVC64, PVC85, NEOP85, PTFE07, PTFE20, PF7, PTFE2_3, PTFE2_4, PTFE4_6, HSHRNK16, HSHRNK24, HSHRNK64, HSHRNK100, CARBONFIBER10];
|
||||||
|
|
||||||
use <tubing.scad>
|
use <tubing.scad>
|
||||||
|
Loading…
Reference in New Issue
Block a user