Jump to content

Feature request: Custom G-code in profile


Marno

Recommended Posts

Posted · Feature request: Custom G-code in profile

Hi,

 

I have a suggestion for a feature in Cura: being able to add custom G-code in a printing profile that gets inserted between the start G-code set in machine settings, and the printing G-code.

For example for Malin users; a space where you can add G-code for custom Linear Advance values for a specific material, instead of having to change it every time in the machine settings window of Cura, or having to update it via the terminal every time before starting a print.

 

Looking forward to feedback on my suggestion.

 

Marno

  • Link to post
    Share on other sites

    Posted · Feature request: Custom G-code in profile
    18 minutes ago, ahoeben said:

    Note that there’s a plugin to get you a setting to solve your linear advance usecase.

    Thank you very much for your reply!  I will give it a try.

  • Link to post
    Share on other sites

    Posted · Feature request: Custom G-code in profile

    Commenting here to help the next guy:

     

    Plugins are under 'Marketplace' and you are looking for 'Linear Advance Settings'

    Then you can set {material_linear_advance_factor} from the right side panel in Cura.

    To use it you will have to add a line like 'M900 K{material_linear_advance_factor}' to your start g-code.

    I follow that line with 'M900 W{line_width} H{layer_height} D{material_diameter}' like it says in the readme:

    https://github.com/fieldofview/LinearAdvanceSettingPlugin
     

    I don't think this works with adaptive layer heights, not perfectly anyway.  I think we would have to include 'M900 W{line_width} H{layer_height} D{material_diameter}' at each layer, or each layer that is different from the last. If we wanted to adjust the Linear advance perfectly for different layers in prints sliced with adaptive layers enabled. If someone wants to test this, it could be hacked tother with a search/replace in the g-code post processor.

     

  • Link to post
    Share on other sites

    Posted · Feature request: Custom G-code in profile
    10 hours ago, drewoprea said:

    Commenting here to help the next guy:

     

    Plugins are under 'Marketplace' and you are looking for 'Linear Advance Settings'

    Then you can set {material_linear_advance_factor} from the right side panel in Cura.

    To use it you will have to add a line like 'M900 K{material_linear_advance_factor}' to your start g-code.

    I follow that line with 'M900 W{line_width} H{layer_height} D{material_diameter}' like it says in the readme:

    https://github.com/fieldofview/LinearAdvanceSettingPlugin
     

    I don't think this works with adaptive layer heights, not perfectly anyway.  I think we would have to include 'M900 W{line_width} H{layer_height} D{material_diameter}' at each layer, or each layer that is different from the last. If we wanted to adjust the Linear advance perfectly for different layers in prints sliced with adaptive layers enabled. If someone wants to test this, it could be hacked tother with a search/replace in the g-code post processor.

     

    This will be handy!

  • Link to post
    Share on other sites

    Posted (edited) · Feature request: Custom G-code in profile
    11 hours ago, drewoprea said:

    To use it you will have to add a line like 'M900 K{material_linear_advance_factor}' to your start g-code.

     

    In the current version of the plugin, this line is automatically added if it is not in the start g-code.

     

    I don't know if the second line is required or not. If it is, it does seem that this would be an issue with adaptive layer height. I admit I have never used to plugin beyond testing (or adaptive layer height for that matter).

     

    I think the plugin could also be improved for multiple extrusion; currently there is one "global" linear advance constant, but since its value is material dependent I would say that it should be possible to set this per extruder, and the M900 lines should actually (also) be in the extruder start gcode.

     

    PS: in case you had not put 1 and 1 together, I'm the author of the Linear Advance Setting plugin.

    Edited by ahoeben
  • Link to post
    Share on other sites

    Posted · Feature request: Custom G-code in profile
    On 12/12/2018 at 8:52 AM, ahoeben said:

     

    In the current version of the plugin, this line is automatically added if it is not in the start g-code.

     

    I don't know if the second line is required or not. If it is, it does seem that this would be an issue with adaptive layer height. I admit I have never used to plugin beyond testing (or adaptive layer height for that matter).

     

    I think the plugin could also be improved for multiple extrusion; currently there is one "global" linear advance constant, but since its value is material dependent I would say that it should be possible to set this per extruder, and the M900 lines should actually (also) be in the extruder start gcode.

     

    PS: in case you had not put 1 and 1 together, I'm the author of the Linear Advance Setting plugin.

    Mr Plugin Author, thank you very much for your feedback!

    In addition to the K factor, would it be possible to add a line to manually input the ratio (M900 R#), or to use the extrusion width, layer height, and filament diameter from the Cura inputs to add the "M900 K0.7 W0.4 H0.1 D1.75" GCode to set the WH/D [W * H / ((D / 2) ^ 2 * PI)] ratio?  Or just to input the values manually?

  • Link to post
    Share on other sites

    Posted · Feature request: Custom G-code in profile

    I don't quite get the request.

     

    You can use this in your start gcode:

    M900 K{material_linear_advance_factor} W{line_width} H{layer_height} D{material_diameter}

    Type the actual text, with the curly brackets, and the values will be filled in.

  • Link to post
    Share on other sites

    Posted · Feature request: Custom G-code in profile
    On 12/13/2018 at 9:26 AM, ahoeben said:

    [...] You can use this in your start gcode:

    
    M900 K{material_linear_advance_factor} W{line_width} H{layer_height} D{material_diameter}

     

     

    Where does one set {material_linear_advance_factor}? I don't see it in the material profiles.

  • Link to post
    Share on other sites

    Posted · Feature request: Custom G-code in profile
    1 minute ago, bobstro said:

     

    Where does one set {material_linear_advance_factor}? I don't see it in the material profiles. 

     

    Settings Visibility > Materials > Linear Advance Factor must be enabled, then there's a box in the Profile sidebar for it (under the Materials heading)


    I thought I typed that out in my comment above, apparently I skipped it.

  • Link to post
    Share on other sites

    Posted · Feature request: Custom G-code in profile
    32 minutes ago, drewoprea said:

     

    Settings Visibility > Materials > Linear Advance Factor must be enabled, then there's a box in the Profile sidebar for it (under the Materials heading)


    I thought I typed that out in my comment above, apparently I skipped it.

    Ah, thanks. I had enabled all settings in my preferences prior to installing the plugin, but apparently needed to go back in and re-select the option to show all settings. I'm not sure if this is documented anywhere, but it's worth noting.

     

    Thanks for a great feature.

     

    One of the really interesting features of IdeaMaker is to allow individual material profiles to selectively over-ride system-wide settings. This is great for allowing things like speeds & accerations to be adjusted for filaments using otherwise-similar profiles. 

  • Link to post
    Share on other sites

    Posted · Feature request: Custom G-code in profile

    I second the request for a different use case..

    I have enabled UBL in custom marlin.. I have 2 glass beds and may add pei as well. I can create a separate mesh for each of these saved in EEPROM and select the one according to the print surface I use, being able to send those commands from the profile would be a great way to do that, it would be significantly easier to change a string field in the profile changing the 0 to 1 or 2, than editing the start-code or selecting mesh from the lcd each time..

  • Link to post
    Share on other sites

    Posted · Feature request: Custom G-code in profile

    You can do this with machine settings.  Create a second machine with the different gcodes.  You have to edit either python or more likely json files.  There are quite a few people on here who have created their own machine settings.  And most printer sellers have created these machine profiles as well.  It's really not hard.

     

    In addition you can make the mesh for your different beds look different so you have a visual reminder of which bed type you are slicing for.

     

    @GregValiant - has done some customization - maybe he can mention where to find your file.  What printer are you using?

  • Link to post
    Share on other sites

    Posted · Feature request: Custom G-code in profile

    Hello

    You can add additional instances of your printer in Cura.  If the differences in the ABL command can be handled in the StartUp G-Code.  "My Printer - PEI" would include the leveling mesh for that build surface in the Startup Gcode.  "My Printer -glass 1" would include the leveling mesh for that build surface, etc.  Just pick the correct printer instance when you start a project.

    There are other workarounds but I've found that method to be the easiest to implement.  Each printer instance could have a different sized build plate if that was necessary.

     

  • Link to post
    Share on other sites

    Posted · Feature request: Custom G-code in profile

    I completely agree with the original idea, profile specific start/end gcodes would be a really good thing.
     

    On 10/23/2021 at 5:27 PM, gr5 said:

    You can do this with machine settings.  Create a second machine with the different gcodes.  You have to edit either python or more likely json files.  There are quite a few people on here who have created their own machine settings.  And most printer sellers have created these machine profiles as well.  It's really not hard.

     

    In addition you can make the mesh for your different beds look different so you have a visual reminder of which bed type you are slicing for.

     

    @GregValiant - has done some customization - maybe he can mention where to find your file.  What printer are you using?

     

    This isn't a solution to me, because I have 6 different type of 3D printers, and the most of them has a few material/profile specific setting, which must be entered by hand every time.
    Just an example, I have motion filament sensor, which is uneffective with TPU material, so I must turn it off before I start a print, or it will fail within a minute after start.

  • Link to post
    Share on other sites

    Posted · Feature request: Custom G-code in profile

    Cura is open source and highly customizable.  You can change your installation with a custom plugin or post-processor that might do what you want.  I'm pretty sure it wouldn't be easy and I'm positive it wouldn't be cheap.  There would still be settings to adjust on a per printer basis.

    I doubt very much that the UltiMaker Company is going to pay their people to do this for you.

     

    Cura now has the capability to do some logic in the StartUp gcode.

    This is a line from my startup.

    {";G1 F" if "TPU" in material_type else "G1 F"}{retraction_retract_speed*60} E28

    My printer is a bowden style and If I'm printing TPU I don't want it to retract.

    If I'm printing anything other than TPU the line is:

    G1 F2400 E28

    But if I'm printing TPU the line is commented out:

    ;G1 F2400 E28

     

  • Link to post
    Share on other sites

    Posted · Feature request: Custom G-code in profile
    11 hours ago, Daranbalt4 said:

    I have motion filament sensor, which is uneffective with TPU material, so I must turn it off before I start a print, or it will fail within a minute after start.

    As a fan of TPU, I'm curious... why doesn't it work with TPU?

     

    @GregValiant Why don't you just change the retraction settings in the material profile?

  • Link to post
    Share on other sites

    Posted · Feature request: Custom G-code in profile

    The retraction distance would need to be about 20mm and the prime would need to be really slow.  There is a lot of drag and compression within the bowden tube.  That's why I only print flat gaskets and other flat models.  I've taken to pulling a big loop off the roll (like 4 feet) and wiping it down with mineral oil to get it to feed half way decent.  If I don't then it quits feeding after about 20 minutes.

    At a print speed of 10mm/sec I have lots of time to tend it.

  • Link to post
    Share on other sites

    Posted (edited) · Feature request: Custom G-code in profile
    35 minutes ago, GregValiant said:

    The retraction distance would need to be about 20mm and the prime would need to be really slow.  There is a lot of drag and compression within the bowden tube.  That's why I only print flat gaskets and other flat models.  I've taken to pulling a big loop off the roll (like 4 feet) and wiping it down with mineral oil to get it to feed half way decent.  If I don't then it quits feeding after about 20 minutes.

    At a print speed of 10mm/sec I have lots of time to tend it.

    It is at this point I realise how grateful I should be that I have a direct drive extruder. I get to print TPU at a whole 20mm/s (I could go faster, but the results aren't as good).

    Edited by Slashee_the_Cow
  • Link to post
    Share on other sites

    Posted · Feature request: Custom G-code in profile

    Over the years I just haven't needed to print many things in TPU.  If I was going to I would certainly get a DD machine.  I've never had real issues with the bowden system (for other materials) as long as I trim the bowden back every 50 hours or so.  The constant rotation of the bowden tube in the lock fitting on the hot end drives the little knives into the tube and it will develop up to 1mm of slop.  That effects the retraction distance (by a lot).

    Trying to push TPU 95A through a 14 inch tube is a challenge.

     

  • Link to post
    Share on other sites

    Create an account or sign in to comment

    You need to be a member in order to leave a comment

    Create an account

    Sign up for a new account in our community. It's easy!

    Register a new account

    Sign in

    Already have an account? Sign in here.

    Sign In Now
    • Our picks

      • UltiMaker Cura 5.7 stable released
        Cura 5.7 is here and it brings a handy new workflow improvement when using Thingiverse and Cura together, as well as additional capabilities for Method series printers, and a powerful way of sharing print settings using new printer-agnostic project files! Read on to find out about all of these improvements and more. 
         
          • Like
        • 18 replies
      • S-Line Firmware 8.3.0 was released Nov. 20th on the "Latest" firmware branch.
        (Sorry, was out of office when this released)

        This update is for...
        All UltiMaker S series  
        New features
         
        Temperature status. During print preparation, the temperatures of the print cores and build plate will be shown on the display. This gives a better indication of the progress and remaining wait time. Save log files in paused state. It is now possible to save the printer's log files to USB if the currently active print job is paused. Previously, the Dump logs to USB option was only enabled if the printer was in idle state. Confirm print removal via Digital Factory. If the printer is connected to the Digital Factory, it is now possible to confirm the removal of a previous print job via the Digital Factory interface. This is useful in situations where the build plate is clear, but the operator forgot to select Confirm removal on the printer’s display. Visit this page for more information about this feature.
        • 0 replies
    ×
    ×
    • Create New...