Jump to content
SandervG

Cura 2.1 open beta has been released!

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.

Share this post


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.

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

Why is none of this documented?

Share this post


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.

Share this post


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.

Share this post


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?

Share this post


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.)

Share this post


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.

Share this post


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...

Share this post


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.

Share this post


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 "** ")

Share this post


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

Share this post


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.)

Share this post


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

Share this post


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

Share this post


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.

Share this post


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.

Share this post


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

Share this post


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.

Share this post


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')

Share this post


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

Share this post


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.

Share this post


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 ;)

Share this post


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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Our picks

    • Ultimaker Cura 4.0 | Stable available!
      Ultimaker Cura 4.0 is mainly focused on the improved user interface and cloud integration.
      As always, we want to collect your user feedback for this release. If there are any improvements you can think of, feel free to mention it here and help us to shape the next release.
      • 20 replies
×
×
  • Create New...

Important Information

Welcome to the Ultimaker Community of 3D printing experts. Visit the following links to read more about our Terms of Use or our Privacy Policy. Thank you!