update winche
This commit is contained in:
parent
911837b174
commit
6ed38f8abf
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
BIN
3d/winche/datasheet_motor.jpg
Normal file
BIN
3d/winche/datasheet_motor.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 215 KiB |
13
3d/winche/functions.scad
Normal file
13
3d/winche/functions.scad
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
|
||||||
|
function to_cardinal_2d(a, d) = [
|
||||||
|
d * sin(a),
|
||||||
|
d * cos(a)
|
||||||
|
];
|
||||||
|
function move_polar_2d(p, angle, dist) = to_cardinal_2d(angle, dist) + p;
|
||||||
|
function line_len_2d(p) = sqrt(p[0]*p[0] + p[1]*p[1]);
|
||||||
|
function line_len_3d(p) = sqrt(p[0]*p[0] + p[1]*p[1] + p[2]*p[2]);
|
||||||
|
function angle_2d(p) = atan2(p[0], p[1]);
|
||||||
|
|
||||||
|
function _tangent_single_angle_2d(to, r, other_side) = angle_2d(to) + ((other_side) ? -1 : 1)*acos(r / line_len_2d(to));
|
||||||
|
function tangent_single_2d(to, r, center, other_side=false) =
|
||||||
|
move_polar_2d(center, _tangent_single_angle_2d(to - center, r, other_side), r);
|
||||||
@ -1,10 +1,15 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
|
OUT_DIR="$(dirname "$PWD")/print/winche"
|
||||||
|
|
||||||
function plot() {
|
function plot() {
|
||||||
main_not_side=$(test $1 == "main" && echo 1 || echo 0)
|
main_not_side=$(test $1 == "main" && echo 1 || echo 0)
|
||||||
openscad -o winche_$1_$2.stl -D main_not_side=$main_not_side -D plot=\"$2\" winche.scad
|
openscad -o "$OUT_DIR/winche_$1_$2.stl" -D main_not_side=$main_not_side -D plot=\"$2\" winche.scad
|
||||||
}
|
}
|
||||||
|
|
||||||
|
mkdir -p "$OUT_DIR"
|
||||||
|
rm "$OUT_DIR/"*.stl
|
||||||
|
|
||||||
plot main full
|
plot main full
|
||||||
plot main sideL
|
plot main sideL
|
||||||
plot main sideR
|
plot main sideR
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
include <heat_set_inserts.scad>
|
include <heat_set_inserts.scad>
|
||||||
|
include <functions.scad>
|
||||||
|
|
||||||
main_not_side = 0; // 0,1
|
main_not_side = 0; // 0,1
|
||||||
plot = "full"; // [sideL|sideR|mid|roller|base|full]
|
plot = "full"; // [sideL|sideR|mid|roller|base|full]
|
||||||
@ -17,7 +18,7 @@ roller_side_tollerance = 0.5;
|
|||||||
|
|
||||||
motor_shaft_d = 5;
|
motor_shaft_d = 5;
|
||||||
motor_shaft_base_hole = 8.5;
|
motor_shaft_base_hole = 8.5;
|
||||||
motor_shaft_offCenter = 6;
|
motor_shaft_offCenter = 6.5;
|
||||||
motor_mount_sep = 31;
|
motor_mount_sep = 31;
|
||||||
|
|
||||||
side_width = 50;
|
side_width = 50;
|
||||||
@ -29,29 +30,23 @@ side_mount_hole_above_base = 1;
|
|||||||
side_mount_hole_d = 4.2;
|
side_mount_hole_d = 4.2;
|
||||||
side_bearing_od = 10.1;
|
side_bearing_od = 10.1;
|
||||||
|
|
||||||
mid_arch_roler_cut_r = main_not_side ? 23 : 18;
|
mid_arch_roler_cut_r = roller_flansh_d/2 - 3;
|
||||||
mid_winch_flansh_space = roller_flansh_t + 1;
|
mid_winch_flansh_space = roller_flansh_t + 3;
|
||||||
mid_winch_tollerance = 0.5;
|
mid_winch_tollerance = 0.5;
|
||||||
mid_diagnal_ratio = 0.75;
|
mid_flat_top_ratio = 0.6;
|
||||||
|
|
||||||
// distance between left bottom of side and the center of the top arch
|
side_flat_trangentPoint = tangent_single_2d(to=[0, 0], r=side_arch_r, center=[side_width/2, side_arch_center_h]);
|
||||||
side_corner_to_archCenter = sqrt((side_width/2)^2 + side_arch_center_h^2);
|
|
||||||
// angle from center of arch between left bottom and trangent point
|
|
||||||
side_flat_a = acos(side_arch_r / side_corner_to_archCenter);
|
|
||||||
// angle from center of horizantal and trangent point
|
|
||||||
side_arch_trangent_a = side_flat_a - acos((side_width/2) / side_corner_to_archCenter);
|
|
||||||
// tangent point coordiates
|
|
||||||
side_flat_trangentPoint_x = (side_width/2) - (side_arch_r*cos(side_arch_trangent_a));
|
|
||||||
side_flat_trangentPoint_y = side_arch_center_h + (side_arch_r*sin(side_arch_trangent_a));
|
|
||||||
|
|
||||||
// mid top rounding
|
// mid top rounding
|
||||||
mid_topRounding_center_y = side_flat_trangentPoint_y*mid_diagnal_ratio;
|
mid_flat_topPoint = side_flat_trangentPoint * mid_flat_top_ratio;
|
||||||
mid_topRounding_side_x = side_flat_trangentPoint_x*mid_diagnal_ratio;
|
o = roller_above_base - mid_flat_topPoint[1];
|
||||||
o = roller_above_base - mid_topRounding_center_y;
|
|
||||||
s = mid_arch_roler_cut_r;
|
s = mid_arch_roler_cut_r;
|
||||||
mid_topRounding_inner_x = (side_width/2) - sqrt(pow(s, 2) - pow(o, 2));
|
mid_topRounding_inner_x = (side_width/2) - sqrt(s*s - o*o);
|
||||||
mid_topRounding_d = mid_topRounding_inner_x - mid_topRounding_side_x;
|
mid_topRounding_center = [
|
||||||
mid_topRounding_center_x = mid_topRounding_side_x + mid_topRounding_d/2;
|
mid_flat_topPoint[0] + (mid_topRounding_inner_x - mid_flat_topPoint[0])/2,
|
||||||
|
mid_flat_topPoint[1] - (mid_topRounding_inner_x - mid_flat_topPoint[0])/2*tan(angle_2d(side_flat_trangentPoint))
|
||||||
|
];
|
||||||
|
mid_topRounding_d = line_len_2d(mid_flat_topPoint - mid_topRounding_center)*2;
|
||||||
|
|
||||||
$fa=5;
|
$fa=5;
|
||||||
$fs=0.1;
|
$fs=0.1;
|
||||||
@ -73,8 +68,8 @@ module winch_side_2d(){
|
|||||||
circle(r = side_arch_r);
|
circle(r = side_arch_r);
|
||||||
polygon(points = [
|
polygon(points = [
|
||||||
[0, 0],
|
[0, 0],
|
||||||
[side_flat_trangentPoint_x, side_flat_trangentPoint_y],
|
side_flat_trangentPoint,
|
||||||
[side_width-side_flat_trangentPoint_x, side_flat_trangentPoint_y],
|
[side_width-side_flat_trangentPoint[0], side_flat_trangentPoint[1]],
|
||||||
[side_width, 0]
|
[side_width, 0]
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
@ -102,6 +97,7 @@ module side_motor_2d() {
|
|||||||
side_2d();
|
side_2d();
|
||||||
translate([matt_thingness+side_width/2, base_hight+roller_above_base])
|
translate([matt_thingness+side_width/2, base_hight+roller_above_base])
|
||||||
motor_mount_2d();
|
motor_mount_2d();
|
||||||
|
if (main_not_side)
|
||||||
translate([matt_thingness+base_len/2+side_width/2, base_hight+roller_above_base])
|
translate([matt_thingness+base_len/2+side_width/2, base_hight+roller_above_base])
|
||||||
motor_mount_2d();
|
motor_mount_2d();
|
||||||
}
|
}
|
||||||
@ -122,13 +118,14 @@ module mid_winch_2d() {
|
|||||||
union() {
|
union() {
|
||||||
polygon(points = [
|
polygon(points = [
|
||||||
[0, 0],
|
[0, 0],
|
||||||
[side_flat_trangentPoint_x*mid_diagnal_ratio, side_flat_trangentPoint_y*mid_diagnal_ratio],
|
side_flat_trangentPoint * mid_flat_top_ratio,
|
||||||
[side_width-side_flat_trangentPoint_x*mid_diagnal_ratio, side_flat_trangentPoint_y*mid_diagnal_ratio],
|
[side_width-side_flat_trangentPoint[0]*mid_flat_top_ratio, side_flat_trangentPoint[1]*mid_flat_top_ratio],
|
||||||
[side_width, 0]
|
[side_width, 0]
|
||||||
]);
|
]);
|
||||||
translate([mid_topRounding_center_x, mid_topRounding_center_y])
|
// translate([mid_topRounding_center[0], mid_flat_topPoint[1]])
|
||||||
|
translate(mid_topRounding_center)
|
||||||
circle(d = mid_topRounding_d);
|
circle(d = mid_topRounding_d);
|
||||||
translate([side_width-mid_topRounding_center_x, mid_topRounding_center_y])
|
translate([side_width-mid_topRounding_center[0], mid_topRounding_center[1]])
|
||||||
circle(d = mid_topRounding_d);
|
circle(d = mid_topRounding_d);
|
||||||
}
|
}
|
||||||
translate([side_width/2, roller_above_base])
|
translate([side_width/2, roller_above_base])
|
||||||
@ -159,7 +156,7 @@ module mid_3d() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// nibs over side
|
// nibs over side
|
||||||
winch_side_a_ratio = side_flat_trangentPoint_x / side_flat_trangentPoint_y;
|
winch_side_a_ratio = side_flat_trangentPoint[0] / side_flat_trangentPoint[1];
|
||||||
windh_side_mattThinkness_x = winch_side_a_ratio * matt_thingness;
|
windh_side_mattThinkness_x = winch_side_a_ratio * matt_thingness;
|
||||||
translate([0, base_width+side_thickness, base_hight])
|
translate([0, base_width+side_thickness, base_hight])
|
||||||
rotate([90, 0, 0])
|
rotate([90, 0, 0])
|
||||||
@ -256,8 +253,8 @@ module roller_3d() {
|
|||||||
scale([1, 1, 2])
|
scale([1, 1, 2])
|
||||||
heatSetInsert_hole_M3x5_7();
|
heatSetInsert_hole_M3x5_7();
|
||||||
intersection() {
|
intersection() {
|
||||||
cylinder(h = 6, d = 5);
|
cylinder(h = 6, d = 5.2);
|
||||||
cube([10, 3, 6], true);
|
cube([10, 3.2, 6], true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -316,6 +313,3 @@ if (plot == "roller")
|
|||||||
roller_3d();
|
roller_3d();
|
||||||
if (plot == "base")
|
if (plot == "base")
|
||||||
base();
|
base();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user