Concerning the copy/mirror print area being centered on the platform stl;
I know Cura positions the platform stl using the origin point added by the CAD software that created it.
Reloading the platform stl after the print area is resized, might reposition it since the 0,0 origin point has moved over.
Very good feedback and thoughts.
Trying to look into it next week.
And looks like at least for testing purposes I’ll have to install Cura 5.x…
Would it be ok for you to have an option in the menue for enabling or disabling platform resizing?
And maybe I can add a reposition command to fix your last finding.
Maybe it is a good idea too to install the Cura SDK rather than “programming” in Notepad++…
Thank you!
I apologize, but you can probably ignore the parts about the printing profile not supported.
I was experimenting with some stuff in Cura 5.4 and had a bunch of extra IDEX printers set up.
The only printing profiles that show up for them are my plain single extruder ones.
When I went back and selected my actual IDEX machine, the printing profiles for it show as working fine. It was the weird machines I set up, not your plugin.
So the only real issue is the crash when switching to a single extruder machine.
Had time to check on those topics.
Could easily fix the crash bug and implemented an additional parameter to allow or prohibit the adaption of the print bed width.
It even switches back to full width when on Mirror or Copy mode and being deselected.
However I’m struggling on getting the IDEX menue items hidden when a single extruder printer is selected…
Maybe I have to revive some code I deleted with the last optimizations. But this is more a cosmetic issue.
Happy testing!
Ahh, just got back to the reposition topic you mentioned. Have to look at it as well later.
The IDEX menu item wouldn’t necessarily need hidden. I had changed the names of the menu items so that standard printing mode is listed as “Primary” instead of IDEX, so it doesn’t really cause any confusion (for me anyway).
It would be nice if it defaulted to or better yet, was locked to “Primary” when using a single extruder printer.
That is just a bit of coding I’ll do tomorrow.
Thanks for your feedback.
Currently trying to figure out what exactly you mean with that:
If I load an object in IDEX mode it is centered on the bed and you might want to move it around.
If you switch to mirror or copy it will be still centered on the remaining bed.
If you moved the object much to the left or right before switching the IDEX mode it might result in the object being out of the printable area and you need to manually move it inside the area again or reset all model positions.
Maybe you can explain this a bit more and post me two photos of before and after. Maybe I’m just too brain absorbed at the moment to get it.
Uploaded v0.2.5 with fixed IDEX setting when on single extruder printer.
Cura stores the image of the build platform as an STL or 3mf in the meshes folder.
The machine definition tells cura which one to use “platform”: “anycubic_i3_mega_s_platform.stl”,
The default for your Mega is just a rectangle, but you can replace it with an stl of the full printer.
https://www.printables.com/model/187264-anycubic-i3-mega-s-cura-background-cura-47-compati/files
That is the platform stl I am referring to.
Mine is a Voron Trident and I customized it with markings for where the toolheads can reach in different IDEX modes. It would be optimal if the half sized print area of copy and mirror still shared the same 0,0 point as the platform image instead of being centered on the build plate image. It’s not a deal breaker. I can just not use a platform stl, but I like mine with the markings.
What I meant by the origin point of the platform STL is set in the CAD software: If you open the STL in TinkerCAD or CAD software, move it 50mm up in Z, save it, then it will show 50mm higher in Cura. If Cura is using using the 0,0,0 origin point of the bed as the reference when it places the STL, then reloading the platform STL after the print area has moved, may show the print area on the left side of the printer where the objects will actually print.
I don’t have time for any real testing right now. I just installed the new plugin and did enough to get this pic, but it appears restricting the Dual Extrusion options for single nozzle printers seems to work correctly for single nozzle printers, but for IDEX machines I now only have options for ooze shield angle and ooze shield Distance showing. Despite being checked to make them visible, no other options are showing, not even the IDEX mode. This is visible in the above pic. What are you using to flag a machine as idex or single nozzle?
Noticed that the second extruder was disabled. Enabling both added enable draft shield and enable ooze shield, but still missing the rest of the options. IDEX mode doesn’t show up in the list of available options to make visible. This is in Cura 5.4
Ahhh, a picture says more than 1000 words.
Had this set up on my big CoreXY once… But currently I do not know how Cura handles this and if I can move this platform to the left.
That is something to work on.
Strange thing with Cura 5.4…
I just check how many entries/items the extruder list has. So nothing special. And this does not run when you disable an extruder on an IDEX printer.
Works fine on single extruder printers under Cura 4.13.1.
It should not affect any of the other menue items, see:
Looks like I have to install Cura 5.4 and check what they have changed.
Don’t invest too much time looking for a problem if you don’t also experience it with 5.4.
I got a minute to try it in 5.1 and that worked fine. So I deleted and replaced it in 5.4. This time when I opened Cura there was a pop-up informing me that settings had been updated. Anyways it worked after that. I get the pop-up about settings being updated every time I open Cura 5.4 so something is still quirky about it.
EDIT: adapt bed width is there. I just had to check the box to make it visible.
Have you maybe set one extruder for support only?
But nice if it works with 5.x as well.
Does the popup occur when you chose IDEX and manually disable the second extruder?
Will install 5.4 for testing as well. So I can check it myself.
Good night.
I do not have support enabled. If I enable it, The first extruder is the one set to be used for support.
If I change to IDEX mode and close, there are no “settings updated” messages when Cura is launched.
If I start out in IDEX mode and then change to copy or mirror mode, I get one “settings updated” message immediately after switching.
If I change back to IDEX mode, I get one message immediately after switching.
If I close Cura while in Mirror or Copy mode, I get four messages the next time Cura is launched.
I’m just launching and looking, no real deep testing or printing.
Hmm… I don’t know what you are doing or what I did not do yet.
Just installed Cura 5.4 parallel to 4.13.1 and it took all profiles from 4.13.1 including my plugin and it works like a charm.
No messages about changing settings while toggling the IDEX modes or when closing and opening it while not in IDEX mode.
Switching between IDEX and single extruder printers works fine as well.
I did check the preferences of Cura whether or not I disabled warning stuff but did not see anything suspicious.
However I do not want to delete everything and install it from scratch as 4.13.1 works fine.
Perhaps other Cura users might test it and report any issues here.
However I’ll try adding the platform STL to work on that.
Yeah, I do wish others would test.
I currently use 5.1 for printing and 5.4 for experimentation, so maybe I’ve altered something in 5.4 and forgotten about it. I will delete and reinstall it sometime.
Thank you for all the work you are putting into this.
No problem, I appreciate your efforts!
Currently I’m working on the platform offsets to get it hopefully moved properly when the bed width is changed.
However when you are already sleepy and hit the wrong buttons it is not very helpful… Just resetted my working 4.13.1 installation but could restore a backup and my plugin files.
Wish me luck that the platform position changes in realtime as well and not only when the definitions are loaded.
Also found a bugged code line that apparently had not affect.
Not directly related to your plugin, but here are my macros so far. In Macros.cfg, the mode “PRIMARY” will need to be replaced with “IDEX”. I modified your plugin to use that term because it is what other people on the Tridex discord are using.
You could just put the stuff from the M605 macro directly in print_start, but having the M605 macro makes it compatible with slicers that spit out the Marlin codes for copy and mirror modes. I’m using multi-pin to treat both part cooling fans as one, so haven’t bothered too much with the fan macro.
They are WIP, but I thought it might save you some time if you haven’t worked out your own yet.
They are more to see how I went about it than as a drop in solution.
I had some trouble with M605 S0 and M605 S1. Just kept throwing stuff in until it worked, so that part is probably not optimal.
A couple of the variables passed from Cura had quirks I did not anticipate:
-
Cura will not report the correct {initial_extruder_nr} unless some type of build plate adhesion is used. I tried to instead use the fact that Cura puts a T0 or T1 at the start of the gcode, but it wasn’t working every time for some reason. I just use a skirt every time and Cura passes the correct number.
-
Cura reports {extruders_enabled_count} based on whether the box is checked to enable the extruder, not whether or not it is used in the print. It is annoying to have to rely on this, but I haven’t found a way to determine if both extruders will be used in the print if it is not copy or mirror mode.
Provided that I don’t forget to uncheck enable for the second extruder if only the first is being used, I am sure that all the kinks have been worked out for heating and purging the correct nozzles.
My Cura start gcode is (all on one line, do not press enter in between): print_start PRINT_MODE={idex_mode} EXTRUDERS_ENABLED={extruders_enabled_count} INITIAL_EXTRUDER={initial_extruder_nr} T0_STARTING_TEMP={material_print_temperature_layer_0, 0} T1_STARTING_TEMP={material_print_temperature_layer_0, 1} T0_PRINTING_TEMP={material_print_temperature, 0} T1_PRINTING_TEMP={material_print_temperature, 1} T0_STANDBY_TEMP={material_standby_temperature, 0} T1_STANDBY_TEMP={material_standby_temperature, 1}
macros.cfg (4.8 KB)
IDEX_mode.cfg (4.6 KB)
EDIT: The input shaper lines on the M605 modes are all the same because I haven’t done the testing for each toolhead and each mode separately yet. They can be deleted if not changing input shaper based on mode.
Thanks for those marcros and pieces of information. Will check this later.
I’m currently fighting with the platform model…
The offset reads properly and can be changed to the new X value but the model does not automatically move when the offsets change.
It somehow adjusts to the last processed value or the first calculated one in my script when Cura is started but does not adapt to it later when being changed again.
Have to check whether or not there is some kind of reload function for it.
If this does not work maybe I’ll go to disallowed/restricted areas and see how this works.
I think the Stratos slicer does so as well…
But for today it is enough coding.
EDIT:
Found a way to move the platform model according to the changed bed width.
However the original model keeps there and a copy is moved.
Need to find a way to delete the original or refresh all if this will help.
But looks like it gets step by step to a new version.
Good work for the grey cells.
After doing some slicing today, I believe the pop-up messages I am getting (about settings being updated because number of extruders has changed) is caused by me disabling one of the extruders so Cura will pass the correct {extruders_enabled_count}.
I don’t think it is caused by your plugin.
As we tend to say in Germany: “Morgenstund hat Gold im Mund” or the early bird catches the worm though I’m still very tired…
Just found the solution for the issue with moving the printer platform where I’m sitting at since days already.
This now on the one hand makes the code a bit slimmer but on the other hand does not look very elegant to me.
But nevertheless it works!
Just have to check whether or not Cura still crashes when switching the printer. And of course checking it in Cura 5.4.
If this works fine as well I can upload the latest plugin version before I’m on holidays and have stress with moving my house.