Fill out above information andin all cases attach yourklippy.logfile (use zip to compress it, if too big). Pasting yourprinter.cfgis not needed Be sure to check our “Knowledge Base” Category first. Most relevant items, e.g. error messages, are covered there
Describe your issue:
At my office I run a Qidi Q2 printer, printing a variety of low quantity functional tools, jigs, and parts for our team. We have a particular part that I print face down on the textured bed, with a perfect first layer being critical to the part’s usability. Due to the quality needed, I’ve been printing them one at a time. There is enough room on the bed to print two sequentially, but the Z height is getting off between objects, causing the second part’s first layer to be too high (the bed rises to a lower point than it was for the first layer of part #1) At first I suspected that the bed mesh was simply off, but running a whole bed single layer demonstrated that (although it’s not perfect) bed mesh is not the problem. Instead, I believe that Z is simply not returning properly.
I believe that it would solve my problem if I could simply add a re-probe for Z between objects, and do it as close to part #2 as possible so that the head doesn’t hit part #1 in the process. I am both new to klipper, and new to macros. AI gives me different advice everytime I ask, and in some cases specifying that I’ll need to give it discrete coordinates for the probing point. I’m willing to do that if needed but it seems like the kind of thing that could be done by somehow probing at the center of the footprint of part #2, wherever it may be, before saving an updated z-offset and continuing with the print.
Does this seem reasonable? It seems odd that I haven’t found a field tested macro for this anywhere yet? If one exists, I’d love some direction. Any help would be appreciated.
Was the log you posted downloaded after printing the object in question?
The log shows the “adaptive mesh” is active and is measured before the start of each print. This SHOULD result in the printer automatically adjusting for variations in bed height. The entire [bed_mesh] system was created for this exact problem.
Your log also shows a 6x6 grid with points 50mm apart. Ideally that should be enough… But in practice beds accumulate localized low spots. It seems yours has one in a troublesome location.
First off make sure that both sides of your build plate and the magnetic sheet where it attaches are clean and smooth. If the problem continues the easiest fix is reposition the parts to avoid the trouble spot.
You specified surface finish as a requirement. Is surface flatness is also required skip the next “fix”
The next easiest thing is to increase the number of points in your mesh. Refer to the link above and change KAMP settings to do a 10x10 grid (or more as you see fit). This will give klipper 100 points (up from 36) to better follow rapid changes in bed shape. NOTE: depending on your fade settings and part thickness the top of your part may be flat, or may have some or all of the waves still in it. The bottom of your part will still follow the contour it was printed on.
Finally the (IMO) correct fix. Make the bed flat again. There are a number of ways to do this. First edit your printer.cfg to do a 15x15 mesh. Run your screw calibrate (be precise) then start a mesh. 225 points will take a while. If there are no localized high spots cut “shims” for the low spots from 2mil Kapton sheets. Stick the shims on TOP of the magnet sheet. Replace the build plate and “rinse and repeat”. If you have localized high spots you can either sand down (no more than .4 mm) the magnet sheet or peel off the magnet and sand the actual plate and install a new magnet sheet.
When you like the mesh, undo the edits in printer.cfg.
Tell your boss that (depending on your hourly wage) this COULD be more expensive than a new printer.
The last time I printed multiple objects one at the time I noticed that adaptive meshing would be done only to the first object printed, and no bed mesh under the other part/parts. But I use SuperSlicer… the one you use could be different. Try doing a full bed mesh instead of adaptive.
Thank you folks for the quick replies. I tried to jump back on the next morning to continue the conversation but made the mistake of editing an error in my first post and getting my new account put on hold, keeping me from being able to respond. I apologize for the delay.
Back to the issue. I don’t believe it is a problem at all with the mesh, but with the printer’s ability to stay z-calibrated after printing the first object. When I have it probe the whole bed at the beginning and print a single layer, it does a reasonably good job everywhere except the last 2cm beyond the range of the mesh probing. What I’d like it to do is keep the mesh, but Z-probe to re-establish Z=0 just before the second job, then apply the 0.05mm adjustment that I have set in the micro steps at the printer interface. This is what it does at the beginning of prints, and it has been consistent enough. I’ve been printing single objects this week and it’s been doing great. It just (mechanically perhaps) doesn’t get the bed back up to the proper Z height for the first layer of object 2 like it should.
I’d love to get a better printer for work, but since I need a very hot chamber, the next step up would be Bambu which I’d prefer not to bring to work, and beyond that is the 22 IDEX that we can’t justify the cost for. I print low quantities of a few replacement parts that need to be done in 3dxTech FR PC/ABS, and occasionally jigs in their ezPC. I use PETG for everything else, but the main need is for the high temp stuff. As it is, 65c barely gets it done for our largest part. I realize this is likely a cheap hardware problem more than a klipper problem, but I was hoping that maybe with some tweaking I can overcome the HW with a SW fix.
Klipper (and your printer in general) cannot actually “measure” anything. All it can do is count microsteps of motor rotation.
If your printer is “loosing counts” while printing the first object then the Z height of that object is going to be incorrect.
If your bed is sagging under the weight of object #1 then object #1 is taller (thicker) than your input file called for.
The underlying issue you seem to be having is either deflection in the Z axis from gravity or lost counts on the Z motor(s). Fixing that will improve the precision of your prints AND eliminate the need to probe between objects.
You could add commands here to make the printer probe the bed but you would have to manually calculate the X,Y position that won’t collide with object #1. You could also code a fixed Z axis offset if you know how much your bed sags.
It would actually be possible to write a macro that reads the object boundaries that are in the g-code (when “exclude objects” is enabled). Look at the KAMP macros. A routine similar to the one that positions the “adaptive purge” location could be written to establish a safe spot to probe.