Feature Request: Multiply & Shift 3D Prints

Just thought I would post a couple feature requests I have for the Snapmaker 2.0 (particularly on the larger devices):

  1. The ability to multiply the number of objects being printed. Right now, you select your file from the USB (or however) and you print it right in the center. The only way to print multiple is to have it made that way in Luban (or I guess your slicer of choice). Since the gcode is all there for a particular model AND the controller can determine the size, it would be nice if it was possible to multiply the number right at the touchscreen. That way when you make your one test print, and it works perfectly, you do not need to go back and make a separate file when you need multiple printed out, or be watching over it and start again and again as each is finished individually. This would also help spread wear/tear out across the overall bed.
  2. The ability to shift the object being printed to a different area of the bed from the touchscreen. In a way this is very similar to #1, but instead of having multiple printed it would be good to be able to shift the model around to a different section of the heated bed. This can help you avoid damaged areas and/or reduce wear/tear on a single section. The center of my bed (for example) now has a “divot” out of it that is starting to affect prints. Plus there is some other points of damage from the head scraping at one point or other early on. Being able to shift the print at the touchscreen would allow me to move it to different areas to avoid the damage (or keep from making it worse). I CAN change that in Luban also, but again it would be a lot easier to just keep the same model and not have to make such changes in the slicer.
1 Like

Is there a major difficulty in preparing the files you want in Luban in the first place?

Maybe those more experienced with how slicers and G-code work but I dont believe either of these two features would be possible without fairly extensive work. (if possible full stop)

When you send a job to your machine it is pre-prepared g-code sliced from a 3D model, it also has all the machine settings baked into the G-code such as speeds, accels, temps, geometry, etc. For the machine to be able to make multiples of an object and/or move them around it would need three things:

  • First it would need a local copy of the 3D model (stl,step,igs, etc.)
  • Second it would need slicing software imbedded
  • Third It would need some UI to enable you to input the same settings you input into slicing software

If done this way, then the feature doesnt really benefit anyone as you are essentially doing what you would do on your PC/Mac, just on the touchscreen instead.

The only other way I could think of them to achieve this is to have a script scrub the G-code line by line and duplicate and shift the positioning of print moves by a certain offset. This however would introduce two further issues:

  • the potential for multiplied objects to overlap and cause damage to prints and potentially the machine
  • new non-printing moves need to be generated to link the old lines of G-code to the new lines of G-code

I welcome thoughts on this and it is an interesting problem! Unfortunately, I dont think a solution is likely to be developed for this due to it being prohibitively complex for comparitively little convenience gained as it would only take a few minutes to do this in luban in the first place.

1 Like

I guess I do not know the full extent of the gcode used. I thought it had very little of the capability of the printer. Instead it was geared to “go here, do this” commands over and over again. It is the slicer that knows the capabilities and accounts for it.

If the gcode DOES just do the work from a starting point, it is not that complicated if the controller says “shift everything 50mm in X direction” for the shift. The multiply is similar, although I agree it would be up to the user to make sure it does not overlap (although if the controller knows it’s build area and the dimensions of the models, it should be able to do simple checks).

As for Luban, yes, it is not major
 But it is irritating. At least on my computers it is slow to load and there is no multiplication control in it. So you have to load the stl and move them around. Especially annoying when I have small models and want to print 20+ at a time. Plus, now I have to make and store multiple gcode files for each different position.

In those cases I have given up and built a new stl in my renderer. That is annoying because by that point I know I have a working model
 I do not want to make another.

The machine could just shift the X & Y origin and do a copy in the new location. That wouldn’t be too difficult. It would have to do that shift every time a new layer is started and keep track of which copy/origin it is on and return to the normal origin once done. I don’t think the bed leveling code would be messed up by that but you would have to make sure it wasn’t.

You could also give PrusaSlicer a try because you can duplicate objects to your hearts content with a single mouse click.

I think cura can do this as well.

That still leaves the multiple gcode files, but I may give a different slicer a try anyways.