diff --git a/docs/DesignOfThreadlib.md b/docs/DesignOfThreadlib.md index 62e5281..b831754 100644 --- a/docs/DesignOfThreadlib.md +++ b/docs/DesignOfThreadlib.md @@ -20,16 +20,51 @@ where - Dsup: Recommended diameter of support structure of the thread (i.e., of cylinder for external thread and hole for internal thread) - profile: A vector of 2D [delta_r, z]-vectors describing the shape of the thread -Let's look at an example: +Let's look at an example - the M4: - ["M4-int", [0.7, -2.1095, 4.1095, - [ - [0, 0.3465], - [0, -0.3465], - [0.43304671, -0.09648036], - [0.43304671, 0.09648036] - ]]] + ["M4-int", [0.7, -2.1095, 4.1095, [[0, 0.3465], [0, -0.3465], [0.43304671, -0.09648036], [0.43304671, 0.09648036]]]], + ["M4-ext", [0.7, 1.5010, 3.1110, [[0, -0.3124], [0, 0.3124], [0.4530, 0.0509], [0.4530, -0.0509] ]]], +## Overview + +While each thread profile is defined individually, they have a naming convention ( -int, -ext ) and are meant to work togenter. The following is an overview of how they relate. + +![Profile Overview](img_prep/8_M4_Nut_Bolt.png) + +The designator is the name of the thread "M4-int" or "M4-ext". The "-int" and "-ext" are not necessary to create a thread, it is encouraged to create them as they are used with the helper functions - bolt, nut and tap - and an error will occure if the coresponding "-ext" ( for bolt ) or "-int" ( for nut and tap ) profiles do not exist. + +- The Bolt is the union of the "-ext" thread and a cylynder of diameter "Dsup". +- The Tap is the difference of a cyliner of diamter "Dsup" minus "-int" thread. +- The Nut is the cylyder of diameter Douter minus the Tap. + +This arrangement of two profiles allows us to add in tollerences so the bolt can properly fit into the tap/nut . + +The following is the `thread("M4-int")`. The INT is used to designate a thread on the INSIDE of something. For the parameters, Rrot is the radius of rotation. In the image, this coresponds to the outer radius of the thread. +![Profile Overview](img_prep/1_M4-int.png) + +The following illustrates the thread with the supporting cylinder drawn in. The Diamter of the supporting cylinder, in the case of the interior thread, will be smaller than than the diameter (2xRrot) of the interior thread. + +![Profile Overview](img_prep/2_Dsup_M4-int.png) + +If we take the difference of the supporting cylinder and the thread, you get the `tap("M4")`. When using the tap method, the `-int`is added to the base designator. This means the diameter of the tap will be Dsup. + +![Profile Overview](img_prep/3_TAP_M4.png) + +This is the tap extended to make it obvious. +![Profile Overview](img_prep/4_TAP_M4_longer.png) + +The following displays the cylinder drawn by the douter paramter in the `nut("M4", douter=6)` module, with the M4 tap illustrated. Again, notice how we do not request "-int", it is appended to the designator. + +![Profile Overview](img_prep/5_NUT_Douter_TAPed.png) + +The difference of the douter cylinder and the tap will result in nut from `nut("M4", douter=6)`. +![Profile Overview](img_prep/6_NUT_M4.png) + +We can now add the thread, `thread("M4-ext")`, "-ext" as it is on the exteririor of a cylynder. In this case the Rrot of the profile is the interior surface of the thread, and should be smaller than the diameter of the supporting cylinder. +![Profile Overview](img_prep/7_M4-ext.png) + +Finally, if we add the support cylinder - dsup - we get the resulting `bolt("M4")`. The Dsup parameter in this case is the diameter of the thread valley of the bolt. +![Profile Overview](img_prep/8_M4_Nut_Bolt.png) ## Definition of profile diff --git a/docs/img_prep/1_M4-int.png b/docs/img_prep/1_M4-int.png new file mode 100644 index 0000000..33c2e77 Binary files /dev/null and b/docs/img_prep/1_M4-int.png differ diff --git a/docs/img_prep/1_M4-int.scad b/docs/img_prep/1_M4-int.scad new file mode 100644 index 0000000..3334143 --- /dev/null +++ b/docs/img_prep/1_M4-int.scad @@ -0,0 +1,73 @@ + +use + +//rotate([15,0,0]) + +difference () { + step_1(); + translate([-5,-3,-5]) cube( [10,3,10], center=false); +} + + +// Thread for interior surfaces +module step_1() { + thread("M4-int", turns=2); +} + +// Overlap with diameter +module step_2() { + #translate([0,0,-0.5]) color([1,0,0]) cylinder(h=2,d1=4.1095,d2=4.1095,$fn=100); + thread("M4-int", turns=2); +} + +// Create TAP to porper diameter +module step_3() { + difference() { + translate([0,0,-0.5]) color([1,0,0]) cylinder(h=2,d1=4.1095,d2=4.1095,$fn=100); + thread("M4-int", turns=2); + } +} + +// Show full tap +module step_4() { + difference() { + translate([0,0,-1.0]) color([1,0,0]) cylinder(h=4,d1=4.1095,d2=4.1095,$fn=100); + thread("M4-int", turns=2); + } +} + +// Show nut and tap +module step_5() { + translate([0,0,-0.5]) color([1,0,0]) cylinder(h=2,d1=6,d2=6,$fn=100); + #difference() { + translate([0,0,-1.0]) color([1,0,0]) cylinder(h=4,d1=4.1095,d2=4.1095,$fn=100); + thread("M4-int", turns=2); + } +} + +// Create NUT from douter - TAP +module step_6() { + difference() { + translate([0,0,-0.5]) color([1,0,0]) cylinder(h=2,d1=6,d2=6,$fn=100); + difference() { + translate([0,0,-1.0]) color([1,0,0]) cylinder(h=4,d1=4.1095,d2=4.1095,$fn=100); + thread("M4-int", turns=2); + } + } +} + +// Thread for exterior surfaces +module step_7() { + step_6(); + thread("M4-ext", turns=2); +} + +// Add support material to create BOLT +module step_8() { + step_6(); + thread("M4-ext", turns=2); + translate([0,0,-0.5]) color([1,0,0]) cylinder(h=2,d1=3.1110,d2=3.1110,$fn=100); +} + + + diff --git a/docs/img_prep/2_Dsup_M4-int.png b/docs/img_prep/2_Dsup_M4-int.png new file mode 100644 index 0000000..0b68d95 Binary files /dev/null and b/docs/img_prep/2_Dsup_M4-int.png differ diff --git a/docs/img_prep/2_Dsup_M4-int.scad b/docs/img_prep/2_Dsup_M4-int.scad new file mode 100644 index 0000000..bab7a79 --- /dev/null +++ b/docs/img_prep/2_Dsup_M4-int.scad @@ -0,0 +1,73 @@ + +use + +//rotate([15,0,0]) + +difference () { + step_2(); + translate([-5,-3,-5]) cube( [10,3,10], center=false); +} + + +// Thread for interior surfaces +module step_1() { + thread("M4-int", turns=2); +} + +// Overlap with diameter +module step_2() { + #translate([0,0,-0.5]) color([1,0,0]) cylinder(h=2,d1=4.1095,d2=4.1095,$fn=100); + thread("M4-int", turns=2); +} + +// Create TAP to porper diameter +module step_3() { + difference() { + translate([0,0,-0.5]) color([1,0,0]) cylinder(h=2,d1=4.1095,d2=4.1095,$fn=100); + thread("M4-int", turns=2); + } +} + +// Show full tap +module step_4() { + difference() { + translate([0,0,-1.0]) color([1,0,0]) cylinder(h=4,d1=4.1095,d2=4.1095,$fn=100); + thread("M4-int", turns=2); + } +} + +// Show nut and tap +module step_5() { + translate([0,0,-0.5]) color([1,0,0]) cylinder(h=2,d1=6,d2=6,$fn=100); + #difference() { + translate([0,0,-1.0]) color([1,0,0]) cylinder(h=4,d1=4.1095,d2=4.1095,$fn=100); + thread("M4-int", turns=2); + } +} + +// Create NUT from douter - TAP +module step_6() { + difference() { + translate([0,0,-0.5]) color([1,0,0]) cylinder(h=2,d1=6,d2=6,$fn=100); + difference() { + translate([0,0,-1.0]) color([1,0,0]) cylinder(h=4,d1=4.1095,d2=4.1095,$fn=100); + thread("M4-int", turns=2); + } + } +} + +// Thread for exterior surfaces +module step_7() { + step_6(); + thread("M4-ext", turns=2); +} + +// Add support material to create BOLT +module step_8() { + step_6(); + thread("M4-ext", turns=2); + translate([0,0,-0.5]) color([1,0,0]) cylinder(h=2,d1=3.1110,d2=3.1110,$fn=100); +} + + + diff --git a/docs/img_prep/3_TAP_M4.png b/docs/img_prep/3_TAP_M4.png new file mode 100644 index 0000000..304fd6b Binary files /dev/null and b/docs/img_prep/3_TAP_M4.png differ diff --git a/docs/img_prep/3_TAP_M4.scad b/docs/img_prep/3_TAP_M4.scad new file mode 100644 index 0000000..e02a808 --- /dev/null +++ b/docs/img_prep/3_TAP_M4.scad @@ -0,0 +1,73 @@ + +use + +//rotate([15,0,0]) + +difference () { + step_3(); + translate([-5,-3,-5]) cube( [10,3,10], center=false); +} + + +// Thread for interior surfaces +module step_1() { + thread("M4-int", turns=2); +} + +// Overlap with diameter +module step_2() { + #translate([0,0,-0.5]) color([1,0,0]) cylinder(h=2,d1=4.1095,d2=4.1095,$fn=100); + thread("M4-int", turns=2); +} + +// Create TAP to porper diameter +module step_3() { + difference() { + translate([0,0,-0.5]) color([1,0,0]) cylinder(h=2,d1=4.1095,d2=4.1095,$fn=100); + thread("M4-int", turns=2); + } +} + +// Show full tap +module step_4() { + difference() { + translate([0,0,-1.0]) color([1,0,0]) cylinder(h=4,d1=4.1095,d2=4.1095,$fn=100); + thread("M4-int", turns=2); + } +} + +// Show nut and tap +module step_5() { + translate([0,0,-0.5]) color([1,0,0]) cylinder(h=2,d1=6,d2=6,$fn=100); + #difference() { + translate([0,0,-1.0]) color([1,0,0]) cylinder(h=4,d1=4.1095,d2=4.1095,$fn=100); + thread("M4-int", turns=2); + } +} + +// Create NUT from douter - TAP +module step_6() { + difference() { + translate([0,0,-0.5]) color([1,0,0]) cylinder(h=2,d1=6,d2=6,$fn=100); + difference() { + translate([0,0,-1.0]) color([1,0,0]) cylinder(h=4,d1=4.1095,d2=4.1095,$fn=100); + thread("M4-int", turns=2); + } + } +} + +// Thread for exterior surfaces +module step_7() { + step_6(); + thread("M4-ext", turns=2); +} + +// Add support material to create BOLT +module step_8() { + step_6(); + thread("M4-ext", turns=2); + translate([0,0,-0.5]) color([1,0,0]) cylinder(h=2,d1=3.1110,d2=3.1110,$fn=100); +} + + + diff --git a/docs/img_prep/4_TAP_M4_longer.png b/docs/img_prep/4_TAP_M4_longer.png new file mode 100644 index 0000000..10df338 Binary files /dev/null and b/docs/img_prep/4_TAP_M4_longer.png differ diff --git a/docs/img_prep/4_TAP_M4_longer.scad b/docs/img_prep/4_TAP_M4_longer.scad new file mode 100644 index 0000000..3cce2bf --- /dev/null +++ b/docs/img_prep/4_TAP_M4_longer.scad @@ -0,0 +1,73 @@ + +use + +//rotate([15,0,0]) + +difference () { + step_4(); + translate([-5,-3,-5]) cube( [10,3,10], center=false); +} + + +// Thread for interior surfaces +module step_1() { + thread("M4-int", turns=2); +} + +// Overlap with diameter +module step_2() { + #translate([0,0,-0.5]) color([1,0,0]) cylinder(h=2,d1=4.1095,d2=4.1095,$fn=100); + thread("M4-int", turns=2); +} + +// Create TAP to porper diameter +module step_3() { + difference() { + translate([0,0,-0.5]) color([1,0,0]) cylinder(h=2,d1=4.1095,d2=4.1095,$fn=100); + thread("M4-int", turns=2); + } +} + +// Show full tap +module step_4() { + difference() { + translate([0,0,-1.0]) color([1,0,0]) cylinder(h=4,d1=4.1095,d2=4.1095,$fn=100); + thread("M4-int", turns=2); + } +} + +// Show nut and tap +module step_5() { + translate([0,0,-0.5]) color([1,0,0]) cylinder(h=2,d1=6,d2=6,$fn=100); + #difference() { + translate([0,0,-1.0]) color([1,0,0]) cylinder(h=4,d1=4.1095,d2=4.1095,$fn=100); + thread("M4-int", turns=2); + } +} + +// Create NUT from douter - TAP +module step_6() { + difference() { + translate([0,0,-0.5]) color([1,0,0]) cylinder(h=2,d1=6,d2=6,$fn=100); + difference() { + translate([0,0,-1.0]) color([1,0,0]) cylinder(h=4,d1=4.1095,d2=4.1095,$fn=100); + thread("M4-int", turns=2); + } + } +} + +// Thread for exterior surfaces +module step_7() { + step_6(); + thread("M4-ext", turns=2); +} + +// Add support material to create BOLT +module step_8() { + step_6(); + thread("M4-ext", turns=2); + translate([0,0,-0.5]) color([1,0,0]) cylinder(h=2,d1=3.1110,d2=3.1110,$fn=100); +} + + + diff --git a/docs/img_prep/5_NUT_Douter_TAPed.png b/docs/img_prep/5_NUT_Douter_TAPed.png new file mode 100644 index 0000000..f14d83f Binary files /dev/null and b/docs/img_prep/5_NUT_Douter_TAPed.png differ diff --git a/docs/img_prep/5_NUT_Douter_TAPed.scad b/docs/img_prep/5_NUT_Douter_TAPed.scad new file mode 100644 index 0000000..0ece1ae --- /dev/null +++ b/docs/img_prep/5_NUT_Douter_TAPed.scad @@ -0,0 +1,73 @@ + +use + +//rotate([15,0,0]) + +difference () { + step_5(); + translate([-5,-3,-5]) cube( [10,3,10], center=false); +} + + +// Thread for interior surfaces +module step_1() { + thread("M4-int", turns=2); +} + +// Overlap with diameter +module step_2() { + #translate([0,0,-0.5]) color([1,0,0]) cylinder(h=2,d1=4.1095,d2=4.1095,$fn=100); + thread("M4-int", turns=2); +} + +// Create TAP to porper diameter +module step_3() { + difference() { + translate([0,0,-0.5]) color([1,0,0]) cylinder(h=2,d1=4.1095,d2=4.1095,$fn=100); + thread("M4-int", turns=2); + } +} + +// Show full tap +module step_4() { + difference() { + translate([0,0,-1.0]) color([1,0,0]) cylinder(h=4,d1=4.1095,d2=4.1095,$fn=100); + thread("M4-int", turns=2); + } +} + +// Show nut and tap +module step_5() { + translate([0,0,-0.5]) color([1,0,0]) cylinder(h=2,d1=6,d2=6,$fn=100); + #difference() { + translate([0,0,-1.0]) color([1,0,0]) cylinder(h=4,d1=4.1095,d2=4.1095,$fn=100); + thread("M4-int", turns=2); + } +} + +// Create NUT from douter - TAP +module step_6() { + difference() { + translate([0,0,-0.5]) color([1,0,0]) cylinder(h=2,d1=6,d2=6,$fn=100); + difference() { + translate([0,0,-1.0]) color([1,0,0]) cylinder(h=4,d1=4.1095,d2=4.1095,$fn=100); + thread("M4-int", turns=2); + } + } +} + +// Thread for exterior surfaces +module step_7() { + step_6(); + thread("M4-ext", turns=2); +} + +// Add support material to create BOLT +module step_8() { + step_6(); + thread("M4-ext", turns=2); + translate([0,0,-0.5]) color([1,0,0]) cylinder(h=2,d1=3.1110,d2=3.1110,$fn=100); +} + + + diff --git a/docs/img_prep/6_NUT_M4.png b/docs/img_prep/6_NUT_M4.png new file mode 100644 index 0000000..8ec5bd1 Binary files /dev/null and b/docs/img_prep/6_NUT_M4.png differ diff --git a/docs/img_prep/6_NUT_M4.scad b/docs/img_prep/6_NUT_M4.scad new file mode 100644 index 0000000..b29bb5d --- /dev/null +++ b/docs/img_prep/6_NUT_M4.scad @@ -0,0 +1,73 @@ + +use + +//rotate([15,0,0]) + +difference () { + step_6(); + translate([-5,-3,-5]) cube( [10,3,10], center=false); +} + + +// Thread for interior surfaces +module step_1() { + thread("M4-int", turns=2); +} + +// Overlap with diameter +module step_2() { + #translate([0,0,-0.5]) color([1,0,0]) cylinder(h=2,d1=4.1095,d2=4.1095,$fn=100); + thread("M4-int", turns=2); +} + +// Create TAP to porper diameter +module step_3() { + difference() { + translate([0,0,-0.5]) color([1,0,0]) cylinder(h=2,d1=4.1095,d2=4.1095,$fn=100); + thread("M4-int", turns=2); + } +} + +// Show full tap +module step_4() { + difference() { + translate([0,0,-1.0]) color([1,0,0]) cylinder(h=4,d1=4.1095,d2=4.1095,$fn=100); + thread("M4-int", turns=2); + } +} + +// Show nut and tap +module step_5() { + translate([0,0,-0.5]) color([1,0,0]) cylinder(h=2,d1=6,d2=6,$fn=100); + #difference() { + translate([0,0,-1.0]) color([1,0,0]) cylinder(h=4,d1=4.1095,d2=4.1095,$fn=100); + thread("M4-int", turns=2); + } +} + +// Create NUT from douter - TAP +module step_6() { + difference() { + translate([0,0,-0.5]) color([1,0,0]) cylinder(h=2,d1=6,d2=6,$fn=100); + difference() { + translate([0,0,-1.0]) color([1,0,0]) cylinder(h=4,d1=4.1095,d2=4.1095,$fn=100); + thread("M4-int", turns=2); + } + } +} + +// Thread for exterior surfaces +module step_7() { + step_6(); + thread("M4-ext", turns=2); +} + +// Add support material to create BOLT +module step_8() { + step_6(); + thread("M4-ext", turns=2); + translate([0,0,-0.5]) color([1,0,0]) cylinder(h=2,d1=3.1110,d2=3.1110,$fn=100); +} + + + diff --git a/docs/img_prep/7_M4-ext.png b/docs/img_prep/7_M4-ext.png new file mode 100644 index 0000000..86c8816 Binary files /dev/null and b/docs/img_prep/7_M4-ext.png differ diff --git a/docs/img_prep/7_M4-ext.scad b/docs/img_prep/7_M4-ext.scad new file mode 100644 index 0000000..9882fb5 --- /dev/null +++ b/docs/img_prep/7_M4-ext.scad @@ -0,0 +1,73 @@ + +use + +//rotate([15,0,0]) + +difference () { + step_7(); + translate([-5,-3,-5]) cube( [10,3,10], center=false); +} + + +// Thread for interior surfaces +module step_1() { + thread("M4-int", turns=2); +} + +// Overlap with diameter +module step_2() { + #translate([0,0,-0.5]) color([1,0,0]) cylinder(h=2,d1=4.1095,d2=4.1095,$fn=100); + thread("M4-int", turns=2); +} + +// Create TAP to porper diameter +module step_3() { + difference() { + translate([0,0,-0.5]) color([1,0,0]) cylinder(h=2,d1=4.1095,d2=4.1095,$fn=100); + thread("M4-int", turns=2); + } +} + +// Show full tap +module step_4() { + difference() { + translate([0,0,-1.0]) color([1,0,0]) cylinder(h=4,d1=4.1095,d2=4.1095,$fn=100); + thread("M4-int", turns=2); + } +} + +// Show nut and tap +module step_5() { + translate([0,0,-0.5]) color([1,0,0]) cylinder(h=2,d1=6,d2=6,$fn=100); + #difference() { + translate([0,0,-1.0]) color([1,0,0]) cylinder(h=4,d1=4.1095,d2=4.1095,$fn=100); + thread("M4-int", turns=2); + } +} + +// Create NUT from douter - TAP +module step_6() { + difference() { + translate([0,0,-0.5]) color([1,0,0]) cylinder(h=2,d1=6,d2=6,$fn=100); + difference() { + translate([0,0,-1.0]) color([1,0,0]) cylinder(h=4,d1=4.1095,d2=4.1095,$fn=100); + thread("M4-int", turns=2); + } + } +} + +// Thread for exterior surfaces +module step_7() { + step_6(); + thread("M4-ext", turns=2); +} + +// Add support material to create BOLT +module step_8() { + step_6(); + thread("M4-ext", turns=2); + translate([0,0,-0.5]) color([1,0,0]) cylinder(h=2,d1=3.1110,d2=3.1110,$fn=100); +} + + + diff --git a/docs/img_prep/8_M4_Nut_Bolt.png b/docs/img_prep/8_M4_Nut_Bolt.png new file mode 100644 index 0000000..5d89579 Binary files /dev/null and b/docs/img_prep/8_M4_Nut_Bolt.png differ diff --git a/docs/img_prep/8_M4_Nut_Bolt.scad b/docs/img_prep/8_M4_Nut_Bolt.scad new file mode 100644 index 0000000..d09e96e --- /dev/null +++ b/docs/img_prep/8_M4_Nut_Bolt.scad @@ -0,0 +1,73 @@ + +use + +//rotate([15,0,0]) + +difference () { + step_8(); + translate([-5,-3,-5]) cube( [10,3,10], center=false); +} + + +// Thread for interior surfaces +module step_1() { + thread("M4-int", turns=2); +} + +// Overlap with diameter +module step_2() { + #translate([0,0,-0.5]) color([1,0,0]) cylinder(h=2,d1=4.1095,d2=4.1095,$fn=100); + thread("M4-int", turns=2); +} + +// Create TAP to porper diameter +module step_3() { + difference() { + translate([0,0,-0.5]) color([1,0,0]) cylinder(h=2,d1=4.1095,d2=4.1095,$fn=100); + thread("M4-int", turns=2); + } +} + +// Show full tap +module step_4() { + difference() { + translate([0,0,-1.0]) color([1,0,0]) cylinder(h=4,d1=4.1095,d2=4.1095,$fn=100); + thread("M4-int", turns=2); + } +} + +// Show nut and tap +module step_5() { + translate([0,0,-0.5]) color([1,0,0]) cylinder(h=2,d1=6,d2=6,$fn=100); + #difference() { + translate([0,0,-1.0]) color([1,0,0]) cylinder(h=4,d1=4.1095,d2=4.1095,$fn=100); + thread("M4-int", turns=2); + } +} + +// Create NUT from douter - TAP +module step_6() { + difference() { + translate([0,0,-0.5]) color([1,0,0]) cylinder(h=2,d1=6,d2=6,$fn=100); + difference() { + translate([0,0,-1.0]) color([1,0,0]) cylinder(h=4,d1=4.1095,d2=4.1095,$fn=100); + thread("M4-int", turns=2); + } + } +} + +// Thread for exterior surfaces +module step_7() { + step_6(); + thread("M4-ext", turns=2); +} + +// Add support material to create BOLT +module step_8() { + step_6(); + thread("M4-ext", turns=2); + translate([0,0,-0.5]) color([1,0,0]) cylinder(h=2,d1=3.1110,d2=3.1110,$fn=100); +} + + + diff --git a/docs/img_prep/Makefile b/docs/img_prep/Makefile index 0125d80..0b0c673 100644 --- a/docs/img_prep/Makefile +++ b/docs/img_prep/Makefile @@ -1,6 +1,6 @@ os = /usr/local/bin/openscad opts = -imgs = bolt-M4.png nut-M12x0.5.png nutNbolt.png thread-G1o2-ext.png thread-G1o2-ext-10turns.png flexible.png tap.png +imgs = bolt-M4.png nut-M12x0.5.png nutNbolt.png thread-G1o2-ext.png thread-G1o2-ext-10turns.png flexible.png tap.png 1_M4-int.png 2_Dsup_M4-int.png 3_TAP_M4.png 4_TAP_M4_longer.png 5_NUT_Douter_TAPed.png 6_NUT_M4.png 7_M4-ext.png 8_M4_Nut_Bolt.png .PHONY: all all: $(imgs) @@ -26,7 +26,32 @@ flexible.png: flexible.scad tap.png: tap.scad $(os) $(opts) --D 'type="G1/2"' --D 'turns=5' --D 'higbee_arc=20' --camera=7,15.3,3.45,87,0,333,65 --imgsize=2048,2048 --projection=ortho -o $@ $< +# step by step building +1_M4-int.png: 1_M4-int.scad + $(os) $(opts) --camera=5,-15,7,0,0,1 --imgsize=2048,2048 --projection=ortho -o $@ $< + +2_Dsup_M4-int.png: 2_Dsup_M4-int.scad + $(os) $(opts) --camera=5,-15,7,0,0,1 --imgsize=2048,2048 --projection=ortho -o $@ $< + +3_TAP_M4.png: 3_TAP_M4.scad + $(os) $(opts) --camera=5,-15,7,0,0,1 --imgsize=2048,2048 --projection=ortho -o $@ $< + +4_TAP_M4_longer.png: 4_TAP_M4_longer.scad + $(os) $(opts) --camera=5,-15,7,0,0,1 --imgsize=2048,2048 --projection=ortho -o $@ $< + +5_NUT_Douter_TAPed.png: 5_NUT_Douter_TAPed.scad + $(os) $(opts) --camera=5,-15,7,0,0,1 --imgsize=2048,2048 --projection=ortho -o $@ $< + +6_NUT_M4.png: 6_NUT_M4.scad + $(os) $(opts) --camera=5,-15,7,0,0,1 --imgsize=2048,2048 --projection=ortho -o $@ $< + +7_M4-ext.png: 7_M4-ext.scad + $(os) $(opts) --camera=5,-15,7,0,0,1 --imgsize=2048,2048 --projection=ortho -o $@ $< + +8_M4_Nut_Bolt.png: 8_M4_Nut_Bolt.scad + $(os) $(opts) --camera=5,-15,7,0,0,1 --imgsize=2048,2048 --projection=ortho -o $@ $< .PHONY: clean clean: rm *.png +