Jump to content
Ultimaker Community of 3D Printing Experts
  • Sign Up


  • Content Count

  • Joined

  • Last visited

Posts posted by 24c

  1. I do something similar with my start code, but my bed temperature heat up takes the  longest time, start the head heating at the same time too, but I don't M190 until after all the levelling, and then park & wait at a wait point. I also use the Cura standby temperature setting to partially heat up the nozzle, before going to the higher print temperature at the wait point, as too much heat here can damage the LokBuild on probing with my printhead nozzle. Cuts my preheat time and start to print time down too, so win win for me. ?


  2. @ghostkeeper totally agree about the summary box I drew, but I sort of did think along the S3D lines when I initially posted, and then realised it was duplicating what the script types summary above was doing, especially if you added all the other options not just search and replace. The "relatable name" was the afterthought, and would be more useful if you are using the same script several times, so you could keep track of things.


    Maybe that white box summary area should be retitled, conditional post processing scripts ;) Thanks for the update, as everything in Cura 3.2 is slicing and post processing nicely, when I look at the gcode, apart from that one conditional I need, but I have a Python script to play with, so maybe I can finish what I started a few days ago, and test this out in the meantime.

  3. @ahoeben is this the pull request? https://github.com/Ultimaker/Cura/pull/3229 If so, is it possible further down the line, assuming these are saved and applied on a per printer preference, which seems sensible to me, that there might be plans to view these in some sort of dialog box? Possibly like this? or maybe thinking afterwards each instance of say "Search and Replace" could be given a more useful name in this example below...


    @ghostkeeper a bit like this, so the user could track the scripts easier. Just an idea. :) 


    Cura Post Processing Scripts.png

  4. Ok, this is working OK, in that the Cura Gcode is being moulded into pseudo gcode the firmware in the printer can accept.

    Another specific question... finding how Cura would handle the Simplify {IF TOOL0REPLACE "x" 'with_value y"} in its post processing routine, as I need to swap extruder E values for something else only while a certain tool is selected.  I could do it with an external Python script, not me personally, as this is beyond me at the moment, but I'd like to keep it all together in one place if I could. Any pointers or areas to look at to improve my knowledge please?


    I solved the one problem in the previous post by calling T{extruder_nr} in my start code, and it made the right toolhead contact the bed, so levelling for whichever nozzle I was using, but It'd be nice if there was a dictionary or changelog of variables, definitions, tokens or whatever there called. I've seen them in the JSON files, but it's pot luck trying to find odd ones, but it's even harder working with Simplify3D in that respect. :) 




  5. I have to agree, and I wasn't expecting this at all, as Simplify3D saves them in its FFF file, and that is linked to the profile so to speak.

    Oh well, worst case I suppose I can phone a friend and collate my search and replace into some generic post processing script, that will manipulate the Cura file output and move it elsewhere. Shame, as I've got Cura working with my QuickFill equipped Robox, and using both nozzles at will in different combinations, and controlling the needle valves at the nozzles too. :O:)


  6. My more specific question, I have moved away from using the extruder start & end gcode to open & close** the needle valves, but I'm stumped at the moment on how I might assign a custom initial layer height like you can in Simplify3D for each extruder. 

    G1 X121.821 Y83.637
    G1 F1200 E-0.22
    G1 B0
    M82 ;absolute extrusion mode
    ; G1 B0 ; close needle valve at extruder end gcode
    M83 ;relative extrusion mode
    M82 ;absolute extrusion mode
    ; T1  ; active extruder start code
    ; G1 B1 ; open needle valve at extruder start gcode
    M83 ;relative extrusion mode
    M109 S205
    M104 T0 S190
    G0 F3600 X121.821 Y69.607 Z0.3
    G1 F1500 E-0.11
    G1 B1
    G0 F3600 X121.821 Y79.607

    My head has two nozzles and the active nozzle move down on toolchange, so there is a z offset in the head effectively of around 0.25mm. I have got around some of this when I do a single 0.3mm nozzle print or single 0.8mm nozzle print, by using the "extruder_nr" to activate the toolhead prior to the pre-start bed levelling routine, and so the relevant nozzle touches the bed, but when it comes to doing a two model print with both extruders one of the nozzles is too high. 


    I'll keep plugging away, and clean this toolchange up a bit. :)





  7. @ahoeben & @mattgriffin. I'm sorry for the non-specific stuff, I'm just trying to get my head around this, but thank you both for your directions. I'm not a code bunny, so I expect some more daft questions will happen later. In the past I have compared slicer generated gcode in other slicers and vs the gcode the firmware in these printers accept, so I am just trying to grasp the Cura "syntax" & its generated gcode, and by comparison plus experimenting with settings I should mimic part of what I need. 


    To give you a more specific idea, my Dual Material printer expects to see this format

    M104 S200 T200 where T is the second nozzle & material temperature, whereas Cura uses M104 T(extruder_number) S200, which would keep that nozzle at 0 or 1ºC


    "E" refers to one extruder, and "D" the other extruder. This is easy to swap around in Simplify3D by using a post process like

    {TOOL0REPLACE " E" " D"} ;post process E values to Robox required D extruder values at toolchange


    BTW, a M105 call gets this response back  S:27 @0 T:27 @0 B:25 ^0 A:26 *0 where S is Extruder1 (tool T0) temperature and T is Extruder 2 (tool T1) temperature and B is the Bed temperature. I have changed some of the code in the USBPrinterOututDevice.py file in the PlugIns folder to fudge & grab the right extruder temperature for the single nozzle head, but I will need to parse this for the T1 extruder and its T value later, as well as clean up my "S" fudge.


    There are also anti ooze valves too that open and close the head nozzles, triggered by GCode G1 B1 & G1 B0, but is simply implemented.by using the extruder start and end codes, which I have tried this morning, just by dropping something in there, and it worked very well after looking at the generated gcode. :)


    Just for info, the head I have working currently, is a single nozzle Olsson with no valves, and it works very well indeed.

    However right now I am working on a two nozzle single extruder "Y" headed variant, and after starting a test print am now looking at the temperatures, trying to reach an understanding about the calls to Absolute extrusion, standby material temperature etc that I am seeing now in the Cura generated gcode (two models, one 0.3mm nozzle and the other 0.8mm), which I think is down to my profiles I have generated/cloned, so I'll be taking on your advices and keeping it simple as you've suggested, and be starting again. 






  8. Sorry about this question, but I'm struggling to get my head around writing a new set of resources, aka  definition, variants, extruders and materials. Well not the last one to be fair. I have a dual extruder printer, and three different head combinations, so I thought you create a definition first, and add some metadata tags, as well as some overrides common to all, then add specific overrides in the variants folder, with all the nozzle variations in the extruder section, but I'm wading in the sticky stuff now.


    I can get one version to work by just user the Printer custom fdmprinter settings in other, but it seems more elegant to place these within the resources folder, so I'd like to learn how. I've managed to get this to work in Simplify3D & flavours of Slic3r, but I'm liking how Cura is going, so I'd really like to hang in here and get it up and running, as the test pieces are every bit as good and better than the closed OEM software.


    Is there any place where this is explained, or any examples elsewhere anybody can point me to please. I have opened more than a few JSON files now, and it's getting a little muddy between the ears. :)


    Thanks for any help.

  9. Not sure whether this has been asked before, but up until today, I hadn't got USB Printing working with my Robox printers since dabbling with later versions of Cura aka 2.4 onwards, so I never noticed this.


    As I already have a start code with an "Abort Print" end code, and I realise your Pause and Abort Print buttons are called within the USBPrinterOutputDevice.py script, but it would be a pretty useful feature, if these could be customisable ( a bit like Matter Control, Simplify 3D or even Slic3r for example), and that way other print functions could be called from this area too, aka machine specific GCode scripts, say to purge filaments, gantry level, bed level or whatever. Are there any plans to incorporate a temperature graph in this area, or any extruder controls?


    Another 2¢, and small beer, but when you Abort Print, by mouseover & clicking, the "Are you sure you want to abort the print" dialog box is nowhere near the Abort Print button, so you've got to drag the mouse over, as I cannot seem to find a shortcut for "Yes" (using macOS).

    • Like 1
  • Create New...