update design and add side winches

This commit is contained in:
2024-10-31 12:43:43 +01:00
parent b8a5b7ba9e
commit 22ee971d24
14 changed files with 174209 additions and 37 deletions

View File

@@ -1,26 +1,15 @@
main_or_side = "m"
main_not_side = 1; // 0,1
plot = "side"; // [side|mid|roller|full]
if (main_or_side == "m") {
base_len = 180;
base_hight = 6;
base_width = 50;
} else {
base_len = 60;
base_hight = 6;
base_width = 45;
}
base_len = main_not_side ? 180 : 60;
base_hight = 6;
base_width = main_not_side ? 50 : 45;
matt_thingness = 4;
if (main_or_side == "m") {
roller_small_d = 30;
roller_flansh_d = 50;
roller_above_base = 35;
} else {
roller_small_d = 25;
roller_flansh_d = 40;
roller_above_base = 30;
}
roller_small_d = main_not_side ? 30 : 25;
roller_flansh_d = main_not_side ? 50 : 40;
roller_above_base = roller_flansh_d/2 + matt_thingness + 3;
roller_flansh_t = 3;
roller_side_tollerance = 0.5;
@@ -37,9 +26,10 @@ side_mount_hole_sep = 35;
side_mount_hole_above_base = 1;
side_mount_hole_d = 4;
mid_arch_roler_cut_r = 25;
mid_arch_roler_cut_r = main_not_side ? 23 : 18;
mid_winch_flansh_space = roller_flansh_t + 1;
mid_winch_tollerance = 0.5;
mid_diagnal_ratio = 0.75;
// distance between left bottom of side and the center of the top arch
side_corner_to_archCenter = sqrt((side_width/2)^2 + side_arch_center_h^2);
@@ -52,8 +42,8 @@ side_flat_trangentPoint_x = (side_width/2) - (side_arch_r*cos(side_arch_trangent
side_flat_trangentPoint_y = side_arch_center_h + (side_arch_r*sin(side_arch_trangent_a));
// mid top rounding
mid_topRounding_center_y = side_flat_trangentPoint_y/2;
mid_topRounding_side_x = side_flat_trangentPoint_x/2;
mid_topRounding_center_y = side_flat_trangentPoint_y*mid_diagnal_ratio;
mid_topRounding_side_x = side_flat_trangentPoint_x*mid_diagnal_ratio;
o = roller_above_base - mid_topRounding_center_y;
s = mid_arch_roler_cut_r;
mid_topRounding_inner_x = (side_width/2) - sqrt(pow(s, 2) - pow(o, 2));
@@ -98,7 +88,7 @@ module side_2d() {
union() {
translate([matt_thingness, base_hight]) {
winch_side_2d();
if (main_or_side == "m")
if (main_not_side)
translate([base_len/2, 0])
winch_side_2d();
}
@@ -111,8 +101,8 @@ module mid_winch_2d() {
union() {
polygon(points = [
[0, 0],
[side_flat_trangentPoint_x/2, side_flat_trangentPoint_y/2],
[side_width-side_flat_trangentPoint_x/2, side_flat_trangentPoint_y/2],
[side_flat_trangentPoint_x*mid_diagnal_ratio, side_flat_trangentPoint_y*mid_diagnal_ratio],
[side_width-side_flat_trangentPoint_x*mid_diagnal_ratio, side_flat_trangentPoint_y*mid_diagnal_ratio],
[side_width, 0]
]);
translate([mid_topRounding_center_x, mid_topRounding_center_y])
@@ -132,16 +122,17 @@ module mid_3d() {
// base
translate([0, 0, base_hight])
cube([base_len+matt_thingness*2, base_width, matt_thingness]);
// translate([0, 0, 0])
// cube([matt_thingness, base_width, base_hight+matt_thingness]);
// translate([matt_thingness+base_len, 0, 0])
// cube([matt_thingness, base_width, base_hight+matt_thingness]);
translate([0, 0, 0])
cube([matt_thingness, base_width, base_hight+matt_thingness]);
translate([matt_thingness+base_len, 0, 0])
cube([matt_thingness, base_width, base_hight+matt_thingness]);
// winches
translate([matt_thingness, mid_winch_width+mid_winch_flansh_space, base_hight])
rotate([90, 0, 0])
linear_extrude(mid_winch_width) {
mid_winch_2d();
if (main_not_side)
translate([base_len/2, 0])
mid_winch_2d();
}
@@ -158,6 +149,7 @@ module mid_3d() {
[matt_thingness-mid_winch_tollerance+windh_side_mattThinkness_x, matt_thingness],
[0, matt_thingness]
]);
if (main_not_side)
translate([matt_thingness+side_width+mid_winch_tollerance, 0])
polygon(points = [
[0, 0],
@@ -165,6 +157,7 @@ module mid_3d() {
[base_len/2-side_width-mid_winch_tollerance*2+windh_side_mattThinkness_x, matt_thingness],
[-windh_side_mattThinkness_x, matt_thingness],
]);
if (main_not_side)
translate([matt_thingness+base_len/2+side_width+mid_winch_tollerance, 0])
polygon(points = [
[0, 0],
@@ -172,6 +165,14 @@ module mid_3d() {
[base_len/2-side_width-mid_winch_tollerance+matt_thingness, matt_thingness],
[-windh_side_mattThinkness_x, matt_thingness],
]);
if (main_not_side == 0)
translate([matt_thingness+side_width+mid_winch_tollerance, 0])
polygon(points = [
[0, 0],
[base_len-side_width-mid_winch_tollerance+matt_thingness, 0],
[base_len-side_width-mid_winch_tollerance+matt_thingness, matt_thingness],
[-windh_side_mattThinkness_x, matt_thingness],
]);
}
}
translate([0, base_width*1.5, base_hight])
@@ -180,8 +181,10 @@ module mid_3d() {
cylinder(h = base_width*2, d = side_mount_hole_d+0.0001);
translate([matt_thingness+(side_width/2)+(side_mount_hole_sep/2), side_mount_hole_d/2 + side_mount_hole_above_base])
cylinder(h = base_width*2, d = side_mount_hole_d+0.0001);
if (main_not_side)
translate([matt_thingness+base_len/2+(side_width/2)-(side_mount_hole_sep/2), side_mount_hole_d/2 + side_mount_hole_above_base])
cylinder(h = base_width*2, d = side_mount_hole_d+0.0001);
if (main_not_side)
translate([matt_thingness+base_len/2+(side_width/2)+(side_mount_hole_sep/2), side_mount_hole_d/2 + side_mount_hole_above_base])
cylinder(h = base_width*2, d = side_mount_hole_d+0.0001);
}
@@ -234,16 +237,20 @@ module full() {
side_left();
mid_3d();
roller_front();
roller_back();
if (main_not_side)
roller_back();
}
full();
// side_3d();
// translate([0, 0, -base_hight])
// mid_3d();
// rotate([90, 0, 0])
// roller_3d();
if (plot == "full")
full();
if (plot == "side")
side_3d();
if (plot == "mid")
translate([0, 0, -base_hight])
mid_3d();
if (plot == "roller")
rotate([90, 0, 0])
roller_3d();

Binary file not shown.

Binary file not shown.

Binary file not shown.

17
3d/winshe_main/render.sh Executable file
View File

@@ -0,0 +1,17 @@
#!/bin/bash
function plot() {
main_not_side=$(test $1 == "main" && echo 1 || echo 0)
openscad -o winch_$1_$2.stl -D main_not_side=$main_not_side -D plot=\"$2\" main_winche.scad
}
plot main full
plot main side
plot main mid
plot main roller
plot side full
plot side side
plot side mid
plot side roller

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