| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- include <../config/connector.scad>
- module connector_shape() {
- rounding = connector_depth / 2;
- move = connector_width - rounding * 2;
- module base_shape(split = false) {
- if (!split) {
- hull() {
- circle(r = rounding);
- translate([move, 0]) {
- circle(r = rounding);
- }
- }
- } else {
- translate([-move, 0]) {
- base_shape(split = false);
- }
- }
- }
- module holes(split = false) {
- if (!split) {
- space_y = rounding * 2 / (connector_holes_in_y + 1);
- space_x = move / (connector_holes_in_x - 1);
- for (count_y = [-rounding : space_y : rounding]) {
- if (count_y != rounding && count_y != -rounding) {
- for (count_x = [0 : space_x : move]) {
- translate([count_x, count_y]) {
- circle(r = connector_hole / 2);
- }
- }
- }
- }
- } else {
- translate([-move, 0]) {
- holes(split = false);
- }
- }
- }
- module final_shape(split = false) {
- difference() {
- base_shape(split);
- holes(split);
- }
- }
- render() {
- final_shape(split = false);
- if (connector_dual) {
- final_shape(split = true);
- }
- rotate(180 - connector_angle) {
- final_shape(split = true);
- }
- }
- }
- module connector_object() {
- color("#FAAFCB") {
- linear_extrude(height = connector_thickness, center = true) {
- connector_shape();
- }
- }
- }
|