Jump to content
Ultimaker Community of 3D Printing Experts

Help generating printer definition and variant/quality (Simple question to any expert)


Recommended Posts

Posted · Help generating printer definition and variant/quality (Simple question to any expert)

Greetings,

I am going to generate some profiles for a mini-kossel (Micromake D1) and was curious about where the default setting are for the profiles.

I can overwrite them in my variant configs for nozzles but that seems the wrong place for infill and support changes.  I would like to "override" some of the more basic features in my machine definition file.

 

Ex machine.)

        "infill_pattern": {
            "default_value": "gyroid"
        }

When i do this there is no change to the default 'Grid' selection in any of the profiles...  when i check the quality folder the default quality profiles just have the [metadata] and no values other than layer/speed...

I see in the quality folders lots of setting which are onerous because there is a profile for each material, variant, and quality.  This is getting cubic quickly...

Searching https://github.com/Ultimaker/Cura/wiki/Profiles-&-Settings I was expecting something hidden in material or intent, but found nothing...

 

Questions:

1.)  So where are the default profile values stored if not machine, intent, or quality?  (Is there a cache under appdata i need to clear for a machine update?)

2.)  If I make one quality setting for my machine definition everything goes sideways...  Do i need to make a quality definition for every variant and default quality type before Cura will function?  I would like to cut down on the number of quality selections.  I saw the "has_machine_quality": true and expected that to not default the normal so if i have only one quality that should be the only option in the pull down.

3.)  Is there a way to set layer height based on nozzle size using equations in quality file?  ( I would prefer Quality = 1/4 nozzle diam, Standard = 1/2, Fast 3/4) as my default line height based on nozzle) That way i don't have to make 4x the quality files for variant + quality settings for the 4 standard Revo nozzles.

4.) Is Cura 5.0 going to break all of this?

 

I will continue to muddle around trying to get something working...  thanks in advance to anyone who can answer and takes pity on this lost non-coder using notepad.

  • Link to post
    Share on other sites

    Posted (edited) · Help generating printer definition and variant/quality (Simple question to any expert)

    Many (if not all) of the settings are contained in "fdmprinter.def.json".  I'll use my Ender as an example as I'm most familiar with it.

    At the top of the creality_ender3pro.def.json file is a line "inherits": "creality_base",.

    OK I open creality_base.def.json and there is a line "inherits": "fdmprinter".  Progress.

     

    So all the settings in the fdmprinter.def.json go to the creality_base file which is much smaller and where there is a section for "overrides".  Any settings in the "fdm" file that don't fit the Creality line of printers get changed in the overrides section.  The final file "creality_ender3pro.def.json" is specific to my printer and also has an overrides section.  Those final overrides tweak the settings for my particular machine.

     

    The "kossel_mini.def.json" file has an overrides section.  That is where you want to put your changes to settings.  In line 1988 of fdmprinter.def.json you will find the section dealing with the infill types and yes the "default_value": "grid" is in there.  If you were to add (properly formatted and punctuated) lines to the override section in your machine definition file:

    "infill":
          "infill_pattern":
              "default_value": "gyroid"

    Then when you start Cura it will be read in.

    I keep copies of my personalized Ender files in a folder and when I update Cura I overwrite the stock Cura files with my own files.  So I can do things like add up to 4 extruders on any Creality printer because I've customized the creality_base.def.json file.  I have my personalized Start and End gcodes in there as well.  Those are "machine specific" things.

     

    If you changes are "preferences" (like Gyroid instead of Grid) then an easier way to do it is with Settings Profiles.  When you have the settings in the Custom view then Profiles become available.  Clicking on the active profile will open a drop down list and at the bottom are some options.  One is "Create Profile from Current Settings/Overrides".  Then you get to name it.  I have one for PLA fast, PLA slow, PETG, and TPU.  The speeds, temperatures, infill type, etc. are all in there.  No matter how I make changes for a particular model if I click on PLA Fast I get that set of defaults and I can start customizing for another model.  Those profiles carry over from version to version where custom machine definition changes do not.

     

     

    Edited by GregValiant
  • Link to post
    Share on other sites

    Posted (edited) · Help generating printer definition and variant/quality (Simple question to any expert)

    Thanks Greg...

    I just have to ask the question to then find out my answer later. I understood the inheritance but failed on the syntax
    Correct answer is strings in data file need '' as well as ' ...  actually am shamelessly copying flying bears file.  They use as defaults what i would as well.  Thank you flying bears.

     

            "infill_pattern": {
                "default_value": "'gyroid'"
            }

     

    Have you had any luck on making a quality default profile for your machine defaults.

    I added to my machine definition:

    "has_machine_quality": true,
     "preferred_quality_type": "normal",

    I made a folder in quality called micromake_d1 copied all the base profiles and then changed definition = micromake_d1.

    Cleared all the speed properties issues that were causing me problems under values that were overriding my values but when i start Cura it goes sideways.  My material selection is orange and my profiles all say "Not supported".  I did not think i would need to add individual profiles for each material/quality if i did not state "has materials" in the machine definition.

     

    now i can fix this issue in my personal install by just modifying the defaults quality for fdmprinter, but i want something that can merge into the Cura base and I imagine Cura does not want me modifying that file...  I am concerned that what Cura wants is a file for each material/nozzle/quality setting and that  not a data structure that is non-trivial to set defaults.

    Edited by LucidWolf
    gramma
  • Link to post
    Share on other sites

    Posted · Help generating printer definition and variant/quality (Simple question to any expert)

    Just to add I was able to get the Not supported cleared by adding individual quality files for:

    • PLA
    • All four nozzles
    • 2/3 Quality (layer heights)

    Using flyingbear values as a reference, but as expected switching to ABS back to Not Supported...  What i would like is a quality setting that says (Material = any).

    Or some simple way to overide the .cfg that link to fdmprinter in the quality folder.

    For now i am going to just purge all the speed values in fdmprinter files so they don't mess up my machine defaults and my material defaults and it only sets line height.

     

    (Note: Would love to have line height just set by some fraction of nozzle height like i manually do in my home brew user profiles.  That is probably another thread topic so i started that.)

     

    I love this program and I don't want this to be too negative on the developers but I see some "why does my printer act differently after update" threads and its because the machine definitions were purged and never added back.  I can see why manufacturers/users don't add there printers back if Cura designers think requiring a x^3 material, variant, layer matrix as necessary to modify even the most basic of quality settings is required. 

    Why even have the default stack profile if the code gate keeps on the quality settings when you add custom quality defaults.  I actually think the print settings are pretty well laid out but they just need to allow a fail safe in the printer file that just does not care if you don't have a specific material to quality to nozzle like the baseline fdmprinter.

     

    I still feel like I am doing something wrong based on the fact that that i have to enter all that data just to get a custom quality default, so if I am wrong i will happily eat my words above.

     

    Also while Cura 5.0 is beta what would be nice if there was some sort of queue on the print settings telling us where the default value is coming from.  I used colors but would probably be better to use the icons you already have for the color blind.  (User override is no icon because we already have the revert symbol. ^^)

    640026288_CuraPrintSettings.thumb.jpg.79b0ff1f53aa3beb727aa7ca431c9a61.jpg

     

    • Like 1
    Link to post
    Share on other sites

    Posted · Help generating printer definition and variant/quality (Simple question to any expert)

    You've gone way beyond me here.  I try to keep it simple.

    I have custom materials that are set to what I actually print.  Diameters, preferred temperatures, retraction settings, etc.

    I own 1 printer but I have 3 printers installed in Cura.

    If I'm printing PETG then I select my "PETG Ender 3 Pro".  The difference is in the StartUp Gcode where the purge line speeds and flow have been adjusted for my preferences for PETG.  There is also a "Search and Replace" that is specific to my retraction and retract distance for PETG.  (Post-Processor plugins attach to the printer so that works).

    Then I have a Settings Profile for PETG that gives me my preferred speeds, flow rates, etc.

    I did the same thing for TPU.  When I print it I use the "TPU Ender 3 Pro", my TPU Material, and my TPU Settings Profile.

     

    That has worked for me and it's easier for me to keep straight in my head.  Any modifications I make during the course of a Cura session (things that are model specific) I either toss out when I'm done, or I save a Project File that will re-create everything I did.

     

    Because I load so many 3mf Project Files that were generated by other people (here and on GitHub) I found it necessary to have my own set of printer definition files that have my overrides so I have something to revert to if my installed definitions get overwritten.  I've have my own simple "installer" that copies my files into any new installation of Cura.  It's something that works for me and yes, there is some maintenance involved in doing that.

     

    Changing the FDMPrinter.def.json file will lead to BAD JU-JU down the road.  I got caught in that trap once and it won't happen again.

     

     

  • Link to post
    Share on other sites

    Posted · Help generating printer definition and variant/quality (Simple question to any expert)

    Greetings Greg,

     

    Yeah this is just me trying to get better before I upgrade a less savvy user.  I told them to hold off on upgrading back on Cura 0.15 since it was still new and did not have all the stuff they expected, and they held to that belief for 1/2 a decade.  ^^

    Will probably leap frog them to Cura 5.0 and Klipper.  I never thought to just save my profiles in the 3mf files themself somewhere.  I might just start doing that to keep the profile list clutter down. 

     

    I have 2 printers(delta kinematics) but use 7 different machines in Cura based on nozzle/material then the list of dummy user profiles all {printer name}_{Nozzle Size}_{Material}_{Intent}, but i could purge about 75% of them and only focus on intent if the settings stack just worked after a slight change to the quality profiles.  I am not concerned with 100% verified values because each printer/material/nozzle combo is its own special snowflake so i will adjust those with a user override and now save it in a 3mf file.   I use that custom print name plugin to keep it all straight in the octoprint server.

     

    I will say that so far just overwriting the base fdm profiles in the program files quality section to what i want for quality is working swimmingly, I imagine the risk is much lower than messing with FDMPrinter.def.json. I will probably only need to modify the quality profiles this one time till i get my list of standard profiles saved in a 3mf files.

  • 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
     Share

    • Our picks

      • Ultimaker showcase | April 2022 | 4pm CEST | 10am EDT
        I'm excited because I've personally produced this showcase event, so if you are curious what else I'm up to nowadays, come check it out and say hi in the chat! It would mean a lot! 
          • Thanks
          • Like
        • 4 replies
      • New here? Get ahead with a free onboarding course
        Hi,
         
        Often getting started is the most difficult part of any process. A good start sets you up for success and saves you time and energy that could be spent elsewhere. That is why we have a onboarding course ready for
        Ultimaker S5 Pro Bundle, Ultimaker S5, Ultimaker S3 Ultimaker 2+ Connect.   
        They're ready for you on the Ultimaker Academy platform. All you need to do to gain access is to register your product to gain free access. 
        Ready? Register your product here in just 60 seconds.
          • Like
        • 11 replies
    ×
    ×
    • Create New...