diff --git a/LICENSE b/LICENSE index 771d670..cb84efd 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2020 Matt McWilliams +Copyright (c) 2020-2022 Matt McWilliams Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/hardware/Makefile b/hardware/Makefile new file mode 100644 index 0000000..ac9f5ed --- /dev/null +++ b/hardware/Makefile @@ -0,0 +1,54 @@ +################### +# +# intval3 OpenSCAD Makefile +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +################### + +PREFIX=intval3 + +OPENSCAD=openscad +OPENSCAD_OPTIONS=-D VERBOSE=false + +STL=./stl +DXF=./dxf +MODELS=$(shell bash ./parseVars.sh MODEL) +LASER=$(shell bash ./parseVars.sh LASER) + +all: directories models + +directories: + mkdir -p $(STL) $(DXF) + +models: directories $(MODELS) $(LASER) + +clean: + rm -f $(STL)/$(PREFIX)_* + +cleanall: + rm -rf $(STL) + +# Dependencies for models + +$(MODELS) : $(STL)/$(PREFIX)_%.stl : $(PREFIX).scad + $(OPENSCAD) $(OPENSCAD_OPTIONS) -o $@ -D MODEL=\"$(subst $(PREFIX)_,,$(subst .stl,,$(@F)))\" $< + +$(LASER) : $(DXF)/$(PREFIX)_%.dxf : $(PREFIX).scad + $(OPENSCAD) $(OPENSCAD_OPTIONS) -o $@ -D LASER=\"$(subst $(PREFIX)_,,$(subst .dxf,,$(@F)))\" $< \ No newline at end of file diff --git a/hardware/anyeye_revere.scad b/hardware/anyeye_revere.scad index f31c862..127a37f 100644 --- a/hardware/anyeye_revere.scad +++ b/hardware/anyeye_revere.scad @@ -124,14 +124,4 @@ module reference_projector_shaft () { cube([60, 60, 3], center = true); bearing_laser(hole=false); } -} - -difference() { - union () { - //reference_projector_shaft(); - translate([0, 0, 17.5]) color("red")rotate([180, 0, 0]) motor_key_bottom(); - } - //translate([30, 0, 0]) cube([60, 60, 60], center = true); -} - -//translate([0, 0, 7]) motor_key_120(); \ No newline at end of file +} \ No newline at end of file diff --git a/hardware/case.scad b/hardware/case.scad index 0486323..ec104fe 100644 --- a/hardware/case.scad +++ b/hardware/case.scad @@ -30,7 +30,7 @@ module intval_panel_laser () { difference () { translate ([0, 0, 8.5]) { union () { - translate([12 - 10, , 0]) { + translate([12 - 10, 0]) { rotate([0, 0, -13]) { rounded_cube([panel_2_x + 20 + 20, panel_2_y, 25.4/8], d = 20, center = true); } diff --git a/hardware/intval3.scad b/hardware/intval3.scad index 8bf5138..d4befc6 100644 --- a/hardware/intval3.scad +++ b/hardware/intval3.scad @@ -1,6 +1,8 @@ include <./case.scad> include <./mount.scad> include <./plunger.scad> +//include <./anyeye_revere.scad> + /* INTVAL 3 @@ -36,29 +38,43 @@ module exploded_view () { translate([0, 0, -10]) intval_laser_standoffs_alt(); } +//exploded_view(); +MODEL = "stl_plate"; +if (MODEL == "stl_plate") { + stl_plate(); +} else if (MODEL == "plunger_plate") { + plunger_plate(); +} else if (MODEL == "standoffs_plate") { + intval_laser_standoffs_plate(); +} else if (MODEL == "standoff") { + bolex_pin_laser(0, 0); +} else if (MODEL == "electronics_mount") { + intval_electronics_mount(); +} else if (MODEL == "motor_mount_bottom") { + motor_mount_bottom(); +} else if (MODEL == "motor_mount_120") { + geared_motor_mount_120(); +} else if (MODEL == "motor_key_120") { + motor_key_120(); +} +//motor_key_120_reinforced () +//motor_key_120_reinforced_roller () -//bolex_pin_laser(0, 0); -//intval_laser_standoffs_plate(); -//intval_electronics_mount(); -//motor_mount_bottom(); -//projection () intval_panel_laser(); -//intval_laser_panel_cover(true, ALL_RED=true); -//rotate([0, 0, 13]) intval_panel_laser(); -//rotate([0, 0, 13]) intval_laser_panel_cover(); //rotate([0, 180, 0]) key_cap(); -//geared_motor_mount_120(); -//motor_key_120(); -//plunger_plate(); + //plunger(); -//rotate([0, 180, 0]) plunger_top(); +//plunger_top(); //motor_cap(false); //rotate([0, 180, 0]) motor_cap_120(false); //translate([0, 0, 39 / 2 + 5.75]) bolt_guide(); -//motor_key_120_reinforced(); -motor_key_120_reinforced_roller(); //intval_laser_standoffs_alt(); //intval_laser_standoffs_plate_alt(); -//exploded_view(); -//stl_plate(); -//dxf_plate(); \ No newline at end of file +LASER = "dxf_plate"; +if (LASER == "laser_plate") { + dxf_plate(); +} else if (LASER == "panel") { + intval_panel_laser(); +} else if (LASER == "panel_cover") { + intval_laser_panel_cover(true, ALL_RED=true); +} diff --git a/hardware/mount.scad b/hardware/mount.scad index 4fd6c24..2b4231d 100644 --- a/hardware/mount.scad +++ b/hardware/mount.scad @@ -89,7 +89,7 @@ module motor_key_120_reinforced_roller () { } hobbled_rod_120(40); //nut - translate([5, 0, 0]) cube([2.5, 5.25, 42], center = true); + translate([5, 0, 0]) cube([2.5 + .5, 5.25 + .5, 42], center = true); //half //translate([0, 50, 0]) cube([100, 100, 100], center = true); } @@ -205,8 +205,8 @@ module motor_mount_bottom () { translate([2.5, 19.5, 0]) cylinder(r=10/2, h = 60, center=true); // hole for panel bolt translate([22.5, 19.5, 0]) cube([40, 40, 60], center = true); //remove front entirely translate([-6.5, 0, 7.5]) { - translate([0, screw_distance/2, 0]) sphere(r=screw_d, center = true); - translate([0, -screw_distance/2, 0]) sphere(r=screw_d, center = true); + translate([0, screw_distance/2, 0]) sphere(r=screw_d); + translate([0, -screw_distance/2, 0]) sphere(r=screw_d); } } translate ([-one_to_one_x, -one_to_one_y, 0]) bolt_holder([mm_x[0], mm_y[0], -shelf_h / 2], mm_r[0], height - shelf_h, mm_l[0], tight = 0.2); //Bottom bolt holder @@ -255,14 +255,8 @@ module motor_mount_bottom () { microswitch_holder(); bolt_holder([mm_x[2], mm_y[2], ((height - shelf_h)/ 2) + 3.75], 0, height - shelf_h - 4, 6); //bottom left mount bolt_holder([mm_x[3], mm_y[3], ((height - shelf_h)/ 2) + 3.75], 180, height - shelf_h - 4, 6); //bottom right mount - if (DECOYS) { - difference () { - translate([35, 0 , 0]) decoys(44, 8, 6); - } - translate([0, 0, 8]) cube([4, 4, 4], center = true); - translate([40, 55, 8]) cube([4, 4, 4], center = true); - } } + module bolt_holder (position = [0, 0, 0], rotate_z = 0, h = 17, length = 4.5, hole = true, tight = 0) { bolt_r = 6; diff --git a/hardware/parseVars.sh b/hardware/parseVars.sh new file mode 100644 index 0000000..a552c10 --- /dev/null +++ b/hardware/parseVars.sh @@ -0,0 +1,17 @@ +#!/bin/bash + +STOPWORD="${1}" +FILE=$(mktemp) +TMPFILE=$(mktemp) + +cat intval3.scad | grep -e "${STOPWORD} ==" | awk -F'== "' '{print $2}' | awk -F'"' '{print $1}' > ${TMPFILE} + +if [[ "${STOPWORD}" == "MODEL" ]]; then + cat ${TMPFILE} | sed 's/^/.\/stl\/intval3_/' | sed 's/$/.stl/' > ${FILE} +elif [[ "${STOPWORD}" == "LASER" ]]; then + cat ${TMPFILE} | sed 's/^/.\/dxf\/intval3_/' | sed 's/$/.dxf/' > ${FILE} +fi + +rm -f ${TMPFILE} +cat ${FILE} | tr '\n' ' ' +rm -f ${FILE} \ No newline at end of file