The file 'Customizable Lightweight Small Jar/bottle With Screw Cap 3D Printer Model' is (stl,json,scad) file type, size is 17.2MB.
I've been packing for a week-long hike and needed a container for lip balm and salt; I wanted ones that weight less than those small travel containers available in drug stores and that are sturdier than zip bags. So I reworked my previous design to a fully customizable version.
The containers did well; although the screw cap is not airtight, the lip balm did not leak despite melting due to the heat.
You may just print the sample .stl
files, but I recommend you to load the .scad
file in OpenSCAD and use the customizer interface to tune the model to your needs. The parameter sets that I used are in the .json
file, in the format understood by OpenSCAD.
The main differences compared to similar models is that this container is highly customizable and uses less plastic (=less weight) for similar volumes.
──────────────────────────────────────
The design lets one customize the size of the item: the inner diameter at mouth of the container (iDia
) and the inner height of the container (iH
). If the diameter is large and the height is low, one gets a jar, if the height is on par or larger than the diameter, then one gets a bottle.
The bottom of the container can have a bigger diameter than the mouth by configuring bottomExtra
parameter, and the cross-section of the bottom can be either round, or be waved to have a configurable number of sides (by adding a sine wave of specified amplitude radially). waveCnt
and waveXY
configure this.
One can also choose how large part the side wall is straight (looking from the bottom). The upper portion of the side wall converges smoothly to the diameter of the mouth. midHFrac
, midRadiusFrac
and upRadiusFrac
configure this.
The cap is threaded; number of twists, number of threads and the height of the
threaded part is customizable. If one wants to, one can also change the polygon
that forms the cross-section of the thread; this however needs to be done in the.scad
file by hand, rather than in the customizer interface.
──────────────────────────────────────
Unless one changes the wall thickness, it's 1.2mm for vertical parts (wallXY
) and 0.6mm
for horizontal parts(wallZ
); I've used these dimensions for vertical parts since that
prints well as two perimeters with my 0.5mm nozzle and my XY size compensation
setting that I need to keep true to model dimensions. The 3 layers of 0.2mm
height form a sufficiently sturdy bottle/jar bottom and cap bottom. YMMV.
I printed my bottles and jars with clear PET-G, no supports, no brim/raft, with
0.5mm nozzle and 0.2mm layer.
Generic hints for printing:
──────────────────────────────────────
One can also generate from the .scad file a model suitable for vase mode printing. To this end, turn on vase_mode
and set wallXY
to desired external perimeter extrusion width.
I added this just for fun; one should keep in mind that the vase mode might yield too thin walls to consider the container sturdy.
(Vase mode was added on 11.09.2023.)
──────────────────────────────────────
Generic hints for customizing:
waveCnt
: most functional seem to be 0 (round), 1 (round with eccentric mouth), 2 (nutella-like shape), 4 (square), 6 for (hexagonal) and 8 (octagonal),waveXY
to see any effect of waveCnt
,$fn
, fn2
):$fn
makes the result smoother, so one has to balance it,$fn
to a value that is not a multiple of waveCnt
creates artefacts when the expression bottomExtra+sin(…)*waveXY
crosses zero.bottomExtra+waveXY
equal to 2*(wallXY+threadXY)
, then the jar/bottle in the widest vertical cut is as wide as the cap,bottomExtra-waveXY
equal to 2*(wallXY+threadXY)
, then the jar/bottle in the narrowest vertical cut is as wide as the cap,2*(wallXY+threadXY)
is equal to 3.9 by default.waveXY
; just test different values,midHFrac
creates "straight" bottles, zero midHFrac
creates fully rounded ones,upRadiusFrac
and midRadiusFrac
:twist
values are between 0.5 and 0.75; too many twists make opening the cap annoying,bottomExtra
/waveXY
parameters.Warning: there is little fool-proofing of the customizable parameters: if you
input ones that are not sane, you might end up with invalid, non-printable of
ill-functional container. It's pretty evident when something goes bad.
──────────────────────────────────────
Edit (2023.09.12): I added bogus 1e-10 translates and 1e-3 rotates in the .scad file here and there to generate cleaner models - previous .scad file generated some zero-width and zero-height chunks that did not affect print result, but caused prusa-slicer to see extra parts and report some model problems in vase mode. Additionally, I uploaded two rendered models of a bigger jars to be printed in vase mode (1mm extrusion). |
──────────────────────────────────────
Edit (2023.09.26): List of changes:
clearance
has been added; it adds some clearance between the cap and the jar/bottlethreadExtraH
has been moved up in the file so that it got available in the customizer.scad
outputs now the resulting outer dimensions.bottle_05ml_round.stl | 1.6MB | |
bottle_10ml_eccentric.stl | 874.2KB | |
bottle_10ml_square.stl | 1.8MB | |
bottle_15ml_flat.stl | 1.6MB | |
bottle_20ml_octagonal.stl | 2.1MB | |
bottle_25ml_heptagonal.stl | 5.0MB | |
bottle_25ml_triangular.stl | 2.4MB | |
jar_09ml_hexagonal.stl | 1.4MB | |
jar_12ml_hexagonal.stl | 2.0MB | |
jar_20ml_octagonal.stl | 1.7MB | |
krembox.json | 10.5KB | |
krembox.scad | 15.6KB | |
vase_mode_0.7mm_extrusion__bottle_10ml_square.stl | 1.9MB | |
vase_mode_0.8mm_extrusion__bottle_50ml_square.stl | 2.7MB | |
vase_mode_0.8mm_extrusion__bottle_50ml_square_v2.stl | 2.5MB | |
vase_mode_0.8mm_extrusion__volumetric_bottle_25ml.stl | 2.9MB | |
vase_mode_1.0mm_extrusion__bottle_150ml_octagonal.stl | 7.1MB | |
vase_mode_1.0mm_extrusion__bottle_75ml_octagonal.stl | 5.5MB |