Work in progress of adding Makefile to build all OpenSCAD models for printing. Based off work in intval2 project with a slightly more automated approach. Hopefully can massage the parseVars.sh script into a single command within the Makefile.
This commit is contained in:
parent
ca9ff6b621
commit
561bfd784c
2
LICENSE
2
LICENSE
|
@ -1,6 +1,6 @@
|
||||||
MIT License
|
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
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
|
|
@ -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)))\" $<
|
|
@ -124,14 +124,4 @@ module reference_projector_shaft () {
|
||||||
cube([60, 60, 3], center = true);
|
cube([60, 60, 3], center = true);
|
||||||
bearing_laser(hole=false);
|
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();
|
|
|
@ -30,7 +30,7 @@ module intval_panel_laser () {
|
||||||
difference () {
|
difference () {
|
||||||
translate ([0, 0, 8.5]) {
|
translate ([0, 0, 8.5]) {
|
||||||
union () {
|
union () {
|
||||||
translate([12 - 10, , 0]) {
|
translate([12 - 10, 0]) {
|
||||||
rotate([0, 0, -13]) {
|
rotate([0, 0, -13]) {
|
||||||
rounded_cube([panel_2_x + 20 + 20, panel_2_y, 25.4/8], d = 20, center = true);
|
rounded_cube([panel_2_x + 20 + 20, panel_2_y, 25.4/8], d = 20, center = true);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
include <./case.scad>
|
include <./case.scad>
|
||||||
include <./mount.scad>
|
include <./mount.scad>
|
||||||
include <./plunger.scad>
|
include <./plunger.scad>
|
||||||
|
//include <./anyeye_revere.scad>
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
||||||
INTVAL 3
|
INTVAL 3
|
||||||
|
@ -36,29 +38,43 @@ module exploded_view () {
|
||||||
translate([0, 0, -10]) intval_laser_standoffs_alt();
|
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();
|
//rotate([0, 180, 0]) key_cap();
|
||||||
//geared_motor_mount_120();
|
|
||||||
//motor_key_120();
|
|
||||||
//plunger_plate();
|
|
||||||
//plunger();
|
//plunger();
|
||||||
//rotate([0, 180, 0]) plunger_top();
|
//plunger_top();
|
||||||
//motor_cap(false);
|
//motor_cap(false);
|
||||||
//rotate([0, 180, 0]) motor_cap_120(false);
|
//rotate([0, 180, 0]) motor_cap_120(false);
|
||||||
//translate([0, 0, 39 / 2 + 5.75]) bolt_guide();
|
//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_alt();
|
||||||
//intval_laser_standoffs_plate_alt();
|
//intval_laser_standoffs_plate_alt();
|
||||||
|
|
||||||
//exploded_view();
|
LASER = "dxf_plate";
|
||||||
//stl_plate();
|
if (LASER == "laser_plate") {
|
||||||
//dxf_plate();
|
dxf_plate();
|
||||||
|
} else if (LASER == "panel") {
|
||||||
|
intval_panel_laser();
|
||||||
|
} else if (LASER == "panel_cover") {
|
||||||
|
intval_laser_panel_cover(true, ALL_RED=true);
|
||||||
|
}
|
||||||
|
|
|
@ -89,7 +89,7 @@ module motor_key_120_reinforced_roller () {
|
||||||
}
|
}
|
||||||
hobbled_rod_120(40);
|
hobbled_rod_120(40);
|
||||||
//nut
|
//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
|
//half
|
||||||
//translate([0, 50, 0]) cube([100, 100, 100], center = true);
|
//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([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([22.5, 19.5, 0]) cube([40, 40, 60], center = true); //remove front entirely
|
||||||
translate([-6.5, 0, 7.5]) {
|
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);
|
||||||
translate([0, -screw_distance/2, 0]) sphere(r=screw_d, center = true);
|
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
|
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();
|
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[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
|
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) {
|
module bolt_holder (position = [0, 0, 0], rotate_z = 0, h = 17, length = 4.5, hole = true, tight = 0) {
|
||||||
bolt_r = 6;
|
bolt_r = 6;
|
||||||
|
|
||||||
|
|
|
@ -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}
|
Loading…
Reference in New Issue