GithubHelp home page GithubHelp logo

gridfinity-rebuilt-openscad's Introduction

Gridfinity Rebuilt in OpenSCAD

License: MIT

A ground-up port (with a few extra features) of the stock gridfinity bins in OpenSCAD. Open to feedback, because I could not feasibly test all combinations of bins. I tried my best to exactly match the original gridfinity dimensions, but some of the geometry is slightly incorrect (mainly fillets). However, I think they are negligible differences, and will not appear in the printed model.

Full documentation can be found at the project's website.

The project can also be found on Printables if you want to support the project.

Features

  • any size of bin (width/length/height)
  • height by units, internal depth, or overall size
  • any number of compartments (along both X and Y axis)
  • togglable scoop
  • togglable tabs, split tabs, and tab alignment
  • togglable holes (with togglable supportless printing hole structures)
  • manual compartment construction (make the most wacky bins imaginable)
  • togglable lip (if you don't care for stackability)
  • dividing bases (if you want a 1.5 unit long bin, for instance)
  • removed material from bases to save filament
  • vase mode bins

Printable Holes

The printable holes allow your slicer to bridge the gap inside the countersunk magnet hole (using the technique shown here) so that supports are not needed.

Recommendations

For best results, use a version of OpenSCAD with the fast-csg feature. As of writing, this feature is only implemented in the development snapshots. To enable the feature, go to Edit > Preferences > Features > fast-csg. On my computer, this sped up rendering from 10 minutes down to a couple of seconds, even for comically large bins.

Enjoy!

Gridfinity by Zack Freedman

This work is licensed under the same license as Gridfinity, being a MIT License.

License: MIT

gridfinity-rebuilt-openscad's People

Contributors

1337joe avatar asger1002 avatar banpower1 avatar ch3vr0n5 avatar cibernox avatar coderjo avatar djdddm avatar eddiesoller avatar emperorarthur avatar jannessm avatar jazzhands avatar jpypi avatar kennetek avatar longrackslabs avatar lowell80 avatar nelsongraca avatar plaes avatar rcarmo avatar rhandel avatar rpedde avatar ruudjhuu avatar schorsch3000 avatar smkent avatar tomhotston avatar tstranex avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

gridfinity-rebuilt-openscad's Issues

Baseplate w/ Magnet Holes - No Complex Screw Hole Geometry

I'm trying to diagnose why the base plate script doesn't render the screw hole geometry (for magnet holes). 'Enable Magnet Holes' is checked, and I've tried all appropriate base plate styles. Both the preview & rendered geometry show only the pocket for the magnet.

This is important to me because I want the option of using a glue-up jig.

OpenSCAD version 2022.12.28.ai13153 (git 8f7dd26fc)

cant generate a thin baseplate

Screenshot_20230117_161209

it just generates it like this also when i had the baseplate larger (10 x 10 plates) it would generate the thin baseplate and this baseplate but this baseplate also only 4x4 plates

it doesnt matter wether or not i use fast-csg or not
i am on the openscad version thats currently the newest nightly (2023.0.1.17)
since i just today (2023.01.17) downloaded this i am also using the newest gridfinity-rebuilt-openscad version

Configurable tabs and notches in base plates for easier alignment

Often you have a need to print base smaller than you need, e.g. for drawer which size is bigger than your printer bed.
When you print these parts, it is tricky to glue everything together aligned.

Simple bumps on edge of one part and corresponding notches on another part make joining process much simpler and reliable.

Having these joints generated helps with consistency compared to process of adding them manually.

Vase mode trays

Default bins are very durable but they require a ton of plastic and it takes quite a lot of time to print them.

On the other hand, with bigger nozzle vase mode allows you to print relatively sturdy boxes. As a bonus, you don't have seam line which gives nicer finish.

Plain box without curved bottom and label notch is relatively simple to make in vase mode.
Curved bottom is impossible to print without making compromises to stability.
Label notch is tricky to print in default position but not impossible if you remove back side of the box and make top side angled.

Gridfinity lite

I'm not sure if you've noticed this discussion around this fork that has some outputs out on Printables, but I thought the idea of having an option to do "lite" bins was great and was wondering if you were planning to add something like this.

wall thickness does not get respected on partially filled bins

Trying to make some partially filled boxes to cut shapes from I noticed they come out incredibly weak and I thought my printer is acting up, but it turns out, when you create a partially filled box (height internal >0, divx/y=0) all walls above the value of height internal are only a single line and not the defined d_wall (1.2 in my case).

bug_1

Maximize height inside bin

When disabling screws (or just, always), there is an extra 2-3mm at the bottom of the bin that goes wasted. Not exactly like the Lite bins, but more just empty space above the base (bottom 4.75mm) for no reason. The cutters can probably be expanded in Z to add room to the bin and save some filament.

License on Gridfinity has (or will) change to MIT

In Zacks new video he announce that he will transition Gridfinity into the MIT-license.
https://www.youtube.com/watch?v=ofI2OCq_QqA

This is also confirmed on his discord:
image

Allthough it is not updated on thangs yet. (What would be the single place of truth for this?) it seems like the change is imminent.

Since the README says the license matches gridfinity, would it be safe to assume that this should be updated to MIT as well?

Erroneous geometry beyond body of 1u

When creating a NxNx1 bin (not tested in lite or vase), there is a single line perimeter protrusion out of the bottom exterior that interferes with the exterior chamfer. Changing it from 1u to anything larger will eliminate the error.
Screen Shot 2023-01-09 at 12 57 38 PM
Screen Shot 2023-01-09 at 12 56 25 PM

Vase mode - tab support

If possible, it would be great to add tab support for bins larger than gridx =1. Just for more rigidity

support custom shapes other than rectangles

For some situations it would be nice to have baseplates and/or boxes which aren't rectangles, but L,Z,T-shaped or similar to work around corners of your storage place or not waste space on the grid building a better fitting box around your tool.

https://www.printables.com/model/313164-gridfinitris , https://www.printables.com/model/316113-non-rectangular-gridfinity-bin-parametricish-fusio

I'm not sure what the most user friendly way would be to implement that, maybe an external file with a line by line visual representation like this:

__###_
###_##
#____#

Simply screwing/gluing shapes together might work as an alternative, but then, 1x1 would be all we need to go from there :D

Vase mode - nozzle size (description)

Does the nozzle parameter refer to extrusion width? For instance, if I use 0.4 nozzle with over-extrusion at 0.6 mm, what to put in this parameter?

Allow removal of specific bin sides

There is a useful project called sideless bins which has some bins available where one or more side wall is missing, allowing you to put together bins that are bigger than your printer.

This works well, except when you want to make custom bins. It would be nice if there was an option to specify the sides to render. The default would be to render all sides, but you could override that with a list of sides to render if you wanted to omit some.

For example, right now I need to print a 2x10 bin for something and I need to have specific cutouts in that bin. I would like to be able to print two 2x5 bins that I could place next to each other that both had one side missing.

Scoop chamfer error

Screenshot 2022-11-21 alle 12 42 28

Trying to print the bin with Scoop chamfer activated and 2 compartments, one of the two has an error.
Printing the one with one compartment, there is no error
(The printer settings in the customizer are the same that I used in prusaslicer)

Screenshot 2022-11-21 alle 12 47 49

Hole modefiers for lite bins

What is the purpose of the hole modifiers for the lite bins like style_hole and style_corners? Doesn't a lite bin with these holes become a "normal" bin?

Double wall on the stack lip for vase mode bins

The stacking lip for vase mode bins are single walled, and they are extremely weak with its layers split easily (at 0.55mm extrusion width in my case).
Yes, I can print it at for example 0.8mm width, but then the walls of the bins are 1.6mm thick, which is really wasteful. If you could make the lip part also 2 extrusions wide, then it will be a lot stronger.

Idea: Remove front side lip from lite bins

Lite bins make the inside bigger to reduce wall thickness and plastic usage, but this results in a lip at the front. This makes sliding parts out of the bin harder, because they get stuck on the lip.

Removing this lip would make the bins easier to use and use a tiny bit less plastic. I think it would still be able to support stacking bins on top of it.

We could experiment with removing the lip from the other sides as well, so the parts don't get stuck in the corner, but then there'd be less surface area to support stacking.

Untitled

Idea: L-shaped bins e.g. for hex keys

I needed some bins for my hex keys. It would be nice if I could generate from example a 4x2 L shaped bin (red) I can then make a 3x1 bin (blue) for the smaller hex-keys. These 2 bins then fit nicely together.

image

50mm grid issues

Thanks so much for this project, its exactly what ive been looking for, however ive got a couple minor issues with the dimensions when I'm running at 50mm grid x/y/z size. I'm using the original frames scaled to 50mm increments and the original divider boxes scaled to the same work fine.

  1. The radius of the base where it sits in the grid is slightly too "square", once I filed it down a bit it fits well. I tried playing with the parameters but couldn't quite find the right one.
  2. The lip with the tab is about 1mm too high and means they dont stack as well together.
  3. If i set length = 50 the base is slightly too big as is the lip opening so they dont stack as nicely, if I set to 49 everything fits well. This workaround is fine for my needs but just mentioning it anyway.

Attached the customerize config
customizer config

Auto gridz

(I posted this in discord before realizing that it's probably better off as a GH issue)

I like this, but here's something that bothers me about all of the parametric options: If I know the thing I need a box for is 53mm high (or any height), how do I know how many units high (gridz) to use? I know each height unit is 7mm, but don't you have to account for the base of the bin and the lip of the bin? I want to make sure that my gridz value allows room at the top to nest another bin.

What if your script optionally allowed specifying an item height, and whether or not room should be allowed at the top for nesting? The script could figure out how many gridz units to use. Further, the script could be instructed to either snap to a common gridz value (2, 3, 6, ...), or fit exactly to the height required by the item height value.

Feature: Stackable lids

I would love to print some bins that I can put a lid on top of, on top of which I could stack more bins!

For my immediate usecase I wouldn't need magnets in the lid (to secure bins stacked on top), but it would be a nice bonus.

easier way to get filled boxes

I am trying to make boxes which have the same height as for example a 1x1x6(+lip) box, but are completely filled up including the height of the lip. The intention being to have a flat surface without and boundaries to cut toolshapes from while still being same height as my stack-able containers.

Jamie has a 1-click option to fill the box, however it doesn't fill up to the lip (for which I filed a request).

Your version is not straight forward to do and toying around this is the best I could come up with:
Screenshot_20230130_131519

This obviously has some faults, walls going down to the bottom, that slim extra ridge for some reason. Somehow the "internal block" seems to be a full gridfinity box and not a cube, too.

Maybe I misunderstand how this should be used, if so I'd be happy for some explanation. If not, all I need is a "fill" checkbox and if a lip is used the option to fill complete height including lip.

Thanks.

"mesh not closed" in stl when using default style_lip=0

I noticed some inconsistencies when working with stls generated by this lib. I was able to trace the cause back to the default style_lip=0. The problem does not appear when style_lip=1 is used.

Steps to reproduce:

  1. render the default gridfinity-rebuilt-bins.scad from main branch - save as gridfinity-rebuilt-bins-default.stl
  2. only change style_lip=1 - render & save as gridfinity-rebuilt-bins-style_lip_1.stl
  3. use the minimal working sample code below to trigger either the error ERROR: The given mesh is not closed! Unable to convert to CGAL_Nef_Polyhedron. and/or don't get any output in openscad's 3d viewer.

working as expected:

difference(){
    import("./gridfinity-rebuilt-bins-style_lip_1.stl");
    cube([25,25,100], center=true);
}

image

does not work:

difference(){
    import("./gridfinity-rebuilt-bins-default.stl");
    cube([25,25,100], center=true);
}

image

Bin renders as a filled box at specific z height

Hey,

i'm using the gridfinity-rebuilt-bins.scad script and only changed parameters in the customizer.
Once my bin reaches a specific z height, the bin no longer renders as a bin, but basically as a solid block.
It doesn't matter which type of gridz_define i use, as soon as i reach this phyical height, it gets rendered as a block.
The preview is always fine, but render and stl are not.

I have basically only changed the basic parameters. if i set a custom internal height other 0, it works. but this is not what i'm looking for as this also looses details like round edges.

Screenshot 2023-02-14 at 13 27 05

Any ideas what might be wrong here?

P.S.: Thanks for this. This is an awesome script and i will extensively use it ;)

Superfluous internal walls

In the 3x3 example if I cut a wide compartment with
cut(x=0,y=0,w=3,h=1,t=5,s=false);
I get two 1.5 wide compartments rather than just one.

Magnet holes do not get generated

Update: Comparing this with the baseplates from https://github.com/vector76/gridfinity_openscad, the magnets holes in this project simply don't get generated with any baseplate style. In the linked project, the magnet holes are generated ON TOP of the baseplate, without screw holes.

Toggling the magnet holes on/off makes the baseplate thicker, but still no magnet holes.
I tried both with the latest release of OpenSCAD, as well as with the DEV snapshot, same results.

I am attaching an STL exported with the following options:

OpenSCAD: 2023.02.15
$fa: 8
$fs: 0.25
gridx: 1
gridy: 1
length: 42

d screw: 3.35
d screw head 5
screw spacing: 0.5
n screws: 1

style plate: skeletonized
enable  magnet hole: true
style hole: counterbore

# second STL I generated with 
style hole: none

STL with enable magnet hole: true and style hole: counterbore:
skeletonized-counter-magnet-test.zip

STL with enable magnet hole: true and style hole: none:
skeletonized-nohole-magnet-test.zip

Magnet Hole Slit Removed

When you switched to the hole style, it looks like you removed the hole slit unless the user selects to want the screw hole as well. Was this deliberate or just just a small oversight? I don't need screw holes, but really wanted the hole slit.

License Change to MIT?

The license for this project at the moment is CC Attribution Non-Commercial Share Alike.

During Zack Freedman's April fool's day video, he changed the license to the MIT license, which has less restrictions. And because I can't trust an April fool's day video, his gridfinity files on thangs have changed to MIT, if you click the "view license" button.

Could the license for gridfinity rebuilt get changed to MIT? I know that means losing those restrictions, but it's in the spirit of the project.

holes got broken

I don't know when it happened, but a quick look found me revision b2104fb to be working as expected while current and a few revisions before fail.

I'm relying heavily on x.5 / y.5 boxes, but at least for them holes are no longer generated no matter if "style corners" is true or false.

Comparison screenshots, working on the left, current on the right.

gf-bug-1
Same settings, left gives me holes, right doesn't - I want/need left behaviour.

gf-bug-2
Playing around with div base values, only the shown setting gives holes at all, but the base looks/works differently.

lite bins base is only 0.4ish mm thick

I am not sure how to solve this, but it looks like there is an issue with the offset code in block_base_solid, which doesnt offset the bottom of the base upwards enough to satisfy the given offset.

This results in the default lite bin having a very thin (since I'm printing these with 0.3mm layers, one layer) bottom.

Is this intentional? Can I adjust it with the settings that are already here?

Idea: Customize scoop radius

This is just because it doesn't seem to be one of the customizable parameters. I just think that the scoop to help to pick small or specially flat items (washers) easier. However I think that scoop chamfer is way bigger than it needs to be. We could save significant plastic and print time if we could make it smaller.

Deeper bins without magnet/screw holes

When configuring bins, if I turn off the magnet+screw holes, there's still an ~8mm thick bottom on the bin which has no purpose. Is there an existing way to lower the internal bottom of the bin so the bottom isn't as thick? If you make the internal bottom a little smaller you could move it even further down into the base of the bin, although this could result in the walls needing to be beveled in a bit, which might be a net loss? Thoughts?

Wrong location for magnet holes in bases?

I'm seeing the magnet holes in the bases are getting cut into the center of each grid instead of in the four corners. Took me a minute to figure out why I didn't see any difference with magnets enabled/disabled, but when I change the style to the full weighted baseplate I can see the holes appear and disappear. I'm running a fresh clone of the repo.
screen

support half-sized grid bottoms

Jamie has a feature in his version he calls half pitch which is slotting the bottom into 4 equal parts to make boxes able to sit at ½ of a grid and saving some material/printing time on top.

I'd like to see something similar here.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.