Jump to content

Cura 2.1 open beta has been released!


SandervG

Recommended Posts

Posted · Cura 2.1 open beta has been released!

WHAT IS THE WORKFLOW for having Cura 2.1.x generate G-Code that an Ultimaker II extended accepts via the USB-Port (no no Ulti-GCode like from SD-card but regular G-Code)?

 

You need to change the g-code flavour to reprap (instead of ulti-gcode) in the machine definition (the .json file)

 

Where exactly do I have to put what values with Cura 2.1.x?

 

We have definitions; These define what a setting is, what it depends on and what it's default is. We also have profiles; These define a current state of a setting (eg; A value that is not default)

 

What values belong into machine_instances and what values into instance_profiles?

 

There is no strict rule what goes where.

 

What are the property and section -names to use and what is the format of these files? (looks somewhat like a Windows .ini file but that's just guessing. No idea how to do escaping and multi-line entries. )

 

Just have a look at the .cfg files that Cura already saves.

 

Where do I put the values from MATERIALS.TXT (temperatures and speed+fan -overrides)?

 

You can put those in a profile.

 

How do I select a material?

 

Machines can have a property that is named something like "has_materials". If it's true, cura will show a material selection.

  • Link to post
    Share on other sites

    • Replies 296
    • Created
    • Last Reply

    Top Posters In This Topic

    Posted · Cura 2.1 open beta has been released!

    As I just wrote, there files are not json anymore.

     

    I don't understand what you mean.

     

    Where are those .cfg files, that I am to look at, saved?

     

    It depends on your operating system. In the case of linux, your custom profiles are saved at ~/.local/share/cura

     

    Why is none of this documented?

     

    This is documented, but right now it's documented in the code. We haven't had the time yet to pull the documentation from there into a better format.

  • Link to post
    Share on other sites

    Posted · Cura 2.1 open beta has been released!

     

    As I just wrote, there files are not json anymore.

     

    I don't understand what you mean.

     

    Where are those .cfg files, that I am to look at, saved?

     

    It depends on your operating system. In the case of linux, your custom profiles are saved at ~/.local/share/cura

     

    Why is none of this documented?

     

    This is documented, but right now it's documented in the code. We haven't had the time yet to pull the documentation from there into a better format.

     

    I did not ask where to find the custom profiles but where too find the. cfg files you're mentioned hat define the name, section name and valid values fir parameters to use in custom machine profiles.

    What don't you understand?

    I found these files, I wrote where I found them and they do not contain anything that has a JSON syntax. They have some different syntax that reminds me of Windows. ini files.

    Why would any program not named "local" write into /home/USER/.local on Linux? That's completely against the LSB.

    Anyway, I'm talking MacOS here where the canonical place is Library/application support/APPNAME, just as Cura 15 has done.

    code is no documentation.

    This is beta. not alpha.

    Features and end user documentation should be complete. They may contain bugs. If any of these does not even exist yet, it's not Beta but Alpha.

    Defining a machine in something end users do. No end user will ever look at these source code.

    Frankly I'm verd surprised than no profile for Ultimaker printers for the USB printing already exists in the Cura 2.1.x distribution.

  • Link to post
    Share on other sites

    Posted · Cura 2.1 open beta has been released!

    The canonicl place for such files on MacOS

    /Users/marcuswolschon/Library/Application Support/Cura

    only contains Cura 14.x and 15.x files.

    There is no

    /Users/marcuswolschon/.local

    /Users/marcuswolschon/.cura

    contains some Cura 14 and very few Cura 2.1 files.

    There is a file

    /Users/marcuswolschon/.cura/cura.cfg

    it seems to contain the last state of the Cura UI.

    /Users/marcuswolschon/.cura/profiles

    with my slicing profiles

    /Users/marcuswolschon/.cura/machines

    empty

    /Users/marcuswolschon/.cura/machine_instances and

    /Users/marcuswolschon/.cura/instance_profiles

    with my SD-card Ultimaker II extended and my new USB Ultimaker II extended.

    They contain no more then:

    [general]

    name = Ultimaker 2 Extended

    type = ultimaker2_extended

    active_profile = Normal Quality (50%, nGen-slow)

    version = 1

    [machine_settings]

    As you can see, none of this is JSON syntax.

    What I am asking for:

    * You mentioned some .cfg file that defines all parameters and sections that I can

    use inside these files. I can’t find that list.

    * What parameters do I need to add to my machine_instances/PROFILE.cfg and instance_profiles/PROFILE.cfg to create an „Ultimaker II extended“ printer profile that produces regular G-Code, that such an Ultimaker printer will accept via the USB port with header and footer specific to the UM2 and specific for any material and nozzle I choose?

  • Link to post
    Share on other sites

    Posted · Cura 2.1 open beta has been released!

    The canonicl place for such files on MacOS

    /Users/marcuswolschon/Library/Application Support/Cura

    only contains Cura 14.x and 15.x files.

    There is no

    /Users/marcuswolschon/.local

    /Users/marcuswolschon/.cura

    contains some Cura 14 and very few Cura 2.1 files.

    There is a file

    /Users/marcuswolschon/.cura/cura.cfg

    it seems to contain the last state of the Cura UI.

    /Users/marcuswolschon/.cura/profiles

    with my slicing profiles

    /Users/marcuswolschon/.cura/machines

    empty

    /Users/marcuswolschon/.cura/machine_instances and

    /Users/marcuswolschon/.cura/instance_profiles

    with my SD-card Ultimaker II extended and my new USB Ultimaker II extended.

    They contain no more then:

    [general]

    name = Ultimaker 2 Extended

    type = ultimaker2_extended

    active_profile = Normal Quality (50%, nGen-slow)

    version = 1

    [machine_settings]

    As you can see, none of this is JSON syntax.

    What I am asking for:

    * You mentioned some .cfg file that defines all parameters and sections that I can

    use inside these files. I can’t find that list.

    * What parameters do I need to add to my machine_instances/PROFILE.cfg and instance_profiles/PROFILE.cfg to create an „Ultimaker II extended“ printer profile that produces regular G-Code, that such an Ultimaker printer will accept via the USB port with header and footer specific to the UM2 and specific for any material and nozzle I choose?

    The last one is a one of the very first tasks any novice user that doesn’t happen to be using an Ultimaker or doesn’t happen to use it via SD cards has to do.

    BUG #1: You clearly have a very large documentation bug if even an experienced developer can’t figure this out in several days.

    BUG #2: You also seem to have a very large User Experience bug if this is as complicated as it seems to be. (this should have been found in the concept phase. It will be very costly to fix in such a late stage.)

  • Link to post
    Share on other sites

    Posted · Cura 2.1 open beta has been released!

    I found some JSON files

    INSIDE THE CURA APPLICATION PACKAGE

    /Users/marcuswolschon/Desktop/Cura 2.1.2.app/Contents/Resources/cura/resources/machines

    By right clicking on the Cura 2.1.2 and selecting "show package content"

    so see what a specific vesion of Cura is made up of.

    Doesn't help much as this is a completely different syntax then my machine profile files.

  • Link to post
    Share on other sites

    Posted · Cura 2.1 open beta has been released!

    I did not ask where to find the custom profiles but where too find the. cfg files you're mentioned hat define the name, section name and valid values fir parameters to use in custom machine profiles.

     

    Those are the machine definitions. Those json files can be found in the package, under resources.

     

    Why would any program not named "local"  write into /home/USER/.local on Linux? That's completely against the LSB.

     

    Uh. ALmost every single application that I have? My ~/.local/ holds about 50 folders. Including everythig from KDE, codeblocks, gnome-shell, keyrings, webkit, plasma, etc.

     

    code is no documentation.

    This is beta. not alpha.

    Features and end user documentation should be complete. They may contain bugs. If any of these does not even exist yet, it's not Beta but Alpha.

    Defining a machine in something end users do. No end user will ever look at these source code.

     

    2.1 is not in beta any more. We don't expect normal users to create their own machine definitions. I didn't understand your original question, but there is documentation on how to do this.

    We are also not omnipotent and are in a permanent lack of time to do everything properly. If you find issues with documentation please help us improve them. You don't have to be able to code to be able to improve Cura.

     

    Frankly I'm verd surprised than no profile for Ultimaker printers for the USB printing already exists in the Cura 2.1.x distribution.

     

    Huh? Ultimaker Original (+) machines can print on USB just fine. You don't need a different profile for that...

  • Link to post
    Share on other sites

    Posted · Cura 2.1 open beta has been released!

    The last one is a one of the very first tasks any novice user that doesn’t happen to be using an Ultimaker or doesn’t happen to use it via SD cards has to do.

    BUG #1: You clearly have a very large documentation bug if even an experienced developer can’t figure this out in several days.

     

    Google; "Add machine cura 2" and press I'm feeling lucky. How is that a documentation bug? As an experienced developer googling something should be your first step ;)

     

    BUG #2: You also seem to have a very large User Experience bug if this is as complicated as it seems to be. (this should have been found in the concept phase. It will be very costly to fix in such a late stage.)

     

    All ultimaker machines are already added. The UM2 is officially not supported to USB print. The fact that it's possible and not boarded it shut does not mean that we need to spend tons of time in developing a fancy interface for it.

    We let you do things that are non-standard, but you shouldn't be surprised that it takes a bit of effort to get it going.

  • Link to post
    Share on other sites

    Posted · Cura 2.1 open beta has been released!

    The machine_instance_profile seems to contain the default printing profile.

    the machine_instance the machine settings.

    I'm currently experimenting with:

    [general]

    name = Ultimaker 2 Extended (Octoprint)

    type = ultimaker2_extended

    active_profile = Normal Quality

    version = 1

    [machine_settings]

    machine_start_gcode = "Gcode commands to be executed at the very start - separated by \nG28 ; Home\nG1 Z15.0 F6000 ;move the platform down 15mm\n;Prime the extruder\nG92 E0\nG1 F200 E3\nG92 E0"

    machine_height = 315

    machine_end_gcode = "Gcode commands to be executed at the very end - separated by \nM104 S0\nM140 S0\n;Retract the filament\nG92 E1\nG1 E-1 F300\nG28 X0 Y0\nM84"

    machine_gcode_flavor = RepRap

    Values are guessed from what I found in the .json files in the app packages itself.

    It seems to ignore the machine_heigth completely.

    machine_start_gcode is not ignored but the newlines are.

    " are written into the resulting .gcode, so this file format doesn't seem to require much escaping.

    No idea how multi-line values are encoded in this file format.

    (No idea how comments are formated too. An educated guess is either "#" "//" or "** ")

  • Link to post
    Share on other sites

    Posted (edited) · Cura 2.1 open beta has been released!

    That takes me to

    https://ultimaker.com/en/resources/20511-change-machine-settings

    and that documentation only works for Windows.

    In MacOS doing the same means I have to edit INSIDE and IN EACH Cura-version that is installed on this Computer.

    That's something nobody should EVER do on MacOS and obviously it will not survive any update and will not work on any computer where you are not the admin.

    (I'm not developing for Mac myself but I guess it would also invalidate the signature on the Cura application.)

    Edited by Guest
  • Link to post
    Share on other sites

    Posted (edited) · Cura 2.1 open beta has been released!

    (double post due to very slow EDGE cellphone networking in this train)

    Edited by Guest
  • Link to post
    Share on other sites

    Posted · Cura 2.1 open beta has been released!

    Just using newlines makes the file unreadable.

    Using \\n as in the JSON files doesn't work either.

    No idea how that damn syntax is supposed to look like.

    machine_height is still ignored.

    If I know how subsections of sections look like, I could try

    machine_settings->machine_height->default=315

    (Aparently nobody ever has any printer that's not in the list of defaults and nobody ever builds or modifies a printer. Cura seems to turn into a pure Ultimaker-Only Tool and I still don't understand why it doesn't accept the same file format from SD and from USB. Hopfully when some day there will be the inevitable Wifi-Ultimaker it won't have a third G-Code flavor for that.)

  • Link to post
    Share on other sites

    Posted (edited) · Cura 2.1 open beta has been released!

    Major breakthrough!

    I found out how to do multi-line entries. So start- and end- gcode work now.

    For some readon it does remove every line that is only a comment....except the first.

    So I can't have a nice delimiter at the end of start_gcode and at the start of end_gcode or any comments to make it more human readable for debugging.

    machine_height is still ignored. No idea what I could even try about that one.

    has_materials = true

    enables a new section but I can't add any temperature entries to it (all greyed out, so I can't make them visible) and no selection of an actual material although Cura does include a very short list of material definitions.

    #

    [general]name = Ultimaker 2 Extended (Octoprint)type = ultimaker2_extendedactive_profile = Normal Qualityversion = 1[machine_settings]machine_height = 315uses_materials = truemachine_end_gcode = ;Gcode commands to be executed at the very endM104 S0M140 S0G92 E1G1 E-1 F300G28 X0 Y0M84machine_start_gcode = ;Gcode commands to be executed at the very startG28 ; HomeG1 Z15.0 F6000G92 E0G1 F200 E3G92 E0machine_gcode_flavor = RepRap

     

    Edited by Guest
  • Link to post
    Share on other sites

    Posted (edited) · Cura 2.1 open beta has been released!

    Found the material settings but without recursive entries I can't do something like

    material->settings->material_print_temperature->visible=true

    Obviously no clue how to enable a way to choose betwen any of the materials defined in

    /Users/marcuswolschon/Desktop/Cura 2.1.2.app/Contents/Resources/cura/resources/profiles/materials

    or how to add a new one to that list.

    As these are the same, strange .ini files, I guess creating a new directory "materials" in my home directory in .cura/ and placing one there would work.

    ..this is all just terribly frustrating guessing and reverse engineering while it should have been right up there at https://ultimaker.com/en/resources/20511-change-machine-settings as everyone with a machine that's not in the list has to do this.

    Edited by Guest
  • Link to post
    Share on other sites

    Posted · Cura 2.1 open beta has been released!

    (Aparently nobody ever has any printer that's not in the list of defaults and nobody ever builds or modifies a printer.

     

    We've already recieved over 10 comunity contributed printers. All of them have been able to do this.

     

    Cura seems to turn into a pure Ultimaker-Only Tool

     

    It won't. But you can't expect Ultimaker to invest money in making non UM printers work. We are open source, but UM is still a company (And I also want to get paid ;)) The user contributed definitions are in the Cura release, so you can already see that this statement is not true.

     

    I still don't understand why it doesn't accept the same file format from SD and from USB.

     

    Because USB printing is not supported with UltiFlavour g-code. So it's the same file format but a different flavour of g-code.

     

    Hopfully when some day there will be the inevitable Wifi-Ultimaker it won't have a third G-Code flavor for that.)

     

    If there is going to be network printing, there won't be a new g-code flavor.

  • Link to post
    Share on other sites

    Posted · Cura 2.1 open beta has been released!

    This is all just terribly frustrating guessing and reverse engineering while it should have been right up there at https://ultimaker.com/en/resources/20511-change-machine-settings as everyone with a machine that's not in the list has to do this.

     

    That's because it's in there, but you are doing it wrong. You're changing .cfg files which are profiles; Profiles are for qualities and materials. You can only changes values of settings with these .json files are for machine definitions. In these you can change how settings behave (For 2.1; Visibility, enabled, error / warning values, etc). What you want (and is explained in the tutorial) is how to change a machine definition.

  • Link to post
    Share on other sites

    Posted (edited) · Cura 2.1 open beta has been released!

    but the. json files are not in the user home directory or in the /Library/application support directory.

    They are part of the application.

    They exist separately for every version of Cura that is on a Mac computer and are contained again with every updated version that will ever be downloaded. Each version in turn will ignore all such files contained in any other version.

    The are simply stored in the wrong place if they are to be modified on this platform.

    If there was a secondary directory in /Library/application support/Cura/2.1.2 or something, I'd be happy to do so.

    Currently it means that the only PROPER way for me to add a custom printer (apart from a pull request that will never get merged as you officially don't support my two printers) is to maintain a fork at GitHub and build and cryptographically sign my own cura.app packages.

    Edited by Guest
  • Link to post
    Share on other sites

    Posted · Cura 2.1 open beta has been released!

    Currently it means that the only PROPER way for me to add a custom printer (apart from a pull request that will never get merged as you officially don't support my two printers)

     

    Huh? No. Have you been reading my posts? We've already merged a ton of printers that are not made by us. Just because we won't make the definitions doesn't mean we won't accept them.

  • Link to post
    Share on other sites

    Posted · Cura 2.1 open beta has been released!

    So you WOULD support an Ultimaker USB printing profile my merging a pull request if someone else was to write the json and create such a pull request?

    I thought you just said that you're don't support Ultimaker USB printing.

    I can do that one of these days but obviously merging it would mean for it took end up in the selection dialog. Visible for each user.

    Still, why not allow reading machine definitions from a secondary location outside the '.app' package in addition to the ones supplied with the app?

    Wouldn't that be a far more reasonable change?

    That would allow for defining machines that have no point in being part of the selection dialog of every single Cura out there. (e. g. 'Marc's custom machine #12')

  • Link to post
    Share on other sites

    Posted · Cura 2.1 open beta has been released!

    So you WOULD support an Ultimaker USB printing profile my merging a pull request if someone else was to write the json and create such a pull request?

    I thought you just said that you're don't support Ultimaker USB printing.

     

    We don't officially support it. This means that we don't spend time on it, not that it can't be in Cura / marlin / whatever

     

    Still, why not allow reading machine definitions from a secondary location outside the '.app' package in addition to the ones supplied with the app?

    Wouldn't that be a far more reasonable change?

     

    That is also an option yeah. I would prefer having all 3D printers as definitions in the cura release of course.

     

    That would allow for defining machines that have no point in being part of the selection dialog of every single Cura out there. (e. g. 'Marc's custom machine #12')

     

    This is why in 2.2 we also support machine variants. You use a certain machine as a base (say an ultimaker original) that you've modified in some way (let's say you added a heated bed). The variant would then sit on top of the original definition with the change that it has a heated bed.

    • Like 1
    Link to post
    Share on other sites

    Posted (edited) · Cura 2.1 open beta has been released!

    https://github.com/Ultimaker/Cura/issues/847#issuecomment-230454073

    apparently that secondary location for json files exists.

    It just wasn't documented and nobody here knew about it.

    Edited by Guest
  • Link to post
    Share on other sites

    Posted · Cura 2.1 open beta has been released!

    https://github.com/Ultimaker/Cura/issues/847#issuecomment-230454073

    apparently that secondary location for json files exists.

    It just wasn't documented and nobody here knew about it.

    I know this "~/.cura/machines" folder and have talked about it in some previous comments here.

    The problem is that it doesn't work on OSX (Cura 2.1.2).

    The machines are seen in the list, it slices, I can click on "Save to File" and select an folder, but when clicking on "Save", this closes the popup and nothing happens.

    There's no usual popup saying "Open location" nor any gcode file written.

    I'm currently using my machine files in the Cura.app folder and this works well there.

  • Link to post
    Share on other sites

    Posted · Cura 2.1 open beta has been released!

    It just wasn't documented and nobody here knew about it.

    Myself included ;)

  • Link to post
    Share on other sites

    Posted (edited) · Cura 2.1 open beta has been released!

    I know this "~/.cura/machines" folder and have talked about it in some previous comments here.

    The problem is that it doesn't work on OSX (Cura 2.1.2).

    The machines are seen in the list, it slices, I can click on "Save to File" and select an folder, but when clicking on "Save", this closes the popup and nothing happens.

    There's no usual popup saying "Open location" nor any gcode file written.

    I'm currently using my machine files in the Cura.app folder and this works well there.

     

    Murphy: It seems that no issue ticket existed for that behavior.

    I created

    https://github.com/Ultimaker/Cura/issues/850

    and for a related issue

    https://github.com/Ultimaker/Cura/issues/849

    I cloned the sources to my local machine but I doubt that I'll have the time to dig deep enough into them to find the issue myself.

    But  educated guessing came up with a solution for you:

    When you copy fdmprinter.json, ultimaker2.json ... from

    ..../Cura 2.1.2.app/Contents/Resources/cura/resources/machines

    into

    ~/.cura/machines

    then everything works.

    Aparently it looks for the parent files only in the same directory, where it got the json file given by the UI.

    You can also add additional materials to

    ~/.cura/profiles/materials

    but be careful, the file structure is identical to the MATERIALS.txt that the firmware imports from an SD card but the property and section names inside are different. Strange design decision. I haven't checked overriding fan_speed or diameter yet (I override these in MATERIAL.TXT).

    I updated by Octoprint+UM2 guide at http://marcuswolschon.blogspot.de/2016/06/getting-started-with-raspberry-pi-3.html accordingly and should now be able to use Octoprint for my ultimate filament monitor and avoid modifying the firmware to pause prints.

    Edited by Guest
  • 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.
          • Like
        • 0 replies
    ×
    ×
    • Create New...