123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- /*
- * Copyright (c) 2022 - 2023 Thomas Buck (thomas@xythobuz.de)
- * Philipp Schönberger (mail@phschoen.de)
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * See <http://www.gnu.org/licenses/>.
- */
-
-
- // https://www.thingiverse.com/thing:421524
- use <external/cherry_mx.scad>;
- include <mx_switch.scad>;
-
- // #######################
- // #### Configuration ####
- // #######################
- $fn = 100;//42;
- $c = 0.1; // clearence of 3d printer
- $e = 0.01; // smales neglegtable distance
-
- pico_angle = 55;
- pico_off = -60;
-
-
- angle_sensor=[0,0,145]; // angle of the ball sensor
- sensor_type = "mini"; // one of normal or mini
-
- trackball_dia = 40.0; // diameter of the trackball itself
-
- bearing_type="dynamic_m6_vcn320"; // one off:
- // dynamic_3d_vcn410
- // dynamic_m6_vcn320
- // static
- bearing_static_dia = 3.0; // diameter of the roller holder ball if type is "static"
- bearing_h = 12; // total higth of the bearing holder
-
- roller_ball_h = trackball_dia / 2 - 5;
- bearing_count = 3;
-
- wall = 3.0;
-
- left_hand_version = false;
- cut_bearing_holder = false;
- draw_supports = false;
- draw_ball_bearing_holder = true;
- draw_trackball = true;
- draw_switches = true;
- draw_sensor = true;
- draw_led= true;
- draw_pico = true;
- use_external_pico_model = true;
- draw_keycap = true;
- draw_panel = true;
- draw_usb_c = true;
-
- // ######################
- // ### Implementation ###
- // ######################
-
- base_dia = 62;
-
- grub_screw_dia = 2.8;
- grub_channel_dia = 4.0;
-
- bearing_ball_h_off = 0.4;
- bearing_ball_hold_off = 0.5;
-
- bearing_mount_grub_screw_l = 5;
- bearing_mount_angle_off = 25;//90-5;
- bearing_mount_dia = 10;
- bearing_mount_flange = 1;
-
- ball_h = 15; // todo
-
- switch_test_w = 25;
-
- sensor_pcb_mount_gap = 2.0;
-
- // rotate translate
- sw = [ // x z_pre_T z_post_T
- [ [-25, 0, -33 * (left_hand_version ? -1 : 1)], [0,-base_dia / 2 - 3,-14.5]],// thumb
- [ [-25, -19, 3 * (left_hand_version ? -1 : 1)], [0,-base_dia / 2 - 3,-14.5]],// thumb
- [ [-25, 0, 146 * (left_hand_version ? -1 : 1)], [0,-base_dia / 2 - 3,-14.5]],// middle
- [ [-25, 19, 106 * (left_hand_version ? -1 : 1)], [0,-base_dia / 2 - 3,-14.5]],// ring
- // [ [-25, -15, 146 * (left_hand_version ? -1 : 1)], [0,-base_dia / 2 - 3,-14.5]],// middle
- // [ [-25, 0, 106 * (left_hand_version ? -1 : 1)], [0,-base_dia / 2 - 3,-14.5]],// ring
- ];
-
- sw_mount_w = mx_co_w + 7;
- sw_mount_r=4;
-
- assembly_dist = 20;
|