1
0
mirror of https://github.com/JustinSDK/dotSCAD.git synced 2025-08-21 14:04:53 +02:00

to ratio of leng

This commit is contained in:
Justin Lin
2019-09-24 09:23:07 +08:00
parent ad5dbbc143
commit 3330ac3f7d

View File

@@ -1,7 +1,7 @@
include <line2d.scad>; include <line2d.scad>;
include <hollow_out.scad>; include <hollow_out.scad>;
side = 45; tri_side_leng = 45;
height = 6; height = 6;
spacing = 0.4; spacing = 0.4;
ring_width = 1.5; ring_width = 1.5;
@@ -9,18 +9,18 @@ shaft_r = 1;
chain_hole = "YES"; // [YES, NO] chain_hole = "YES"; // [YES, NO]
chain_hole_width = 2.5; chain_hole_width = 2.5;
function triangle_square(side) = // https://www.cs.purdue.edu/homes/gnf/book2/trisqu.html
function triangle_square(tri_side_leng) =
let( let(
half_side = side / 2,
p0 = [0, 0], p0 = [0, 0],
p1 = half_side * [0.5, 0.866025], p1 = tri_side_leng * [0.25, 0.4330125],
p2 = half_side * [1, 1.732051], p2 = tri_side_leng * [0.5, 0.8660255],
p4 = half_side * [2, 0], p4 = tri_side_leng * [1, 0],
p3 = half_side * [1.5, 0.866025], p3 = tri_side_leng * [0.75, 0.4330125],
p6 = half_side * [0.509016, 0], p6 = tri_side_leng * [0.254508, 0],
p5 = half_side * [1.509016, 0], p5 = tri_side_leng * [0.754508, 0],
p8 = half_side * [1.076003, 0.49549], p8 = tri_side_leng * [0.5380015, 0.247745],
p7 = half_side * [0.933013, 0.370533], p7 = tri_side_leng * [0.4665065, 0.1852665],
pieces = [ pieces = [
[p0, p6, p7, p1], [p0, p6, p7, p1],
[p6, p5, p8], [p6, p5, p8],
@@ -31,9 +31,9 @@ function triangle_square(side) =
) )
[pieces, hinged_pts]; [pieces, hinged_pts];
module triangle2square(side, height, spacing, ring_width, shaft_r) { module triangle2square(tri_side_leng, height, spacing, ring_width, shaft_r) {
half_side = side / 2; half_tri_side_leng = tri_side_leng / 2;
half_h = height / 2; half_h = height / 2;
joint_ring_inner = shaft_r + spacing; joint_ring_inner = shaft_r + spacing;
@@ -61,7 +61,7 @@ module triangle2square(side, height, spacing, ring_width, shaft_r) {
offsetd = -spacing / 2; offsetd = -spacing / 2;
tri_sq = triangle_square(side); tri_sq = triangle_square(tri_side_leng);
linear_extrude(height) difference() { linear_extrude(height) difference() {
union() { union() {
difference() { difference() {
@@ -96,7 +96,7 @@ module triangle2square(side, height, spacing, ring_width, shaft_r) {
$fn = 36; $fn = 36;
difference() { difference() {
triangle2square(side, height, spacing, ring_width, shaft_r); triangle2square(tri_side_leng, height, spacing, ring_width, shaft_r);
if(chain_hole == "YES") { if(chain_hole == "YES") {
translate([spacing * 1.5, spacing, height / 2]) translate([spacing * 1.5, spacing, height / 2])
linear_extrude(chain_hole_width, center = true) linear_extrude(chain_hole_width, center = true)