kennetek / gridfinity-rebuilt-openscad

A ground-up rebuild of the stock gridfinity bins in OpenSCAD

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Automatically split baseplate size according to printer bed size

jottr opened this issue · comments

commented

I want to print a baseplate that is larger than my print bed.
Currently I have to split the baseplate into two printable parts, that are screwed together.
This results in wasted space, since the grid is not utilizing the available space optimally.

Example render of the problem:

image

It would be very useful to have two variables print_bedx and print_bedy, and then offer an option to automatically splitting large grids.

commented

I am not 100% sure if I understand your intentions. But the screw together feature is created for creating baseplates larger than print beds. If you turn of the fit to drawer feature and screw together multipile baseplates there wont be wasted space.

like this:

image

commented

Thanks for trying to help.

So given a printer bed of 235x235 mm, and a desired base plate size of 630x294 mm, how would I set this up?

I'm aware of this section:

/* [Fit to Drawer] */
// minimum length of baseplate along x (leave zero to ignore, will automatically fill area if gridx is zero)
distancex = 0;
// minimum length of baseplate along y (leave zero to ignore, will automatically fill area if gridy is zero)
distancey = 0;

So, if I set this to my print bed size, how would I then define the desired base plate size?

I.e.

/* [Fit to Drawer] */
// minimum length of baseplate along x (leave zero to ignore, will automatically fill area if gridx is zero)
distancex = 235;
// minimum length of baseplate along y (leave zero to ignore, will automatically fill area if gridy is zero)
distancey = 235;

results in this

image

What I want instead is a baseplate of the desired dimension, split into the size that fits my print bed.
I don't want to calculate this manually. I want a function do this for me.

To summarize. I want to provide the base plate size, the print bed size, and openscad figure out the rest for me.
I.e. cut the 630x294 mm grid into 235x235 mm wide parts, calculate optimal space distribution across the pieces and add matching screw holes in the required positions.

commented

I understand you want to automate it. That is currently not supported and for now it should be done manually. This would be a feature request.

However, if you did this manually, it should not result in wasted space.
keep in mind the fit to drawer section has 2 more variables which influence the space on the sides.

scenario:
630x 294 will result in a grid of 15 x 7 in total. This means no fit to drawer feature is necessary: -> distancex = 0 distancey=0
I would create the following baseplates with screw_together_minimal enabled and screw them all together or even without screw_together_minimal and have a perfect fit in your drawer (if you want to place it in a drawer):

  • 3 x gridx = 5 gridy = 5
  • 3 x gridx = 5 gridy = 2
commented

Thanks for the explanation.
So let's make this a feature request then, and remove the "question" label.
I'd be happy to help with implementation if this is a feature that would be generally desired by maintainers.

The only problems (albeit minor) with the manual method:

  • it keeps the corner fillets for each part, when you probably only want them on the outer corners
  • When using "screw together" it cuts holes in the padding area. This may or may not be desired.

Another approach could be to export a single model of the full desired size, and then split it in the slicer, or with a separate script. That would solve the corner fillet issue. However there would be no screw-together holes between parts.

I suggest new parameters for "maximum build size x/y". Assuming we are using a "screw-together" style:

  • If the parameter is zero (the default), cut screw-together holes as normal in that dimension
  • If the parameter is >= the full size, cut no screw-together holes in that dimension.
  • If it is < the full size, select "splits" along gridlines as needed. Cut screw-together holes only across these splits.

As I understand, OpenSCAD can't export multiple objects at once anyway. This method would provide a complete model that can be split deterministically.