summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteven <steven.vasilogianis@gmail.com>2022-03-14 16:59:16 -0400
committerSteven <steven.vasilogianis@gmail.com>2022-03-14 16:59:16 -0400
commite4170626e045a77fdc5528ccd6df55305f74421c (patch)
treed3b18ceed45da2a5f370f5c322dd78092f12484e
parentb3c0f071d5cb4184fcc5b9e3cdee2d9afc3683f6 (diff)
reorder some text
-rw-r--r--README.md137
1 files changed, 124 insertions, 13 deletions
diff --git a/README.md b/README.md
index a50cfd6..10a8611 100644
--- a/README.md
+++ b/README.md
@@ -11,10 +11,11 @@ Side Part:
11::: 11:::
12 12
133D printable parametric cubbies to store your 3D things. There are two distinct 133D printable parametric cubbies to store your 3D things. There are two distinct
14parts — a `bottom` and a `side` — that are generated to the dimensions of your 14shapes — a `bottom` and a `side` — that are generated to the dimensions of your
15things, then 3D printed and assembled into modular storage units. The parts are 15things, 3D printed, then assembled into modular storage units. The parts are
16optimized for printing as they are made of sparse structures to save material, 16optimized for printing by using [sparse
17and lay flat on the print bed. 17structures](https://github.com/revarbat/BOSL2/wiki/walls.scad#module-sparse_strut)
18(to save material) that lay flat on the print bed (for ease of printing).
18 19
19## Pictures ## 20## Pictures ##
20 21
@@ -40,23 +41,28 @@ and lay flat on the print bed.
40 41
41### 🚫 Do NOT Scale in a Slicer 🚫 ### 42### 🚫 Do NOT Scale in a Slicer 🚫 ###
42 43
43All models should be generated by specifying the parameters `cubby_width`, 44All models should be generated by specifying, at minimum, the parameters
44`cubby_depth`, and `cubby_height` in `cubbies.scad` (ways to do this are 45`cubby_width`, `cubby_depth`, and `cubby_height` in `cubbies.scad` (ways to do
45described below.) The dovetail joints are generated to a constant size 46this are described below.) The dovetail joints are generated to a constant size
46(controlled through the parameters `tab_width`, `tab_padding`, and 47(controlled through the parameters `tab_width`, `tab_padding`, and
47`tab_tolerance`) and should not be expected to fit after being scaled. Cubbies 48`tab_tolerance`) and should not be expected to fit after being scaled. Cubbies
48can be generated in in one of the following ways: 49can be generated in in one of the following ways:
49 50
50 * Using the Thingiverse Customizer 51 * Using the Thingiverse Customizer
51 52
52 * Using `Openscad` -- either by using its builtin customizer (choose 53 * Using [OpenScad](https://openscad.org "Homepage for OpenSCAD \"The
53 `Window -> Customizer` from the menu bar if it is not visible), or by 54 Programmers Solid 3D Cad Modeller\"") -- either by using its builtin
54 modifying the variables at the top of the `cubbies.scad` file. 55 customizer (choose `Window -> Customizer` from the menu bar if it is not
56 visible), or by modifying the variables at the top of the `cubbies.scad`
57 file. As mentioned above, the minimum paramaters to generate a custom sized
58 cubby are `cubby_width`, `cubby_depth`, and `cubby_height`. (Even those
59 arguments can be omitted, and your cubby will be whatever abritrary size I
60 decided as defaults (`40`,`120`,`90`).)
55 61
56 * There are two scripts for generating cubbies from the commandline: 62 * There are two scripts for generating cubbies from the commandline:
57 `cubbies.sh` (run `./cubbies.sh -h` for details) can generate entire sets of 63 `cubbies.sh` (run [`./cubbies.sh -h` for details](#cubbies.sh) can generate
58 cubbies, and `shopenscad.sh` (run `./shopenscad.sh -h` for details) 64 entire sets of cubbies, and `shopenscad.sh` (run `./shopenscad.sh -h` for
59 generates individual parts. 65 details[^1]) generates individual parts.
60 66
61For a single cubby, you will need to print the side piece twice, and the bottom 67For a single cubby, you will need to print the side piece twice, and the bottom
62piece once. To add additional cubbies, print one bottom and one side. The bottom 68piece once. To add additional cubbies, print one bottom and one side. The bottom
@@ -191,6 +197,106 @@ pieces).
191- Venmo: <https://venmo.com/u/Steven-Vasilogianis> 197- Venmo: <https://venmo.com/u/Steven-Vasilogianis>
192- CashApp: <https://cash.app/$svasi> 198- CashApp: <https://cash.app/$svasi>
193 199
200## Shell Scripts ##
201
202### cubbies.sh ###
203
204```
205$ ./cubbies.sh -h
206./cubbies.sh: generate sets of cubbies. You will need print the side piece twice for your
207first bottom piece, then a single side piece for each additional bottom piece.
208
209Usage:
210./cubbies.sh cubby-depth cubby-height cubby-width1 [cubby-width2 ... cubby-widthN]
211
212Examples:
213
214 ./cubbies.sh 150 90 20
215
216 Generates two total pieces: a side piece (150mm depth, 90mm height) and a
217 bottom piece (150mm depth and 20mm width). You will need to print the side
218 piece twice and bottom piece once.
219
220 ./cubbies.sh 180 120 20 30 35
221
222 Generates four total pieces, which can be assembled to form a row of
223 cubbies: one side piece (180mm depth, 120mm height) and three bottom pieces,
224 with widths of 20mm, 30mm, and 35mm (and each sharing the same depth of
225 180mm). The side piece will need to be printed 4 times, and each bottom
226 piece printed once.
227
228 thickness=3 strut_thickness=4 ./cubbies.sh 200 140 20
229
230 You can override any of the other variables from your scad file by passing
231 them into ./cubbies.sh in this manner.
232```
233
234### shopenscad.sh ###
235
236```
237$ ./shopenscad.sh -h
238./shopenscad.sh: parse and execute OpenSCAD files, allowing default variables from input scad
239 to be overridden with values supplied from the shell. (The parsing of scad
240 files is done from the shell mostly with sed, and is very primitive)
241
242Usage: ./shopenscad.sh [-h] [-n] [-p] [-i] [-o OUTPUT-FILENAME] INPUT.scad
243
244 -h, --help display this help
245 -p, --print-vars print variables parsed from INPUT.scad
246 -i, --interactive show output command and query for execution
247 -n, --no-act show output command, do not execute
248 -s, --shell-skel output a skeleton shell script for generating models
249 -o, --output-filename Specify an output filename. The following variables are
250 available to you:
251
252 $VALUES - all values from INPUT.scad. This is the
253 default (-o '${VALUES}.stl'):
254 cube-15-10-5.stl
255
256 $ALL - all variable names and values from INPUT.scad
257 (-o '${ALL}.stl'):
258 shape=cube,width=15,height=10,depth=5.stl
259
260 Additionally, all variables parsed from INPUT.scad
261 are available in the associatve array , e.g.:
262 -o '${SCAD[part]}.stl'
263
264Usage examples:
265
266 1) Run openscad with default values from input scad file:
267
268 $ ./shopenscad.sh input.scad
269
270 2) You can override variables in the input file with variables passed in
271 through the shell; this will override "part" and "cubby_width"
272 paramaters from input scad file. (Note that if the part is a string,
273 you need to include quotes.):
274
275 $ cubby_width=200 part='"bottom"' ./shopenscad.sh input.scad
276
277
278 3) Generate multiple models:
279
280 $ for w in 250 300 350 400; do
281 cubby_width="" part="bottom" ./shopenscad.sh cubbies.scad
282 done
283```
284
285### test_fits.sh ###
286
287```
288$ ./test_fits.sh -h
289Usage:
290./test_fits.sh
291./test_fits.sh [depth] [tolerance1 tolerance2 .. toleranceN]
292
293By default five test fit pieces are generated with a length of 120mm at the
294tolerances 0.1mm, 0.2mm, 0.3mm, 0.4mm, and 0.5mm.
295
296Over ride the defaults by supplying paramaters; the first parameter the depth and the rest are
297taken as tolerances.
298```
299
194## GPLv3 License ## 300## GPLv3 License ##
195 301
196Copyright (C) Steven Vasilogianis 302Copyright (C) Steven Vasilogianis
@@ -200,3 +306,8 @@ the terms of the GNU General Public License as published by the Free Software
200Foundation, either version 3 of the License, or (at your option) any later 306Foundation, either version 3 of the License, or (at your option) any later
201version. 307version.
202 308
309[^1]: OpenSCAD already allows you to generate models with varying paramaters
310through, e.g., `OpenSCAD -D "param1=100" -D "param2=10" scadfile.scad -o
311output.stl`. Now you're going to want to change the output.stl filename to avoid
312overwriting a previously generated model; generally, the information going into
313your variables is useful to have in the output filename.