Jump to content

command line for curaEngine

Go to solution Solved by ahoeben,

Recommended Posts

Posted · command line for curaEngine

I am trying to automate the slicing process using the command line, my issue is the slicers takes some of the setting from command line updates it but does not work with all settings.  


CuraEngine slice -v \
                          -j "D:/UltiMaker Cura 5.4.0/share/cura/resources/definitions/fdmprinter.def.json" \
                          -j "D:/UltiMaker Cura 5.4.0/share/cura/resources/definitions/ultimaker.def.json" \
                          -j "D:/UltiMaker Cura 5.4.0/share/cura/resources/definitions/ultimaker_s3.def.json"  \
                          -s center_object=True\
                          -s mesh_position_z=0 -s mesh_position_y=0 -s mesh_position_x=0 -s roofing_layer_count="0" -s roofing_monotonic="false"\
                          -s machine_disallowed_areas=1 \
                          -s version=4 -s definition=ultimaker_s3 -s type=quality_changes -s quality_type=normal -s intent_category=default -s position=0 -s setting_version=21\
                          -s layer_height=0.2 -s adhesion_type="none" -s layer_height_0=0.2 -s material_bed_temperature=60 \
                          -s bottom_layers=0 \
                          -s top_layers=0 \
                          -s infill_pattern=gyroid -s infill_density="10%"  -s infill_angles=[45,-45]\
                          -e1 \


This is how the code looks like, even when I define -s bottom_layers=0 it always creates 6 bottom layers but the -s top_layers is working fine. Similary, the infill density always remains the same ( i tried 10, "10" , 10% and "10%") regardless of input while the infill pattern and infill_angles are working fine. Please help me figure out this issue. Thank you. 

  • Link to post
    Share on other sites

    • Solution
    Posted · command line for curaEngine

    In many places, the Cura frontend uses Python formulas to calculate values. One thing to keep in mind is that CuraEngine does not know how to parse Python statements in .def.json, and as a consequence it does nothing with the "value" specified in .def.json files. Instead it only looks at "default_value".


    You may notice in the Cura frontend that some settings are a "child" of other settings. These are "more specific" versions of their parent. As a general rule, CuraEngine only looks at settings that have no "more specific" versions.


    In the case of the "Infill Density", there is a more specific ("child") setting named "Infill Line Distance", which inside Cura gets calculated from the infill density and the infill line width. CuraEngine can not do that calculation, so you will have to do that for CuraEngine. In short, instead of the infill_density, you should be specifying the infill_line_distance.


    With regards to the bottom_layers setting, note that there is also a setting named initial_bottom_layers. Normally Cura copies the value from the bottom_layers setting automatically (with a Python statement in the "value"), but if you use the commandline, you are on your own and have to specify an initial_bottom_layers value too.


    I hope this helps.

    • Like 1
    Link to post
    Share on other sites

    Posted · command line for curaEngine

    I should probably start new question, but do you know how the connect_infill_lines in GUI can be called in CLI. I have tried:

    -s connect_infill_polygons="true" \

    -s connect_infill_lines="true" \

    -s connect_skin_polygons="true"\

    The attched images shows the difference in infill. Thank you. 


    connected infill.png

    not connected.png

  • Link to post
    Share on other sites

    Posted · command line for curaEngine

    There is no setting named "connect_infill_lines", so passing that is no use. I think you have to pass booleans as true or false, not as "true" or "false".


    -s connect_infill_polygons=true \

    -s connect_skin_polygons=true \

  • Link to post
    Share on other sites

    Posted · command line for curaEngine

    The correct internal name of the "Connect Infill Lines" setting is zig_zaggify_infill


    • Thanks 1
    Link to post
    Share on other sites

    Posted · command line for curaEngine

    This worked, thank you. 

  • 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.8 beta released
        Another Cura release has arrived and in this 5.8 beta release, the focus is on improving Z seams, as well as completing support for the full Method series of printers by introducing a profile for the UltiMaker Method.
          • Like
        • 1 reply
      • Introducing the UltiMaker Factor 4
        We are happy to announce the next evolution in the UltiMaker 3D printer lineup: the UltiMaker Factor 4 industrial-grade 3D printer, designed to take manufacturing to new levels of efficiency and reliability. Factor 4 is an end-to-end 3D printing solution for light industrial applications
          • Thanks
          • Like
        • 3 replies
    • Create New...