diff options
author | Steven <steven.vasilogianis@gmail.com> | 2022-03-14 16:59:16 -0400 |
---|---|---|
committer | Steven <steven.vasilogianis@gmail.com> | 2022-03-14 16:59:16 -0400 |
commit | e4170626e045a77fdc5528ccd6df55305f74421c (patch) | |
tree | d3b18ceed45da2a5f370f5c322dd78092f12484e | |
parent | b3c0f071d5cb4184fcc5b9e3cdee2d9afc3683f6 (diff) |
reorder some text
-rw-r--r-- | README.md | 137 |
1 files changed, 124 insertions, 13 deletions
@@ -11,10 +11,11 @@ Side Part: | |||
11 | ::: | 11 | ::: |
12 | 12 | ||
13 | 3D printable parametric cubbies to store your 3D things. There are two distinct | 13 | 3D printable parametric cubbies to store your 3D things. There are two distinct |
14 | parts — a `bottom` and a `side` — that are generated to the dimensions of your | 14 | shapes — a `bottom` and a `side` — that are generated to the dimensions of your |
15 | things, then 3D printed and assembled into modular storage units. The parts are | 15 | things, 3D printed, then assembled into modular storage units. The parts are |
16 | optimized for printing as they are made of sparse structures to save material, | 16 | optimized for printing by using [sparse |
17 | and lay flat on the print bed. | 17 | structures](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 | ||
43 | All models should be generated by specifying the parameters `cubby_width`, | 44 | All 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 |
45 | described below.) The dovetail joints are generated to a constant size | 46 | this 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 |
48 | can be generated in in one of the following ways: | 49 | can 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 | ||
61 | For a single cubby, you will need to print the side piece twice, and the bottom | 67 | For a single cubby, you will need to print the side piece twice, and the bottom |
62 | piece once. To add additional cubbies, print one bottom and one side. The bottom | 68 | piece 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 | ||
207 | first bottom piece, then a single side piece for each additional bottom piece. | ||
208 | |||
209 | Usage: | ||
210 | ./cubbies.sh cubby-depth cubby-height cubby-width1 [cubby-width2 ... cubby-widthN] | ||
211 | |||
212 | Examples: | ||
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 | |||
242 | Usage: ./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 | |||
264 | Usage 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 | ||
289 | Usage: | ||
290 | ./test_fits.sh | ||
291 | ./test_fits.sh [depth] [tolerance1 tolerance2 .. toleranceN] | ||
292 | |||
293 | By default five test fit pieces are generated with a length of 120mm at the | ||
294 | tolerances 0.1mm, 0.2mm, 0.3mm, 0.4mm, and 0.5mm. | ||
295 | |||
296 | Over ride the defaults by supplying paramaters; the first parameter the depth and the rest are | ||
297 | taken as tolerances. | ||
298 | ``` | ||
299 | |||
194 | ## GPLv3 License ## | 300 | ## GPLv3 License ## |
195 | 301 | ||
196 | Copyright (C) Steven Vasilogianis | 302 | Copyright (C) Steven Vasilogianis |
@@ -200,3 +306,8 @@ the terms of the GNU General Public License as published by the Free Software | |||
200 | Foundation, either version 3 of the License, or (at your option) any later | 306 | Foundation, either version 3 of the License, or (at your option) any later |
201 | version. | 307 | version. |
202 | 308 | ||
309 | [^1]: OpenSCAD already allows you to generate models with varying paramaters | ||
310 | through, e.g., `OpenSCAD -D "param1=100" -D "param2=10" scadfile.scad -o | ||
311 | output.stl`. Now you're going to want to change the output.stl filename to avoid | ||
312 | overwriting a previously generated model; generally, the information going into | ||
313 | your variables is useful to have in the output filename. | ||