Thank you. I hoped, that there was another way. But that's what I did now.
- 7 months later...
On 1/29/2023 at 11:33 AM, BastelWastel said:But that's what I did now.
@BastelWastel what exactly did you do...?
where did you create the .def.json printer definition?
I would like to do the same thing
I found a .def.json file in /Applications/UltiMaker Cura.app/Contents/Resources/share/cura/resources/definitions/fdmprinter.def.json (on MacOs)
but editing that file didn't work
I also found these /Users/..user../Library/Application Support/cura/5.4/definition_changes/pino_settings.inst.cfg
but couldn't find any .json files there...
cheers / joris
4 hours ago, rooiejoris said:I found a .def.json file in /Applications/UltiMaker Cura.app/Contents/Resources/share/cura/resources/definitions/fdmprinter.def.json (on MacOs)
You really shouldn't change that file. Almost every printer profile in Cura is based on it (usually indirectly through one for a manufacturer).
To find where to put your custom files, open Cura and Help > Show Configuration Folder (I don't know where it is on MacOS or I'd point you straight to it).
If your printer is anything like an existing printer, it's best to copy the .def.json for that and make your necessary changes. If it's completely original, you can just copy fdmprinter.def.json, put it in the definitions folder in your Cura configuration folder., and make your changes (then rename the file to whatever you set the printer name to). You'll also need to create some files in the variants folder for the different sizes of nozzle you can use, but for most printers you can just copy some existing ones and just edit the printer name to what you set in the JSON config file.
Just copied the "fdmprinter.def.json" to the config folder and changed
"visible": true,
"platform": "platform.stl",
(visible was set to false and platform line was added)
However I don't see a "meshes" folder, I created one to test, but didn't work.
There are no files in the "variants" folder, but there are config changes in the "definition_changes" folder
I have an ".inst.cfg" in there.
I see in the .json file a line with:
"has_variants": false,
so I don't think the variants are necessary...?!?
Some extra information why I want this: The bed size is 1000x600mm (big!) and there is a glass chip of the bed on a certain spot, I have a stl file with a hole on that spot I want to have as a buildplatform. Now I just load that file, but it would be luxury to have that default in Cura.
cheers / joris
Any chance you could upload the .def.json file you created? (You might have to put it in a zip file to be able to attach it to the post)? Cura can be very picky when it comes to parsing definition files so it's easy for there to be something in there it doesn't like.
Also, you should probably change the "has_variants" and make variant files. That line is set like that in the base profile because the base profile doesn't need variants, because it's expected that that file will only be used as a base, and that any profile which inherits it (basically all of them) will have variants.
Edited by Slashee_the_Cowadded bit about variants
Copying the fdmprinter.def.json and starting from that is a bad idea (almost as bad as editing fdmprinter.def.json directly). Don't do it, you are only making your life harder.
Instead, you are much better off by making a copy and editing a simple definition like the 101Hero or the 3dator. They reference the fdmprinter.def.json file.
You don't need to add variants (and "has_variants" is false by default), but you should really create an extruder (even if your printer only has one). See the corresponding .def.json file for the 101Hero or 3dator you started with (and see how it is referenced in the main .def.json file).
Edited by ahoebenFor what it's worth, I can personally attest that if you're not that experienced, adding a new printer definition to Cura is %^#&ing annoying and a case of "I did all the steps, all the files are there, why the $#(* aren't you working?!!?!?!!?!!!!!??". And I was just copying and modifying the profile for the Ender-3/Ender 3 v2 to add a couple of changes for my Ender-3 v2 Neo.
Also @ahoeben I'm sorry if I make your life harder by not giving the best advice. There's a reason you've clocked up 4.8K posts and I have 0.1K.
On 9/18/2023 at 11:28 AM, ahoeben said:copy and editing a simple definition like the 101Hero or the 3dator. They reference the fdmprinter.def.json file
@Aldo should this be done in the 'applications' folder or in the 'config folder'? I don't see that many .json files in the 'config folder'.
btw I rather update my 'pino' machine than make a new one from a copy since I open project files a lot and they refer to the 'pino' machine I have at the moment (I think...)
cheers / joris
I now have a solution, but even worse than editing the fdmprinter.def.json (SORRY! but it works for me for now...)
edited the fdprinter.def.json with a buildplate stl I created myself didn't work
with an existing stl it did work, so I renamed my stl to an existing one
really bad solution, but for now good enough for me.... (SORRY again Aldo... : )
3 hours ago, rooiejoris said:should this be done in the 'applications' folder or in the 'config folder'? I don't see that many .json files in the 'config folder'.
Anything you change or add should ideally be outside of the application bundle. The reason there are no def.json files in the configuration folder is that you have not made any (in the proper way).
Adding and editing files in the application bundle has a number of disadvantages:
* If you ever want to use a newer version of Cura, you have to remember what changes you made to the application bundle and you have to make them again. The configuration folder should be automatically copied and upgraded by the new version of Cura.
* If you make an error when editing files in the application bundle, there is nothing Cura can do to repair this. If you make an error editing files in the configuration folder, at worst you have to reset your configuration.
* You have to be an elevated user ("administrator") to edit files in the application bundle.
Editing the fdmprinter.def.json file is a bad idea because it applies to ALL printers. The fdmprinter.def.json file defines all settings in Cura! Copying the fdmprinter.def.json file is a bad idea because you would have to figure out what changed in fdmprinter.def.json when you want to use a new version of Cura and apply them to your copy.
2 hours ago, rooiejoris said:really bad solution, but for now good enough for me.... (SORRY again Aldo... : )
You do you, I am not going to stop you.
-
2
DivingDuck 97
beside from what @ahoeben already said, you need to build a complete set of configuration files. A printer configuration is always a set of files and not only one file. The best way doing this is looking for a similar existing printer in the Cura program folder and look for all involved configuration files. You don't need to copy or modify the files fdmprinter.def.json or fdmextruder.def.json. Those files are general configuration and definition files.
You need to build the same folder structure and files in your user configuration folder
definitions\ -->your printer definition file, like myprinter.def.json
extruders\ -->your extruder declarations, like myprinter_extruder_0.def.json, myprinter_extruder_1.def.json ...
materials\ --> in case you have own material definition files, like mymaterial_petg.xml.fdm_material, ...
meshes\ --> your bed mesh file as .stl, obj or 3mf file, like mymesh.obj or mymesh.stl mymesh.3mf
quality\ --> in case you want to build your own quality files, like myprinter_global_Coarse_Quality.inst.cfg, ...
variants\ -->definitions of different nozle sizes for your extruder definition, like myprinter_0.4tpnozzle.inst.cfg, ...
In addition you need to take care of file naming as this is like an identification number of what belongs to a set of printer definitions (see the name repeating myprinter in my example).
General rule of thumb and some hints:
Each file have some entries that need to be set, like version, setting_version, name, or for the printer definition file the line inherits of file fdmprinter (same for extruder ). An other rule is to set only values that are special to your printer and differ from what is already set up in fdmprinter.def.json or fdmextruder.def.json (less is better, as it can hit you by future updates).
For material there is an entry called GUID. You don't want to set this manually. this will be build from Cura as this an unique id number.
For mesh, you may need to adjust the orientation / position depending on how the origin was defined for the mesh. Look for "platform_offset" in the printer definition file like myprinter.def.json
I have attache an old sample configuration I did long time ago. It may help you to understand how to build your own profiles. If I remember correct, it was based on the printer hms434. But in the end the best teacher is the Cura resources folder.
As the last point I want to mention, take a look in the Cura log file with each change you make in a profile. The log is very detailed and in most cases you find good hints where the problem is, like wrongly written key words, forgotten quotation mark etc.
Recommended Posts
ahoeben 1,888
You would have to create and use a .def.json printer definition for your printer, instead of using the "Custom FFF Printer". The Custom FFF Printer definition does not have an STL, so there is nothing to replace.
Link to post
Share on other sites