Commit graph

265 commits

Author SHA1 Message Date
Arthur Moore
73b10760f8 Update tests / helpers to allow adding more tests 2024-04-28 01:55:42 -04:00
Arthur Moore
0649f10802 Add Python tests for the hole cutouts to generate images.
* These are not (yet) triggered/run by the CI/CD system.
2024-04-27 00:31:19 -04:00
Arthur Moore
ca28aed898 Allow multiple levels for supportless holes
Helps prevent / minimize issues with filament droop.
Expecially when Cura decides to start the top of hole in mid-air.

Visible Changes:
* Supportless screw holes have a 3rd layer.
* Supportless magnet holes without screw holes have a 3rd layer.

Backend Changes:
* Switched to a completely different generation strategy.
  * Previous strategy directly produced negative.
  * New strategy is to make a positive,
    then use that to create a negative.
* Algorithm for multiple layers is not perfect,
  but works within tollerances set.
2024-04-27 00:18:18 -04:00
Arthur Moore
1a50807295 Make Screw Holes Printable 2024-04-24 21:22:56 -04:00
Arthur Moore
3e94c65cf2 Add images of all the hole options.
Does not include all combinations.
2024-04-24 21:19:16 -04:00
Arthur Moore
c47661af7f Add A 2nd Level For Supportless Hole Generation
Makes holes print better.

Use Affine Translation Matrices to be clear
how everything works without being too verbose.
2024-04-24 21:19:10 -04:00
Arthur Moore
32f91a77ca Support Chamfering Magnet Holes
Similar to ljbeal's Pull Request.
However, the implementation is completely different.

https://github.com/kennetek/gridfinity-rebuilt-openscad/pull/144
2024-04-21 23:34:23 -04:00
Arthur Moore
f222c262fc Allow using crush ribs for the magnet hole 2024-04-21 23:28:49 -04:00
Arthur Moore
8fa885ac72 Allow mixing and matching hole options 2024-04-21 23:21:21 -04:00
Arthur Moore
2e0e9bd363 Simplify Hole Creation
Everything now goes through block_base_hole(...)
Noting in gridfinity-rebuilt-utility knows or cares what sytle_hole contains.
2024-04-21 23:07:21 -04:00
Arthur Moore
a4200a04bd Simplify refined_hole() 2024-04-21 23:07:08 -04:00
Arthur Moore
67ba594585 Made some hole constants more readable 2024-04-21 22:08:54 -04:00
Arthur Moore
88ad9dbf6c Moved hole functions to a separate file 2024-04-21 22:03:21 -04:00
Ruud
36345f3efb
Merge pull request #175 from EmperorArthur/affine_hell
Use Affine Transformation Matrices For sweep_rounded
2024-04-18 20:15:49 +02:00
Ruud
fc51ba875e
Merge pull request #173 from coderjo/main
Don't add holes if style_hole is 0 even if only_corners is set
2024-04-18 20:10:17 +02:00
Ruud
cf1666fa2c
Merge pull request #171 from EmperorArthur/fix_wall_profile
Update Stacking Lip Profile
2024-04-18 20:07:55 +02:00
Arthur Moore
e7ef96bbcf Stop using as many hacks in sweep_rounded 2024-04-17 22:34:49 -04:00
Arthur Moore
ff3a325b37 Update affine_translate to support all axes. 2024-04-17 22:34:30 -04:00
Arthur Moore
20492634d8 Update affine_rotate to support all axes. 2024-04-17 22:34:03 -04:00
Arthur Moore
574d9dc6b1 Move helper functions / modules to their own file
These are not explicitly tied to Gridfinity.
2024-03-11 19:36:48 -04:00
Arthur Moore
637b98577f Match radius of bin to radius of base.
Fixes #169, and #165.
2024-03-10 23:34:30 -04:00
Arthur Moore
5b25e2e114 Replace "1.4" constant in profile_wall() with calculated value 2024-03-10 23:28:47 -04:00
Arthur Moore
69cb64e98d Rename chamfered profile to stacking_lip_chamfered() 2024-03-10 23:23:09 -04:00
Arthur Moore
1cf350121d Use Affine transformation matrices for creating walls.
This involves more math, but results in a cleaner abstract syntax tree.
Which also means it is cleaner when importing to something like FreeCAD.
2024-03-09 23:29:03 -05:00
Tracy Ward
d9d92db544 Don't add holes if style_hole is 0 even if only_corners is set 2024-03-04 22:13:17 -05:00
Arthur Moore
015daff2e8 Update Stacking Lip Profile
Profile is now based on https://gridfinity.xyz/specification/
This does not change the final profile, merely how it is created.

Fixes #168 - Cura watertight issue.
Paritally fixes #169 - FreeCad errors.
2024-02-24 03:57:06 -05:00
Arthur Moore
fd4db5aa9f Add more brief function descriptions 2024-02-24 09:18:49 +01:00
Arthur Moore
6b6b385cda Made height calculations more readable.
There are significantly more lines, but the code is now more understandable.
2024-02-24 09:18:49 +01:00
Priit Laes
5df82679c8 Fix r_fo1 radius to 7.5/2 and fix usage in code
Also introduce d_fo1 = 2 * r_fo1 in places where diameter seems
to be used.
2024-02-16 22:40:01 +01:00
Priit Laes
b4abd1d474 Use proper radius value for r_fo2 2024-02-16 22:40:01 +01:00
Priit Laes
9b364e410c Use proper radius value for r_fo3
The same value used in baseplate is now handled as radius (instead of
diameter).
2024-02-16 22:40:01 +01:00
Asger1002
2f2567d7a9 Removed whitespace in attempt to pass merge test
Pre-merge test showed a failure in removing 'trailing whitespace'. Some whitespaces removed in an attempt to pass this.
2024-02-16 16:15:06 +01:00
Asger1002
1bc283cf59 code cleanup + added comments
- Added comments describing CutEqualBins functionality
- Fixed a single line of missing code as described in a github comment
2024-02-16 16:15:06 +01:00
Asger1002
db06f2914b Added ability to customize tab sizes. Added function for cutting multiple bins.
Additions:
- ability to change height of tab, i.e. stickout, for thinner/thicker labels. Specified in mm.

- ability to change width of tab, for longer/shorter tabs that don't span the full bin width. Specified in mm.

- 'CuEqualBins' function for cutting multiple equally-sized bins given:
* amount of bins (in x and y directions)
* length (in x and y directions, specified in gridfinity-bases),
* starting position (lower left of first bin, in gridfinity bases)
2024-02-16 16:15:06 +01:00
James Jenkins
e31742e37d Make style_hole=4 compatible with only_corners 2024-02-16 12:47:26 +01:00
Timothy Stranex
74d40adb0b Pass chamfer parameter to cutCylinders 2024-02-15 10:25:20 +01:00
Timothy Stranex
d6eb8402e9 Add chamfers to cylindrical cutout holes 2024-02-15 10:25:20 +01:00
Stephen Kent
0fdb10526f Pass style_lip argument in gridfinityInit usages
faff922757 migrated `style_lip` from a
global value to be an argument to `gridfinityInit`, but the usages were
not updated.
2024-02-15 09:53:33 +01:00
Stephen Kent
0b7bf6ee78 Fix clearence -> clearance typo 2024-01-29 09:59:51 +01:00
Stephen Kent
faff922757 Add style_lip as argument to gridfinityInit
When used as a library, `grifinity-rebuilt-utility.scad` accepts all the
bin properties to use as arguments to `gridfinityInit`, `cut`, or other
methods, with the sole exception of `style_lip` which must be defined in
the calling file.

This change adds `style_lip` as an argument to `gridfinityInit` to
ensure `gridfinity-rebuilt-utility.scad` can be used as a library.
2024-01-29 09:58:53 +01:00
Ruud
e7478a7dc9
Merge pull request #128 from smkent/pre-commit
Remove trailing whitespace, add pre-commit and CI workflow to check whitespace
2024-01-06 17:46:32 +01:00
Stephen Kent
944dd39c81 Fix whitespace errors using pre-commit 2024-01-06 08:37:37 -08:00
Stephen Kent
e50dde1aa7 Add --show-diff-on-failure to pre-commit in CI 2024-01-06 08:36:42 -08:00
Ruud
3a485537da
Merge branch 'main' into pre-commit 2024-01-06 13:18:55 +01:00
Lowell Alleman
5e70a29f6f Update index.md
Add a link back to the main github page
2024-01-06 13:13:40 +01:00
Ruud
37389809eb
Merge pull request #138 from jannessm/main
add cylindrical cutouts to *_bins.scad
2024-01-06 02:10:54 +01:00
Brandon Gibbs
7a33233ee9 fix #126 2024-01-06 02:05:36 +01:00
schorsch3000
084f8ed981
Bugfix/fix fixed baseplate offest (#143)
* make the baseplate xy offset configurable

* rename variable to be shorter

---------

Co-authored-by: Dirk Heilig <heilig@adesso-mobile.de>
2024-01-06 02:04:01 +01:00
Stephen Kent
86cab75c50 Merge remote-tracking branch 'origin/main' into pre-commit
Conflicts:
	gridfinity-rebuilt-utility.scad
2023-12-24 15:23:05 -08:00
Jannes
6202c73b21 move cylindrical cutouts to utility 2023-11-21 21:41:08 +01:00