mirror of
https://github.com/JustinSDK/dotSCAD.git
synced 2025-08-14 10:44:48 +02:00
refactor/format
This commit is contained in:
@@ -48,7 +48,7 @@ module L_puzzle(level, thickness, thickness_step = true, p = 1.272) {
|
|||||||
mirror([1, 0, 0])
|
mirror([1, 0, 0])
|
||||||
rotate(-90)
|
rotate(-90)
|
||||||
color(rands(0, 1, 3))
|
color(rands(0, 1, 3))
|
||||||
L_piece(1, thickness_step ? thickness * 2 : thickness);
|
L_piece(1, thickness_step ? thickness * 2 : thickness);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -77,13 +77,13 @@ module L_puzzle(level, thickness, thickness_step = true, p = 1.272) {
|
|||||||
translate([0, offset1])
|
translate([0, offset1])
|
||||||
rotate(-90) {
|
rotate(-90) {
|
||||||
scale([1, 1, thickness_step ? 1 + level * 0.05 : 1])
|
scale([1, 1, thickness_step ? 1 + level * 0.05 : 1])
|
||||||
_L_puzzle(level - 1);
|
_L_puzzle(level - 1);
|
||||||
|
|
||||||
translate([offset1, offset2])
|
translate([offset1, offset2])
|
||||||
mirror([1, 0, 0])
|
mirror([1, 0, 0])
|
||||||
rotate(-90)
|
rotate(-90)
|
||||||
scale([1, 1, thickness_step ? 1 + (level - 1) * 0.05 : 1])
|
scale([1, 1, thickness_step ? 1 + (level - 1) * 0.05 : 1])
|
||||||
_L_puzzle(level - 2);
|
_L_puzzle(level - 2);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -17,7 +17,6 @@ module bauer_text_sphere(radius, font_name, font_size, txt_extrude, txt_scale, b
|
|||||||
pts = bauer_spiral(n, radius);
|
pts = bauer_spiral(n, radius);
|
||||||
|
|
||||||
if(ball) {
|
if(ball) {
|
||||||
render()
|
|
||||||
sphere(radius * 0.9);
|
sphere(radius * 0.9);
|
||||||
}
|
}
|
||||||
/*
|
/*
|
||||||
@@ -25,10 +24,10 @@ module bauer_text_sphere(radius, font_name, font_size, txt_extrude, txt_scale, b
|
|||||||
Bauer R. Distribution of points on a sphere with application to star catalogs. Journal of Guidance, Control, and Dynamics. 2000;23(1):130–137
|
Bauer R. Distribution of points on a sphere with application to star catalogs. Journal of Guidance, Control, and Dynamics. 2000;23(1):130–137
|
||||||
*/
|
*/
|
||||||
for(i = [0:n - 1]) {
|
for(i = [0:n - 1]) {
|
||||||
x = pts[i][0];
|
x = pts[i].x;
|
||||||
y = pts[i][1];
|
y = pts[i].y;
|
||||||
z = pts[i][2];
|
z = pts[i].z;
|
||||||
ya = atan2(z, sqrt(x * x + y * y));
|
ya = atan2(z, norm([x, y]));
|
||||||
za = atan2(y, x);
|
za = atan2(y, x);
|
||||||
|
|
||||||
render()
|
render()
|
||||||
|
@@ -10,7 +10,7 @@ module heart(radius, center = false) {
|
|||||||
|
|
||||||
module heart_sub_component() {
|
module heart_sub_component() {
|
||||||
translate([-radius * cos(rotated_angle), 0, 0])
|
translate([-radius * cos(rotated_angle), 0, 0])
|
||||||
rotate(-rotated_angle) union() {
|
rotate(-rotated_angle) {
|
||||||
circle(radius);
|
circle(radius);
|
||||||
translate([0, -radius, 0])
|
translate([0, -radius, 0])
|
||||||
square(diameter);
|
square(diameter);
|
||||||
|
@@ -17,8 +17,8 @@ module joint_Y(leng, width, height, ring_offset, thickness) {
|
|||||||
linear_extrude(height, center = true)
|
linear_extrude(height, center = true)
|
||||||
difference() {
|
difference() {
|
||||||
hollow_out(thickness)
|
hollow_out(thickness)
|
||||||
offset(delta = thickness, chamfer = true)
|
offset(delta = thickness, chamfer = true)
|
||||||
square([inner_leng, inner_width], center = true);
|
square([inner_leng, inner_width], center = true);
|
||||||
|
|
||||||
translate([-half_thickness - inner_leng / 2, 0, 0])
|
translate([-half_thickness - inner_leng / 2, 0, 0])
|
||||||
square([thickness, inner_width], center = true);
|
square([thickness, inner_width], center = true);
|
||||||
|
@@ -20,21 +20,19 @@ module nautilus_shell(chambered_section_max_angle, steps, thickness) {
|
|||||||
];
|
];
|
||||||
|
|
||||||
half_thickness = thickness / 2;
|
half_thickness = thickness / 2;
|
||||||
render() {
|
|
||||||
polyline_join(spiral)
|
|
||||||
circle(half_thickness);
|
|
||||||
|
|
||||||
for(a = [a_step:a_step * 2:chambered_section_max_angle]) {
|
polyline_join(spiral)
|
||||||
a2 = a + 360;
|
circle(half_thickness);
|
||||||
a3 = a + 420;
|
|
||||||
p1 = ptf_rotate([r(a), 0], a);
|
|
||||||
p2 = ptf_rotate((p1 + ptf_rotate([r(a2), 0], a2)) * .6, -5);
|
|
||||||
p3 = ptf_rotate([r(a3), 0], a3);
|
|
||||||
|
|
||||||
polyline_join(bezier_curve(0.1, [p1, p2, p3]))
|
|
||||||
circle(half_thickness);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
for(a = [a_step:a_step * 2:chambered_section_max_angle]) {
|
||||||
|
a2 = a + 360;
|
||||||
|
a3 = a + 420;
|
||||||
|
p1 = ptf_rotate([r(a), 0], a);
|
||||||
|
p2 = ptf_rotate((p1 + ptf_rotate([r(a2), 0], a2)) * .6, -5);
|
||||||
|
p3 = ptf_rotate([r(a3), 0], a3);
|
||||||
|
|
||||||
|
polyline_join(bezier_curve(0.1, [p1, p2, p3]))
|
||||||
|
circle(half_thickness);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -58,14 +58,8 @@ module seashell() {
|
|||||||
);
|
);
|
||||||
|
|
||||||
points = [
|
points = [
|
||||||
for(s = [s_s:s_step:s_e])
|
for(s = [s_s:s_step:s_e], theta = [theta_s:theta_step:theta_e])
|
||||||
for(theta = [theta_s:theta_step:theta_e])
|
[x(theta, s), y(theta, s), z(theta, s)]
|
||||||
let(
|
|
||||||
x = x(theta, s),
|
|
||||||
y = y(theta, s),
|
|
||||||
z = z(theta, s)
|
|
||||||
)
|
|
||||||
[x, y, z]
|
|
||||||
];
|
];
|
||||||
|
|
||||||
slen = floor((s_e - s_s) / s_step);
|
slen = floor((s_e - s_s) / s_step);
|
||||||
@@ -73,15 +67,12 @@ module seashell() {
|
|||||||
|
|
||||||
c = thetalen + 1;
|
c = thetalen + 1;
|
||||||
triangles = [
|
triangles = [
|
||||||
for(s = [0:slen - 1])
|
for(s = [0:slen - 1], theta = [0:thetalen - 1])
|
||||||
for(theta = [0:thetalen - 1])
|
each [
|
||||||
each [
|
[theta + s * c, theta + 1 + s * c, theta + (s + 1) * c],
|
||||||
[theta + s * c, theta + 1 + s * c, theta + (s + 1) * c],
|
[theta + 1 + s * c, theta + 1 + (s + 1) * c, theta + (s + 1) * c]
|
||||||
[theta + 1 + s * c, theta + 1 + (s + 1) * c, theta + (s + 1) * c]
|
]
|
||||||
]
|
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
sf_thickenT(points, thickness, triangles);
|
sf_thickenT(points, thickness, triangles);
|
||||||
}
|
}
|
||||||
|
@@ -39,8 +39,7 @@ module spiral_city(num_of_buildings, seed_value) {
|
|||||||
ra_arc = atan2(mid_pt[1], mid_pt[0]) - (i > leng_pts - 4 ? arc_a / 4.5 : arc_a / 5);
|
ra_arc = atan2(mid_pt[1], mid_pt[0]) - (i > leng_pts - 4 ? arc_a / 4.5 : arc_a / 5);
|
||||||
|
|
||||||
translate(mid_pt)
|
translate(mid_pt)
|
||||||
rotate(ra_arc)
|
rotate(ra_arc) {
|
||||||
union() {
|
|
||||||
difference() {
|
difference() {
|
||||||
union() {
|
union() {
|
||||||
linear_extrude(building_h)
|
linear_extrude(building_h)
|
||||||
@@ -55,7 +54,6 @@ module spiral_city(num_of_buildings, seed_value) {
|
|||||||
cubes(i, arm_distance, building_h, w_size, arc_a, arc_r, seed_value);
|
cubes(i, arm_distance, building_h, w_size, arc_a, arc_r, seed_value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
roof(i, arm_distance, building_h, roof_h, arc_a, arc_r);
|
roof(i, arm_distance, building_h, roof_h, arc_a, arc_r);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -66,42 +64,41 @@ module spiral_city(num_of_buildings, seed_value) {
|
|||||||
half_a = arc_a / 2;
|
half_a = arc_a / 2;
|
||||||
is_even = i % 2 == 0;
|
is_even = i % 2 == 0;
|
||||||
arc_w = arm_distance / (is_even ? 2.5 : 1.7);
|
arc_w = arm_distance / (is_even ? 2.5 : 1.7);
|
||||||
union() {
|
|
||||||
rs = is_undef(seed_value) ?
|
rs = is_undef(seed_value) ?
|
||||||
rands(-1, 1, 4) :
|
rands(-1, 1, 4) :
|
||||||
rands(-1, 1, 4, seed_value = seed_value + i);
|
rands(-1, 1, 4, seed_value = seed_value + i);
|
||||||
|
|
||||||
outer_cube_size = [w_size / 2, w_size + rs[0] , w_size + rs[1]];
|
outer_cube_size = [w_size / 2, w_size + rs[0] , w_size + rs[1]];
|
||||||
inter_cube_size = [w_size / 2, (w_size + rs[0]) * 0.85, w_size + rs[1]];
|
inter_cube_size = [w_size / 2, (w_size + rs[0]) * 0.85, w_size + rs[1]];
|
||||||
|
|
||||||
h_step = w_size * 1.5;
|
h_step = w_size * 1.5;
|
||||||
h_to = building_h - w_size * 1.5;
|
h_to = building_h - w_size * 1.5;
|
||||||
|
|
||||||
a_from = -half_a + (rs[3] > 0 ? arc_a / 8 : arc_a / 6);
|
a_from = -half_a + (rs[3] > 0 ? arc_a / 8 : arc_a / 6);
|
||||||
a_step = rs[3] > 0 ? arc_a / 4 : arc_a / 3;
|
a_step = rs[3] > 0 ? arc_a / 4 : arc_a / 3;
|
||||||
|
|
||||||
outer_cube_p = [arc_r + arc_w / 2, 0, w_size * 0.75];
|
outer_cube_p = [arc_r + arc_w / 2, 0, w_size * 0.75];
|
||||||
inner_cube_p = [arc_r - arc_w / 2, 0, w_size * 0.75];
|
inner_cube_p = [arc_r - arc_w / 2, 0, w_size * 0.75];
|
||||||
|
|
||||||
for(h = [0:h_step: h_to]) {
|
for(h = [0:h_step: h_to]) {
|
||||||
translate([-arc_r, 0, h + rs[2] + 1])
|
translate([-arc_r, 0, h + rs[2] + 1])
|
||||||
for(a = [a_from:a_step:half_a]) {
|
for(a = [a_from:a_step:half_a]) {
|
||||||
r = is_undef(seed_value) ?
|
r = is_undef(seed_value) ?
|
||||||
rands(0, 1, 1)[0] :
|
rands(0, 1, 1)[0] :
|
||||||
rands(0, 1, 1, seed_value = seed_value)[0];
|
rands(0, 1, 1, seed_value = seed_value)[0];
|
||||||
s = [r > 0.5 ? 2.75 : 1, 1, 1];
|
s = [r > 0.5 ? 2.75 : 1, 1, 1];
|
||||||
rotate(a) {
|
rotate(a) {
|
||||||
translate(outer_cube_p)
|
translate(outer_cube_p)
|
||||||
scale(s)
|
scale(s)
|
||||||
rounded_cube(outer_cube_size, 1, center = true, $fn = 7);
|
rounded_cube(outer_cube_size, 1, center = true, $fn = 7);
|
||||||
|
|
||||||
translate(inner_cube_p)
|
translate(inner_cube_p)
|
||||||
scale(s)
|
scale(s)
|
||||||
rounded_cube(inter_cube_size, 1, center = true, $fn = 7);
|
rounded_cube(inter_cube_size, 1, center = true, $fn = 7);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
module roof(i, arm_distance, building_h, roof_h, arc_a, arc_r) {
|
module roof(i, arm_distance, building_h, roof_h, arc_a, arc_r) {
|
||||||
|
@@ -30,9 +30,9 @@ module spiral_math_constants(n, radius, constants, font_name, font_size, txt_ext
|
|||||||
|
|
||||||
module constant_on_spiral(constant, spiral) {
|
module constant_on_spiral(constant, spiral) {
|
||||||
for(i = [0:len(spiral) - 1]) {
|
for(i = [0:len(spiral) - 1]) {
|
||||||
x = spiral[i][0];
|
x = spiral[i].x;
|
||||||
y = spiral[i][1];
|
y = spiral[i].y;
|
||||||
z = spiral[i][2];
|
z = spiral[i].z;
|
||||||
ya = atan2(z, sqrt(x * x + y * y));
|
ya = atan2(z, sqrt(x * x + y * y));
|
||||||
za = atan2(y, x);
|
za = atan2(y, x);
|
||||||
|
|
||||||
|
@@ -48,8 +48,7 @@ module dog_back(head_r, peg_radius) {
|
|||||||
$fn = 36;
|
$fn = 36;
|
||||||
|
|
||||||
module foot() {
|
module foot() {
|
||||||
translate([head_r, 0, 0])
|
translate([head_r, 0, 0]) {
|
||||||
union() {
|
|
||||||
color("PapayaWhip")
|
color("PapayaWhip")
|
||||||
ellipse_extrude(head_r / 3)
|
ellipse_extrude(head_r / 3)
|
||||||
polygon(shape_ellipse([head_r / 3, head_r / 2]));
|
polygon(shape_ellipse([head_r / 3, head_r / 2]));
|
||||||
|
@@ -10,12 +10,8 @@ model = "Tetrahedron"; // [Tetrahedron, Base, Both]
|
|||||||
module string_tetrahedron(leng, diameter, segs_per_side, line_fn) {
|
module string_tetrahedron(leng, diameter, segs_per_side, line_fn) {
|
||||||
module lines_between(side1, side2, diameter, segs) {
|
module lines_between(side1, side2, diameter, segs) {
|
||||||
function pts(p1, p2, segs) =
|
function pts(p1, p2, segs) =
|
||||||
let(
|
let(p = p2 - p1)
|
||||||
p = p2 - p1,
|
[for(i = [0:segs]) p1 + p / segs * i];
|
||||||
dx = p[0] / segs,
|
|
||||||
dy = p[1] / segs,
|
|
||||||
dz = p[2] / segs
|
|
||||||
) [for(i = [0:segs]) p1 + [dx, dy, dz] * i];
|
|
||||||
|
|
||||||
pts1 = pts(side1[0], side1[1], segs);
|
pts1 = pts(side1[0], side1[1], segs);
|
||||||
pts2 = pts(side2[0], side2[1], segs);
|
pts2 = pts(side2[0], side2[1], segs);
|
||||||
|
@@ -9,12 +9,7 @@ center = false;
|
|||||||
module string_tetrahedron(leng, diameter, segs_per_side, line_fn) {
|
module string_tetrahedron(leng, diameter, segs_per_side, line_fn) {
|
||||||
module lines_between(side1, side2, diameter, segs) {
|
module lines_between(side1, side2, diameter, segs) {
|
||||||
function pts(p1, p2, segs) =
|
function pts(p1, p2, segs) =
|
||||||
let(
|
let(p = p2 - p1) [for(i = [0:segs]) p1 + p / segs * i];
|
||||||
p = p2 - p1,
|
|
||||||
dx = p[0] / segs,
|
|
||||||
dy = p[1] / segs,
|
|
||||||
dz = p[2] / segs
|
|
||||||
) [for(i = [0:segs]) p1 + [dx, dy, dz] * i];
|
|
||||||
|
|
||||||
pts1 = pts(side1[0], side1[1], segs);
|
pts1 = pts(side1[0], side1[1], segs);
|
||||||
pts2 = pts(side2[0], side2[1], segs);
|
pts2 = pts(side2[0], side2[1], segs);
|
||||||
@@ -95,12 +90,11 @@ module string_tetrahedrons(level, leng, diameter, segs_per_side, center) {
|
|||||||
|
|
||||||
for(i = [0:120:240]) {
|
for(i = [0:120:240]) {
|
||||||
rotate(i)
|
rotate(i)
|
||||||
|
|
||||||
translate([0, -center_y * 2])
|
translate([0, -center_y * 2])
|
||||||
rotate([a, 0, 0])
|
rotate([a, 0, 0])
|
||||||
translate([0, center_y * 2])
|
translate([0, center_y * 2])
|
||||||
rotate([180, 0, 0])
|
rotate([180, 0, 0])
|
||||||
scale(0.9427)
|
scale(0.9427)
|
||||||
string_tetrahedrons(level - 1, half_leng, diameter, segs_per_side, center);
|
string_tetrahedrons(level - 1, half_leng, diameter, segs_per_side, center);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -9,7 +9,7 @@ linear_extrude(2)
|
|||||||
translate(pts[i])
|
translate(pts[i])
|
||||||
difference() {
|
difference() {
|
||||||
square(7, center = true);
|
square(7, center = true);
|
||||||
render() for(p = vx_ascii(tx[i], center = true)) {
|
for(p = vx_ascii(tx[i], center = true)) {
|
||||||
translate(p) square(.8);
|
translate(p) square(.8);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user