432
all_keys.txt
432
all_keys.txt
@@ -1,432 +0,0 @@
|
|||||||
acceleration_limit_mess
|
|
||||||
acceleration_limit_mess_enable
|
|
||||||
accel_to_decel_enable
|
|
||||||
accel_to_decel_factor
|
|
||||||
activate_air_filtration
|
|
||||||
activate_chamber_temp_control
|
|
||||||
adaptive_layer_height
|
|
||||||
additional_cooling_fan_speed
|
|
||||||
after_layer_gcode
|
|
||||||
ai_infill
|
|
||||||
alternate_extra_wall
|
|
||||||
bed_shape
|
|
||||||
bed_type
|
|
||||||
before_layer_gcode
|
|
||||||
bottom_shell_layers
|
|
||||||
bottom_shell_thickness
|
|
||||||
bottom_solid_infill_flow_ratio
|
|
||||||
bottom_surface_pattern
|
|
||||||
bridge_acceleration
|
|
||||||
bridge_angle
|
|
||||||
bridge_density
|
|
||||||
bridge_flow
|
|
||||||
bridge_no_support
|
|
||||||
bridge_speed
|
|
||||||
brim_ears_detection_length
|
|
||||||
brim_ears_max_angle
|
|
||||||
brim_object_gap
|
|
||||||
brim_type
|
|
||||||
brim_width
|
|
||||||
chamber_temperature
|
|
||||||
close_fan_the_first_x_layers
|
|
||||||
compatible_printers_condition
|
|
||||||
complete_print_exhaust_fan_speed
|
|
||||||
cool_cds_fan_start_at_height
|
|
||||||
cooling_tube_length
|
|
||||||
cooling_tube_retraction
|
|
||||||
cool_plate_temp
|
|
||||||
cool_plate_temp_initial_layer
|
|
||||||
cool_special_cds_fan_speed
|
|
||||||
counterbore_hole_bridging
|
|
||||||
customized_plate_temp
|
|
||||||
customized_plate_temp_initial_layer
|
|
||||||
default_acceleration
|
|
||||||
default_filament_colour
|
|
||||||
default_jerk
|
|
||||||
deretract_speed
|
|
||||||
detect_narrow_internal_solid_infill
|
|
||||||
detect_overhang_wall
|
|
||||||
detect_thin_wall
|
|
||||||
dont_filter_internal_bridges
|
|
||||||
draft_shield
|
|
||||||
during_print_exhaust_fan_speed
|
|
||||||
elefant_foot_compensation
|
|
||||||
elefant_foot_compensation_layers
|
|
||||||
enable_arc_fitting
|
|
||||||
enable_overhang_bridge_fan
|
|
||||||
enable_overhang_speed
|
|
||||||
enable_pressure_advance
|
|
||||||
enable_prime_tower
|
|
||||||
enable_special_area_additional_cooling_fan
|
|
||||||
end_gcode
|
|
||||||
enforce_support_layers
|
|
||||||
eng_plate_temp
|
|
||||||
eng_plate_temp_initial_layer
|
|
||||||
ensure_vertical_shell_thickness
|
|
||||||
epoxy_resin_plate_temp
|
|
||||||
epoxy_resin_plate_temp_initial_layer
|
|
||||||
exclude_object
|
|
||||||
extra_loading_move
|
|
||||||
extra_perimeters_on_overhangs
|
|
||||||
extruder_clearance_height_to_lid
|
|
||||||
extruder_clearance_height_to_rod
|
|
||||||
extruder_clearance_radius
|
|
||||||
extruder_colour
|
|
||||||
extruder_offset
|
|
||||||
family
|
|
||||||
fan_cooling_layer_time
|
|
||||||
fan_max_speed
|
|
||||||
fan_min_speed
|
|
||||||
filament_cooling_final_speed
|
|
||||||
filament_cooling_initial_speed
|
|
||||||
filament_cooling_moves
|
|
||||||
filament_cost
|
|
||||||
filament_density
|
|
||||||
filament_deretraction_speed
|
|
||||||
filament_diameter
|
|
||||||
filament_end_gcode
|
|
||||||
filament_flow_ratio
|
|
||||||
filament_is_support
|
|
||||||
filament_loading_speed
|
|
||||||
filament_loading_speed_start
|
|
||||||
filament_load_time
|
|
||||||
filament_max_volumetric_speed
|
|
||||||
filament_minimal_purge_on_wipe_tower
|
|
||||||
filament_multitool_ramming
|
|
||||||
filament_multitool_ramming_flow
|
|
||||||
filament_multitool_ramming_volume
|
|
||||||
filament_notes
|
|
||||||
filament_ramming_parameters
|
|
||||||
filament_retract_before_wipe
|
|
||||||
filament_retraction_length
|
|
||||||
filament_retraction_minimum_travel
|
|
||||||
filament_retraction_speed
|
|
||||||
filament_retract_lift_above
|
|
||||||
filament_retract_lift_below
|
|
||||||
filament_retract_lift_enforce
|
|
||||||
filament_retract_restart_extra
|
|
||||||
filament_retract_when_changing_layer
|
|
||||||
filament_settings_id
|
|
||||||
filament_shrink
|
|
||||||
filament_shrinkage_compensation_z
|
|
||||||
filament_soluble
|
|
||||||
filament_start_gcode
|
|
||||||
filament_toolchange_delay
|
|
||||||
filament_type
|
|
||||||
filament_unloading_speed
|
|
||||||
filament_unloading_speed_start
|
|
||||||
filament_unload_time
|
|
||||||
filament_vendor
|
|
||||||
filament_wipe
|
|
||||||
filament_wipe_distance
|
|
||||||
filament_z_hop
|
|
||||||
filament_z_hop_types
|
|
||||||
filter_out_gap_fill
|
|
||||||
first_layer_bed_temperature
|
|
||||||
flush_into_infill
|
|
||||||
flush_into_objects
|
|
||||||
flush_into_support
|
|
||||||
full_fan_speed_layer
|
|
||||||
fuzzy_skin
|
|
||||||
fuzzy_skin_first_layer
|
|
||||||
fuzzy_skin_point_distance
|
|
||||||
fuzzy_skin_thickness
|
|
||||||
gap_fill_target
|
|
||||||
gap_infill_speed
|
|
||||||
gcode_add_line_number
|
|
||||||
gcode_comments
|
|
||||||
gcode_flavor
|
|
||||||
gcode_label_objects
|
|
||||||
high_current_on_filament_swap
|
|
||||||
hole_to_polyhole
|
|
||||||
hole_to_polyhole_threshold
|
|
||||||
hole_to_polyhole_twisted
|
|
||||||
hot_plate_temp
|
|
||||||
hot_plate_temp_initial_layer
|
|
||||||
idle_temperature
|
|
||||||
independent_support_layer_height
|
|
||||||
infill_anchor
|
|
||||||
infill_anchor_max
|
|
||||||
infill_combination
|
|
||||||
infill_direction
|
|
||||||
infill_jerk
|
|
||||||
infill_wall_overlap
|
|
||||||
initial_layer_acceleration
|
|
||||||
initial_layer_infill_speed
|
|
||||||
initial_layer_jerk
|
|
||||||
initial_layer_line_width
|
|
||||||
initial_layer_min_bead_width
|
|
||||||
initial_layer_print_height
|
|
||||||
initial_layer_speed
|
|
||||||
initial_layer_travel_speed
|
|
||||||
inner_wall_acceleration
|
|
||||||
inner_wall_jerk
|
|
||||||
inner_wall_line_width
|
|
||||||
inner_wall_speed
|
|
||||||
interface_shells
|
|
||||||
internal_bridge_flow
|
|
||||||
internal_bridge_speed
|
|
||||||
internal_solid_infill_acceleration
|
|
||||||
internal_solid_infill_line_width
|
|
||||||
internal_solid_infill_pattern
|
|
||||||
internal_solid_infill_speed
|
|
||||||
ironing_angle
|
|
||||||
ironing_flow
|
|
||||||
ironing_pattern
|
|
||||||
ironing_spacing
|
|
||||||
ironing_speed
|
|
||||||
ironing_support_layer
|
|
||||||
ironing_type
|
|
||||||
is_infill_first
|
|
||||||
layer_height
|
|
||||||
line_width
|
|
||||||
machine_limits_usage
|
|
||||||
machine_max_acceleration_e
|
|
||||||
machine_max_acceleration_extruding
|
|
||||||
machine_max_acceleration_retracting
|
|
||||||
machine_max_acceleration_travel
|
|
||||||
machine_max_acceleration_x
|
|
||||||
machine_max_acceleration_y
|
|
||||||
machine_max_acceleration_z
|
|
||||||
machine_max_jerk_e
|
|
||||||
machine_max_jerk_x
|
|
||||||
machine_max_jerk_y
|
|
||||||
machine_max_jerk_z
|
|
||||||
machine_max_speed_e
|
|
||||||
machine_max_speed_x
|
|
||||||
machine_max_speed_y
|
|
||||||
machine_max_speed_z
|
|
||||||
machine_min_extruding_rate
|
|
||||||
machine_min_travel_rate
|
|
||||||
make_overhang_printable
|
|
||||||
make_overhang_printable_angle
|
|
||||||
make_overhang_printable_hole_size
|
|
||||||
material_flow_dependent_temperature
|
|
||||||
material_flow_temp_graph
|
|
||||||
material_type
|
|
||||||
max_bridge_length
|
|
||||||
max_layer_height
|
|
||||||
max_print_height
|
|
||||||
max_travel_detour_distance
|
|
||||||
max_volumetric_extrusion_rate_slope
|
|
||||||
max_volumetric_extrusion_rate_slope_segment_length
|
|
||||||
min_bead_width
|
|
||||||
min_feature_size
|
|
||||||
minimum_sparse_infill_area
|
|
||||||
minimum_support_area
|
|
||||||
min_layer_height
|
|
||||||
min_length_factor
|
|
||||||
min_width_top_surface
|
|
||||||
mmu_segmented_region_interlocking_depth
|
|
||||||
mmu_segmented_region_max_width
|
|
||||||
nozzle_diameter
|
|
||||||
nozzle_temperature
|
|
||||||
nozzle_temperature_initial_layer
|
|
||||||
nozzle_temperature_range_high
|
|
||||||
nozzle_temperature_range_low
|
|
||||||
only_one_wall_first_layer
|
|
||||||
only_one_wall_top
|
|
||||||
ooze_prevention
|
|
||||||
outer_wall_acceleration
|
|
||||||
outer_wall_jerk
|
|
||||||
outer_wall_line_width
|
|
||||||
outer_wall_speed
|
|
||||||
overhang_1_4_speed
|
|
||||||
overhang_2_4_speed
|
|
||||||
overhang_3_4_speed
|
|
||||||
overhang_4_4_speed
|
|
||||||
overhang_fan_speed
|
|
||||||
overhang_fan_threshold
|
|
||||||
overhang_reverse
|
|
||||||
overhang_reverse_internal_only
|
|
||||||
overhang_reverse_threshold
|
|
||||||
overhang_speed_classic
|
|
||||||
parking_pos_retraction
|
|
||||||
pause_print_gcode
|
|
||||||
precise_outer_wall
|
|
||||||
pressure_advance
|
|
||||||
prime_tower_brim_width
|
|
||||||
prime_tower_enhance_type
|
|
||||||
prime_tower_width
|
|
||||||
prime_volume
|
|
||||||
printer_model
|
|
||||||
printer_technology
|
|
||||||
printer_variant
|
|
||||||
print_flow_ratio
|
|
||||||
print_order
|
|
||||||
print_sequence
|
|
||||||
print_settings_id
|
|
||||||
raft_contact_distance
|
|
||||||
raft_expansion
|
|
||||||
raft_first_layer_density
|
|
||||||
raft_first_layer_expansion
|
|
||||||
raft_layers
|
|
||||||
reduce_crossing_wall
|
|
||||||
reduce_fan_stop_start_freq
|
|
||||||
reduce_infill_retraction
|
|
||||||
required_nozzle_HRC
|
|
||||||
resolution
|
|
||||||
retract_before_travel
|
|
||||||
retract_before_wipe
|
|
||||||
retract_layer_change
|
|
||||||
retract_length
|
|
||||||
retract_length_toolchange
|
|
||||||
retract_lift_above
|
|
||||||
retract_lift_below
|
|
||||||
retract_restart_extra
|
|
||||||
retract_restart_extra_toolchange
|
|
||||||
retract_speed
|
|
||||||
role_based_wipe_speed
|
|
||||||
scarf_angle_threshold
|
|
||||||
scarf_joint_flow_ratio
|
|
||||||
scarf_joint_speed
|
|
||||||
scarf_overhang_threshold
|
|
||||||
seam_gap
|
|
||||||
seam_position
|
|
||||||
seam_slope_conditional
|
|
||||||
seam_slope_entire_loop
|
|
||||||
seam_slope_inner_walls
|
|
||||||
seam_slope_min_length
|
|
||||||
seam_slope_start_height
|
|
||||||
seam_slope_steps
|
|
||||||
seam_slope_type
|
|
||||||
show_name
|
|
||||||
silent_mode
|
|
||||||
single_extruder_multi_material
|
|
||||||
single_extruder_multi_material_priming
|
|
||||||
skirt_distance
|
|
||||||
skirt_height
|
|
||||||
skirt_loops
|
|
||||||
skirt_speed
|
|
||||||
slice_closing_radius
|
|
||||||
slicing_mode
|
|
||||||
slowdown_for_curled_perimeters
|
|
||||||
slow_down_for_layer_cooling
|
|
||||||
slow_down_layers
|
|
||||||
slow_down_layer_time
|
|
||||||
slow_down_min_speed
|
|
||||||
small_area_infill_flow_compensation
|
|
||||||
small_area_infill_flow_compensation_model
|
|
||||||
small_perimeter_speed
|
|
||||||
small_perimeter_threshold
|
|
||||||
solid_infill_filament
|
|
||||||
sparse_infill_acceleration
|
|
||||||
sparse_infill_density
|
|
||||||
sparse_infill_filament
|
|
||||||
sparse_infill_line_width
|
|
||||||
sparse_infill_pattern
|
|
||||||
sparse_infill_speed
|
|
||||||
speed_limit_to_height
|
|
||||||
speed_limit_to_height_enable
|
|
||||||
spiral_mode
|
|
||||||
spiral_mode_max_xy_smoothing
|
|
||||||
spiral_mode_smooth
|
|
||||||
staggered_inner_seams
|
|
||||||
standby_temperature_delta
|
|
||||||
start_filament_gcode
|
|
||||||
start_gcode
|
|
||||||
support_angle
|
|
||||||
support_base_pattern
|
|
||||||
support_base_pattern_spacing
|
|
||||||
support_bottom_interface_spacing
|
|
||||||
support_bottom_z_distance
|
|
||||||
support_critical_regions_only
|
|
||||||
support_expansion
|
|
||||||
support_interface_bottom_layers
|
|
||||||
support_interface_filament
|
|
||||||
support_interface_loop_pattern
|
|
||||||
support_interface_not_for_body
|
|
||||||
support_interface_pattern
|
|
||||||
support_interface_spacing
|
|
||||||
support_interface_speed
|
|
||||||
support_interface_top_layers
|
|
||||||
support_line_width
|
|
||||||
support_material
|
|
||||||
support_material_angle
|
|
||||||
support_material_auto
|
|
||||||
support_material_bottom_interface_layers
|
|
||||||
support_material_extrusion_width
|
|
||||||
support_material_interface_extruder
|
|
||||||
support_material_interface_fan_speed
|
|
||||||
support_material_pattern
|
|
||||||
support_material_spacing
|
|
||||||
support_material_speed
|
|
||||||
support_material_style
|
|
||||||
support_material_threshold
|
|
||||||
support_material_xy_spacing
|
|
||||||
support_object_xy_distance
|
|
||||||
support_on_build_plate_only
|
|
||||||
support_remove_small_overhang
|
|
||||||
support_speed
|
|
||||||
support_threshold_angle
|
|
||||||
support_top_z_distance
|
|
||||||
support_tree_angle
|
|
||||||
support_tree_angle_slow
|
|
||||||
support_tree_branch_diameter
|
|
||||||
support_tree_branch_diameter_angle
|
|
||||||
support_tree_branch_diameter_double_wall
|
|
||||||
support_tree_branch_distance
|
|
||||||
support_tree_tip_diameter
|
|
||||||
support_tree_top_rate
|
|
||||||
support_type
|
|
||||||
support_xy_overrides_z
|
|
||||||
temperature_vitrification
|
|
||||||
textured_plate_temp
|
|
||||||
textured_plate_temp_initial_layer
|
|
||||||
thick_bridges
|
|
||||||
thick_internal_bridges
|
|
||||||
timelapse_type
|
|
||||||
top_shell_layers
|
|
||||||
top_shell_thickness
|
|
||||||
top_solid_infill_flow_ratio
|
|
||||||
top_surface_acceleration
|
|
||||||
top_surface_jerk
|
|
||||||
top_surface_line_width
|
|
||||||
top_surface_pattern
|
|
||||||
top_surface_speed
|
|
||||||
travel_acceleration
|
|
||||||
travel_jerk
|
|
||||||
travel_speed
|
|
||||||
travel_speed_z
|
|
||||||
tree_support_adaptive_layer_height
|
|
||||||
tree_support_angle_slow
|
|
||||||
tree_support_auto_brim
|
|
||||||
tree_support_branch_angle
|
|
||||||
tree_support_branch_angle_organic
|
|
||||||
tree_support_branch_diameter
|
|
||||||
tree_support_branch_diameter_angle
|
|
||||||
tree_support_branch_diameter_double_wall
|
|
||||||
tree_support_branch_diameter_organic
|
|
||||||
tree_support_branch_distance
|
|
||||||
tree_support_branch_distance_organic
|
|
||||||
tree_support_brim_width
|
|
||||||
tree_support_tip_diameter
|
|
||||||
tree_support_top_rate
|
|
||||||
tree_support_wall_count
|
|
||||||
use_firmware_retraction
|
|
||||||
use_relative_e_distances
|
|
||||||
wall_direction
|
|
||||||
wall_distribution_count
|
|
||||||
wall_filament
|
|
||||||
wall_generator
|
|
||||||
wall_infill_order
|
|
||||||
wall_loops
|
|
||||||
wall_sequence
|
|
||||||
wall_transition_angle
|
|
||||||
wall_transition_filter_deviation
|
|
||||||
wall_transition_length
|
|
||||||
wipe
|
|
||||||
wipe_before_external_loop
|
|
||||||
wipe_on_loops
|
|
||||||
wipe_speed
|
|
||||||
wipe_tower_bridging
|
|
||||||
wipe_tower_cone_angle
|
|
||||||
wipe_tower_extra_spacing
|
|
||||||
wipe_tower_no_sparse_layers
|
|
||||||
wipe_tower_rotation_angle
|
|
||||||
wiping_volumes_extruders
|
|
||||||
xy_contour_compensation
|
|
||||||
xy_hole_compensation
|
|
||||||
z_hop
|
|
||||||
z_hop_types
|
|
||||||
z_offset
|
|
||||||
@@ -57,6 +57,7 @@ def create_app():
|
|||||||
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///../instance/aio_3d.db'
|
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///../instance/aio_3d.db'
|
||||||
app.config['SQLALCHEMY_ENGINE_OPTIONS'] = {'connect_args': {'timeout': 15}}
|
app.config['SQLALCHEMY_ENGINE_OPTIONS'] = {'connect_args': {'timeout': 15}}
|
||||||
app.config['UPLOAD_FOLDER'] = os.path.abspath(os.path.join(app.root_path, '..', 'uploads'))
|
app.config['UPLOAD_FOLDER'] = os.path.abspath(os.path.join(app.root_path, '..', 'uploads'))
|
||||||
|
app.config['PRINT_CONFIG_FOLDER'] = os.path.abspath(os.path.join(app.root_path, '..', 'print_config'))
|
||||||
|
|
||||||
os.makedirs(app.config['UPLOAD_FOLDER'], exist_ok=True)
|
os.makedirs(app.config['UPLOAD_FOLDER'], exist_ok=True)
|
||||||
|
|
||||||
|
|||||||
@@ -47,6 +47,7 @@ def settings():
|
|||||||
default_support_pattern = request.form.get('default_support_pattern', 'tree')
|
default_support_pattern = request.form.get('default_support_pattern', 'tree')
|
||||||
default_quality = request.form.get('default_quality', 'base_global_standard.inst.cfg')
|
default_quality = request.form.get('default_quality', 'base_global_standard.inst.cfg')
|
||||||
default_material = request.form.get('default_material', '')
|
default_material = request.form.get('default_material', '')
|
||||||
|
default_printer = request.form.get('default_printer', '')
|
||||||
gcode_upload_folder = request.form.get('gcode_upload_folder', '').strip()
|
gcode_upload_folder = request.form.get('gcode_upload_folder', '').strip()
|
||||||
slicer_engine = request.form.get('slicer_engine', 'cura')
|
slicer_engine = request.form.get('slicer_engine', 'cura')
|
||||||
build_plate_model_path = request.form.get('build_plate_model_path', '').strip()
|
build_plate_model_path = request.form.get('build_plate_model_path', '').strip()
|
||||||
@@ -61,6 +62,7 @@ def settings():
|
|||||||
('default_support_pattern', default_support_pattern),
|
('default_support_pattern', default_support_pattern),
|
||||||
('default_quality', default_quality),
|
('default_quality', default_quality),
|
||||||
('default_material', default_material),
|
('default_material', default_material),
|
||||||
|
('default_printer', default_printer),
|
||||||
('gcode_upload_folder', gcode_upload_folder),
|
('gcode_upload_folder', gcode_upload_folder),
|
||||||
('slicer_engine', slicer_engine),
|
('slicer_engine', slicer_engine),
|
||||||
('build_plate_model_path', build_plate_model_path),
|
('build_plate_model_path', build_plate_model_path),
|
||||||
@@ -187,15 +189,5 @@ def delete_user(user_id):
|
|||||||
flash(f'User {user.username} and all their files have been deleted.', 'success')
|
flash(f'User {user.username} and all their files have been deleted.', 'success')
|
||||||
return redirect(url_for('admin.users'))
|
return redirect(url_for('admin.users'))
|
||||||
|
|
||||||
def get_bed_dimensions():
|
|
||||||
try:
|
|
||||||
path = os.path.join(current_app.root_path, '..', 'print_config', 'printers', 'creality_ender3v3se.def.json')
|
|
||||||
with open(path, 'r', encoding='utf-8') as f:
|
|
||||||
data = json.load(f)
|
|
||||||
w = data['overrides']['machine_width']['default_value']
|
|
||||||
h = data['overrides']['machine_depth']['default_value']
|
|
||||||
hd = data['overrides']['machine_height']['default_value']
|
|
||||||
return w, h, hd
|
|
||||||
except:
|
|
||||||
return 200, 200, 200
|
|
||||||
|
|
||||||
|
|||||||
@@ -14,19 +14,19 @@ from app import i18n_dict
|
|||||||
# import trimesh.repair
|
# import trimesh.repair
|
||||||
from app.utils.stl_simplifier import simplify_stl
|
from app.utils.stl_simplifier import simplify_stl
|
||||||
from app.routes.admin_routes import get_gcode_dir
|
from app.routes.admin_routes import get_gcode_dir
|
||||||
|
from app.utils.slice_engines import get_slicer_engine
|
||||||
|
from app.models import UserSession
|
||||||
|
from flask_login import logout_user
|
||||||
|
|
||||||
main_bp = Blueprint('main', __name__)
|
main_bp = Blueprint('main', __name__)
|
||||||
|
|
||||||
@main_bp.before_app_request
|
@main_bp.before_app_request
|
||||||
def check_user_session():
|
def check_user_session():
|
||||||
if current_user.is_authenticated and not current_user.is_guest:
|
if current_user.is_authenticated and not current_user.is_guest:
|
||||||
from app.models import UserSession
|
|
||||||
session_token = session.get('user_session_token')
|
session_token = session.get('user_session_token')
|
||||||
if session_token:
|
if session_token:
|
||||||
user_session = UserSession.query.filter_by(session_token=session_token).first()
|
user_session = UserSession.query.filter_by(session_token=session_token).first()
|
||||||
if not user_session or not user_session.is_active:
|
if not user_session or not user_session.is_active:
|
||||||
from flask_login import logout_user
|
|
||||||
logout_user()
|
logout_user()
|
||||||
session.pop('user_session_token', None)
|
session.pop('user_session_token', None)
|
||||||
flash('Your session has been terminated.', 'warning')
|
flash('Your session has been terminated.', 'warning')
|
||||||
@@ -305,8 +305,11 @@ def preview_gcode(file_id):
|
|||||||
content = "".join(lines[:500]) # Preview first 500 lines
|
content = "".join(lines[:500]) # Preview first 500 lines
|
||||||
if line_count > 500:
|
if line_count > 500:
|
||||||
content += f"\n... \n[Preview truncated. Total lines: {line_count}. Please download to view full file.]"
|
content += f"\n... \n[Preview truncated. Total lines: {line_count}. Please download to view full file.]"
|
||||||
|
|
||||||
w, h, hd = get_bed_dimensions()
|
engine_name = SystemConfig.query.filter_by(key='slicer_engine').first()
|
||||||
|
if engine_name:
|
||||||
|
engine = get_slicer_engine(str(engine_name.value), current_app.config['PRINT_CONFIG_FOLDER'])
|
||||||
|
w, h, hd = engine.get_bed_dimensions()
|
||||||
configs = {c.key: c.value for c in SystemConfig.query.all()}
|
configs = {c.key: c.value for c in SystemConfig.query.all()}
|
||||||
offset_x = float(configs.get('offset_x', '0.0'))
|
offset_x = float(configs.get('offset_x', '0.0'))
|
||||||
offset_y = float(configs.get('offset_y', '0.0'))
|
offset_y = float(configs.get('offset_y', '0.0'))
|
||||||
@@ -344,25 +347,17 @@ def delete_file(file_id):
|
|||||||
|
|
||||||
# --- Auth Routes ---
|
# --- Auth Routes ---
|
||||||
|
|
||||||
def get_bed_dimensions():
|
|
||||||
try:
|
|
||||||
path = os.path.join(current_app.root_path, '..', 'print_config', 'printers', 'creality_ender3v3se.def.json')
|
|
||||||
with open(path, 'r', encoding='utf-8') as f:
|
|
||||||
data = json.load(f)
|
|
||||||
w = data['overrides']['machine_width']['default_value']
|
|
||||||
h = data['overrides']['machine_depth']['default_value']
|
|
||||||
hd = data['overrides']['machine_height']['default_value']
|
|
||||||
return w, h, hd
|
|
||||||
except:
|
|
||||||
return 200, 200, 200
|
|
||||||
|
|
||||||
@main_bp.route('/plater')
|
@main_bp.route('/plater')
|
||||||
@login_required
|
@login_required
|
||||||
def plater():
|
def plater():
|
||||||
quota_mb, current_size = get_quota_info(current_user, 'gcode')
|
quota_mb, current_size = get_quota_info(current_user, 'gcode')
|
||||||
quota_exceeded = (quota_mb > 0 and current_size >= quota_mb * 1024 * 1024)
|
quota_exceeded = (quota_mb > 0 and current_size >= quota_mb * 1024 * 1024)
|
||||||
|
|
||||||
w, h, hd = get_bed_dimensions()
|
engine_name = SystemConfig.query.filter_by(key='slicer_engine').first()
|
||||||
|
if engine_name:
|
||||||
|
engine = get_slicer_engine(str(engine_name.value), current_app.config['PRINT_CONFIG_FOLDER'])
|
||||||
|
w, h, hd = engine.get_bed_dimensions()
|
||||||
|
print(f"Bed dimensions: {w}x{h}x{hd}")
|
||||||
|
|
||||||
|
|
||||||
configs = {c.key: c.value for c in SystemConfig.query.all()}
|
configs = {c.key: c.value for c in SystemConfig.query.all()}
|
||||||
@@ -574,12 +569,12 @@ def build_plate_model():
|
|||||||
@main_bp.route('/api/engine_options/<engine_name>')
|
@main_bp.route('/api/engine_options/<engine_name>')
|
||||||
@login_required
|
@login_required
|
||||||
def engine_options(engine_name):
|
def engine_options(engine_name):
|
||||||
from app.utils.slice_engines import get_slicer_engine
|
engine = get_slicer_engine(engine_name, current_app.config['PRINT_CONFIG_FOLDER'])
|
||||||
engine = get_slicer_engine(engine_name)
|
presets = engine.get_quality_presets()
|
||||||
presets = engine.get_quality_presets(current_app)
|
patterns = engine.get_support_patterns()
|
||||||
patterns = engine.get_support_patterns(current_app)
|
materials = engine.get_materials() if hasattr(engine, 'get_materials') else []
|
||||||
materials = engine.get_materials(current_app) if hasattr(engine, 'get_materials') else []
|
printers = engine.get_all_printers() if hasattr(engine, 'get_all_printers') else []
|
||||||
return jsonify({'presets': presets, 'support_patterns': patterns, 'materials': materials})
|
return jsonify({'presets': presets, 'support_patterns': patterns, 'materials': materials, 'printers': printers})
|
||||||
|
|
||||||
@main_bp.route('/account', methods=['GET', 'POST'])
|
@main_bp.route('/account', methods=['GET', 'POST'])
|
||||||
@login_required
|
@login_required
|
||||||
|
|||||||
@@ -19,6 +19,17 @@ def get_octo_client():
|
|||||||
return OctoPrintClient(url.value, apikey.value)
|
return OctoPrintClient(url.value, apikey.value)
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
def _enrich_job_data(job_data):
|
||||||
|
if job_data and job_data.get('job', {}).get('file', {}).get('name'):
|
||||||
|
from app.models import PrintFile
|
||||||
|
internal_name = job_data['job']['file']['name']
|
||||||
|
print_file = PrintFile.query.filter_by(filename=internal_name).first()
|
||||||
|
if print_file and print_file.original_filename:
|
||||||
|
job_data['job']['file']['display_name'] = print_file.original_filename
|
||||||
|
else:
|
||||||
|
job_data['job']['file']['display_name'] = internal_name
|
||||||
|
return job_data
|
||||||
|
|
||||||
@printer_bp.route('/status')
|
@printer_bp.route('/status')
|
||||||
@login_required
|
@login_required
|
||||||
def status():
|
def status():
|
||||||
@@ -29,7 +40,7 @@ def status():
|
|||||||
if client:
|
if client:
|
||||||
try:
|
try:
|
||||||
status_data = client.get_printer_status()
|
status_data = client.get_printer_status()
|
||||||
job_data = client.get_job_info()
|
job_data = _enrich_job_data(client.get_job_info())
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
error = str(e)
|
error = str(e)
|
||||||
else:
|
else:
|
||||||
@@ -37,6 +48,20 @@ def status():
|
|||||||
|
|
||||||
return render_template('printer/status.html', status=status_data, job=job_data, error=error)
|
return render_template('printer/status.html', status=status_data, job=job_data, error=error)
|
||||||
|
|
||||||
|
@printer_bp.route('/api/status_data')
|
||||||
|
@login_required
|
||||||
|
def api_status_data():
|
||||||
|
client = get_octo_client()
|
||||||
|
if client:
|
||||||
|
try:
|
||||||
|
status_data = client.get_printer_status()
|
||||||
|
job_data = _enrich_job_data(client.get_job_info())
|
||||||
|
return jsonify({'success': True, 'status': status_data, 'job': job_data})
|
||||||
|
except Exception as e:
|
||||||
|
return jsonify({'success': False, 'error': str(e)})
|
||||||
|
return jsonify({'success': False, 'error': 'OctoPrint is not configured.'})
|
||||||
|
|
||||||
|
|
||||||
def get_gcode_dir():
|
def get_gcode_dir():
|
||||||
conf = SystemConfig.query.filter_by(key='gcode_upload_folder').first()
|
conf = SystemConfig.query.filter_by(key='gcode_upload_folder').first()
|
||||||
if conf and conf.value and os.path.exists(conf.value):
|
if conf and conf.value and os.path.exists(conf.value):
|
||||||
@@ -102,13 +127,45 @@ def prepare():
|
|||||||
|
|
||||||
return render_template('printer/prepare.html', files=files, error=error)
|
return render_template('printer/prepare.html', files=files, error=error)
|
||||||
|
|
||||||
|
|
||||||
|
def check_printer_control_permission(client):
|
||||||
|
from flask_login import current_user
|
||||||
|
if current_user.is_admin:
|
||||||
|
return True, None
|
||||||
|
|
||||||
|
try:
|
||||||
|
status_data = client.get_printer_status()
|
||||||
|
state = status_data.get('state', {}).get('text', '')
|
||||||
|
active_states = ['Printing', 'Paused', 'Pausing', 'Resuming', 'Cancelling']
|
||||||
|
if state not in active_states:
|
||||||
|
return True, None
|
||||||
|
|
||||||
|
job_info = client.get_job_info()
|
||||||
|
internal_name = job_info.get('job', {}).get('file', {}).get('name')
|
||||||
|
if not internal_name:
|
||||||
|
return False, "现在有任务正在运行,非管理员无法进行控制。"
|
||||||
|
|
||||||
|
from app.models import PrintFile
|
||||||
|
pf = PrintFile.query.filter_by(filename=internal_name).first()
|
||||||
|
if pf and pf.user_id == current_user.id:
|
||||||
|
return True, None
|
||||||
|
else:
|
||||||
|
return False, "现在有任务正在运行,您无权进行此操作。只有管理员或任务发起者可以进行控制。"
|
||||||
|
except Exception:
|
||||||
|
pass
|
||||||
|
return True, None
|
||||||
|
|
||||||
@printer_bp.route('/api/print_file', methods=['POST'])
|
@printer_bp.route('/api/print_file', methods=['POST'])
|
||||||
|
|
||||||
@login_required
|
@login_required
|
||||||
def api_print_file():
|
def api_print_file():
|
||||||
path = request.json.get('path')
|
path = request.json.get('path')
|
||||||
location = request.json.get('origin', 'local')
|
location = request.json.get('origin', 'local')
|
||||||
client = get_octo_client()
|
client = get_octo_client()
|
||||||
if client and path:
|
if client and path:
|
||||||
|
allowed, err_msg = check_printer_control_permission(client)
|
||||||
|
if not allowed:
|
||||||
|
return jsonify({"success": False, "error": err_msg})
|
||||||
try:
|
try:
|
||||||
client.select_file(location, path, print_after_select=True)
|
client.select_file(location, path, print_after_select=True)
|
||||||
return jsonify({"success": True})
|
return jsonify({"success": True})
|
||||||
@@ -117,14 +174,34 @@ def api_print_file():
|
|||||||
return jsonify({"success": False, "error": "Not configured or missing path"})
|
return jsonify({"success": False, "error": "Not configured or missing path"})
|
||||||
|
|
||||||
@printer_bp.route('/control')
|
@printer_bp.route('/control')
|
||||||
@login_required
|
|
||||||
def control():
|
def control():
|
||||||
client = get_octo_client()
|
client = get_octo_client()
|
||||||
webcam_url = None
|
webcam_url = None
|
||||||
error = None
|
error = None
|
||||||
if client:
|
if client:
|
||||||
try:
|
try:
|
||||||
webcam_url = client.get_webcam_stream_url()
|
raw_url = client.get_webcam_stream_url()
|
||||||
|
# If it's an absolute url pointing to the base url, strip it or proxy it via octo_proxy
|
||||||
|
from urllib.parse import urlparse, urlencode
|
||||||
|
parsed_raw = urlparse(raw_url)
|
||||||
|
base_config = SystemConfig.query.filter_by(key='octoprint_url').first()
|
||||||
|
if base_config and base_config.value:
|
||||||
|
base_url = base_config.value.rstrip('/')
|
||||||
|
parsed_base = urlparse(base_url)
|
||||||
|
# If they share the same host, replace with proxy
|
||||||
|
# Usually OctoPrint webcam streams are on the same host or relative
|
||||||
|
path = parsed_raw.path
|
||||||
|
if path.startswith('/'):
|
||||||
|
path = path[1:]
|
||||||
|
query = parsed_raw.query
|
||||||
|
|
||||||
|
# build proxy url
|
||||||
|
if query:
|
||||||
|
webcam_url = url_for('printer.octo_proxy', path=path) + '?' + query
|
||||||
|
else:
|
||||||
|
webcam_url = url_for('printer.octo_proxy', path=path)
|
||||||
|
else:
|
||||||
|
webcam_url = raw_url
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
error = str(e)
|
error = str(e)
|
||||||
else:
|
else:
|
||||||
@@ -137,6 +214,9 @@ def api_command():
|
|||||||
cmd = request.json.get('command')
|
cmd = request.json.get('command')
|
||||||
client = get_octo_client()
|
client = get_octo_client()
|
||||||
if client and cmd:
|
if client and cmd:
|
||||||
|
allowed, err_msg = check_printer_control_permission(client)
|
||||||
|
if not allowed:
|
||||||
|
return jsonify({"success": False, "error": err_msg})
|
||||||
try:
|
try:
|
||||||
if cmd == 'home':
|
if cmd == 'home':
|
||||||
client.home_axes()
|
client.home_axes()
|
||||||
@@ -246,7 +326,7 @@ def octo_embed():
|
|||||||
@printer_bp.route('/proxy/<path:path>', methods=['GET', 'POST', 'PUT', 'DELETE', 'PATCH'])
|
@printer_bp.route('/proxy/<path:path>', methods=['GET', 'POST', 'PUT', 'DELETE', 'PATCH'])
|
||||||
@login_required
|
@login_required
|
||||||
def octo_proxy(path):
|
def octo_proxy(path):
|
||||||
if not current_user.is_admin:
|
if current_user.is_guest:
|
||||||
return "Unauthorized", 403
|
return "Unauthorized", 403
|
||||||
|
|
||||||
url_config = SystemConfig.query.filter_by(key='octoprint_url').first()
|
url_config = SystemConfig.query.filter_by(key='octoprint_url').first()
|
||||||
|
|||||||
@@ -41,6 +41,14 @@
|
|||||||
<div class="form-text"><i class="bi bi-info-circle me-1"></i>{{ _('Absolute path to a custom build plate STL model to show in the plater. Leave empty to use none.') }}</div>
|
<div class="form-text"><i class="bi bi-info-circle me-1"></i>{{ _('Absolute path to a custom build plate STL model to show in the plater. Leave empty to use none.') }}</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div class="mb-3">
|
||||||
|
<label for="default_printer" class="form-label">{{ _('Default Printer Profile') }}</label>
|
||||||
|
<select class="form-select" name="default_printer" id="default_printer" data-selected="{{ configs.get('default_printer', '') }}">
|
||||||
|
<!-- Loaded via JS -->
|
||||||
|
</select>
|
||||||
|
<div class="form-text"><i class="bi bi-info-circle me-1"></i>{{ _('Main configuration for the printer dimensions, limits and base profiles.') }}</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="mb-3">
|
<div class="mb-3">
|
||||||
<label for="default_infill" class="form-label">{{ _('Default Infill Density (%)') }}</label>
|
<label for="default_infill" class="form-label">{{ _('Default Infill Density (%)') }}</label>
|
||||||
<input type="number" class="form-control" name="default_infill" id="default_infill" value="{{ configs.get('default_infill', '20') }}" min="0" max="100">
|
<input type="number" class="form-control" name="default_infill" id="default_infill" value="{{ configs.get('default_infill', '20') }}" min="0" max="100">
|
||||||
@@ -160,11 +168,22 @@ document.addEventListener('DOMContentLoaded', function() {
|
|||||||
const qualitySelect = document.getElementById('default_quality');
|
const qualitySelect = document.getElementById('default_quality');
|
||||||
const materialSelect = document.getElementById('default_material');
|
const materialSelect = document.getElementById('default_material');
|
||||||
const patternSelect = document.getElementById('default_support_pattern');
|
const patternSelect = document.getElementById('default_support_pattern');
|
||||||
|
const printerSelect = document.getElementById('default_printer');
|
||||||
|
|
||||||
function updateOptions(engine) {
|
function updateOptions(engine) {
|
||||||
fetch(`/api/engine_options/${engine}`)
|
fetch(`/api/engine_options/${engine}`)
|
||||||
.then(res => res.json())
|
.then(res => res.json())
|
||||||
.then(data => {
|
.then(data => {
|
||||||
|
const selPtr = printerSelect.getAttribute('data-selected');
|
||||||
|
printerSelect.innerHTML = '';
|
||||||
|
if(data.printers) {
|
||||||
|
data.printers.forEach(p => {
|
||||||
|
const opt = document.createElement('option');
|
||||||
|
opt.value = p.id; opt.textContent = p.name;
|
||||||
|
printerSelect.appendChild(opt);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
if(selPtr) printerSelect.value = selPtr;
|
||||||
const selQ = qualitySelect.getAttribute('data-selected');
|
const selQ = qualitySelect.getAttribute('data-selected');
|
||||||
qualitySelect.innerHTML = '';
|
qualitySelect.innerHTML = '';
|
||||||
data.presets.forEach(p => {
|
data.presets.forEach(p => {
|
||||||
|
|||||||
@@ -107,13 +107,13 @@
|
|||||||
<i class="bi bi-arrows-move me-2"></i>{{ _('Control') }}
|
<i class="bi bi-arrows-move me-2"></i>{{ _('Control') }}
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
{% if current_user.is_authenticated and not current_user.is_guest %}
|
<!-- {% if current_user.is_authenticated and not current_user.is_guest %}
|
||||||
<li class="nav-item mb-1">
|
<li class="nav-item mb-1">
|
||||||
<a class="nav-link text-dark {% if request.endpoint == 'main.account' %}active text-white shadow-sm{% endif %}" href="{{ url_for('main.account') }}">
|
<a class="nav-link text-dark {% if request.endpoint == 'main.account' %}active text-white shadow-sm{% endif %}" href="{{ url_for('main.account') }}">
|
||||||
<i class="bi bi-person-badge me-2"></i>{{ _('Account Management') }}
|
<i class="bi bi-person-badge me-2"></i>{{ _('Account Management') }}
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
{% endif %}
|
{% endif %} -->
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
{% if current_user.is_authenticated and current_user.is_admin %}
|
{% if current_user.is_authenticated and current_user.is_admin %}
|
||||||
|
|||||||
@@ -17,8 +17,15 @@
|
|||||||
<div class="card-header bg-dark text-light fw-bold rounded-top">
|
<div class="card-header bg-dark text-light fw-bold rounded-top">
|
||||||
<i class="bi bi-camera-video me-1"></i>{{ _('Live Webcam') }}
|
<i class="bi bi-camera-video me-1"></i>{{ _('Live Webcam') }}
|
||||||
</div>
|
</div>
|
||||||
<div class="card-body p-0 ratio ratio-16x9">
|
<div class="card-body p-0 ratio ratio-16x9 bg-secondary bg-opacity-25 d-flex align-items-center justify-content-center">
|
||||||
|
{% if current_user.is_guest %}
|
||||||
|
<div class="text-center text-dark">
|
||||||
|
<i class="bi bi-lock-fill display-4 d-block mb-3"></i>
|
||||||
|
<h5 class="mb-0">{{ _('Please login to view the webcam stream.') }}</h5>
|
||||||
|
</div>
|
||||||
|
{% else %}
|
||||||
<img src="{{ webcam_url }}" alt="{{ _('Loading webcam stream...') }}" class="w-100 h-100 object-fit-cover">
|
<img src="{{ webcam_url }}" alt="{{ _('Loading webcam stream...') }}" class="w-100 h-100 object-fit-cover">
|
||||||
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -21,7 +21,7 @@
|
|||||||
<i class="bi bi-info-circle me-1"></i>{{ _('Current State') }}
|
<i class="bi bi-info-circle me-1"></i>{{ _('Current State') }}
|
||||||
</div>
|
</div>
|
||||||
<div class="card-body text-center">
|
<div class="card-body text-center">
|
||||||
<h3 class="display-6 mt-3 text-primary">{{ status.get('state', {}).get('text', 'Unknown') }}</h3>
|
<h3 class="display-6 mt-3 text-primary" id="printer-state-text">{{ status.get('state', {}).get('text', 'Unknown') if status else 'Unknown' }}</h3>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -33,43 +33,42 @@
|
|||||||
<i class="bi bi-thermometer-half me-1"></i>{{ _('Temperatures') }}
|
<i class="bi bi-thermometer-half me-1"></i>{{ _('Temperatures') }}
|
||||||
</div>
|
</div>
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
{% set temps = status.get('temperature', {}) %}
|
{% set temps = status.get('temperature', {}) if status else {} %}
|
||||||
|
|
||||||
<h5 class="mb-1"><i class="bi bi-fire text-danger me-2"></i>{{ _('Tool/Nozzle') }}</h5>
|
<h5 class="mb-1"><i class="bi bi-fire text-danger me-2"></i>{{ _('Tool/Nozzle') }}</h5>
|
||||||
<h4 class="ms-4 mb-4">
|
<h4 class="ms-4 mb-4">
|
||||||
{{ temps.get('tool0', {}).get('actual', 0) }} °C
|
<span id="tool-actual">{{ temps.get('tool0', {}).get('actual', 0) }}</span> °C
|
||||||
<small class="text-muted fs-6">/ {{ temps.get('tool0', {}).get('target', 0) }} °C</small>
|
<small class="text-muted fs-6">/ <span id="tool-target">{{ temps.get('tool0', {}).get('target', 0) }}</span> °C</small>
|
||||||
</h4>
|
</h4>
|
||||||
|
|
||||||
<h5 class="mb-1"><i class="bi bi-square-fill text-warning me-2"></i>{{ _('Bed') }}</h5>
|
<h5 class="mb-1"><i class="bi bi-square-fill text-warning me-2"></i>{{ _('Bed') }}</h5>
|
||||||
<h4 class="ms-4">
|
<h4 class="ms-4">
|
||||||
{{ temps.get('bed', {}).get('actual', 0) }} °C
|
<span id="bed-actual">{{ temps.get('bed', {}).get('actual', 0) }}</span> °C
|
||||||
<small class="text-muted fs-6">/ {{ temps.get('bed', {}).get('target', 0) }} °C</small>
|
<small class="text-muted fs-6">/ <span id="bed-target">{{ temps.get('bed', {}).get('target', 0) }}</span> °C</small>
|
||||||
</h4>
|
</h4>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{% if job and job.get('job', {}).get('file', {}).get('name') %}
|
<div class="card shadow-sm mt-4 border-success" id="active-job-card" style="display: {% if job and job.get('job', {}).get('file', {}).get('name') %}block{% else %}none{% endif %};">
|
||||||
<div class="card shadow-sm mt-4 border-success">
|
|
||||||
<div class="card-header bg-success text-white fw-bold">
|
<div class="card-header bg-success text-white fw-bold">
|
||||||
<i class="bi bi-play-circle me-1"></i>{{ _('Active Print Job') }}
|
<i class="bi bi-play-circle me-1"></i>{{ _('Active Print Job') }}
|
||||||
</div>
|
</div>
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
<h5>{{ job.get('job', {}).get('file', {}).get('name') }}</h5>
|
<h5 id="job-file-name">{{ job.get('job', {}).get('file', {}).get('display_name') or job.get('job', {}).get('file', {}).get('name') if job else '' }}</h5>
|
||||||
|
|
||||||
{% set progress = job.get('progress', {}).get('completion', 0) %}
|
{% set progress = job.get('progress', {}).get('completion', 0) if job else 0 %}
|
||||||
{% if progress == None %}{% set progress = 0 %}{% endif %}
|
{% if progress == None %}{% set progress = 0 %}{% endif %}
|
||||||
<div class="progress mt-3 mb-2" style="height: 25px;">
|
<div class="progress mt-3 mb-2" style="height: 25px;">
|
||||||
<div class="progress-bar progress-bar-striped progress-bar-animated bg-success" role="progressbar" style="width: {{ progress }}%;" aria-valuenow="{{ progress }}" aria-valuemin="0" aria-valuemax="100">
|
<div id="job-progress-bar" class="progress-bar progress-bar-striped progress-bar-animated bg-success" role="progressbar" style="width: {{ progress }}%;" aria-valuenow="{{ progress }}" aria-valuemin="0" aria-valuemax="100">
|
||||||
{{ "%.1f"|format(progress) }}%
|
<span id="job-progress-text">{{ "%.1f"|format(progress) }}%</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="d-flex justify-content-between text-muted small mt-2">
|
<div class="d-flex justify-content-between text-muted small mt-2">
|
||||||
<span><strong>{{ _('Print Time:') }}</strong> {{ job.get('progress', {}).get('printTime', 0) }}s</span>
|
<span><strong>{{ _('Print Time:') }}</strong> <span id="job-print-time">{{ job.get('progress', {}).get('printTime', 0) if job else 0 }}</span>s</span>
|
||||||
<span><strong>{{ _('Time Left:') }}</strong> {{ job.get('progress', {}).get('printTimeLeft', 0) }}s</span>
|
<span><strong>{{ _('Time Left:') }}</strong> <span id="job-time-left">{{ job.get('progress', {}).get('printTimeLeft', 0) if job else 0 }}</span>s</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="mt-4 gap-2 d-flex">
|
<div class="mt-4 gap-2 d-flex">
|
||||||
@@ -78,11 +77,47 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
function updateStatus() {
|
||||||
|
fetch('{{ url_for("printer.api_status_data") }}')
|
||||||
|
.then(res => res.json())
|
||||||
|
.then(data => {
|
||||||
|
if(data.success) {
|
||||||
|
if(data.status && data.status.state) {
|
||||||
|
document.getElementById('printer-state-text').innerText = data.status.state.text || 'Unknown';
|
||||||
|
}
|
||||||
|
if(data.status && data.status.temperature) {
|
||||||
|
const tool = data.status.temperature.tool0 || {};
|
||||||
|
const bed = data.status.temperature.bed || {};
|
||||||
|
document.getElementById('tool-actual').innerText = tool.actual !== undefined ? tool.actual : 0;
|
||||||
|
document.getElementById('tool-target').innerText = tool.target !== undefined ? tool.target : 0;
|
||||||
|
document.getElementById('bed-actual').innerText = bed.actual !== undefined ? bed.actual : 0;
|
||||||
|
document.getElementById('bed-target').innerText = bed.target !== undefined ? bed.target : 0;
|
||||||
|
}
|
||||||
|
const jobCard = document.getElementById('active-job-card');
|
||||||
|
if(data.job && data.job.job && data.job.job.file && data.job.job.file.name) {
|
||||||
|
jobCard.style.display = 'block';
|
||||||
|
document.getElementById('job-file-name').innerText = data.job.job.file.display_name || data.job.job.file.name;
|
||||||
|
let progress = data.job.progress && data.job.progress.completion ? data.job.progress.completion : 0;
|
||||||
|
document.getElementById('job-progress-bar').style.width = progress + '%';
|
||||||
|
document.getElementById('job-progress-bar').setAttribute('aria-valuenow', progress);
|
||||||
|
document.getElementById('job-progress-text').innerText = progress.toFixed(1) + '%';
|
||||||
|
document.getElementById('job-print-time').innerText = data.job.progress ? (data.job.progress.printTime || 0) : 0;
|
||||||
|
document.getElementById('job-time-left').innerText = data.job.progress ? (data.job.progress.printTimeLeft || 0) : 0;
|
||||||
|
} else {
|
||||||
|
jobCard.style.display = 'none';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.catch(err => console.error("Error fetching status:", err));
|
||||||
|
}
|
||||||
|
{% if not error %}
|
||||||
|
setInterval(updateStatus, 1000);
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
function sendCmd(cmd) {
|
function sendCmd(cmd) {
|
||||||
if(cmd === 'cancel') {
|
if(cmd === 'cancel') {
|
||||||
window.customConfirm("{{ _('Are you sure you want to cancel the print?') }}", () => doSendCmd(cmd));
|
window.customConfirm("{{ _('Are you sure you want to cancel the print?') }}", () => doSendCmd(cmd));
|
||||||
@@ -99,12 +134,11 @@ function doSendCmd(cmd) {
|
|||||||
.then(res => res.json())
|
.then(res => res.json())
|
||||||
.then(data => {
|
.then(data => {
|
||||||
if(data.success) {
|
if(data.success) {
|
||||||
window.location.reload();
|
updateStatus();
|
||||||
} else {
|
} else {
|
||||||
window.customAlert("Error: " + data.error);
|
window.customAlert("Error: " + data.error);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
setTimeout(() => { if (!window.pauseRefresh) window.location.reload(); }, 15000);
|
|
||||||
</script>
|
</script>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
@@ -8,7 +8,7 @@ def get_all_engines():
|
|||||||
PrusaSlicerEngine()
|
PrusaSlicerEngine()
|
||||||
]
|
]
|
||||||
|
|
||||||
def get_slicer_engine(engine_name="cura"):
|
def get_slicer_engine(engine_name="prusa", print_config_folder=None):
|
||||||
"""
|
"""
|
||||||
Factory function to retrieve the requested slicing engine instance.
|
Factory function to retrieve the requested slicing engine instance.
|
||||||
Valid names: 'cura', 'prusa_slicer'
|
Valid names: 'cura', 'prusa_slicer'
|
||||||
@@ -16,9 +16,9 @@ def get_slicer_engine(engine_name="cura"):
|
|||||||
engine_name = engine_name.lower().strip()
|
engine_name = engine_name.lower().strip()
|
||||||
|
|
||||||
if engine_name in ['cura', 'cura_engine', 'curaengine']:
|
if engine_name in ['cura', 'cura_engine', 'curaengine']:
|
||||||
return CuraEngine()
|
return CuraEngine(print_config_folder)
|
||||||
elif engine_name in ['prusa', 'prusa_slicer', 'prusaslicer']:
|
elif engine_name in ['prusa', 'prusa_slicer', 'prusaslicer']:
|
||||||
return PrusaSlicerEngine()
|
return PrusaSlicerEngine(print_config_folder)
|
||||||
else:
|
else:
|
||||||
# Default fallback
|
# Default fallback
|
||||||
return CuraEngine()
|
return PrusaSlicerEngine(print_config_folder)
|
||||||
|
|||||||
@@ -6,11 +6,12 @@ import configparser
|
|||||||
from app.utils.conf_parse import ConfParse
|
from app.utils.conf_parse import ConfParse
|
||||||
|
|
||||||
class CuraEngine:
|
class CuraEngine:
|
||||||
def __init__(self):
|
def __init__(self, print_config_folder=None):
|
||||||
self.name = "cura"
|
self.name = "cura"
|
||||||
self.display_name = "UltiMaker Cura"
|
self.display_name = "UltiMaker Cura"
|
||||||
self.is_available = self._check_available()
|
self.is_available = self._check_available()
|
||||||
|
self.print_config_folder = os.path.join(print_config_folder, "cura_engine") if print_config_folder else None
|
||||||
|
|
||||||
def _check_available(self):
|
def _check_available(self):
|
||||||
try:
|
try:
|
||||||
# check if CuraEngine is available in PATH
|
# check if CuraEngine is available in PATH
|
||||||
@@ -21,13 +22,6 @@ class CuraEngine:
|
|||||||
self.display_name = "UltiMaker Cura"
|
self.display_name = "UltiMaker Cura"
|
||||||
self.is_available = self._check_available()
|
self.is_available = self._check_available()
|
||||||
|
|
||||||
def _check_available(self):
|
|
||||||
try:
|
|
||||||
# check if CuraEngine is available in PATH
|
|
||||||
result = subprocess.run(["CuraEngine", "help"], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
|
|
||||||
return result.returncode == 0 or b"Usage:" in result.stdout or b"Usage:" in result.stderr
|
|
||||||
except (FileNotFoundError, OSError):
|
|
||||||
return False
|
|
||||||
|
|
||||||
def slice(self, app, stl_filepath, gcode_filepath, **kwargs):
|
def slice(self, app, stl_filepath, gcode_filepath, **kwargs):
|
||||||
"""
|
"""
|
||||||
@@ -41,23 +35,28 @@ class CuraEngine:
|
|||||||
|
|
||||||
tmp_def_path = None
|
tmp_def_path = None
|
||||||
try:
|
try:
|
||||||
base_config_path = os.path.abspath(os.path.join(app.root_path, '..', 'print_config'))
|
printers_path = os.path.join(self.print_config_folder, 'printers') if self.print_config_folder else None
|
||||||
print_config_path = os.path.join(base_config_path, 'cura_engine')
|
extruders_path = os.path.join(self.print_config_folder, 'extruders') if self.print_config_folder else None
|
||||||
printers_path = os.path.join(print_config_path, 'printers')
|
materials_path = os.path.join(self.print_config_folder, 'materials') if self.print_config_folder else None
|
||||||
extruders_path = os.path.join(print_config_path, 'extruders')
|
presets_path = os.path.join(self.print_config_folder, 'quality') if self.print_config_folder else None
|
||||||
materials_path = os.path.join(print_config_path, 'materials')
|
variants_path = os.path.join(self.print_config_folder, 'variants') if self.print_config_folder else None
|
||||||
presets_path = os.path.join(print_config_path, 'quality')
|
|
||||||
variants_path = os.path.join(print_config_path, 'variants')
|
|
||||||
|
|
||||||
env = os.environ.copy()
|
env = os.environ.copy()
|
||||||
env["CURA_ENGINE_SEARCH_PATH"] = f"{printers_path}:{extruders_path}:{materials_path}:{presets_path}:{variants_path}"
|
env["CURA_ENGINE_SEARCH_PATH"] = f"{printers_path}:{extruders_path}:{materials_path}:{presets_path}:{variants_path}"
|
||||||
|
|
||||||
|
|
||||||
|
from app.models import SystemConfig
|
||||||
|
db_printer = SystemConfig.query.filter_by(key='default_printer').first()
|
||||||
|
p_val = db_printer.value if db_printer and db_printer.value else 'creality_ender3v3se.def.json'
|
||||||
|
if not p_val.endswith('.def.json'): p_val += '.def.json'
|
||||||
|
|
||||||
def_files = [
|
def_files = [
|
||||||
os.path.join(printers_path, "fdmprinter.def.json"),
|
os.path.join(printers_path, "fdmprinter.def.json"),
|
||||||
os.path.join(printers_path, "fdmextruder.def.json"),
|
os.path.join(printers_path, "fdmextruder.def.json"),
|
||||||
os.path.join(printers_path, "creality_base.def.json"),
|
os.path.join(printers_path, "creality_base.def.json"),
|
||||||
os.path.join(printers_path, "creality_ender3v3se.def.json")
|
os.path.join(printers_path, p_val)
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
inst_files_list = []
|
inst_files_list = []
|
||||||
quality_type = None
|
quality_type = None
|
||||||
@@ -82,19 +81,19 @@ class CuraEngine:
|
|||||||
if os.path.exists(m_path): inst_files_list.append(m_path)
|
if os.path.exists(m_path): inst_files_list.append(m_path)
|
||||||
if variant_type:
|
if variant_type:
|
||||||
variant_d = variant_type.split("mm")[0]
|
variant_d = variant_type.split("mm")[0]
|
||||||
v_path = os.path.join(variants_path, "creality", f"creality_ender3v3se_{variant_d}.inst.cfg")
|
v_path = os.path.join(variants_path, "creality", f"{p_val.replace('.def.json', '')}_{variant_d}.inst.cfg")
|
||||||
if os.path.exists(v_path): inst_files_list.append(v_path)
|
if os.path.exists(v_path): inst_files_list.append(v_path)
|
||||||
|
|
||||||
if support_pattern == 'tree':
|
if support_pattern == 'tree':
|
||||||
t_path = os.path.join(print_config_path, 'supports', 'tree.inst.cfg')
|
t_path = os.path.join(self.print_config_folder, 'supports', 'tree.inst.cfg') if self.print_config_folder else None
|
||||||
if os.path.exists(t_path): inst_files_list.append(t_path)
|
if t_path and os.path.exists(t_path): inst_files_list.append(t_path)
|
||||||
elif support_pattern and support_pattern != 'false':
|
elif support_pattern and support_pattern != 'false':
|
||||||
n_path = os.path.join(print_config_path, 'supports', 'normal.inst.cfg')
|
n_path = os.path.join(self.print_config_folder, 'supports', 'normal.inst.cfg') if self.print_config_folder else None
|
||||||
if os.path.exists(n_path): inst_files_list.append(n_path)
|
if n_path and os.path.exists(n_path): inst_files_list.append(n_path)
|
||||||
|
|
||||||
if quality_preset and quality_type:
|
if quality_preset and quality_type:
|
||||||
g_path = os.path.join(presets_path, 'creality', 'globals', f"{quality_type}.inst.cfg")
|
g_path = os.path.join(self.print_config_folder, 'creality', 'globals', f"{quality_type}.inst.cfg") if self.print_config_folder else None
|
||||||
if os.path.exists(g_path): inst_files_list.append(g_path)
|
if g_path and os.path.exists(g_path): inst_files_list.append(g_path)
|
||||||
|
|
||||||
if quality_preset and preset_path and os.path.exists(preset_path):
|
if quality_preset and preset_path and os.path.exists(preset_path):
|
||||||
inst_files_list.append(preset_path)
|
inst_files_list.append(preset_path)
|
||||||
@@ -192,10 +191,10 @@ class CuraEngine:
|
|||||||
except Exception as e:
|
except Exception as e:
|
||||||
app.logger.error(f"Failed to delete temp JSON config {tmp_def_path}: {e}")
|
app.logger.error(f"Failed to delete temp JSON config {tmp_def_path}: {e}")
|
||||||
|
|
||||||
def get_quality_presets(self, app):
|
def get_quality_presets(self):
|
||||||
try:
|
try:
|
||||||
path = os.path.join(app.root_path, '..', 'print_config', 'cura_engine', 'quality', 'creality', 'presets')
|
path = os.path.join(self.print_config_folder, 'quality', 'creality', 'presets') if self.print_config_folder else None
|
||||||
if not os.path.exists(path): return []
|
if not path or not os.path.exists(path): return []
|
||||||
files = [f for f in os.listdir(path) if f.endswith('.inst.cfg')]
|
files = [f for f in os.listdir(path) if f.endswith('.inst.cfg')]
|
||||||
presets = []
|
presets = []
|
||||||
for f in files:
|
for f in files:
|
||||||
@@ -205,7 +204,7 @@ class CuraEngine:
|
|||||||
except:
|
except:
|
||||||
return []
|
return []
|
||||||
|
|
||||||
def get_support_patterns(self, app):
|
def get_support_patterns(self):
|
||||||
return [
|
return [
|
||||||
{'id': 'tree', 'name': 'Tree'},
|
{'id': 'tree', 'name': 'Tree'},
|
||||||
{'id': 'lines', 'name': 'Lines'},
|
{'id': 'lines', 'name': 'Lines'},
|
||||||
@@ -219,10 +218,10 @@ class CuraEngine:
|
|||||||
{'id': 'octagon', 'name': 'Octagon'}
|
{'id': 'octagon', 'name': 'Octagon'}
|
||||||
]
|
]
|
||||||
|
|
||||||
def get_materials(self, app):
|
def get_materials(self):
|
||||||
try:
|
try:
|
||||||
path = os.path.join(app.root_path, '..', 'print_config', 'cura_engine', 'materials')
|
path = os.path.join(self.print_config_folder, 'materials') if self.print_config_folder else None
|
||||||
if not os.path.exists(path): return []
|
if not path or not os.path.exists(path): return []
|
||||||
files = [f for f in os.listdir(path) if f.endswith('.inst.cfg')]
|
files = [f for f in os.listdir(path) if f.endswith('.inst.cfg')]
|
||||||
materials = []
|
materials = []
|
||||||
for f in files:
|
for f in files:
|
||||||
@@ -231,3 +230,33 @@ class CuraEngine:
|
|||||||
return materials
|
return materials
|
||||||
except:
|
except:
|
||||||
return []
|
return []
|
||||||
|
|
||||||
|
def get_bed_dimensions(self):
|
||||||
|
from app.models import SystemConfig
|
||||||
|
import json
|
||||||
|
try:
|
||||||
|
db_printer = SystemConfig.query.filter_by(key='default_printer').first()
|
||||||
|
p_val = db_printer.value if db_printer and db_printer.value else 'creality_ender3v3se.def.json'
|
||||||
|
if not p_val.endswith('.def.json'): p_val += '.def.json'
|
||||||
|
path = os.path.join(self.print_config_folder, 'printers', p_val)
|
||||||
|
with open(path, 'r', encoding='utf-8') as f:
|
||||||
|
data = json.load(f)
|
||||||
|
w = data['overrides']['machine_width']['default_value']
|
||||||
|
h = data['overrides']['machine_depth']['default_value']
|
||||||
|
hd = data['overrides']['machine_height']['default_value']
|
||||||
|
return w, h, hd
|
||||||
|
except:
|
||||||
|
pass
|
||||||
|
return 220, 220, 250
|
||||||
|
def get_all_printers(self):
|
||||||
|
try:
|
||||||
|
path = os.path.join(self.print_config_folder, 'printers') if self.print_config_folder else None
|
||||||
|
if not path or not os.path.exists(path): return []
|
||||||
|
files = [f for f in os.listdir(path) if f.endswith('.inst.cfg')]
|
||||||
|
printers = []
|
||||||
|
for f in files:
|
||||||
|
printers.append({'id': f, 'name': f.replace('..def.json', '').replace('generic_', 'Generic ').replace('_', ' ').title()})
|
||||||
|
printers.sort(key=lambda x: x['name'])
|
||||||
|
return printers
|
||||||
|
except:
|
||||||
|
return []
|
||||||
@@ -4,11 +4,12 @@ import configparser
|
|||||||
import uuid
|
import uuid
|
||||||
|
|
||||||
class PrusaSlicerEngine:
|
class PrusaSlicerEngine:
|
||||||
def __init__(self):
|
def __init__(self, print_config_folder=None):
|
||||||
self.name = "prusa_slicer"
|
self.name = "prusa_slicer"
|
||||||
self.display_name = "PrusaSlicer"
|
self.display_name = "PrusaSlicer"
|
||||||
self.is_available = self._check_available()
|
self.is_available = self._check_available()
|
||||||
|
self.print_config_folder = os.path.join(print_config_folder, 'prusa_slicer') if print_config_folder else None
|
||||||
|
|
||||||
def _check_available(self):
|
def _check_available(self):
|
||||||
try:
|
try:
|
||||||
result = subprocess.run(["prusa-slicer", "--help"], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
|
result = subprocess.run(["prusa-slicer", "--help"], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
|
||||||
@@ -47,18 +48,22 @@ class PrusaSlicerEngine:
|
|||||||
# print(support_pattern)
|
# print(support_pattern)
|
||||||
all_configs = {}
|
all_configs = {}
|
||||||
|
|
||||||
printer_ini = os.path.join(app.root_path, '..', 'print_config', 'prusa_slicer', 'printers', 'Ender3_V3_SE.ini')
|
from app.models import SystemConfig
|
||||||
if os.path.exists(printer_ini):
|
db_printer = SystemConfig.query.filter_by(key='default_printer').first()
|
||||||
|
p_val = db_printer.value if db_printer and db_printer.value else 'Ender3_V3_SE'
|
||||||
|
if not p_val.endswith('.ini'): p_val += '.ini'
|
||||||
|
printer_ini = os.path.join(self.print_config_folder, 'printers', p_val) if self.print_config_folder else None
|
||||||
|
if printer_ini and os.path.exists(printer_ini):
|
||||||
self.add_ini_keys(printer_ini, 'settings', all_configs)
|
self.add_ini_keys(printer_ini, 'settings', all_configs)
|
||||||
|
|
||||||
if quality_preset:
|
if quality_preset:
|
||||||
q_ini = os.path.join(app.root_path, '..', 'print_config', 'prusa_slicer', 'quality', f"{quality_preset}.ini")
|
q_ini = os.path.join(self.print_config_folder, 'quality', f"{quality_preset}.ini") if self.print_config_folder else None
|
||||||
if os.path.exists(q_ini):
|
if q_ini and os.path.exists(q_ini):
|
||||||
self.add_ini_keys(q_ini, 'settings', all_configs)
|
self.add_ini_keys(q_ini, 'settings', all_configs)
|
||||||
|
|
||||||
if material_preset:
|
if material_preset:
|
||||||
m_ini = os.path.join(app.root_path, '..', 'print_config', 'prusa_slicer', 'materials', f"{material_preset}.ini")
|
m_ini = os.path.join(self.print_config_folder, 'materials', f"{material_preset}.ini") if self.print_config_folder else None
|
||||||
if os.path.exists(m_ini):
|
if m_ini and os.path.exists(m_ini):
|
||||||
self.add_ini_keys(m_ini, 'settings', all_configs)
|
self.add_ini_keys(m_ini, 'settings', all_configs)
|
||||||
|
|
||||||
if infill_density is not None:
|
if infill_density is not None:
|
||||||
@@ -69,20 +74,19 @@ class PrusaSlicerEngine:
|
|||||||
if support_enable == 'buildplate':
|
if support_enable == 'buildplate':
|
||||||
command.append("--support-material-buildplate-only")
|
command.append("--support-material-buildplate-only")
|
||||||
# PrusaSlicer equivalent for tree supports => organic
|
# PrusaSlicer equivalent for tree supports => organic
|
||||||
support_pattern_ini = os.path.join(app.root_path, '..', 'print_config', 'prusa_slicer', 'supports', f'{support_pattern}.ini')
|
support_pattern_ini = os.path.join(self.print_config_folder, 'supports', f'{support_pattern}.ini') if self.print_config_folder else None
|
||||||
if os.path.exists(support_pattern_ini):
|
if support_pattern_ini and os.path.exists(support_pattern_ini):
|
||||||
self.add_ini_keys(support_pattern_ini, 'settings', all_configs)
|
self.add_ini_keys(support_pattern_ini, 'settings', all_configs)
|
||||||
else:
|
else:
|
||||||
# Load the default no_support.ini if no support is enabled
|
# Load the default no_support.ini if no support is enabled
|
||||||
no_support_ini = os.path.join(app.root_path, '..', 'print_config', 'prusa_slicer', 'supports', 'no_support.ini')
|
no_support_ini = os.path.join(self.print_config_folder, 'supports', 'no_support.ini') if self.print_config_folder else None
|
||||||
if os.path.exists(no_support_ini):
|
if no_support_ini and os.path.exists(no_support_ini):
|
||||||
self.add_ini_keys(no_support_ini, 'settings', all_configs)
|
self.add_ini_keys(no_support_ini, 'settings', all_configs)
|
||||||
else:
|
else:
|
||||||
all_configs['support_material'] = '0'
|
all_configs['support_material'] = '0'
|
||||||
|
|
||||||
tmp_ini_filename = f"tmp_{uuid.uuid4().hex}.ini"
|
tmp_ini_filename = f"tmp_{uuid.uuid4().hex}.ini"
|
||||||
tmp_ini_path = os.path.join(app.config['UPLOAD_FOLDER'], tmp_ini_filename)
|
tmp_ini_path = os.path.join(app.config['UPLOAD_FOLDER'], tmp_ini_filename)
|
||||||
print(f'****tmp_ini_path: {tmp_ini_path}')
|
|
||||||
with open(tmp_ini_path, 'w') as f:
|
with open(tmp_ini_path, 'w') as f:
|
||||||
for key, value in all_configs.items():
|
for key, value in all_configs.items():
|
||||||
f.write(f"{key} = {value}\n")
|
f.write(f"{key} = {value}\n")
|
||||||
@@ -108,11 +112,11 @@ class PrusaSlicerEngine:
|
|||||||
app.logger.error(f"PrusaSlicer Exception: {e}")
|
app.logger.error(f"PrusaSlicer Exception: {e}")
|
||||||
return False, str(e)
|
return False, str(e)
|
||||||
|
|
||||||
def get_quality_presets(self, app):
|
def get_quality_presets(self):
|
||||||
all_files = [f for f in os.listdir(os.path.join(app.root_path, '..', 'print_config', 'prusa_slicer',"quality")) if f.endswith('.ini')]
|
all_files = [f for f in os.listdir(os.path.join(self.print_config_folder, "quality")) if f.endswith('.ini')] if self.print_config_folder else []
|
||||||
quality_presets = []
|
quality_presets = []
|
||||||
for file in all_files:
|
for file in all_files:
|
||||||
with open(os.path.join(app.root_path, '..', 'print_config', 'prusa_slicer', "quality", file), 'r') as f:
|
with open(os.path.join(self.print_config_folder, "quality", file), 'r') as f:
|
||||||
config = configparser.ConfigParser()
|
config = configparser.ConfigParser()
|
||||||
config.read_file(f)
|
config.read_file(f)
|
||||||
if 'metadata' in config:
|
if 'metadata' in config:
|
||||||
@@ -122,11 +126,11 @@ class PrusaSlicerEngine:
|
|||||||
})
|
})
|
||||||
return quality_presets
|
return quality_presets
|
||||||
|
|
||||||
def get_support_patterns(self, app):
|
def get_support_patterns(self):
|
||||||
all_files = [f for f in os.listdir(os.path.join(app.root_path, '..', 'print_config', 'prusa_slicer',"supports")) if f.endswith('.ini')]
|
all_files = [f for f in os.listdir(os.path.join(self.print_config_folder,"supports")) if f.endswith('.ini')] if self.print_config_folder else []
|
||||||
support_presets = []
|
support_presets = []
|
||||||
for file in all_files:
|
for file in all_files:
|
||||||
with open(os.path.join(app.root_path, '..', 'print_config', 'prusa_slicer', "supports", file), 'r') as f:
|
with open(os.path.join(self.print_config_folder, "supports", file), 'r') as f:
|
||||||
config = configparser.ConfigParser()
|
config = configparser.ConfigParser()
|
||||||
config.read_file(f)
|
config.read_file(f)
|
||||||
if 'metadata' in config:
|
if 'metadata' in config:
|
||||||
@@ -136,15 +140,54 @@ class PrusaSlicerEngine:
|
|||||||
})
|
})
|
||||||
return support_presets
|
return support_presets
|
||||||
|
|
||||||
def get_materials(self, app):
|
def get_materials(self):
|
||||||
|
all_files = [f for f in os.listdir(os.path.join(self.print_config_folder, "materials")) if f.endswith('.ini')] if self.print_config_folder else []
|
||||||
|
materials = []
|
||||||
|
for file in all_files:
|
||||||
|
with open(os.path.join(self.print_config_folder, "materials", file), 'r') as f:
|
||||||
|
config = configparser.ConfigParser()
|
||||||
|
config.read_file(f)
|
||||||
|
if 'metadata' in config:
|
||||||
|
materials.append({
|
||||||
|
'id': file.replace('.ini', ''),
|
||||||
|
'name': config['metadata'].get('show_name', file.replace('.ini', '').replace('_', ' '))
|
||||||
|
})
|
||||||
|
return materials
|
||||||
|
|
||||||
|
|
||||||
|
def get_bed_dimensions(self):
|
||||||
|
from app.models import SystemConfig
|
||||||
|
import configparser
|
||||||
try:
|
try:
|
||||||
path = os.path.join(app.root_path, '..', 'print_config', 'prusa_slicer', 'materials')
|
db_printer = SystemConfig.query.filter_by(key='default_printer').first()
|
||||||
if not os.path.exists(path): return []
|
p_val = db_printer.value if db_printer and db_printer.value else 'Ender3_V3_SE.ini'
|
||||||
files = [f for f in os.listdir(path) if f.endswith('.ini')]
|
if not p_val.endswith('.ini'): p_val += '.ini'
|
||||||
materials = []
|
path = os.path.join(self.print_config_folder, 'printers', p_val)
|
||||||
for f in files:
|
config = configparser.ConfigParser()
|
||||||
materials.append({'id': f.replace('.ini', ''), 'name': f.replace('.ini', '').replace('_', ' ')})
|
config.read(path)
|
||||||
materials.sort(key=lambda x: x['name'])
|
if 'settings' in config and 'bed_shape' in config['settings']:
|
||||||
return materials
|
# format is usually like 0x0,220x0,220x220,0x220
|
||||||
|
coords = config['settings']['bed_shape'].split(',')
|
||||||
|
max_x = max([float(c.split('x')[0]) for c in coords])
|
||||||
|
max_y = max([float(c.split('x')[1]) for c in coords])
|
||||||
|
# height
|
||||||
|
h = 250
|
||||||
|
if 'max_print_height' in config['settings']:
|
||||||
|
h = float(config['settings']['max_print_height'])
|
||||||
|
return max_x, max_y, h
|
||||||
except:
|
except:
|
||||||
return []
|
pass
|
||||||
|
return 220, 220, 250
|
||||||
|
def get_all_printers(self):
|
||||||
|
all_files = [f for f in os.listdir(os.path.join(self.print_config_folder, "printers")) if f.endswith('.ini')] if self.print_config_folder else []
|
||||||
|
printers = []
|
||||||
|
for file in all_files:
|
||||||
|
with open(os.path.join(self.print_config_folder, "printers", file), 'r') as f:
|
||||||
|
config = configparser.ConfigParser()
|
||||||
|
config.read_file(f)
|
||||||
|
if 'metadata' in config:
|
||||||
|
printers.append({
|
||||||
|
'id': file.replace('.ini', ''),
|
||||||
|
'name': config['metadata'].get('show_name', file.replace('.ini', '').replace('_', ' '))
|
||||||
|
})
|
||||||
|
return printers
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ from app.utils.conf_parse import ConfParse
|
|||||||
import json
|
import json
|
||||||
import uuid
|
import uuid
|
||||||
import configparser
|
import configparser
|
||||||
|
from app.utils.slice_engines import get_slicer_engine
|
||||||
|
|
||||||
import os
|
import os
|
||||||
|
|
||||||
@@ -44,17 +44,15 @@ def slice_stl_task(file_id, stl_filepath, quality_preset=None, material_preset=N
|
|||||||
|
|
||||||
# Remove DB session to avoid locking the sqlite db during long slicing operations
|
# Remove DB session to avoid locking the sqlite db during long slicing operations
|
||||||
db.session.remove()
|
db.session.remove()
|
||||||
|
|
||||||
from app.utils.slice_engines import get_slicer_engine
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
# Optionally fetch the preferred engine from db conf or just default to cura
|
# Optionally fetch the preferred engine from db conf or just default to prusa
|
||||||
# For now default to cura or whichever is passed via kwargs if implemented later
|
# For now default to prusa or whichever is passed via kwargs if implemented later
|
||||||
conf_engine = SystemConfig.query.filter_by(key='slicer_engine').first()
|
conf_engine = SystemConfig.query.filter_by(key='slicer_engine').first()
|
||||||
engine_name = conf_engine.value if conf_engine and conf_engine.value else "cura"
|
engine_name = conf_engine.value if conf_engine and conf_engine.value else "prusa"
|
||||||
db.session.remove()
|
db.session.remove()
|
||||||
|
|
||||||
slicer = get_slicer_engine(engine_name)
|
slicer = get_slicer_engine(engine_name,app.config['PRINT_CONFIG_FOLDER'])
|
||||||
|
|
||||||
success, err_msg = slicer.slice(
|
success, err_msg = slicer.slice(
|
||||||
app=app,
|
app=app,
|
||||||
|
|||||||
@@ -1,54 +0,0 @@
|
|||||||
import os
|
|
||||||
import glob
|
|
||||||
import difflib
|
|
||||||
|
|
||||||
# Read valid keys
|
|
||||||
valid_keys = set()
|
|
||||||
with open('valid_keys.txt', 'r') as f:
|
|
||||||
for line in f:
|
|
||||||
valid_keys.add(line.strip())
|
|
||||||
|
|
||||||
def process_file(filepath):
|
|
||||||
with open(filepath, 'r') as f:
|
|
||||||
lines = f.readlines()
|
|
||||||
|
|
||||||
new_lines = []
|
|
||||||
changed = False
|
|
||||||
|
|
||||||
for line in lines:
|
|
||||||
stripped = line.strip()
|
|
||||||
# Skip empty lines, metadata sections, or already commented lines with ;
|
|
||||||
if not stripped or stripped.startswith('[') or stripped.startswith(';'):
|
|
||||||
new_lines.append(line)
|
|
||||||
continue
|
|
||||||
|
|
||||||
if '=' in line:
|
|
||||||
parts = line.split('=', 1)
|
|
||||||
key = parts[0].strip()
|
|
||||||
val = parts[1]
|
|
||||||
|
|
||||||
if key in valid_keys:
|
|
||||||
new_lines.append(line)
|
|
||||||
else:
|
|
||||||
matches = difflib.get_close_matches(key, valid_keys, n=1, cutoff=0.8)
|
|
||||||
if matches:
|
|
||||||
new_key = matches[0]
|
|
||||||
new_lines.append(line.replace(key + ' ', new_key + ' ', 1) if key + ' ' in line else line.replace(key + '=', new_key + '=', 1))
|
|
||||||
print(f"{filepath}: Reacted {key} to {new_key}")
|
|
||||||
changed = True
|
|
||||||
else:
|
|
||||||
new_lines.append(';;;' + line)
|
|
||||||
print(f"{filepath}: Commented {key}")
|
|
||||||
changed = True
|
|
||||||
else:
|
|
||||||
new_lines.append(line)
|
|
||||||
|
|
||||||
if changed:
|
|
||||||
with open(filepath, 'w') as f:
|
|
||||||
f.writelines(new_lines)
|
|
||||||
|
|
||||||
for root, dirs, files in os.walk('print_config/prusa_slicer'):
|
|
||||||
for file in files:
|
|
||||||
if file.endswith('.ini'):
|
|
||||||
process_file(os.path.join(root, file))
|
|
||||||
|
|
||||||
@@ -1,246 +0,0 @@
|
|||||||
import os
|
|
||||||
|
|
||||||
def load_valid_keys():
|
|
||||||
valid = set()
|
|
||||||
if os.path.exists('valid_keys.txt'):
|
|
||||||
with open('valid_keys.txt', 'r') as f:
|
|
||||||
for line in f:
|
|
||||||
if line.strip():
|
|
||||||
valid.add(line.strip())
|
|
||||||
# 补充一些在 PrusaSlicer ini常见但可能在cli中缺失的原生合法字段
|
|
||||||
valid.update([
|
|
||||||
"start_gcode", "end_gcode", "before_layer_gcode", "temperature",
|
|
||||||
"first_layer_temperature", "bed_temperature", "first_layer_bed_temperature",
|
|
||||||
"printer_model", "family", "z_offset", "printer_technology",
|
|
||||||
"gcode_flavor", "silent_mode", "printer_variant", "max_print_height",
|
|
||||||
"nozzle_diameter", "extruder_colour", "extruder_offset", "use_relative_e_distances",
|
|
||||||
"use_firmware_retraction", "retract_layer_change", "retract_length",
|
|
||||||
"retract_lift", "retract_lift_above", "retract_lift_below", "retract_speed",
|
|
||||||
"deretract_speed", "retract_before_travel", "retract_before_wipe", "wipe",
|
|
||||||
"machine_limits_usage", "machine_max_acceleration_x", "machine_max_acceleration_y",
|
|
||||||
"machine_max_acceleration_z", "machine_max_acceleration_e",
|
|
||||||
"machine_max_speed_x", "machine_max_speed_y", "machine_max_speed_z",
|
|
||||||
"machine_max_speed_e", "machine_max_jerk_x", "machine_max_jerk_y",
|
|
||||||
"machine_max_jerk_z", "machine_max_jerk_e", "machine_min_travel_rate",
|
|
||||||
"default_filament_colour", "filament_type", "filament_diameter",
|
|
||||||
"filament_density", "filament_cost", "fan_always_on", "cooling",
|
|
||||||
"support_material", "support_material_auto", "support_material_style"
|
|
||||||
])
|
|
||||||
return valid
|
|
||||||
|
|
||||||
VALID_KEYS = load_valid_keys()
|
|
||||||
|
|
||||||
# 基于全量 all_keys.txt 逐一梳理的语义映射字典
|
|
||||||
SEMANTIC_MAP = {
|
|
||||||
# 打印层高相关
|
|
||||||
"adaptive_layer_height": "variable_layer_height",
|
|
||||||
"initial_layer_print_height": "first_layer_height",
|
|
||||||
"layer_height": "layer_height",
|
|
||||||
"min_layer_height": "min_layer_height",
|
|
||||||
"max_layer_height": "max_layer_height",
|
|
||||||
"print_sequence": "complete_objects",
|
|
||||||
|
|
||||||
# 线宽相关
|
|
||||||
"line_width": "extrusion_width",
|
|
||||||
"initial_layer_line_width": "first_layer_extrusion_width",
|
|
||||||
"outer_wall_line_width": "external_perimeter_extrusion_width",
|
|
||||||
"inner_wall_line_width": "perimeter_extrusion_width",
|
|
||||||
"top_surface_line_width": "top_infill_extrusion_width",
|
|
||||||
"sparse_infill_line_width": "infill_extrusion_width",
|
|
||||||
"internal_solid_infill_line_width": "solid_infill_extrusion_width",
|
|
||||||
|
|
||||||
# 墙/外壳相关
|
|
||||||
"wall_loops": "perimeters",
|
|
||||||
"top_shell_layers": "top_solid_layers",
|
|
||||||
"bottom_shell_layers": "bottom_solid_layers",
|
|
||||||
"top_shell_thickness": "top_solid_min_thickness",
|
|
||||||
"bottom_shell_thickness": "bottom_solid_min_thickness",
|
|
||||||
"only_one_wall_top": "top_one_perimeter_type",
|
|
||||||
"detect_thin_wall": "thin_walls",
|
|
||||||
# "detect_narrow_internal_solid_infill": "thin_walls",
|
|
||||||
"reduce_crossing_wall": "avoid_crossing_perimeters",
|
|
||||||
|
|
||||||
# 填充相关
|
|
||||||
"sparse_infill_density": "fill_density",
|
|
||||||
"sparse_infill_pattern": "fill_pattern",
|
|
||||||
"infill_direction": "fill_angle",
|
|
||||||
"infill_wall_overlap": "infill_overlap",
|
|
||||||
"infill_combination": "solid_infill_every_layers",
|
|
||||||
"bottom_surface_pattern": "bottom_fill_pattern",
|
|
||||||
"top_surface_pattern": "top_fill_pattern",
|
|
||||||
"gap_fill_target": "gap_fill_enabled",
|
|
||||||
|
|
||||||
# 速度相关
|
|
||||||
"initial_layer_speed": "first_layer_speed",
|
|
||||||
"initial_layer_infill_speed": "first_layer_infill_speed",
|
|
||||||
"outer_wall_speed": "external_perimeter_speed",
|
|
||||||
"inner_wall_speed": "perimeter_speed",
|
|
||||||
"top_surface_speed": "top_solid_infill_speed",
|
|
||||||
"sparse_infill_speed": "infill_speed",
|
|
||||||
"internal_solid_infill_speed": "solid_infill_speed",
|
|
||||||
"gap_infill_speed": "gap_fill_speed",
|
|
||||||
"bridge_speed": "bridge_speed",
|
|
||||||
"travel_speed": "travel_speed",
|
|
||||||
"travel_speed_z": "travel_speed_z",
|
|
||||||
"small_perimeter_speed": "small_perimeter_speed",
|
|
||||||
"support_speed": "support_material_speed",
|
|
||||||
"support_interface_speed": "support_material_interface_speed",
|
|
||||||
|
|
||||||
# 加速度相关
|
|
||||||
"default_acceleration": "default_acceleration",
|
|
||||||
"initial_layer_acceleration": "first_layer_acceleration",
|
|
||||||
"outer_wall_acceleration": "external_perimeter_acceleration",
|
|
||||||
"inner_wall_acceleration": "perimeter_acceleration",
|
|
||||||
"top_surface_acceleration": "top_solid_infill_acceleration",
|
|
||||||
"travel_acceleration": "travel_acceleration",
|
|
||||||
"bridge_acceleration": "bridge_acceleration",
|
|
||||||
|
|
||||||
# 支撑相关
|
|
||||||
"support_angle": "support_material_angle",
|
|
||||||
"support_top_z_distance": "support_material_contact_distance",
|
|
||||||
"support_bottom_z_distance": "support_material_bottom_contact_distance",
|
|
||||||
"support_interface_top_layers": "support_material_interface_layers",
|
|
||||||
"support_interface_bottom_layers": "support_material_bottom_interface_layers",
|
|
||||||
"support_interface_spacing": "support_material_interface_spacing",
|
|
||||||
# "support_remove_small_overhang": "support_material_threshold",
|
|
||||||
"support_interface_pattern": "support_material_interface_pattern",
|
|
||||||
|
|
||||||
# 底座/附着相关
|
|
||||||
"brim_width": "brim_width",
|
|
||||||
"raft_layers": "raft_layers",
|
|
||||||
"raft_contact_distance": "raft_contact_distance",
|
|
||||||
"raft_expansion": "raft_expansion",
|
|
||||||
"raft_first_layer_density": "raft_first_layer_density",
|
|
||||||
"raft_first_layer_expansion": "raft_first_layer_expansion",
|
|
||||||
"skirt_distance": "skirt_distance",
|
|
||||||
"skirt_height": "skirt_height",
|
|
||||||
"skirt_loops": "skirts",
|
|
||||||
"elefant_foot_compensation": "elefant_foot_compensation",
|
|
||||||
|
|
||||||
# 回抽与耗材相关
|
|
||||||
"z_hop": "retract_lift",
|
|
||||||
"retract_length": "retract_length",
|
|
||||||
"retract_speed": "retract_speed",
|
|
||||||
"retract_before_wipe": "retract_before_wipe",
|
|
||||||
"retract_before_travel": "retract_before_travel",
|
|
||||||
"retract_layer_change": "retract_layer_change",
|
|
||||||
"retract_lift_above": "retract_lift_above",
|
|
||||||
"retract_lift_below": "retract_lift_below",
|
|
||||||
"filament_deretraction_speed": "filament_deretract_speed",
|
|
||||||
"filament_retraction_length": "filament_retract_length",
|
|
||||||
"filament_retraction_speed": "filament_retract_speed",
|
|
||||||
"material_type": "filament_type",
|
|
||||||
"nozzle_temperature": "temperature",
|
|
||||||
"nozzle_temperature_initial_layer": "first_layer_temperature",
|
|
||||||
"filament_flow_ratio": "extrusion_multiplier",
|
|
||||||
|
|
||||||
# 其他属性
|
|
||||||
"bridge_flow": "bridge_flow_ratio",
|
|
||||||
# "idle_temperature": "standby_temperature_delta",
|
|
||||||
"enable_arc_fitting": "arc_fitting",
|
|
||||||
"slowdown_for_curled_perimeters": "avoid_crossing_curled_overhangs",
|
|
||||||
"slow_down_layer_time": "slowdown_below_layer_time",
|
|
||||||
"fan_max_speed": "max_fan_speed",
|
|
||||||
"fan_min_speed": "min_fan_speed",
|
|
||||||
"spiral_mode": "spiral_vase",
|
|
||||||
"prime_tower_brim_width": "wipe_tower_brim_width",
|
|
||||||
"prime_tower_width": "wipe_tower_width",
|
|
||||||
|
|
||||||
"bridge_no_support": "dont_support_bridges",
|
|
||||||
"minimum_sparse_infill_area": "solid_infill_below_area",
|
|
||||||
"xy_hole_compensation": "xy_size_compensation",
|
|
||||||
"enable_prime_tower": "wipe_tower",
|
|
||||||
"ironing_flow": "ironing_flowrate",
|
|
||||||
"overhang_1_4_speed": "overhang_speed_0",
|
|
||||||
"overhang_2_4_speed": "overhang_speed_1",
|
|
||||||
"overhang_3_4_speed": "overhang_speed_2",
|
|
||||||
"overhang_4_4_speed": "overhang_speed_3",
|
|
||||||
"enable_overhang_speed": "enable_dynamic_overhang_speeds",
|
|
||||||
"enforce_support_layers": "support_material_enforce_layers",
|
|
||||||
"fuzzy_skin_point_distance": "fuzzy_skin_point_dist",
|
|
||||||
# "initial_layer_min_bead_width": "min_bead_width",
|
|
||||||
# "internal_bridge_flow": "bridge_flow_ratio",
|
|
||||||
# "internal_bridge_speed": "bridge_speed",
|
|
||||||
"internal_solid_infill_acceleration": "solid_infill_acceleration",
|
|
||||||
"internal_solid_infill_pattern": "solid_fill_pattern",
|
|
||||||
"is_infill_first": "infill_first",
|
|
||||||
"seam_gap": "seam_gap_distance",
|
|
||||||
"seam_slope_entire_loop": "scarf_seam_entire_loop",
|
|
||||||
"seam_slope_inner_walls": "scarf_seam_on_inner_perimeters",
|
|
||||||
"seam_slope_min_length": "scarf_seam_length",
|
|
||||||
"seam_slope_start_height": "scarf_seam_start_height",
|
|
||||||
"sparse_infill_acceleration": "infill_acceleration",
|
|
||||||
"internal_solid_infill_acceleration": "solid_infill_acceleration",
|
|
||||||
"wall_generator": "perimeter_generator",
|
|
||||||
# "wipe_tower_rotation_angle": "wipe_tower_cone_angle"
|
|
||||||
}
|
|
||||||
|
|
||||||
def process_file(filepath):
|
|
||||||
with open(filepath, 'r') as f:
|
|
||||||
lines = f.readlines()
|
|
||||||
|
|
||||||
new_lines = []
|
|
||||||
changed = False
|
|
||||||
|
|
||||||
for line in lines:
|
|
||||||
stripped = line.strip()
|
|
||||||
# 忽略空行、段名和已经是原生的配置行
|
|
||||||
if not stripped or stripped.startswith('[') or stripped.startswith(';') or stripped.startswith('show_name'):
|
|
||||||
new_lines.append(line)
|
|
||||||
continue
|
|
||||||
|
|
||||||
if '=' in line:
|
|
||||||
parts = line.split('=', 1)
|
|
||||||
raw_key = parts[0].strip()
|
|
||||||
# 兼容前面可能被加了;;;的key重新解开的情况(以防跑多次)
|
|
||||||
key = raw_key.lstrip(';')
|
|
||||||
val = parts[1].strip()
|
|
||||||
|
|
||||||
# 处理一些特有的布尔值或字符串转义差异
|
|
||||||
if key == "print_sequence" and val == "by layer":
|
|
||||||
val = "0"
|
|
||||||
elif key == "print_sequence" and val == "by object":
|
|
||||||
val = "1"
|
|
||||||
if key == "spiral_mode":
|
|
||||||
val = "1" if val != "0" else "0"
|
|
||||||
if key == "support_type" and "auto" in val:
|
|
||||||
val = "1"
|
|
||||||
|
|
||||||
if val == "zig-zag":
|
|
||||||
val = "zigzag"
|
|
||||||
|
|
||||||
if key == "enable_arc_fitting":
|
|
||||||
if str(val) == "1":
|
|
||||||
val = "emit_center"
|
|
||||||
else:
|
|
||||||
val = "disabled"
|
|
||||||
|
|
||||||
if key == "only_one_wall_top":
|
|
||||||
if str(val) == "1":
|
|
||||||
val = "top"
|
|
||||||
else:
|
|
||||||
val = "none"
|
|
||||||
|
|
||||||
if key in SEMANTIC_MAP:
|
|
||||||
new_key = SEMANTIC_MAP[key]
|
|
||||||
new_lines.append(f"{new_key} = {val}\n")
|
|
||||||
changed = True
|
|
||||||
elif key in VALID_KEYS:
|
|
||||||
# 已经是PrusaSlicer的原生可用属性
|
|
||||||
new_lines.append(f"{key} = {val}\n")
|
|
||||||
else:
|
|
||||||
# 在 all_keys.txt 中但找不到任何对应 PrusaSlicer 语义的属性
|
|
||||||
new_lines.append(f";;;{raw_key} = {val}\n")
|
|
||||||
changed = True
|
|
||||||
else:
|
|
||||||
new_lines.append(line)
|
|
||||||
|
|
||||||
if changed:
|
|
||||||
with open(filepath, 'w') as f:
|
|
||||||
f.writelines(new_lines)
|
|
||||||
|
|
||||||
for root, dirs, files in os.walk('print_config/prusa_slicer'):
|
|
||||||
for file in files:
|
|
||||||
if file.endswith('.ini'):
|
|
||||||
process_file(os.path.join(root, file))
|
|
||||||
print("All keys mapped exhaustively.")
|
|
||||||
@@ -6,6 +6,7 @@ filament_type = petg
|
|||||||
[settings]
|
[settings]
|
||||||
; filament_adhesiveness_category = 300
|
; filament_adhesiveness_category = 300
|
||||||
idle_temperature = 160
|
idle_temperature = 160
|
||||||
|
bed_temperature = 70
|
||||||
first_layer_bed_temperature = 70
|
first_layer_bed_temperature = 70
|
||||||
;;;cool_plate_temp = 70
|
;;;cool_plate_temp = 70
|
||||||
;;;eng_plate_temp = 0
|
;;;eng_plate_temp = 0
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ filament_type = pla
|
|||||||
|
|
||||||
[settings]
|
[settings]
|
||||||
idle_temperature = 150
|
idle_temperature = 150
|
||||||
|
bed_temperature = 60
|
||||||
first_layer_bed_temperature = 60
|
first_layer_bed_temperature = 60
|
||||||
;;;cool_plate_temp = 50
|
;;;cool_plate_temp = 50
|
||||||
;;;eng_plate_temp = 45
|
;;;eng_plate_temp = 45
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ filament_type = petg
|
|||||||
[settings]
|
[settings]
|
||||||
; filament_adhesiveness_category = 300
|
; filament_adhesiveness_category = 300
|
||||||
idle_temperature = 160
|
idle_temperature = 160
|
||||||
|
bed_temperature = 70
|
||||||
first_layer_bed_temperature = 70
|
first_layer_bed_temperature = 70
|
||||||
;;;cool_plate_temp = 60
|
;;;cool_plate_temp = 60
|
||||||
;;;eng_plate_temp = 0
|
;;;eng_plate_temp = 0
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ filament_type = tpu
|
|||||||
|
|
||||||
[settings]
|
[settings]
|
||||||
idle_temperature = 130
|
idle_temperature = 130
|
||||||
|
bed_temperature = 55
|
||||||
first_layer_bed_temperature = 55
|
first_layer_bed_temperature = 55
|
||||||
;;;cool_plate_temp = 30
|
;;;cool_plate_temp = 30
|
||||||
;;;eng_plate_temp = 30
|
;;;eng_plate_temp = 30
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ filament_type = pla
|
|||||||
|
|
||||||
[settings]
|
[settings]
|
||||||
idle_temperature = 150
|
idle_temperature = 150
|
||||||
|
bed_temperature = 60
|
||||||
first_layer_bed_temperature = 60
|
first_layer_bed_temperature = 60
|
||||||
;;;cool_plate_temp = 50
|
;;;cool_plate_temp = 50
|
||||||
;;;eng_plate_temp = 45
|
;;;eng_plate_temp = 45
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ filament_type = pla
|
|||||||
|
|
||||||
[settings]
|
[settings]
|
||||||
idle_temperature = 150
|
idle_temperature = 150
|
||||||
|
bed_temperature = 60
|
||||||
first_layer_bed_temperature = 60
|
first_layer_bed_temperature = 60
|
||||||
;;;cool_plate_temp = 50
|
;;;cool_plate_temp = 50
|
||||||
;;;eng_plate_temp = 45
|
;;;eng_plate_temp = 45
|
||||||
|
|||||||
@@ -6,6 +6,8 @@ filament_type = petg
|
|||||||
[settings]
|
[settings]
|
||||||
; filament_adhesiveness_category = 300
|
; filament_adhesiveness_category = 300
|
||||||
idle_temperature = 160
|
idle_temperature = 160
|
||||||
|
bed_temperature = 70
|
||||||
|
first_layer_bed_temperature = 70
|
||||||
;;;cool_plate_temp = 60
|
;;;cool_plate_temp = 60
|
||||||
;;;eng_plate_temp = 0
|
;;;eng_plate_temp = 0
|
||||||
;;;hot_plate_temp = 70
|
;;;hot_plate_temp = 70
|
||||||
@@ -49,8 +51,6 @@ max_fan_speed = 80
|
|||||||
min_fan_speed = 40
|
min_fan_speed = 40
|
||||||
;;;slow_down_min_speed = 10
|
;;;slow_down_min_speed = 10
|
||||||
slowdown_below_layer_time = 8
|
slowdown_below_layer_time = 8
|
||||||
bed_temperature = 70
|
|
||||||
first_layer_bed_temperature = 70
|
|
||||||
;;;filament_start_gcode = ;filament start gcode\n
|
;;;filament_start_gcode = ;filament start gcode\n
|
||||||
temperature = 240
|
temperature = 240
|
||||||
;;;temperature_vitrification = 80
|
;;;temperature_vitrification = 80
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ filament_type = pla
|
|||||||
|
|
||||||
[settings]
|
[settings]
|
||||||
idle_temperature = 150
|
idle_temperature = 150
|
||||||
|
bed_temperature = 60
|
||||||
first_layer_bed_temperature = 60
|
first_layer_bed_temperature = 60
|
||||||
;;;cool_plate_temp = 50
|
;;;cool_plate_temp = 50
|
||||||
;;;eng_plate_temp = 45
|
;;;eng_plate_temp = 45
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ filament_type = pla
|
|||||||
|
|
||||||
[settings]
|
[settings]
|
||||||
idle_temperature = 150
|
idle_temperature = 150
|
||||||
|
bed_temperature = 60
|
||||||
first_layer_bed_temperature = 60
|
first_layer_bed_temperature = 60
|
||||||
;;;cool_plate_temp = 50
|
;;;cool_plate_temp = 50
|
||||||
;;;eng_plate_temp = 45
|
;;;eng_plate_temp = 45
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ filament_type = pla
|
|||||||
|
|
||||||
[settings]
|
[settings]
|
||||||
idle_temperature = 150
|
idle_temperature = 150
|
||||||
|
bed_temperature = 60
|
||||||
first_layer_bed_temperature = 60
|
first_layer_bed_temperature = 60
|
||||||
;;;cool_plate_temp = 50
|
;;;cool_plate_temp = 50
|
||||||
;;;eng_plate_temp = 45
|
;;;eng_plate_temp = 45
|
||||||
|
|||||||
@@ -48,7 +48,7 @@ single_extruder_multi_material = 1
|
|||||||
start_filament_gcode = ;Do nothing
|
start_filament_gcode = ;Do nothing
|
||||||
wipe = 1
|
wipe = 1
|
||||||
before_layer_gcode = ;BEFORE_LAYER_CHANGE\n;[layer_z]\nG92 E0\n
|
before_layer_gcode = ;BEFORE_LAYER_CHANGE\n;[layer_z]\nG92 E0\n
|
||||||
start_gcode = M220 S100 ;Reset Feedrate \nM221 S100 ;Reset Flowrate \n \nM140 S{first_layer_bed_temperature[0]} ;Set final bed temp \nG28 ;Home \n \nG92 E0 ;Reset Extruder \nG1 Z2.0 F3000 ;Move Z Axis up \nM104 S{first_layer_temperature[0]} ;Set final nozzle temp \nG1 X-10 Y20 Z3 F5000.0 ;Move to out position \nM190 S{first_layer_bed_temperature[0]} ;Wait for bed temp to stabilize \nM109 S{temperature[0]} ;Wait for nozzle temp to stabilize \nG1 X-2.1 Y20 Z0.28 F5000.0 ;Move to start position \n G1 X-2.1 Y145.0 Z0.28 F1500.0 E15 ;Draw the first line \nG1 X-2.4 Y145.0 Z0.28 F5000.0 ;Move to side a little \nG1 X-2.4 Y20 Z0.28 F1500.0 E30 ;Draw the second line \nG92 E0 ;Reset Extruder \nG1 E-1.0000 F1800 ;Retract a bit \nG1 Z2.0 F3000 ;Move Z Axis up \nG1 E0.0000 F1800
|
start_gcode = M220 S100 ;Reset Feedrate \nM221 S100 ;Reset Flowrate \n \nM140 S{first_layer_bed_temperature[0]} ;Set final bed temp \nG28 ;Home \n \nG92 E0 ;Reset Extruder \nG1 Z2.0 F3000 ;Move Z Axis up \nM104 S{first_layer_temperature[0]} ;Set final nozzle temp \nG1 X-13 Y20 Z3 F5000.0 ;Move to out position \nM190 S{first_layer_bed_temperature[0]} ;Wait for bed temp to stabilize \nM109 S{temperature[0]} ;Wait for nozzle temp to stabilize \nG1 X-2.1 Y20 Z0.28 F5000.0 ;Move to start position \n G1 X-2.1 Y145.0 Z0.28 F1500.0 E15 ;Draw the first line \nG1 X-2.4 Y145.0 Z0.28 F5000.0 ;Move to side a little \nG1 X-2.4 Y20 Z0.28 F1500.0 E30 ;Draw the second line \nG92 E0 ;Reset Extruder \nG1 E-1.0000 F1800 ;Retract a bit \nG1 Z2.0 F3000 ;Move Z Axis up \nG1 E0.0000 F1800
|
||||||
end_gcode = G91 ;Relative positionning \nG1 E-2 F2700 ;Retract a bit \nG1 E-2 Z0.2 F2400 ;Retract and raise Z \nG1 X5 Y5 F3000 ;Wipe out \nG1 Z10 ;Raise Z more \nG90 ;Absolute positionning \n \nG1 X0 Y220 ;Present print \nM106 S0 ;Turn-off fan \nM104 S0 ;Turn-off hotend \nM140 S0 ;Turn-off bed \n \nM84 X Y E ;Disable all steppers but Z
|
end_gcode = G91 ;Relative positionning \nG1 E-2 F2700 ;Retract a bit \nG1 E-2 Z0.2 F2400 ;Retract and raise Z \nG1 X5 Y5 F3000 ;Wipe out \nG1 Z10 ;Raise Z more \nG90 ;Absolute positionning \n \nG1 X0 Y220 ;Present print \nM106 S0 ;Turn-off fan \nM104 S0 ;Turn-off hotend \nM140 S0 ;Turn-off bed \n \nM84 X Y E ;Disable all steppers but Z
|
||||||
machine_max_acceleration_travel = 2000,2000
|
machine_max_acceleration_travel = 2000,2000
|
||||||
pause_print_gcode = M25
|
pause_print_gcode = M25
|
||||||
|
|||||||
997
pru-all-cli.md
997
pru-all-cli.md
@@ -1,997 +0,0 @@
|
|||||||
Actions:
|
|
||||||
--export-3mf Export the model(s) as 3MF.
|
|
||||||
--export-amf Export the model(s) as AMF.
|
|
||||||
--export-gcode, --gcode, -g
|
|
||||||
Slice the model and export toolpaths as G-code.
|
|
||||||
--export-obj Export the model(s) as OBJ.
|
|
||||||
--export-sla, --sla Slice the model and export SLA printing layers as PNG.
|
|
||||||
--export-stl Export the model(s) as STL.
|
|
||||||
--gcodeviewer Visualize an already sliced and saved G-code
|
|
||||||
--help, -h Show this help.
|
|
||||||
--help-fff Show the full list of print/G-code configuration options.
|
|
||||||
--help-sla Show the full list of SLA print configuration options.
|
|
||||||
--info Write information about the model to the console.
|
|
||||||
--save ABCD Save configuration to the specified file.
|
|
||||||
--slice, -s Slice the model as FFF or SLA based on the printer_technology configuration
|
|
||||||
value.
|
|
||||||
|
|
||||||
Transform options:
|
|
||||||
--align-xy X,Y Align the model to the given point.
|
|
||||||
--center X,Y Center the print around the given center.
|
|
||||||
--cut N Cut model at the given Z.
|
|
||||||
--dont-arrange Do not rearrange the given models before merging and keep their original XY
|
|
||||||
coordinates.
|
|
||||||
--duplicate N Multiply copies by this factor.
|
|
||||||
--duplicate-grid X,Y
|
|
||||||
Multiply copies by creating a grid.
|
|
||||||
--ensure-on-bed Lift the object above the bed when it is partially below. Enabled by default,
|
|
||||||
use --no-ensure-on-bed to disable.
|
|
||||||
--merge, -m Arrange the supplied models in a plate and merge them in a single model in order
|
|
||||||
to perform actions once.
|
|
||||||
--repair Try to repair any non-manifold meshes (this option is implicitly added whenever
|
|
||||||
we need to slice the model to perform the requested action).
|
|
||||||
--rotate N Rotation angle around the Z axis in degrees.
|
|
||||||
--rotate-x N Rotation angle around the X axis in degrees.
|
|
||||||
--rotate-y N Rotation angle around the Y axis in degrees.
|
|
||||||
--scale N Scaling factor or percentage.
|
|
||||||
--scale-to-fit X,Y,Z
|
|
||||||
Scale to fit the given volume.
|
|
||||||
--split Detect unconnected parts in the given model(s) and split them into separate
|
|
||||||
objects.
|
|
||||||
|
|
||||||
Other options:
|
|
||||||
--config-compatibility
|
|
||||||
This version of PrusaSlicer may not understand configurations produced by the
|
|
||||||
newest PrusaSlicer versions. For example, newer PrusaSlicer may extend the list
|
|
||||||
of supported firmware flavors. One may decide to bail out or to substitute an
|
|
||||||
unknown value with a default silently or verbosely. (disable, enable,
|
|
||||||
enable_silent; default: enable)
|
|
||||||
--datadir ABCD Load and store settings at the given directory. This is useful for maintaining
|
|
||||||
different profiles or including configurations from a network storage.
|
|
||||||
--ignore-nonexistent-config
|
|
||||||
Do not fail if a file supplied to --load does not exist.
|
|
||||||
--load ABCD Load configuration from the specified file. It can be used more than once to
|
|
||||||
load options from multiple files.
|
|
||||||
--loglevel N Sets logging sensitivity. 0:fatal, 1:error, 2:warning, 3:info, 4:debug, 5:trace
|
|
||||||
For example. loglevel=2 logs fatal, error and warning level messages.
|
|
||||||
--output ABCD, -o ABCD
|
|
||||||
The file where the output will be written (if not specified, it will be based on
|
|
||||||
the input file).
|
|
||||||
--single-instance If enabled, the command line arguments are sent to an existing instance of GUI
|
|
||||||
PrusaSlicer, or an existing PrusaSlicer window is activated. Overrides the
|
|
||||||
"single_instance" configuration value from application preferences.
|
|
||||||
|
|
||||||
Print options are processed in the following order:
|
|
||||||
1) Config keys from the command line, for example --fill-pattern=stars
|
|
||||||
(highest priority, overwrites everything below)
|
|
||||||
2) Config files loaded with --load
|
|
||||||
3) Config values loaded from amf or 3mf files
|
|
||||||
|
|
||||||
Misc options:
|
|
||||||
--avoid-crossing-perimeters
|
|
||||||
Optimize travel moves in order to minimize the crossing of perimeters. This is
|
|
||||||
mostly useful with Bowden extruders which suffer from oozing. This feature slows
|
|
||||||
down both the print and the G-code generation.
|
|
||||||
--bed-custom-model ABCD
|
|
||||||
|
|
||||||
--bed-custom-texture ABCD
|
|
||||||
|
|
||||||
--bed-shape (default: 0x0,200x0,200x200,0x200)
|
|
||||||
--bed-temperature N Bed temperature for layers after the first one. Set this to zero to disable bed
|
|
||||||
temperature control commands in the output. (°C, default: 0)
|
|
||||||
--before-layer-gcode ABCD
|
|
||||||
This custom code is inserted at every layer change, right before the Z move.
|
|
||||||
Note that you can use placeholder variables for all Slic3r settings as well as
|
|
||||||
[layer_num] and [layer_z].
|
|
||||||
--between-objects-gcode ABCD
|
|
||||||
This code is inserted between objects when using sequential printing. By default
|
|
||||||
extruder and bed temperature are reset using non-wait command; however if M104,
|
|
||||||
M109, M140 or M190 are detected in this custom code, Slic3r will not add
|
|
||||||
temperature commands. Note that you can use placeholder variables for all Slic3r
|
|
||||||
settings, so you can put a "M109 S[first_layer_temperature]" command wherever
|
|
||||||
you want.
|
|
||||||
--bridge-acceleration N
|
|
||||||
This is the acceleration your printer will use for bridges. Set zero to disable
|
|
||||||
acceleration control for bridges. (mm/s², default: 0)
|
|
||||||
--bridge-fan-speed N
|
|
||||||
This fan speed is enforced during all bridges and overhangs. (%, default: 100)
|
|
||||||
--clip-multipart-objects
|
|
||||||
When printing multi-material objects, this settings will make Slic3r to clip the
|
|
||||||
overlapping object parts one by the other (2nd part will be clipped by the 1st,
|
|
||||||
3rd part will be clipped by the 1st and 2nd etc).
|
|
||||||
--color-change-gcode ABCD
|
|
||||||
This G-code will be used as a code for the color change (default: M600)
|
|
||||||
--colorprint-heights N
|
|
||||||
Heights at which a filament change is to occur. (default: )
|
|
||||||
--complete-objects When printing multiple objects or copies, this feature will complete each object
|
|
||||||
before moving onto next one (and starting it from its bottom layer). This
|
|
||||||
feature is useful to avoid the risk of ruined prints. Slic3r should warn and
|
|
||||||
prevent you from extruder collisions, but beware.
|
|
||||||
--cooling This flag enables the automatic cooling logic that adjusts print speed and fan
|
|
||||||
speed according to layer printing time. (default: 1)
|
|
||||||
--cooling-tube-length N
|
|
||||||
Length of the cooling tube to limit space for cooling moves inside it. (mm,
|
|
||||||
default: 5)
|
|
||||||
--cooling-tube-retraction N
|
|
||||||
Distance of the center-point of the cooling tube from the extruder tip. (mm,
|
|
||||||
default: 91.5)
|
|
||||||
--default-acceleration N
|
|
||||||
This is the acceleration your printer will be reset to after the role-specific
|
|
||||||
acceleration values are used (perimeter/infill). Set zero to prevent resetting
|
|
||||||
acceleration at all. (mm/s², default: 0)
|
|
||||||
--deretract-speed N The speed for loading of a filament into extruder after retraction (it only
|
|
||||||
applies to the extruder motor). If left to zero, the retraction speed is used.
|
|
||||||
(mm/s, default: 0)
|
|
||||||
--disable-fan-first-layers N
|
|
||||||
You can set this to a positive value to disable fan at all during the first
|
|
||||||
layers, so that it does not make adhesion worse. (layers, default: 3)
|
|
||||||
--draft-shield With draft shield active, the skirt will be printed skirt_distance from the
|
|
||||||
object, possibly intersecting brim. Enabled = skirt is as tall as the highest
|
|
||||||
printed object. Limited = skirt is as tall as specified by skirt_height. This is
|
|
||||||
useful to protect an ABS or ASA print from warping and detaching from print bed
|
|
||||||
due to wind draft. (disabled, limited, enabled; default: disabled)
|
|
||||||
--duplicate-distance N
|
|
||||||
Distance used for the auto-arrange feature of the plater. (mm, default: 6)
|
|
||||||
--end-filament-gcode ABCD
|
|
||||||
This end procedure is inserted at the end of the output file, before the printer
|
|
||||||
end gcode (and before any toolchange from this filament in case of multimaterial
|
|
||||||
printers). Note that you can use placeholder variables for all PrusaSlicer
|
|
||||||
settings. If you have multiple extruders, the gcode is processed in extruder
|
|
||||||
order. (default: "; Filament-specific end gcode \n;END gcode for filament\n")
|
|
||||||
--end-gcode ABCD This end procedure is inserted at the end of the output file. Note that you can
|
|
||||||
use placeholder variables for all PrusaSlicer settings. (default: M104 S0 ; turn
|
|
||||||
off temperature\nG28 X0 ; home X axis\nM84 ; disable motors\n)
|
|
||||||
--extra-loading-move N
|
|
||||||
When set to zero, the distance the filament is moved from parking position
|
|
||||||
during load is exactly the same as it was moved back during unload. When
|
|
||||||
positive, it is loaded further, if negative, the loading move is shorter than
|
|
||||||
unloading. (mm, default: -2)
|
|
||||||
--extruder-clearance-height N
|
|
||||||
Set this to the vertical distance between your nozzle tip and (usually) the X
|
|
||||||
carriage rods. In other words, this is the height of the clearance cylinder
|
|
||||||
around your extruder, and it represents the maximum depth the extruder can peek
|
|
||||||
before colliding with other printed objects. (mm, default: 20)
|
|
||||||
--extruder-clearance-radius N
|
|
||||||
Set this to the clearance radius around your extruder. If the extruder is not
|
|
||||||
centered, choose the largest value for safety. This setting is used to check for
|
|
||||||
collisions and to display the graphical preview in the plater. (mm, default: 20)
|
|
||||||
--extruder-colour ABCD
|
|
||||||
This is only used in the Slic3r interface as a visual help. (default: "")
|
|
||||||
--extruder-offset If your firmware doesn't handle the extruder displacement you need the G-code to
|
|
||||||
take it into account. This option lets you specify the displacement of each
|
|
||||||
extruder with respect to the first one. It expects positive coordinates (they
|
|
||||||
will be subtracted from the XY coordinate). (mm, default: 0x0)
|
|
||||||
--extrusion-axis ABCD
|
|
||||||
Use this option to set the axis letter associated to your printer's extruder
|
|
||||||
(usually E but some printers use A). (default: E)
|
|
||||||
--extrusion-multiplier N
|
|
||||||
This factor changes the amount of flow proportionally. You may need to tweak
|
|
||||||
this setting to get nice surface finish and correct single wall widths. Usual
|
|
||||||
values are between 0.9 and 1.1. If you think you need to change this more, check
|
|
||||||
filament diameter and your firmware E steps. (default: 1)
|
|
||||||
--fan-always-on If this is enabled, fan will never be disabled and will be kept running at least
|
|
||||||
at its minimum speed. Useful for PLA, harmful for ABS. (default: 0)
|
|
||||||
--fan-below-layer-time N
|
|
||||||
If layer print time is estimated below this number of seconds, fan will be
|
|
||||||
enabled and its speed will be calculated by interpolating the minimum and
|
|
||||||
maximum speeds. (approximate seconds, default: 60)
|
|
||||||
--filament-colour ABCD
|
|
||||||
This is only used in the Slic3r interface as a visual help. (default: #29B2B2)
|
|
||||||
--filament-cooling-final-speed N
|
|
||||||
Cooling moves are gradually accelerating towards this speed. (mm/s, default:
|
|
||||||
3.4)
|
|
||||||
--filament-cooling-initial-speed N
|
|
||||||
Cooling moves are gradually accelerating beginning at this speed. (mm/s,
|
|
||||||
default: 2.2)
|
|
||||||
--filament-cooling-moves N
|
|
||||||
Filament is cooled by being moved back and forth in the cooling tubes. Specify
|
|
||||||
desired number of these moves. (default: 4)
|
|
||||||
--filament-cost N Enter your filament cost per kg here. This is only for statistical information.
|
|
||||||
(money/kg, default: 0)
|
|
||||||
--filament-density N
|
|
||||||
Enter your filament density here. This is only for statistical information. A
|
|
||||||
decent way is to weigh a known length of filament and compute the ratio of the
|
|
||||||
length to volume. Better is to calculate the volume directly through
|
|
||||||
displacement. (g/cm³, default: 0)
|
|
||||||
--filament-deretract-speed N
|
|
||||||
The speed for loading of a filament into extruder after retraction (it only
|
|
||||||
applies to the extruder motor). If left to zero, the retraction speed is used.
|
|
||||||
(mm/s, default: 0)
|
|
||||||
--filament-diameter N
|
|
||||||
Enter your filament diameter here. Good precision is required, so use a caliper
|
|
||||||
and do multiple measurements along the filament, then compute the average. (mm,
|
|
||||||
default: 1.75)
|
|
||||||
--filament-load-time N
|
|
||||||
Time for the printer firmware (or the Multi Material Unit 2.0) to load a new
|
|
||||||
filament during a tool change (when executing the T code). This time is added to
|
|
||||||
the total print time by the G-code time estimator. (s, default: 0)
|
|
||||||
--filament-loading-speed N
|
|
||||||
Speed used for loading the filament on the wipe tower. (mm/s, default: 28)
|
|
||||||
--filament-loading-speed-start N
|
|
||||||
Speed used at the very beginning of loading phase. (mm/s, default: 3)
|
|
||||||
--filament-max-volumetric-speed N
|
|
||||||
Maximum volumetric speed allowed for this filament. Limits the maximum
|
|
||||||
volumetric speed of a print to the minimum of print and filament volumetric
|
|
||||||
speed. Set to zero for no limit. (mm³/s, default: 0)
|
|
||||||
--filament-minimal-purge-on-wipe-tower N
|
|
||||||
After a tool change, the exact position of the newly loaded filament inside the
|
|
||||||
nozzle may not be known, and the filament pressure is likely not yet stable.
|
|
||||||
Before purging the print head into an infill or a sacrificial object, Slic3r
|
|
||||||
will always prime this amount of material into the wipe tower to produce
|
|
||||||
successive infill or sacrificial object extrusions reliably. (mm³, default: 15)
|
|
||||||
--filament-notes ABCD
|
|
||||||
You can put your notes regarding the filament here. (default: "")
|
|
||||||
--filament-ramming-parameters ABCD
|
|
||||||
This string is edited by RammingDialog and contains ramming specific parameters.
|
|
||||||
(default: "120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8
|
|
||||||
0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95
|
|
||||||
7.6")
|
|
||||||
--filament-retract-before-travel N
|
|
||||||
Retraction is not triggered when travel moves are shorter than this length. (mm,
|
|
||||||
default: 2)
|
|
||||||
--filament-retract-before-wipe
|
|
||||||
With bowden extruders, it may be wise to do some amount of quick retract before
|
|
||||||
doing the wipe movement. (%, default: 0%)
|
|
||||||
--filament-retract-layer-change
|
|
||||||
This flag enforces a retraction whenever a Z move is done. (default: 0)
|
|
||||||
--filament-retract-length N
|
|
||||||
When retraction is triggered, filament is pulled back by the specified amount
|
|
||||||
(the length is measured on raw filament, before it enters the extruder). (mm
|
|
||||||
(zero to disable), default: 2)
|
|
||||||
--filament-retract-lift N
|
|
||||||
If you set this to a positive value, Z is quickly raised every time a retraction
|
|
||||||
is triggered. When using multiple extruders, only the setting for the first
|
|
||||||
extruder will be considered. (mm, default: 0)
|
|
||||||
--filament-retract-lift-above N
|
|
||||||
If you set this to a positive value, Z lift will only take place above the
|
|
||||||
specified absolute Z. You can tune this setting for skipping lift on the first
|
|
||||||
layers. (mm, default: 0)
|
|
||||||
--filament-retract-lift-below N
|
|
||||||
If you set this to a positive value, Z lift will only take place below the
|
|
||||||
specified absolute Z. You can tune this setting for limiting lift to the first
|
|
||||||
layers. (mm, default: 0)
|
|
||||||
--filament-retract-restart-extra N
|
|
||||||
When the retraction is compensated after the travel move, the extruder will push
|
|
||||||
this additional amount of filament. This setting is rarely needed. (mm, default:
|
|
||||||
0)
|
|
||||||
--filament-retract-speed N
|
|
||||||
The speed for retractions (it only applies to the extruder motor). (mm/s,
|
|
||||||
default: 40)
|
|
||||||
--filament-soluble Soluble material is most likely used for a soluble support. (default: 0)
|
|
||||||
--filament-spool-weight N
|
|
||||||
Enter weight of the empty filament spool. One may weigh a partially consumed
|
|
||||||
filament spool before printing and one may compare the measured weight with the
|
|
||||||
calculated weight of the filament with the spool to find out whether the amount
|
|
||||||
of filament on the spool is sufficient to finish the print. (g, default: 0)
|
|
||||||
--filament-toolchange-delay N
|
|
||||||
Time to wait after the filament is unloaded. May help to get reliable
|
|
||||||
toolchanges with flexible materials that may need more time to shrink to
|
|
||||||
original dimensions. (s, default: 0)
|
|
||||||
--filament-type ABCD
|
|
||||||
The filament material type for use in custom G-codes. (PLA, PET, ABS, ASA, FLEX,
|
|
||||||
HIPS, EDGE, NGEN, PA, NYLON, PVA, PC, PP, PEI, PEEK, PEKK, POM, PSU, PVDF,
|
|
||||||
SCAFF; default: PLA)
|
|
||||||
--filament-unload-time N
|
|
||||||
Time for the printer firmware (or the Multi Material Unit 2.0) to unload a
|
|
||||||
filament during a tool change (when executing the T code). This time is added to
|
|
||||||
the total print time by the G-code time estimator. (s, default: 0)
|
|
||||||
--filament-unloading-speed N
|
|
||||||
Speed used for unloading the filament on the wipe tower (does not affect initial
|
|
||||||
part of unloading just after ramming). (mm/s, default: 90)
|
|
||||||
--filament-unloading-speed-start N
|
|
||||||
Speed used for unloading the tip of the filament immediately after ramming.
|
|
||||||
(mm/s, default: 100)
|
|
||||||
--filament-wipe This flag will move the nozzle while retracting to minimize the possible blob on
|
|
||||||
leaky extruders. (default: 0)
|
|
||||||
--first-layer-acceleration N
|
|
||||||
This is the acceleration your printer will use for first layer. Set zero to
|
|
||||||
disable acceleration control for first layer. (mm/s², default: 0)
|
|
||||||
--first-layer-acceleration-over-raft N
|
|
||||||
This is the acceleration your printer will use for first layer of object above
|
|
||||||
raft interface. Set zero to disable acceleration control for first layer of
|
|
||||||
object above raft interface. (mm/s², default: 0)
|
|
||||||
--first-layer-bed-temperature N
|
|
||||||
Heated build plate temperature for the first layer. Set this to zero to disable
|
|
||||||
bed temperature control commands in the output. (°C, default: 0)
|
|
||||||
--first-layer-speed N
|
|
||||||
If expressed as absolute value in mm/s, this speed will be applied to all the
|
|
||||||
print moves of the first layer, regardless of their type. If expressed as a
|
|
||||||
percentage (for example: 40%) it will scale the default speeds. (mm/s or %,
|
|
||||||
default: 30)
|
|
||||||
--first-layer-speed-over-raft N
|
|
||||||
If expressed as absolute value in mm/s, this speed will be applied to all the
|
|
||||||
print moves of the first object layer above raft interface, regardless of their
|
|
||||||
type. If expressed as a percentage (for example: 40%) it will scale the default
|
|
||||||
speeds. (mm/s or %, default: 30)
|
|
||||||
--first-layer-temperature N
|
|
||||||
Nozzle temperature for the first layer. If you want to control temperature
|
|
||||||
manually during print, set this to zero to disable temperature control commands
|
|
||||||
in the output G-code. (°C, default: 200)
|
|
||||||
--full-fan-speed-layer N
|
|
||||||
Fan speed will be ramped up linearly from zero at layer
|
|
||||||
"disable_fan_first_layers" to maximum at layer "full_fan_speed_layer".
|
|
||||||
"full_fan_speed_layer" will be ignored if lower than "disable_fan_first_layers",
|
|
||||||
in which case the fan will be running at maximum allowed speed at layer
|
|
||||||
"disable_fan_first_layers" + 1. (default: 0)
|
|
||||||
--gcode-comments Enable this to get a commented G-code file, with each line explained by a
|
|
||||||
descriptive text. If you print from SD card, the additional weight of the file
|
|
||||||
could make your firmware slow down.
|
|
||||||
--gcode-flavor Some G/M-code commands, including temperature control and others, are not
|
|
||||||
universal. Set this option to your printer's firmware to get a compatible
|
|
||||||
output. The "No extrusion" flavor prevents PrusaSlicer from exporting any
|
|
||||||
extrusion value at all. (reprap, reprapfirmware, repetier, teacup, makerware,
|
|
||||||
marlin, marlin2, sailfish, mach3, machinekit, smoothie, no-extrusion; default:
|
|
||||||
reprap)
|
|
||||||
--gcode-label-objects
|
|
||||||
Enable this to add comments into the G-Code labeling print moves with what
|
|
||||||
object they belong to, which is useful for the Octoprint CancelObject plugin.
|
|
||||||
This settings is NOT compatible with Single Extruder Multi Material setup and
|
|
||||||
Wipe into Object / Wipe into Infill.
|
|
||||||
--gcode-resolution N
|
|
||||||
Maximum deviation of exported G-code paths from their full resolution
|
|
||||||
counterparts. Very high resolution G-code requires huge amount of RAM to slice
|
|
||||||
and preview, also a 3D printer may stutter not being able to process a high
|
|
||||||
resolution G-code in a timely manner. On the other hand, a low resolution G-code
|
|
||||||
will produce a low poly effect and because the G-code reduction is performed at
|
|
||||||
each layer independently, visible artifacts may be produced. (mm, default:
|
|
||||||
0.0125)
|
|
||||||
--gcode-substitutions ABCD
|
|
||||||
Find / replace patterns in G-code lines and substitute them. (default: )
|
|
||||||
--high-current-on-filament-swap
|
|
||||||
It may be beneficial to increase the extruder motor current during the filament
|
|
||||||
exchange sequence to allow for rapid ramming feed rates and to overcome
|
|
||||||
resistance when loading a filament with an ugly shaped tip.
|
|
||||||
--infill-acceleration N
|
|
||||||
This is the acceleration your printer will use for infill. Set zero to disable
|
|
||||||
acceleration control for infill. (mm/s², default: 0)
|
|
||||||
--infill-first This option will switch the print order of perimeters and infill, making the
|
|
||||||
latter first.
|
|
||||||
--after-layer-gcode ABCD, --layer-gcode ABCD
|
|
||||||
This custom code is inserted at every layer change, right after the Z move and
|
|
||||||
before the extruder moves to the first layer point. Note that you can use
|
|
||||||
placeholder variables for all Slic3r settings as well as [layer_num] and
|
|
||||||
[layer_z].
|
|
||||||
--max-fan-speed N This setting represents the maximum speed of your fan. (%, default: 100)
|
|
||||||
--max-layer-height N
|
|
||||||
This is the highest printable layer height for this extruder, used to cap the
|
|
||||||
variable layer height and support layer height. Maximum recommended layer height
|
|
||||||
is 75% of the extrusion width to achieve reasonable inter-layer adhesion. If set
|
|
||||||
to 0, layer height is limited to 75% of the nozzle diameter. (mm, default: 0)
|
|
||||||
--max-print-height N
|
|
||||||
Set this to the maximum height that can be reached by your extruder while
|
|
||||||
printing. (mm, default: 200)
|
|
||||||
--max-print-speed N When setting other speed settings to 0 Slic3r will autocalculate the optimal
|
|
||||||
speed in order to keep constant extruder pressure. This experimental setting is
|
|
||||||
used to set the highest print speed you want to allow. (mm/s, default: 80)
|
|
||||||
--max-volumetric-extrusion-rate-slope-negative N
|
|
||||||
This experimental setting is used to limit the speed of change in extrusion rate
|
|
||||||
for a transition from higher speed to lower speed. A value of 1.8 mm³/s²
|
|
||||||
ensures, that a change from the extrusion rate of 5.4 mm³/s (0.45 mm extrusion
|
|
||||||
width, 0.2 mm extrusion height, feedrate 60 mm/s) to 1.8 mm³/s (feedrate 20
|
|
||||||
mm/s) will take at least 2 seconds. (mm³/s², default: 0)
|
|
||||||
--max-volumetric-extrusion-rate-slope-positive N
|
|
||||||
This experimental setting is used to limit the speed of change in extrusion rate
|
|
||||||
for a transition from lower speed to higher speed. A value of 1.8 mm³/s²
|
|
||||||
ensures, that a change from the extrusion rate of 1.8 mm³/s (0.45 mm extrusion
|
|
||||||
width, 0.2 mm extrusion height, feedrate 20 mm/s) to 5.4 mm³/s (feedrate 60
|
|
||||||
mm/s) will take at least 2 seconds. (mm³/s², default: 0)
|
|
||||||
--max-volumetric-speed N
|
|
||||||
This experimental setting is used to set the maximum volumetric speed your
|
|
||||||
extruder supports. (mm³/s, default: 0)
|
|
||||||
--min-fan-speed N This setting represents the minimum PWM your fan needs to work. (%, default: 35)
|
|
||||||
--min-layer-height N
|
|
||||||
This is the lowest printable layer height for this extruder and limits the
|
|
||||||
resolution for variable layer height. Typical values are between 0.05 mm and 0.1
|
|
||||||
mm. (mm, default: 0.07)
|
|
||||||
--min-print-speed N Slic3r will not scale speed down below this speed. (mm/s, default: 10)
|
|
||||||
--min-skirt-length N
|
|
||||||
Generate no less than the number of skirt loops required to consume the
|
|
||||||
specified amount of filament on the bottom layer. For multi-extruder machines,
|
|
||||||
this minimum applies to each extruder. (mm, default: 0)
|
|
||||||
--notes ABCD You can put here your personal notes. This text will be added to the G-code
|
|
||||||
header comments.
|
|
||||||
--nozzle-diameter N This is the diameter of your extruder nozzle (for example: 0.5, 0.35 etc.) (mm,
|
|
||||||
default: 0.4)
|
|
||||||
--only-retract-when-crossing-perimeters
|
|
||||||
Disables retraction when the travel path does not exceed the upper layer's
|
|
||||||
perimeters (and thus any ooze will be probably invisible).
|
|
||||||
--ooze-prevention This option will drop the temperature of the inactive extruders to prevent
|
|
||||||
oozing. It will enable a tall skirt automatically and move extruders outside
|
|
||||||
such skirt when changing temperatures.
|
|
||||||
--output-filename-format ABCD
|
|
||||||
You can use all configuration options as variables inside this template. For
|
|
||||||
example: [layer_height], [fill_density] etc. You can also use [timestamp],
|
|
||||||
[year], [month], [day], [hour], [minute], [second], [version], [input_filename],
|
|
||||||
[input_filename_base]. (default: [input_filename_base].gcode)
|
|
||||||
--parking-pos-retraction N
|
|
||||||
Distance of the extruder tip from the position where the filament is parked when
|
|
||||||
unloaded. This should match the value in printer firmware. (mm, default: 92)
|
|
||||||
--pause-print-gcode ABCD
|
|
||||||
This G-code will be used as a code for the pause print (default: M601)
|
|
||||||
--perimeter-acceleration N
|
|
||||||
This is the acceleration your printer will use for perimeters. Set zero to
|
|
||||||
disable acceleration control for perimeters. (mm/s², default: 0)
|
|
||||||
--post-process ABCD If you want to process the output G-code through custom scripts, just list their
|
|
||||||
absolute paths here. Separate multiple scripts with a semicolon. Scripts will be
|
|
||||||
passed the absolute path to the G-code file as the first argument, and they can
|
|
||||||
access the Slic3r config settings by reading environment variables. (default: )
|
|
||||||
--preset-name ABCD
|
|
||||||
--preset-names ABCD Names of presets related to the physical printer (default: )
|
|
||||||
--printer-notes ABCD
|
|
||||||
You can put your notes regarding the printer here.
|
|
||||||
--printer-technology
|
|
||||||
Printer technology (FFF, SLA; default: FFF)
|
|
||||||
--remaining-times Emit M73 P[percent printed] R[remaining time in minutes] at 1 minute intervals
|
|
||||||
into the G-code to let the firmware show accurate remaining time. As of now only
|
|
||||||
the Prusa i3 MK3 firmware recognizes M73. Also the i3 MK3 firmware supports M73
|
|
||||||
Qxx Sxx for the silent mode.
|
|
||||||
--resolution N Minimum detail resolution, used to simplify the input file for speeding up the
|
|
||||||
slicing job and reducing memory usage. High-resolution models often carry more
|
|
||||||
detail than printers can render. Set to zero to disable any simplification and
|
|
||||||
use full resolution from input. (mm, default: 0)
|
|
||||||
--retract-before-travel N
|
|
||||||
Retraction is not triggered when travel moves are shorter than this length. (mm,
|
|
||||||
default: 2)
|
|
||||||
--retract-before-wipe
|
|
||||||
With bowden extruders, it may be wise to do some amount of quick retract before
|
|
||||||
doing the wipe movement. (%, default: 0%)
|
|
||||||
--retract-layer-change
|
|
||||||
This flag enforces a retraction whenever a Z move is done. (default: 0)
|
|
||||||
--retract-length N When retraction is triggered, filament is pulled back by the specified amount
|
|
||||||
(the length is measured on raw filament, before it enters the extruder). (mm
|
|
||||||
(zero to disable), default: 2)
|
|
||||||
--retract-length-toolchange N
|
|
||||||
When retraction is triggered before changing tool, filament is pulled back by
|
|
||||||
the specified amount (the length is measured on raw filament, before it enters
|
|
||||||
the extruder). (mm (zero to disable), default: 10)
|
|
||||||
--retract-lift N If you set this to a positive value, Z is quickly raised every time a retraction
|
|
||||||
is triggered. When using multiple extruders, only the setting for the first
|
|
||||||
extruder will be considered. (mm, default: 0)
|
|
||||||
--retract-lift-above N
|
|
||||||
If you set this to a positive value, Z lift will only take place above the
|
|
||||||
specified absolute Z. You can tune this setting for skipping lift on the first
|
|
||||||
layers. (mm, default: 0)
|
|
||||||
--retract-lift-below N
|
|
||||||
If you set this to a positive value, Z lift will only take place below the
|
|
||||||
specified absolute Z. You can tune this setting for limiting lift to the first
|
|
||||||
layers. (mm, default: 0)
|
|
||||||
--retract-restart-extra N
|
|
||||||
When the retraction is compensated after the travel move, the extruder will push
|
|
||||||
this additional amount of filament. This setting is rarely needed. (mm, default:
|
|
||||||
0)
|
|
||||||
--retract-restart-extra-toolchange N
|
|
||||||
When the retraction is compensated after changing tool, the extruder will push
|
|
||||||
this additional amount of filament. (mm, default: 0)
|
|
||||||
--retract-speed N The speed for retractions (it only applies to the extruder motor). (mm/s,
|
|
||||||
default: 40)
|
|
||||||
--silent-mode The firmware supports stealth mode
|
|
||||||
--single-extruder-multi-material
|
|
||||||
The printer multiplexes filaments into a single hot end.
|
|
||||||
--single-extruder-multi-material-priming
|
|
||||||
If enabled, all printing extruders will be primed at the front edge of the print
|
|
||||||
bed at the start of the print.
|
|
||||||
--skirt-distance N Distance between skirt and brim (when draft shield is not used) or objects. (mm,
|
|
||||||
default: 6)
|
|
||||||
--skirt-height N Height of skirt expressed in layers. (layers, default: 1)
|
|
||||||
--skirts N Number of loops for the skirt. If the Minimum Extrusion Length option is set,
|
|
||||||
the number of loops might be greater than the one configured here. Set this to
|
|
||||||
zero to disable skirt completely. (default: 1)
|
|
||||||
--slowdown-below-layer-time N
|
|
||||||
If layer print time is estimated below this number of seconds, print moves speed
|
|
||||||
will be scaled down to extend duration to this value. (approximate seconds,
|
|
||||||
default: 5)
|
|
||||||
--solid-layers N Number of solid layers to generate on top and bottom surfaces.
|
|
||||||
--solid-min-thickness N
|
|
||||||
Minimum thickness of a top / bottom shell
|
|
||||||
--spiral-vase This feature will raise Z gradually while printing a single-walled object in
|
|
||||||
order to remove any visible seam. This option requires a single perimeter, no
|
|
||||||
infill, no top solid layers and no support material. You can still set any
|
|
||||||
number of bottom solid layers as well as skirt/brim loops. It won't work when
|
|
||||||
printing more than one single object.
|
|
||||||
--standby-temperature-delta N
|
|
||||||
Temperature difference to be applied when an extruder is not active. Enables a
|
|
||||||
full-height "sacrificial" skirt on which the nozzles are periodically wiped.
|
|
||||||
(∆°C, default: -5)
|
|
||||||
--start-filament-gcode ABCD
|
|
||||||
This start procedure is inserted at the beginning, after any printer start gcode
|
|
||||||
(and after any toolchange to this filament in case of multi-material printers).
|
|
||||||
This is used to override settings for a specific filament. If PrusaSlicer
|
|
||||||
detects M104, M109, M140 or M190 in your custom codes, such commands will not be
|
|
||||||
prepended automatically so you're free to customize the order of heating
|
|
||||||
commands and other custom actions. Note that you can use placeholder variables
|
|
||||||
for all PrusaSlicer settings, so you can put a "M109 S[first_layer_temperature]"
|
|
||||||
command wherever you want. If you have multiple extruders, the gcode is
|
|
||||||
processed in extruder order. (default: "; Filament gcode\n")
|
|
||||||
--start-gcode ABCD This start procedure is inserted at the beginning, after bed has reached the
|
|
||||||
target temperature and extruder just started heating, and before extruder has
|
|
||||||
finished heating. If PrusaSlicer detects M104 or M190 in your custom codes, such
|
|
||||||
commands will not be prepended automatically so you're free to customize the
|
|
||||||
order of heating commands and other custom actions. Note that you can use
|
|
||||||
placeholder variables for all PrusaSlicer settings, so you can put a "M109
|
|
||||||
S[first_layer_temperature]" command wherever you want. (default: G28 ; home all
|
|
||||||
axes\nG1 Z5 F5000 ; lift nozzle\n)
|
|
||||||
--temperature N Nozzle temperature for layers after the first one. Set this to zero to disable
|
|
||||||
temperature control commands in the output G-code. (°C, default: 200)
|
|
||||||
--template-custom-gcode ABCD
|
|
||||||
This G-code will be used as a custom code
|
|
||||||
--thumbnails Picture sizes to be stored into a .gcode and .sl1 / .sl1s files, in the
|
|
||||||
following format: "XxY, XxY, ..." (default: )
|
|
||||||
--thumbnails-format Format of G-code thumbnails: PNG for best quality, JPG for smallest size, QOI
|
|
||||||
for low memory firmware (PNG, JPG, QOI; default: PNG)
|
|
||||||
--toolchange-gcode ABCD
|
|
||||||
This custom code is inserted before every toolchange. Placeholder variables for
|
|
||||||
all PrusaSlicer settings as well as {toolchange_z}, {previous_extruder} and
|
|
||||||
{next_extruder} can be used. When a tool-changing command which changes to the
|
|
||||||
correct extruder is included (such as T{next_extruder}), PrusaSlicer will emit
|
|
||||||
no other such command. It is therefore possible to script custom behaviour both
|
|
||||||
before and after the toolchange.
|
|
||||||
--travel-speed N Speed for travel moves (jumps between distant extrusion points). (mm/s, default:
|
|
||||||
130)
|
|
||||||
--travel-speed-z N Speed for movements along the Z axis. When set to zero, the value is ignored and
|
|
||||||
regular travel speed is used instead. (mm/s, default: 0)
|
|
||||||
--use-firmware-retraction
|
|
||||||
This experimental setting uses G10 and G11 commands to have the firmware handle
|
|
||||||
the retraction. This is only supported in recent Marlin.
|
|
||||||
--use-relative-e-distances
|
|
||||||
If your firmware requires relative E values, check this, otherwise leave it
|
|
||||||
unchecked. Most firmwares use absolute values.
|
|
||||||
--use-volumetric-e This experimental setting uses outputs the E values in cubic millimeters instead
|
|
||||||
of linear millimeters. If your firmware doesn't already know filament
|
|
||||||
diameter(s), you can put commands like 'M200 D[filament_diameter_0] T0' in your
|
|
||||||
start G-code in order to turn volumetric mode on and use the filament diameter
|
|
||||||
associated to the filament selected in Slic3r. This is only supported in recent
|
|
||||||
Marlin.
|
|
||||||
--variable-layer-height
|
|
||||||
Some printers or printer setups may have difficulties printing with a variable
|
|
||||||
layer height. Enabled by default.
|
|
||||||
--wipe This flag will move the nozzle while retracting to minimize the possible blob on
|
|
||||||
leaky extruders. (default: 0)
|
|
||||||
--wipe-tower Multi material printers may need to prime or purge extruders on tool changes.
|
|
||||||
Extrude the excess material into the wipe tower.
|
|
||||||
--wipe-tower-bridging N
|
|
||||||
Maximal distance between supports on sparse infill sections. (mm, default: 10)
|
|
||||||
--wipe-tower-brim-width N
|
|
||||||
Wipe tower brim width (mm, default: 2)
|
|
||||||
--wipe-tower-no-sparse-layers
|
|
||||||
If enabled, the wipe tower will not be printed on layers with no toolchanges. On
|
|
||||||
layers with a toolchange, extruder will travel downward to print the wipe tower.
|
|
||||||
User is responsible for ensuring there is no collision with the print.
|
|
||||||
--wipe-tower-rotation-angle N
|
|
||||||
Wipe tower rotation angle with respect to x-axis. (°, default: 0)
|
|
||||||
--wipe-tower-width N
|
|
||||||
Width of a wipe tower (mm, default: 60)
|
|
||||||
--wipe-tower-x N X coordinate of the left front corner of a wipe tower (mm, default: 180)
|
|
||||||
--wipe-tower-y N Y coordinate of the left front corner of a wipe tower (mm, default: 140)
|
|
||||||
--wiping-volumes-extruders N
|
|
||||||
This vector saves required volumes to change from/to each tool used on the wipe
|
|
||||||
tower. These values are used to simplify creation of the full purging volumes
|
|
||||||
below. (default: 70,70,70,70,70,70,70,70,70,70)
|
|
||||||
--wiping-volumes-matrix N
|
|
||||||
This matrix describes volumes (in cubic milimetres) required to purge the new
|
|
||||||
filament on the wipe tower for any given pair of tools. (default:
|
|
||||||
0,140,140,140,140,140,0,140,140,140,140,140,0,140,140,140,140,140,0,140,140,140,140,140,0)
|
|
||||||
--z-offset N This value will be added (or subtracted) from all the Z coordinates in the
|
|
||||||
output G-code. It is used to compensate for bad Z endstop position: for example,
|
|
||||||
if your endstop zero actually leaves the nozzle 0.3mm far from the print bed,
|
|
||||||
set this to -0.3 (or fix your endstop). (mm, default: 0)
|
|
||||||
Advanced:
|
|
||||||
--bridge-flow-ratio N
|
|
||||||
This factor affects the amount of plastic for bridging. You can decrease it
|
|
||||||
slightly to pull the extrudates and prevent sagging, although default settings
|
|
||||||
are usually good and you should experiment with cooling (use a fan) before
|
|
||||||
tweaking this. (default: 1)
|
|
||||||
--elefant-foot-compensation N
|
|
||||||
The first layer will be shrunk in the XY plane by the configured value to
|
|
||||||
compensate for the 1st layer squish aka an Elephant Foot effect. (mm, default:
|
|
||||||
0)
|
|
||||||
--infill-anchor N Connect an infill line to an internal perimeter with a short segment of an
|
|
||||||
additional perimeter. If expressed as percentage (example: 15%) it is calculated
|
|
||||||
over infill extrusion width. PrusaSlicer tries to connect two close infill lines
|
|
||||||
to a short perimeter segment. If no such perimeter segment shorter than
|
|
||||||
infill_anchor_max is found, the infill line is connected to a perimeter segment
|
|
||||||
at just one side and the length of the perimeter segment taken is limited to
|
|
||||||
this parameter, but no longer than anchor_length_max. Set this parameter to zero
|
|
||||||
to disable anchoring perimeters connected to a single infill line. (mm or %,
|
|
||||||
default: 600%)
|
|
||||||
--infill-anchor-max N
|
|
||||||
Connect an infill line to an internal perimeter with a short segment of an
|
|
||||||
additional perimeter. If expressed as percentage (example: 15%) it is calculated
|
|
||||||
over infill extrusion width. PrusaSlicer tries to connect two close infill lines
|
|
||||||
to a short perimeter segment. If no such perimeter segment shorter than this
|
|
||||||
parameter is found, the infill line is connected to a perimeter segment at just
|
|
||||||
one side and the length of the perimeter segment taken is limited to
|
|
||||||
infill_anchor, but no longer than this parameter. Set this parameter to zero to
|
|
||||||
disable anchoring. (mm or %, default: 50)
|
|
||||||
--infill-overlap N This setting applies an additional overlap between infill and perimeters for
|
|
||||||
better bonding. Theoretically this shouldn't be needed, but backlash might cause
|
|
||||||
gaps. If expressed as percentage (example: 15%) it is calculated over perimeter
|
|
||||||
extrusion width. (mm or %, default: 25%)
|
|
||||||
--min-bead-width N Width of the perimeter that will replace thin features (according to the Minimum
|
|
||||||
feature size) of the model. If the Minimum perimeter width is thinner than the
|
|
||||||
thickness of the feature, the perimeter will become as thick as the feature
|
|
||||||
itself. If expressed as a percentage (for example 85%), it will be computed
|
|
||||||
based on the nozzle diameter. (mm or %, default: 85%)
|
|
||||||
--min-feature-size N
|
|
||||||
Minimum thickness of thin features. Model features that are thinner than this
|
|
||||||
value will not be printed, while features thicker than the Minimum feature size
|
|
||||||
will be widened to the Minimum perimeter width. If expressed as a percentage
|
|
||||||
(for example 25%), it will be computed based on the nozzle diameter. (mm or %,
|
|
||||||
default: 25%)
|
|
||||||
--mmu-segmented-region-max-width N
|
|
||||||
Maximum width of a segmented region. Zero disables this feature. (mm (zero to
|
|
||||||
disable), default: 0)
|
|
||||||
--slice-closing-radius N
|
|
||||||
Cracks smaller than 2x gap closing radius are being filled during the triangle
|
|
||||||
mesh slicing. The gap closing operation may reduce the final print resolution,
|
|
||||||
therefore it is advisable to keep the value reasonably low. (mm, default: 0.049)
|
|
||||||
--slicing-mode Use "Even-odd" for 3DLabPrint airplane models. Use "Close holes" to close all
|
|
||||||
holes in the model. (regular, even_odd, close_holes; default: regular)
|
|
||||||
--wall-distribution-count N
|
|
||||||
The number of perimeters, counted from the center, over which the variation
|
|
||||||
needs to be spread. Lower values mean that the outer perimeters don't change in
|
|
||||||
width. (default: 1)
|
|
||||||
--wall-transition-angle N
|
|
||||||
When to create transitions between even and odd numbers of perimeters. A wedge
|
|
||||||
shape with an angle greater than this setting will not have transitions and no
|
|
||||||
perimeters will be printed in the center to fill the remaining space. Reducing
|
|
||||||
this setting reduces the number and length of these center perimeters, but may
|
|
||||||
leave gaps or overextrude. (°, default: 10)
|
|
||||||
--wall-transition-filter-deviation N
|
|
||||||
Prevent transitioning back and forth between one extra perimeter and one less.
|
|
||||||
This margin extends the range of extrusion widths which follow to [Minimum
|
|
||||||
perimeter width - margin, 2 * Minimum perimeter width + margin]. Increasing this
|
|
||||||
margin reduces the number of transitions, which reduces the number of extrusion
|
|
||||||
starts/stops and travel time. However, large extrusion width variation can lead
|
|
||||||
to under- or overextrusion problems. If expressed as a percentage (for example
|
|
||||||
25%), it will be computed based on the nozzle diameter. (mm or %, default: 25%)
|
|
||||||
--wall-transition-length N
|
|
||||||
When transitioning between different numbers of perimeters as the part becomes
|
|
||||||
thinner, a certain amount of space is allotted to split or join the perimeter
|
|
||||||
segments. If expressed as a percentage (for example 100%), it will be computed
|
|
||||||
based on the nozzle diameter. (mm or %, default: 100%)
|
|
||||||
--xy-size-compensation N
|
|
||||||
The object will be grown/shrunk in the XY plane by the configured value
|
|
||||||
(negative = inwards, positive = outwards). This might be useful for fine-tuning
|
|
||||||
hole sizes. (mm, default: 0)
|
|
||||||
Extruders:
|
|
||||||
--extruder N The extruder to use (unless more specific extruder settings are specified). This
|
|
||||||
value overrides perimeter and infill extruders, but not the support extruders.
|
|
||||||
--infill-extruder N The extruder to use when printing infill. (default: 1)
|
|
||||||
--perimeter-extruder N
|
|
||||||
The extruder to use when printing perimeters and brim. First extruder is 1.
|
|
||||||
(default: 1)
|
|
||||||
--solid-infill-extruder N
|
|
||||||
The extruder to use when printing solid infill. (default: 1)
|
|
||||||
--support-material-extruder N
|
|
||||||
The extruder to use when printing support material, raft and skirt (1+, 0 to use
|
|
||||||
the current extruder to minimize tool changes). (default: 1)
|
|
||||||
--support-material-interface-extruder N
|
|
||||||
The extruder to use when printing support material interface (1+, 0 to use the
|
|
||||||
current extruder to minimize tool changes). This affects raft too. (default: 1)
|
|
||||||
Extrusion Width:
|
|
||||||
--external-perimeter-extrusion-width N
|
|
||||||
Set this to a non-zero value to set a manual extrusion width for external
|
|
||||||
perimeters. If left zero, default extrusion width will be used if set, otherwise
|
|
||||||
1.125 x nozzle diameter will be used. If expressed as percentage (for example
|
|
||||||
200%), it will be computed over layer height. (mm or %, default: 0)
|
|
||||||
--extrusion-width N Set this to a non-zero value to allow a manual extrusion width. If left to zero,
|
|
||||||
Slic3r derives extrusion widths from the nozzle diameter (see the tooltips for
|
|
||||||
perimeter extrusion width, infill extrusion width etc). If expressed as
|
|
||||||
percentage (for example: 230%), it will be computed over layer height. (mm or %,
|
|
||||||
default: 0)
|
|
||||||
--first-layer-extrusion-width N
|
|
||||||
Set this to a non-zero value to set a manual extrusion width for first layer.
|
|
||||||
You can use this to force fatter extrudates for better adhesion. If expressed as
|
|
||||||
percentage (for example 120%) it will be computed over first layer height. If
|
|
||||||
set to zero, it will use the default extrusion width. (mm or %, default: 200%)
|
|
||||||
--infill-extrusion-width N
|
|
||||||
Set this to a non-zero value to set a manual extrusion width for infill. If left
|
|
||||||
zero, default extrusion width will be used if set, otherwise 1.125 x nozzle
|
|
||||||
diameter will be used. You may want to use fatter extrudates to speed up the
|
|
||||||
infill and make your parts stronger. If expressed as percentage (for example
|
|
||||||
90%) it will be computed over layer height. (mm or %, default: 0)
|
|
||||||
--perimeter-extrusion-width N
|
|
||||||
Set this to a non-zero value to set a manual extrusion width for perimeters. You
|
|
||||||
may want to use thinner extrudates to get more accurate surfaces. If left zero,
|
|
||||||
default extrusion width will be used if set, otherwise 1.125 x nozzle diameter
|
|
||||||
will be used. If expressed as percentage (for example 200%) it will be computed
|
|
||||||
over layer height. (mm or %, default: 0)
|
|
||||||
--solid-infill-extrusion-width N
|
|
||||||
Set this to a non-zero value to set a manual extrusion width for infill for
|
|
||||||
solid surfaces. If left zero, default extrusion width will be used if set,
|
|
||||||
otherwise 1.125 x nozzle diameter will be used. If expressed as percentage (for
|
|
||||||
example 90%) it will be computed over layer height. (mm or %, default: 0)
|
|
||||||
--support-material-extrusion-width N
|
|
||||||
Set this to a non-zero value to set a manual extrusion width for support
|
|
||||||
material. If left zero, default extrusion width will be used if set, otherwise
|
|
||||||
nozzle diameter will be used. If expressed as percentage (for example 90%) it
|
|
||||||
will be computed over layer height. (mm or %, default: 0)
|
|
||||||
--top-infill-extrusion-width N
|
|
||||||
Set this to a non-zero value to set a manual extrusion width for infill for top
|
|
||||||
surfaces. You may want to use thinner extrudates to fill all narrow regions and
|
|
||||||
get a smoother finish. If left zero, default extrusion width will be used if
|
|
||||||
set, otherwise nozzle diameter will be used. If expressed as percentage (for
|
|
||||||
example 90%) it will be computed over layer height. (mm or %, default: 0)
|
|
||||||
Fuzzy Skin:
|
|
||||||
--fuzzy-skin Fuzzy skin type. (none, external, all; default: none)
|
|
||||||
--fuzzy-skin-point-dist N
|
|
||||||
Perimeters will be split into multiple segments by inserting Fuzzy skin points.
|
|
||||||
Lowering the Fuzzy skin point distance will increase the number of randomly
|
|
||||||
offset points on the perimeter wall. (mm, default: 0.8)
|
|
||||||
--fuzzy-skin-thickness N
|
|
||||||
The maximum distance that each skin point can be offset (both ways), measured
|
|
||||||
perpendicular to the perimeter wall. (mm, default: 0.3)
|
|
||||||
Infill:
|
|
||||||
--bottom-fill-pattern, --external-fill-pattern, --solid-fill-pattern
|
|
||||||
Fill pattern for bottom infill. This only affects the bottom external visible
|
|
||||||
layer, and not its adjacent solid shells. (rectilinear, monotonic,
|
|
||||||
alignedrectilinear, concentric, hilbertcurve, archimedeanchords, octagramspiral;
|
|
||||||
default: monotonic)
|
|
||||||
--bridge-angle N Bridging angle override. If left to zero, the bridging angle will be calculated
|
|
||||||
automatically. Otherwise the provided angle will be used for all bridges. Use
|
|
||||||
180° for zero angle. (°, default: 0)
|
|
||||||
--fill-angle N Default base angle for infill orientation. Cross-hatching will be applied to
|
|
||||||
this. Bridges will be infilled using the best direction Slic3r can detect, so
|
|
||||||
this setting does not affect them. (°, default: 45)
|
|
||||||
--fill-density Density of internal infill, expressed in the range 0% - 100%. (%, default: 20%)
|
|
||||||
--fill-pattern Fill pattern for general low-density infill. (rectilinear, alignedrectilinear,
|
|
||||||
grid, triangles, stars, cubic, line, concentric, honeycomb, 3dhoneycomb, gyroid,
|
|
||||||
hilbertcurve, archimedeanchords, octagramspiral, adaptivecubic, supportcubic,
|
|
||||||
lightning; default: stars)
|
|
||||||
--infill-every-layers N
|
|
||||||
This feature allows to combine infill and speed up your print by extruding
|
|
||||||
thicker infill layers while preserving thin perimeters, thus accuracy. (layers,
|
|
||||||
default: 1)
|
|
||||||
--infill-only-where-needed
|
|
||||||
This option will limit infill to the areas actually needed for supporting
|
|
||||||
ceilings (it will act as internal support material). If enabled, slows down the
|
|
||||||
G-code generation due to the multiple checks involved.
|
|
||||||
--solid-infill-below-area N
|
|
||||||
Force solid infill for regions having a smaller area than the specified
|
|
||||||
threshold. (mm², default: 70)
|
|
||||||
--solid-infill-every-layers N
|
|
||||||
This feature allows to force a solid layer every given number of layers. Zero to
|
|
||||||
disable. You can set this to any value (for example 9999); Slic3r will
|
|
||||||
automatically choose the maximum possible number of layers to combine according
|
|
||||||
to nozzle diameter and layer height. (layers, default: 0)
|
|
||||||
--top-fill-pattern, --external-fill-pattern, --solid-fill-pattern
|
|
||||||
Fill pattern for top infill. This only affects the top visible layer, and not
|
|
||||||
its adjacent solid shells. (rectilinear, monotonic, alignedrectilinear,
|
|
||||||
concentric, hilbertcurve, archimedeanchords, octagramspiral; default: monotonic)
|
|
||||||
Ironing:
|
|
||||||
--ironing Enable ironing of the top layers with the hot print head for smooth surface
|
|
||||||
--ironing-flowrate Percent of a flow rate relative to object's normal layer height. (%, default:
|
|
||||||
15%)
|
|
||||||
--ironing-spacing N Distance between ironing lines (mm, default: 0.1)
|
|
||||||
--ironing-type Ironing Type (top, topmost, solid; default: top)
|
|
||||||
Layers and Perimeters:
|
|
||||||
--avoid-crossing-perimeters-max-detour N
|
|
||||||
The maximum detour length for avoid crossing perimeters. If the detour is longer
|
|
||||||
than this value, avoid crossing perimeters is not applied for this travel path.
|
|
||||||
Detour length could be specified either as an absolute value or as percentage
|
|
||||||
(for example 50%) of a direct travel path. (mm or % (zero to disable), default:
|
|
||||||
0)
|
|
||||||
--bottom-solid-layers N
|
|
||||||
Number of solid layers to generate on bottom surfaces. (default: 3)
|
|
||||||
--bottom-solid-min-thickness N
|
|
||||||
The number of bottom solid layers is increased above bottom_solid_layers if
|
|
||||||
necessary to satisfy minimum thickness of bottom shell. (mm, default: 0)
|
|
||||||
--ensure-vertical-shell-thickness
|
|
||||||
Add solid infill near sloping surfaces to guarantee the vertical shell thickness
|
|
||||||
(top+bottom solid layers).
|
|
||||||
--external-perimeters-first
|
|
||||||
Print contour perimeters from the outermost one to the innermost one instead of
|
|
||||||
the default inverse order.
|
|
||||||
--extra-perimeters Add more perimeters when needed for avoiding gaps in sloping walls. Slic3r keeps
|
|
||||||
adding perimeters, until more than 70% of the loop immediately above is
|
|
||||||
supported.
|
|
||||||
--first-layer-height N
|
|
||||||
When printing with very low layer heights, you might still want to print a
|
|
||||||
thicker bottom layer to improve adhesion and tolerance for non perfect build
|
|
||||||
plates. (mm, default: 0.35)
|
|
||||||
--gap-fill-enabled Enables filling of gaps between perimeters and between the inner most perimeters
|
|
||||||
and infill.
|
|
||||||
--interface-shells Force the generation of solid shells between adjacent materials/volumes. Useful
|
|
||||||
for multi-extruder prints with translucent materials or manual soluble support
|
|
||||||
material.
|
|
||||||
--layer-height N This setting controls the height (and thus the total number) of the
|
|
||||||
slices/layers. Thinner layers give better accuracy but take more time to print.
|
|
||||||
(mm, default: 0.3)
|
|
||||||
--overhangs Experimental option to adjust flow for overhangs (bridge flow will be used), to
|
|
||||||
apply bridge speed to them and enable fan.
|
|
||||||
--perimeter-generator
|
|
||||||
Classic perimeter generator produces perimeters with constant extrusion width
|
|
||||||
and for very thin areas is used gap-fill. Arachne engine produces perimeters
|
|
||||||
with variable extrusion width. This setting also affects the Concentric infill.
|
|
||||||
(classic, arachne; default: arachne)
|
|
||||||
--perimeters N This option sets the number of perimeters to generate for each layer. Note that
|
|
||||||
Slic3r may increase this number automatically when it detects sloping surfaces
|
|
||||||
which benefit from a higher number of perimeters if the Extra Perimeters option
|
|
||||||
is enabled. ((minimum), default: 3)
|
|
||||||
--seam-position Position of perimeters starting points. (random, nearest, aligned, rear;
|
|
||||||
default: aligned)
|
|
||||||
--thick-bridges If enabled, bridges are more reliable, can bridge longer distances, but may look
|
|
||||||
worse. If disabled, bridges look better but are reliable just for shorter
|
|
||||||
bridged distances.
|
|
||||||
--thin-walls Detect single-width walls (parts where two extrusions don't fit and we need to
|
|
||||||
collapse them into a single trace).
|
|
||||||
--top-solid-layers N
|
|
||||||
Number of solid layers to generate on top surfaces. (default: 3)
|
|
||||||
--top-solid-min-thickness N
|
|
||||||
The number of top solid layers is increased above top_solid_layers if necessary
|
|
||||||
to satisfy minimum thickness of top shell. This is useful to prevent pillowing
|
|
||||||
effect when printing with variable layer height. (mm, default: 0)
|
|
||||||
Machine limits:
|
|
||||||
--machine-limits-usage
|
|
||||||
How to apply the Machine Limits (emit_to_gcode, time_estimate_only, ignore;
|
|
||||||
default: time_estimate_only)
|
|
||||||
--machine-max-acceleration-e N
|
|
||||||
Maximum acceleration of the E axis (mm/s², default: 10000,5000)
|
|
||||||
--machine-max-acceleration-extruding N
|
|
||||||
Maximum acceleration when extruding (M204 P) Marlin (legacy) firmware flavor
|
|
||||||
will use this also as travel acceleration (M204 T). (mm/s², default: 1500,1250)
|
|
||||||
--machine-max-acceleration-retracting N
|
|
||||||
Maximum acceleration when retracting (M204 R) (mm/s², default: 1500,1250)
|
|
||||||
--machine-max-acceleration-travel N
|
|
||||||
Maximum acceleration for travel moves (M204 T) (mm/s², default: 1500,1250)
|
|
||||||
--machine-max-acceleration-x N
|
|
||||||
Maximum acceleration of the X axis (mm/s², default: 9000,1000)
|
|
||||||
--machine-max-acceleration-y N
|
|
||||||
Maximum acceleration of the Y axis (mm/s², default: 9000,1000)
|
|
||||||
--machine-max-acceleration-z N
|
|
||||||
Maximum acceleration of the Z axis (mm/s², default: 500,200)
|
|
||||||
--machine-max-feedrate-e N
|
|
||||||
Maximum feedrate of the E axis (mm/s, default: 120,120)
|
|
||||||
--machine-max-feedrate-x N
|
|
||||||
Maximum feedrate of the X axis (mm/s, default: 500,200)
|
|
||||||
--machine-max-feedrate-y N
|
|
||||||
Maximum feedrate of the Y axis (mm/s, default: 500,200)
|
|
||||||
--machine-max-feedrate-z N
|
|
||||||
Maximum feedrate of the Z axis (mm/s, default: 12,12)
|
|
||||||
--machine-max-jerk-e N
|
|
||||||
Maximum jerk of the E axis (mm/s, default: 2.5,2.5)
|
|
||||||
--machine-max-jerk-x N
|
|
||||||
Maximum jerk of the X axis (mm/s, default: 10,10)
|
|
||||||
--machine-max-jerk-y N
|
|
||||||
Maximum jerk of the Y axis (mm/s, default: 10,10)
|
|
||||||
--machine-max-jerk-z N
|
|
||||||
Maximum jerk of the Z axis (mm/s, default: 0.2,0.4)
|
|
||||||
--machine-min-extruding-rate N
|
|
||||||
Minimum feedrate when extruding (M205 S) (mm/s, default: 0,0)
|
|
||||||
--machine-min-travel-rate N
|
|
||||||
Minimum travel feedrate (M205 T) (mm/s, default: 0,0)
|
|
||||||
Skirt and brim:
|
|
||||||
--brim-separation N Offset of brim from the printed object. The offset is applied after the elephant
|
|
||||||
foot compensation. (mm, default: 0)
|
|
||||||
--brim-type The places where the brim will be printed around each object on the first layer.
|
|
||||||
(no_brim, outer_only, inner_only, outer_and_inner; default: outer_only)
|
|
||||||
--brim-width N The horizontal width of the brim that will be printed around each object on the
|
|
||||||
first layer. When raft is used, no brim is generated (use
|
|
||||||
raft_first_layer_expansion). (mm, default: 0)
|
|
||||||
Speed:
|
|
||||||
--bridge-speed N Speed for printing bridges. (mm/s, default: 60)
|
|
||||||
--external-perimeter-speed N
|
|
||||||
This separate setting will affect the speed of external perimeters (the visible
|
|
||||||
ones). If expressed as percentage (for example: 80%) it will be calculated on
|
|
||||||
the perimeters speed setting above. Set to zero for auto. (mm/s or %, default:
|
|
||||||
50%)
|
|
||||||
--gap-fill-speed N Speed for filling small gaps using short zigzag moves. Keep this reasonably low
|
|
||||||
to avoid too much shaking and resonance issues. Set zero to disable gaps
|
|
||||||
filling. (mm/s, default: 20)
|
|
||||||
--infill-speed N Speed for printing the internal fill. Set to zero for auto. (mm/s, default: 80)
|
|
||||||
--ironing-speed N Ironing (mm/s, default: 15)
|
|
||||||
--perimeter-speed N Speed for perimeters (contours, aka vertical shells). Set to zero for auto.
|
|
||||||
(mm/s, default: 60)
|
|
||||||
--small-perimeter-speed N
|
|
||||||
This separate setting will affect the speed of perimeters having radius <= 6.5mm
|
|
||||||
(usually holes). If expressed as percentage (for example: 80%) it will be
|
|
||||||
calculated on the perimeters speed setting above. Set to zero for auto. (mm/s or
|
|
||||||
%, default: 15)
|
|
||||||
--solid-infill-speed N
|
|
||||||
Speed for printing solid regions (top/bottom/internal horizontal shells). This
|
|
||||||
can be expressed as a percentage (for example: 80%) over the default infill
|
|
||||||
speed above. Set to zero for auto. (mm/s or %, default: 20)
|
|
||||||
--top-solid-infill-speed N
|
|
||||||
Speed for printing top solid layers (it only applies to the uppermost external
|
|
||||||
layers and not to their internal solid layers). You may want to slow down this
|
|
||||||
to get a nicer surface finish. This can be expressed as a percentage (for
|
|
||||||
example: 80%) over the solid infill speed above. Set to zero for auto. (mm/s or
|
|
||||||
%, default: 15)
|
|
||||||
Support material:
|
|
||||||
--dont-support-bridges
|
|
||||||
Experimental option for preventing support material from being generated under
|
|
||||||
bridged areas.
|
|
||||||
--raft-contact-distance N
|
|
||||||
The vertical distance between object and raft. Ignored for soluble interface.
|
|
||||||
(mm, default: 0.1)
|
|
||||||
--raft-expansion N Expansion of the raft in XY plane for better stability. (mm, default: 1.5)
|
|
||||||
--raft-first-layer-density
|
|
||||||
Density of the first raft or support layer. (%, default: 90%)
|
|
||||||
--raft-first-layer-expansion N
|
|
||||||
Expansion of the first raft or support layer to improve adhesion to print bed.
|
|
||||||
(mm, default: 3)
|
|
||||||
--raft-layers N The object will be raised by this number of layers, and support material will be
|
|
||||||
generated under it. (layers, default: 0)
|
|
||||||
--support-material Enable support material generation.
|
|
||||||
--support-material-angle N
|
|
||||||
Use this setting to rotate the support material pattern on the horizontal plane.
|
|
||||||
(°, default: 0)
|
|
||||||
--support-material-auto
|
|
||||||
If checked, supports will be generated automatically based on the overhang
|
|
||||||
threshold value. If unchecked, supports will be generated inside the "Support
|
|
||||||
Enforcer" volumes only.
|
|
||||||
--support-material-bottom-contact-distance N
|
|
||||||
The vertical distance between the object top surface and the support material
|
|
||||||
interface. If set to zero, support_material_contact_distance will be used for
|
|
||||||
both top and bottom contact Z distances. (mm, default: 0)
|
|
||||||
--support-material-bottom-interface-layers N
|
|
||||||
Number of interface layers to insert between the object(s) and support material.
|
|
||||||
Set to -1 to use support_material_interface_layers (layers, default: -1)
|
|
||||||
--support-material-buildplate-only
|
|
||||||
Only create support if it lies on a build plate. Don't create support on a
|
|
||||||
print.
|
|
||||||
--support-material-closing-radius N
|
|
||||||
For snug supports, the support regions will be merged using morphological
|
|
||||||
closing operation. Gaps smaller than the closing radius will be filled in. (mm,
|
|
||||||
default: 2)
|
|
||||||
--support-material-contact-distance N
|
|
||||||
The vertical distance between object and support material interface. Setting
|
|
||||||
this to 0 will also prevent Slic3r from using bridge flow and speed for the
|
|
||||||
first object layer. (mm, default: 0.2)
|
|
||||||
--support-material-enforce-layers N
|
|
||||||
Generate support material for the specified number of layers counting from
|
|
||||||
bottom, regardless of whether normal support material is enabled or not and
|
|
||||||
regardless of any angle threshold. This is useful for getting more adhesion of
|
|
||||||
objects having a very thin or poor footprint on the build plate. (layers,
|
|
||||||
default: 0)
|
|
||||||
--support-material-interface-contact-loops
|
|
||||||
Cover the top contact layer of the supports with loops. Disabled by default.
|
|
||||||
--support-material-interface-layers N
|
|
||||||
Number of interface layers to insert between the object(s) and support material.
|
|
||||||
(layers, default: 3)
|
|
||||||
--support-material-interface-pattern
|
|
||||||
Pattern used to generate support material interface. Default pattern for
|
|
||||||
non-soluble support interface is Rectilinear, while default pattern for soluble
|
|
||||||
support interface is Concentric. (auto, rectilinear, concentric; default:
|
|
||||||
rectilinear)
|
|
||||||
--support-material-interface-spacing N
|
|
||||||
Spacing between interface lines. Set zero to get a solid interface. (mm,
|
|
||||||
default: 0)
|
|
||||||
--support-material-interface-speed N
|
|
||||||
Speed for printing support material interface layers. If expressed as percentage
|
|
||||||
(for example 50%) it will be calculated over support material speed. (mm/s or %,
|
|
||||||
default: 100%)
|
|
||||||
--support-material-pattern
|
|
||||||
Pattern used to generate support material. (rectilinear, rectilinear-grid,
|
|
||||||
honeycomb; default: rectilinear)
|
|
||||||
--support-material-spacing N
|
|
||||||
Spacing between support material lines. (mm, default: 2.5)
|
|
||||||
--support-material-speed N
|
|
||||||
Speed for printing support material. (mm/s, default: 60)
|
|
||||||
--support-material-style
|
|
||||||
Style and shape of the support towers. Projecting the supports into a regular
|
|
||||||
grid will create more stable supports, while snug support towers will save
|
|
||||||
material and reduce object scarring. (grid, snug; default: grid)
|
|
||||||
--support-material-synchronize-layers
|
|
||||||
Synchronize support layers with the object print layers. This is useful with
|
|
||||||
multi-material printers, where the extruder switch is expensive.
|
|
||||||
--support-material-threshold N
|
|
||||||
Support material will not be generated for overhangs whose slope angle (90° =
|
|
||||||
vertical) is above the given threshold. In other words, this value represent the
|
|
||||||
most horizontal slope (measured from the horizontal plane) that you can print
|
|
||||||
without support material. Set to zero for automatic detection (recommended).
|
|
||||||
(°, default: 0)
|
|
||||||
--support-material-with-sheath
|
|
||||||
Add a sheath (a single perimeter line) around the base support. This makes the
|
|
||||||
support more reliable, but also more difficult to remove.
|
|
||||||
--support-material-xy-spacing N
|
|
||||||
XY separation between an object and its support. If expressed as percentage (for
|
|
||||||
example 50%), it will be calculated over external perimeter width. (mm or %,
|
|
||||||
default: 50%)
|
|
||||||
Wipe options:
|
|
||||||
--wipe-into-infill Purging after toolchange will be done inside this object's infills. This lowers
|
|
||||||
the amount of waste but may result in longer print time due to additional travel
|
|
||||||
moves.
|
|
||||||
--wipe-into-objects Object will be used to purge the nozzle after a toolchange to save material that
|
|
||||||
would otherwise end up in the wipe tower and decrease print time. Colours of the
|
|
||||||
objects will be mixed as a result.
|
|
||||||
905
pru-cli.md
905
pru-cli.md
@@ -1,905 +0,0 @@
|
|||||||
--avoid-crossing-perimeters
|
|
||||||
Optimize travel moves in order to minimize the crossing of perimeters. This is
|
|
||||||
mostly useful with Bowden extruders which suffer from oozing. This feature slows
|
|
||||||
down both the print and the G-code generation.
|
|
||||||
--bed-custom-model ABCD
|
|
||||||
|
|
||||||
--bed-custom-texture ABCD
|
|
||||||
|
|
||||||
--bed-shape (default: 0x0,200x0,200x200,0x200)
|
|
||||||
--bed-temperature N Bed temperature for layers after the first one. Set this to zero to disable bed
|
|
||||||
temperature control commands in the output. (°C, default: 0)
|
|
||||||
--before-layer-gcode ABCD
|
|
||||||
This custom code is inserted at every layer change, right before the Z move.
|
|
||||||
Note that you can use placeholder variables for all Slic3r settings as well as
|
|
||||||
[layer_num] and [layer_z].
|
|
||||||
--between-objects-gcode ABCD
|
|
||||||
This code is inserted between objects when using sequential printing. By default
|
|
||||||
extruder and bed temperature are reset using non-wait command; however if M104,
|
|
||||||
M109, M140 or M190 are detected in this custom code, Slic3r will not add
|
|
||||||
temperature commands. Note that you can use placeholder variables for all Slic3r
|
|
||||||
settings, so you can put a "M109 S[first_layer_temperature]" command wherever
|
|
||||||
you want.
|
|
||||||
--bridge-acceleration N
|
|
||||||
This is the acceleration your printer will use for bridges. Set zero to disable
|
|
||||||
acceleration control for bridges. (mm/s², default: 0)
|
|
||||||
--bridge-fan-speed N
|
|
||||||
This fan speed is enforced during all bridges and overhangs. (%, default: 100)
|
|
||||||
--clip-multipart-objects
|
|
||||||
When printing multi-material objects, this settings will make Slic3r to clip the
|
|
||||||
overlapping object parts one by the other (2nd part will be clipped by the 1st,
|
|
||||||
3rd part will be clipped by the 1st and 2nd etc).
|
|
||||||
--color-change-gcode ABCD
|
|
||||||
This G-code will be used as a code for the color change (default: M600)
|
|
||||||
--colorprint-heights N
|
|
||||||
Heights at which a filament change is to occur. (default: )
|
|
||||||
--complete-objects When printing multiple objects or copies, this feature will complete each object
|
|
||||||
before moving onto next one (and starting it from its bottom layer). This
|
|
||||||
feature is useful to avoid the risk of ruined prints. Slic3r should warn and
|
|
||||||
prevent you from extruder collisions, but beware.
|
|
||||||
--cooling This flag enables the automatic cooling logic that adjusts print speed and fan
|
|
||||||
speed according to layer printing time. (default: 1)
|
|
||||||
--cooling-tube-length N
|
|
||||||
Length of the cooling tube to limit space for cooling moves inside it. (mm,
|
|
||||||
default: 5)
|
|
||||||
--cooling-tube-retraction N
|
|
||||||
Distance of the center-point of the cooling tube from the extruder tip. (mm,
|
|
||||||
default: 91.5)
|
|
||||||
--default-acceleration N
|
|
||||||
This is the acceleration your printer will be reset to after the role-specific
|
|
||||||
acceleration values are used (perimeter/infill). Set zero to prevent resetting
|
|
||||||
acceleration at all. (mm/s², default: 0)
|
|
||||||
--deretract-speed N The speed for loading of a filament into extruder after retraction (it only
|
|
||||||
applies to the extruder motor). If left to zero, the retraction speed is used.
|
|
||||||
(mm/s, default: 0)
|
|
||||||
--disable-fan-first-layers N
|
|
||||||
You can set this to a positive value to disable fan at all during the first
|
|
||||||
layers, so that it does not make adhesion worse. (layers, default: 3)
|
|
||||||
--draft-shield With draft shield active, the skirt will be printed skirt_distance from the
|
|
||||||
object, possibly intersecting brim. Enabled = skirt is as tall as the highest
|
|
||||||
printed object. Limited = skirt is as tall as specified by skirt_height. This is
|
|
||||||
useful to protect an ABS or ASA print from warping and detaching from print bed
|
|
||||||
due to wind draft. (disabled, limited, enabled; default: disabled)
|
|
||||||
--duplicate-distance N
|
|
||||||
Distance used for the auto-arrange feature of the plater. (mm, default: 6)
|
|
||||||
--end-filament-gcode ABCD
|
|
||||||
This end procedure is inserted at the end of the output file, before the printer
|
|
||||||
end gcode (and before any toolchange from this filament in case of multimaterial
|
|
||||||
printers). Note that you can use placeholder variables for all PrusaSlicer
|
|
||||||
settings. If you have multiple extruders, the gcode is processed in extruder
|
|
||||||
order. (default: "; Filament-specific end gcode \n;END gcode for filament\n")
|
|
||||||
--end-gcode ABCD This end procedure is inserted at the end of the output file. Note that you can
|
|
||||||
use placeholder variables for all PrusaSlicer settings. (default: M104 S0 ; turn
|
|
||||||
off temperature\nG28 X0 ; home X axis\nM84 ; disable motors\n)
|
|
||||||
--extra-loading-move N
|
|
||||||
When set to zero, the distance the filament is moved from parking position
|
|
||||||
during load is exactly the same as it was moved back during unload. When
|
|
||||||
positive, it is loaded further, if negative, the loading move is shorter than
|
|
||||||
unloading. (mm, default: -2)
|
|
||||||
--extruder-clearance-height N
|
|
||||||
Set this to the vertical distance between your nozzle tip and (usually) the X
|
|
||||||
carriage rods. In other words, this is the height of the clearance cylinder
|
|
||||||
around your extruder, and it represents the maximum depth the extruder can peek
|
|
||||||
before colliding with other printed objects. (mm, default: 20)
|
|
||||||
--extruder-clearance-radius N
|
|
||||||
Set this to the clearance radius around your extruder. If the extruder is not
|
|
||||||
centered, choose the largest value for safety. This setting is used to check for
|
|
||||||
collisions and to display the graphical preview in the plater. (mm, default: 20)
|
|
||||||
--extruder-colour ABCD
|
|
||||||
This is only used in the Slic3r interface as a visual help. (default: "")
|
|
||||||
--extruder-offset If your firmware doesn't handle the extruder displacement you need the G-code to
|
|
||||||
take it into account. This option lets you specify the displacement of each
|
|
||||||
extruder with respect to the first one. It expects positive coordinates (they
|
|
||||||
will be subtracted from the XY coordinate). (mm, default: 0x0)
|
|
||||||
--extrusion-axis ABCD
|
|
||||||
Use this option to set the axis letter associated to your printer's extruder
|
|
||||||
(usually E but some printers use A). (default: E)
|
|
||||||
--extrusion-multiplier N
|
|
||||||
This factor changes the amount of flow proportionally. You may need to tweak
|
|
||||||
this setting to get nice surface finish and correct single wall widths. Usual
|
|
||||||
values are between 0.9 and 1.1. If you think you need to change this more, check
|
|
||||||
filament diameter and your firmware E steps. (default: 1)
|
|
||||||
--fan-always-on If this is enabled, fan will never be disabled and will be kept running at least
|
|
||||||
at its minimum speed. Useful for PLA, harmful for ABS. (default: 0)
|
|
||||||
--fan-below-layer-time N
|
|
||||||
If layer print time is estimated below this number of seconds, fan will be
|
|
||||||
enabled and its speed will be calculated by interpolating the minimum and
|
|
||||||
maximum speeds. (approximate seconds, default: 60)
|
|
||||||
--filament-colour ABCD
|
|
||||||
This is only used in the Slic3r interface as a visual help. (default: #29B2B2)
|
|
||||||
--filament-cooling-final-speed N
|
|
||||||
Cooling moves are gradually accelerating towards this speed. (mm/s, default:
|
|
||||||
3.4)
|
|
||||||
--filament-cooling-initial-speed N
|
|
||||||
Cooling moves are gradually accelerating beginning at this speed. (mm/s,
|
|
||||||
default: 2.2)
|
|
||||||
--filament-cooling-moves N
|
|
||||||
Filament is cooled by being moved back and forth in the cooling tubes. Specify
|
|
||||||
desired number of these moves. (default: 4)
|
|
||||||
--filament-cost N Enter your filament cost per kg here. This is only for statistical information.
|
|
||||||
(money/kg, default: 0)
|
|
||||||
--filament-density N
|
|
||||||
Enter your filament density here. This is only for statistical information. A
|
|
||||||
decent way is to weigh a known length of filament and compute the ratio of the
|
|
||||||
length to volume. Better is to calculate the volume directly through
|
|
||||||
displacement. (g/cm³, default: 0)
|
|
||||||
--filament-deretract-speed N
|
|
||||||
The speed for loading of a filament into extruder after retraction (it only
|
|
||||||
applies to the extruder motor). If left to zero, the retraction speed is used.
|
|
||||||
(mm/s, default: 0)
|
|
||||||
--filament-diameter N
|
|
||||||
Enter your filament diameter here. Good precision is required, so use a caliper
|
|
||||||
and do multiple measurements along the filament, then compute the average. (mm,
|
|
||||||
default: 1.75)
|
|
||||||
--filament-load-time N
|
|
||||||
Time for the printer firmware (or the Multi Material Unit 2.0) to load a new
|
|
||||||
filament during a tool change (when executing the T code). This time is added to
|
|
||||||
the total print time by the G-code time estimator. (s, default: 0)
|
|
||||||
--filament-loading-speed N
|
|
||||||
Speed used for loading the filament on the wipe tower. (mm/s, default: 28)
|
|
||||||
--filament-loading-speed-start N
|
|
||||||
Speed used at the very beginning of loading phase. (mm/s, default: 3)
|
|
||||||
--filament-max-volumetric-speed N
|
|
||||||
Maximum volumetric speed allowed for this filament. Limits the maximum
|
|
||||||
volumetric speed of a print to the minimum of print and filament volumetric
|
|
||||||
speed. Set to zero for no limit. (mm³/s, default: 0)
|
|
||||||
--filament-minimal-purge-on-wipe-tower N
|
|
||||||
After a tool change, the exact position of the newly loaded filament inside the
|
|
||||||
nozzle may not be known, and the filament pressure is likely not yet stable.
|
|
||||||
Before purging the print head into an infill or a sacrificial object, Slic3r
|
|
||||||
will always prime this amount of material into the wipe tower to produce
|
|
||||||
successive infill or sacrificial object extrusions reliably. (mm³, default: 15)
|
|
||||||
--filament-notes ABCD
|
|
||||||
You can put your notes regarding the filament here. (default: "")
|
|
||||||
--filament-ramming-parameters ABCD
|
|
||||||
This string is edited by RammingDialog and contains ramming specific parameters.
|
|
||||||
(default: "120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8
|
|
||||||
0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95
|
|
||||||
7.6")
|
|
||||||
--filament-retract-before-travel N
|
|
||||||
Retraction is not triggered when travel moves are shorter than this length. (mm,
|
|
||||||
default: 2)
|
|
||||||
--filament-retract-before-wipe
|
|
||||||
With bowden extruders, it may be wise to do some amount of quick retract before
|
|
||||||
doing the wipe movement. (%, default: 0%)
|
|
||||||
--filament-retract-layer-change
|
|
||||||
This flag enforces a retraction whenever a Z move is done. (default: 0)
|
|
||||||
--filament-retract-length N
|
|
||||||
When retraction is triggered, filament is pulled back by the specified amount
|
|
||||||
(the length is measured on raw filament, before it enters the extruder). (mm
|
|
||||||
(zero to disable), default: 2)
|
|
||||||
--filament-retract-lift N
|
|
||||||
If you set this to a positive value, Z is quickly raised every time a retraction
|
|
||||||
is triggered. When using multiple extruders, only the setting for the first
|
|
||||||
extruder will be considered. (mm, default: 0)
|
|
||||||
--filament-retract-lift-above N
|
|
||||||
If you set this to a positive value, Z lift will only take place above the
|
|
||||||
specified absolute Z. You can tune this setting for skipping lift on the first
|
|
||||||
layers. (mm, default: 0)
|
|
||||||
--filament-retract-lift-below N
|
|
||||||
If you set this to a positive value, Z lift will only take place below the
|
|
||||||
specified absolute Z. You can tune this setting for limiting lift to the first
|
|
||||||
layers. (mm, default: 0)
|
|
||||||
--filament-retract-restart-extra N
|
|
||||||
When the retraction is compensated after the travel move, the extruder will push
|
|
||||||
this additional amount of filament. This setting is rarely needed. (mm, default:
|
|
||||||
0)
|
|
||||||
--filament-retract-speed N
|
|
||||||
The speed for retractions (it only applies to the extruder motor). (mm/s,
|
|
||||||
default: 40)
|
|
||||||
--filament-soluble Soluble material is most likely used for a soluble support. (default: 0)
|
|
||||||
--filament-spool-weight N
|
|
||||||
Enter weight of the empty filament spool. One may weigh a partially consumed
|
|
||||||
filament spool before printing and one may compare the measured weight with the
|
|
||||||
calculated weight of the filament with the spool to find out whether the amount
|
|
||||||
of filament on the spool is sufficient to finish the print. (g, default: 0)
|
|
||||||
--filament-toolchange-delay N
|
|
||||||
Time to wait after the filament is unloaded. May help to get reliable
|
|
||||||
toolchanges with flexible materials that may need more time to shrink to
|
|
||||||
original dimensions. (s, default: 0)
|
|
||||||
--filament-type ABCD
|
|
||||||
The filament material type for use in custom G-codes. (PLA, PET, ABS, ASA, FLEX,
|
|
||||||
HIPS, EDGE, NGEN, PA, NYLON, PVA, PC, PP, PEI, PEEK, PEKK, POM, PSU, PVDF,
|
|
||||||
SCAFF; default: PLA)
|
|
||||||
--filament-unload-time N
|
|
||||||
Time for the printer firmware (or the Multi Material Unit 2.0) to unload a
|
|
||||||
filament during a tool change (when executing the T code). This time is added to
|
|
||||||
the total print time by the G-code time estimator. (s, default: 0)
|
|
||||||
--filament-unloading-speed N
|
|
||||||
Speed used for unloading the filament on the wipe tower (does not affect initial
|
|
||||||
part of unloading just after ramming). (mm/s, default: 90)
|
|
||||||
--filament-unloading-speed-start N
|
|
||||||
Speed used for unloading the tip of the filament immediately after ramming.
|
|
||||||
(mm/s, default: 100)
|
|
||||||
--filament-wipe This flag will move the nozzle while retracting to minimize the possible blob on
|
|
||||||
leaky extruders. (default: 0)
|
|
||||||
--first-layer-acceleration N
|
|
||||||
This is the acceleration your printer will use for first layer. Set zero to
|
|
||||||
disable acceleration control for first layer. (mm/s², default: 0)
|
|
||||||
--first-layer-acceleration-over-raft N
|
|
||||||
This is the acceleration your printer will use for first layer of object above
|
|
||||||
raft interface. Set zero to disable acceleration control for first layer of
|
|
||||||
object above raft interface. (mm/s², default: 0)
|
|
||||||
--first-layer-bed-temperature N
|
|
||||||
Heated build plate temperature for the first layer. Set this to zero to disable
|
|
||||||
bed temperature control commands in the output. (°C, default: 0)
|
|
||||||
--first-layer-speed N
|
|
||||||
If expressed as absolute value in mm/s, this speed will be applied to all the
|
|
||||||
print moves of the first layer, regardless of their type. If expressed as a
|
|
||||||
percentage (for example: 40%) it will scale the default speeds. (mm/s or %,
|
|
||||||
default: 30)
|
|
||||||
--first-layer-speed-over-raft N
|
|
||||||
If expressed as absolute value in mm/s, this speed will be applied to all the
|
|
||||||
print moves of the first object layer above raft interface, regardless of their
|
|
||||||
type. If expressed as a percentage (for example: 40%) it will scale the default
|
|
||||||
speeds. (mm/s or %, default: 30)
|
|
||||||
--first-layer-temperature N
|
|
||||||
Nozzle temperature for the first layer. If you want to control temperature
|
|
||||||
manually during print, set this to zero to disable temperature control commands
|
|
||||||
in the output G-code. (°C, default: 200)
|
|
||||||
--full-fan-speed-layer N
|
|
||||||
Fan speed will be ramped up linearly from zero at layer
|
|
||||||
"disable_fan_first_layers" to maximum at layer "full_fan_speed_layer".
|
|
||||||
"full_fan_speed_layer" will be ignored if lower than "disable_fan_first_layers",
|
|
||||||
in which case the fan will be running at maximum allowed speed at layer
|
|
||||||
"disable_fan_first_layers" + 1. (default: 0)
|
|
||||||
--gcode-comments Enable this to get a commented G-code file, with each line explained by a
|
|
||||||
descriptive text. If you print from SD card, the additional weight of the file
|
|
||||||
could make your firmware slow down.
|
|
||||||
--gcode-flavor Some G/M-code commands, including temperature control and others, are not
|
|
||||||
universal. Set this option to your printer's firmware to get a compatible
|
|
||||||
output. The "No extrusion" flavor prevents PrusaSlicer from exporting any
|
|
||||||
extrusion value at all. (reprap, reprapfirmware, repetier, teacup, makerware,
|
|
||||||
marlin, marlin2, sailfish, mach3, machinekit, smoothie, no-extrusion; default:
|
|
||||||
reprap)
|
|
||||||
--gcode-label-objects
|
|
||||||
Enable this to add comments into the G-Code labeling print moves with what
|
|
||||||
object they belong to, which is useful for the Octoprint CancelObject plugin.
|
|
||||||
This settings is NOT compatible with Single Extruder Multi Material setup and
|
|
||||||
Wipe into Object / Wipe into Infill.
|
|
||||||
--gcode-resolution N
|
|
||||||
Maximum deviation of exported G-code paths from their full resolution
|
|
||||||
counterparts. Very high resolution G-code requires huge amount of RAM to slice
|
|
||||||
and preview, also a 3D printer may stutter not being able to process a high
|
|
||||||
resolution G-code in a timely manner. On the other hand, a low resolution G-code
|
|
||||||
will produce a low poly effect and because the G-code reduction is performed at
|
|
||||||
each layer independently, visible artifacts may be produced. (mm, default:
|
|
||||||
0.0125)
|
|
||||||
--gcode-substitutions ABCD
|
|
||||||
Find / replace patterns in G-code lines and substitute them. (default: )
|
|
||||||
--high-current-on-filament-swap
|
|
||||||
It may be beneficial to increase the extruder motor current during the filament
|
|
||||||
exchange sequence to allow for rapid ramming feed rates and to overcome
|
|
||||||
resistance when loading a filament with an ugly shaped tip.
|
|
||||||
--infill-acceleration N
|
|
||||||
This is the acceleration your printer will use for infill. Set zero to disable
|
|
||||||
acceleration control for infill. (mm/s², default: 0)
|
|
||||||
--infill-first This option will switch the print order of perimeters and infill, making the
|
|
||||||
latter first.
|
|
||||||
--after-layer-gcode ABCD, --layer-gcode ABCD
|
|
||||||
This custom code is inserted at every layer change, right after the Z move and
|
|
||||||
before the extruder moves to the first layer point. Note that you can use
|
|
||||||
placeholder variables for all Slic3r settings as well as [layer_num] and
|
|
||||||
[layer_z].
|
|
||||||
--max-fan-speed N This setting represents the maximum speed of your fan. (%, default: 100)
|
|
||||||
--max-layer-height N
|
|
||||||
This is the highest printable layer height for this extruder, used to cap the
|
|
||||||
variable layer height and support layer height. Maximum recommended layer height
|
|
||||||
is 75% of the extrusion width to achieve reasonable inter-layer adhesion. If set
|
|
||||||
to 0, layer height is limited to 75% of the nozzle diameter. (mm, default: 0)
|
|
||||||
--max-print-height N
|
|
||||||
Set this to the maximum height that can be reached by your extruder while
|
|
||||||
printing. (mm, default: 200)
|
|
||||||
--max-print-speed N When setting other speed settings to 0 Slic3r will autocalculate the optimal
|
|
||||||
speed in order to keep constant extruder pressure. This experimental setting is
|
|
||||||
used to set the highest print speed you want to allow. (mm/s, default: 80)
|
|
||||||
--max-volumetric-extrusion-rate-slope-negative N
|
|
||||||
This experimental setting is used to limit the speed of change in extrusion rate
|
|
||||||
for a transition from higher speed to lower speed. A value of 1.8 mm³/s²
|
|
||||||
ensures, that a change from the extrusion rate of 5.4 mm³/s (0.45 mm extrusion
|
|
||||||
width, 0.2 mm extrusion height, feedrate 60 mm/s) to 1.8 mm³/s (feedrate 20
|
|
||||||
mm/s) will take at least 2 seconds. (mm³/s², default: 0)
|
|
||||||
--max-volumetric-extrusion-rate-slope-positive N
|
|
||||||
This experimental setting is used to limit the speed of change in extrusion rate
|
|
||||||
for a transition from lower speed to higher speed. A value of 1.8 mm³/s²
|
|
||||||
ensures, that a change from the extrusion rate of 1.8 mm³/s (0.45 mm extrusion
|
|
||||||
width, 0.2 mm extrusion height, feedrate 20 mm/s) to 5.4 mm³/s (feedrate 60
|
|
||||||
mm/s) will take at least 2 seconds. (mm³/s², default: 0)
|
|
||||||
--max-volumetric-speed N
|
|
||||||
This experimental setting is used to set the maximum volumetric speed your
|
|
||||||
extruder supports. (mm³/s, default: 0)
|
|
||||||
--min-fan-speed N This setting represents the minimum PWM your fan needs to work. (%, default: 35)
|
|
||||||
--min-layer-height N
|
|
||||||
This is the lowest printable layer height for this extruder and limits the
|
|
||||||
resolution for variable layer height. Typical values are between 0.05 mm and 0.1
|
|
||||||
mm. (mm, default: 0.07)
|
|
||||||
--min-print-speed N Slic3r will not scale speed down below this speed. (mm/s, default: 10)
|
|
||||||
--min-skirt-length N
|
|
||||||
Generate no less than the number of skirt loops required to consume the
|
|
||||||
specified amount of filament on the bottom layer. For multi-extruder machines,
|
|
||||||
this minimum applies to each extruder. (mm, default: 0)
|
|
||||||
--notes ABCD You can put here your personal notes. This text will be added to the G-code
|
|
||||||
header comments.
|
|
||||||
--nozzle-diameter N This is the diameter of your extruder nozzle (for example: 0.5, 0.35 etc.) (mm,
|
|
||||||
default: 0.4)
|
|
||||||
--only-retract-when-crossing-perimeters
|
|
||||||
Disables retraction when the travel path does not exceed the upper layer's
|
|
||||||
perimeters (and thus any ooze will be probably invisible).
|
|
||||||
--ooze-prevention This option will drop the temperature of the inactive extruders to prevent
|
|
||||||
oozing. It will enable a tall skirt automatically and move extruders outside
|
|
||||||
such skirt when changing temperatures.
|
|
||||||
--output-filename-format ABCD
|
|
||||||
You can use all configuration options as variables inside this template. For
|
|
||||||
example: [layer_height], [fill_density] etc. You can also use [timestamp],
|
|
||||||
[year], [month], [day], [hour], [minute], [second], [version], [input_filename],
|
|
||||||
[input_filename_base]. (default: [input_filename_base].gcode)
|
|
||||||
--parking-pos-retraction N
|
|
||||||
Distance of the extruder tip from the position where the filament is parked when
|
|
||||||
unloaded. This should match the value in printer firmware. (mm, default: 92)
|
|
||||||
--pause-print-gcode ABCD
|
|
||||||
This G-code will be used as a code for the pause print (default: M601)
|
|
||||||
--perimeter-acceleration N
|
|
||||||
This is the acceleration your printer will use for perimeters. Set zero to
|
|
||||||
disable acceleration control for perimeters. (mm/s², default: 0)
|
|
||||||
--post-process ABCD If you want to process the output G-code through custom scripts, just list their
|
|
||||||
absolute paths here. Separate multiple scripts with a semicolon. Scripts will be
|
|
||||||
passed the absolute path to the G-code file as the first argument, and they can
|
|
||||||
access the Slic3r config settings by reading environment variables. (default: )
|
|
||||||
--preset-name ABCD
|
|
||||||
--preset-names ABCD Names of presets related to the physical printer (default: )
|
|
||||||
--printer-notes ABCD
|
|
||||||
You can put your notes regarding the printer here.
|
|
||||||
--printer-technology
|
|
||||||
Printer technology (FFF, SLA; default: FFF)
|
|
||||||
--remaining-times Emit M73 P[percent printed] R[remaining time in minutes] at 1 minute intervals
|
|
||||||
into the G-code to let the firmware show accurate remaining time. As of now only
|
|
||||||
the Prusa i3 MK3 firmware recognizes M73. Also the i3 MK3 firmware supports M73
|
|
||||||
Qxx Sxx for the silent mode.
|
|
||||||
--resolution N Minimum detail resolution, used to simplify the input file for speeding up the
|
|
||||||
slicing job and reducing memory usage. High-resolution models often carry more
|
|
||||||
detail than printers can render. Set to zero to disable any simplification and
|
|
||||||
use full resolution from input. (mm, default: 0)
|
|
||||||
--retract-before-travel N
|
|
||||||
Retraction is not triggered when travel moves are shorter than this length. (mm,
|
|
||||||
default: 2)
|
|
||||||
--retract-before-wipe
|
|
||||||
With bowden extruders, it may be wise to do some amount of quick retract before
|
|
||||||
doing the wipe movement. (%, default: 0%)
|
|
||||||
--retract-layer-change
|
|
||||||
This flag enforces a retraction whenever a Z move is done. (default: 0)
|
|
||||||
--retract-length N When retraction is triggered, filament is pulled back by the specified amount
|
|
||||||
(the length is measured on raw filament, before it enters the extruder). (mm
|
|
||||||
(zero to disable), default: 2)
|
|
||||||
--retract-length-toolchange N
|
|
||||||
When retraction is triggered before changing tool, filament is pulled back by
|
|
||||||
the specified amount (the length is measured on raw filament, before it enters
|
|
||||||
the extruder). (mm (zero to disable), default: 10)
|
|
||||||
--retract-lift N If you set this to a positive value, Z is quickly raised every time a retraction
|
|
||||||
is triggered. When using multiple extruders, only the setting for the first
|
|
||||||
extruder will be considered. (mm, default: 0)
|
|
||||||
--retract-lift-above N
|
|
||||||
If you set this to a positive value, Z lift will only take place above the
|
|
||||||
specified absolute Z. You can tune this setting for skipping lift on the first
|
|
||||||
layers. (mm, default: 0)
|
|
||||||
--retract-lift-below N
|
|
||||||
If you set this to a positive value, Z lift will only take place below the
|
|
||||||
specified absolute Z. You can tune this setting for limiting lift to the first
|
|
||||||
layers. (mm, default: 0)
|
|
||||||
--retract-restart-extra N
|
|
||||||
When the retraction is compensated after the travel move, the extruder will push
|
|
||||||
this additional amount of filament. This setting is rarely needed. (mm, default:
|
|
||||||
0)
|
|
||||||
--retract-restart-extra-toolchange N
|
|
||||||
When the retraction is compensated after changing tool, the extruder will push
|
|
||||||
this additional amount of filament. (mm, default: 0)
|
|
||||||
--retract-speed N The speed for retractions (it only applies to the extruder motor). (mm/s,
|
|
||||||
default: 40)
|
|
||||||
--silent-mode The firmware supports stealth mode
|
|
||||||
--single-extruder-multi-material
|
|
||||||
The printer multiplexes filaments into a single hot end.
|
|
||||||
--single-extruder-multi-material-priming
|
|
||||||
If enabled, all printing extruders will be primed at the front edge of the print
|
|
||||||
bed at the start of the print.
|
|
||||||
--skirt-distance N Distance between skirt and brim (when draft shield is not used) or objects. (mm,
|
|
||||||
default: 6)
|
|
||||||
--skirt-height N Height of skirt expressed in layers. (layers, default: 1)
|
|
||||||
--skirts N Number of loops for the skirt. If the Minimum Extrusion Length option is set,
|
|
||||||
the number of loops might be greater than the one configured here. Set this to
|
|
||||||
zero to disable skirt completely. (default: 1)
|
|
||||||
--slowdown-below-layer-time N
|
|
||||||
If layer print time is estimated below this number of seconds, print moves speed
|
|
||||||
will be scaled down to extend duration to this value. (approximate seconds,
|
|
||||||
default: 5)
|
|
||||||
--solid-layers N Number of solid layers to generate on top and bottom surfaces.
|
|
||||||
--solid-min-thickness N
|
|
||||||
Minimum thickness of a top / bottom shell
|
|
||||||
--spiral-vase This feature will raise Z gradually while printing a single-walled object in
|
|
||||||
order to remove any visible seam. This option requires a single perimeter, no
|
|
||||||
infill, no top solid layers and no support material. You can still set any
|
|
||||||
number of bottom solid layers as well as skirt/brim loops. It won't work when
|
|
||||||
printing more than one single object.
|
|
||||||
--standby-temperature-delta N
|
|
||||||
Temperature difference to be applied when an extruder is not active. Enables a
|
|
||||||
full-height "sacrificial" skirt on which the nozzles are periodically wiped.
|
|
||||||
(∆°C, default: -5)
|
|
||||||
--start-filament-gcode ABCD
|
|
||||||
This start procedure is inserted at the beginning, after any printer start gcode
|
|
||||||
(and after any toolchange to this filament in case of multi-material printers).
|
|
||||||
This is used to override settings for a specific filament. If PrusaSlicer
|
|
||||||
detects M104, M109, M140 or M190 in your custom codes, such commands will not be
|
|
||||||
prepended automatically so you're free to customize the order of heating
|
|
||||||
commands and other custom actions. Note that you can use placeholder variables
|
|
||||||
for all PrusaSlicer settings, so you can put a "M109 S[first_layer_temperature]"
|
|
||||||
command wherever you want. If you have multiple extruders, the gcode is
|
|
||||||
processed in extruder order. (default: "; Filament gcode\n")
|
|
||||||
--start-gcode ABCD This start procedure is inserted at the beginning, after bed has reached the
|
|
||||||
target temperature and extruder just started heating, and before extruder has
|
|
||||||
finished heating. If PrusaSlicer detects M104 or M190 in your custom codes, such
|
|
||||||
commands will not be prepended automatically so you're free to customize the
|
|
||||||
order of heating commands and other custom actions. Note that you can use
|
|
||||||
placeholder variables for all PrusaSlicer settings, so you can put a "M109
|
|
||||||
S[first_layer_temperature]" command wherever you want. (default: G28 ; home all
|
|
||||||
axes\nG1 Z5 F5000 ; lift nozzle\n)
|
|
||||||
--temperature N Nozzle temperature for layers after the first one. Set this to zero to disable
|
|
||||||
temperature control commands in the output G-code. (°C, default: 200)
|
|
||||||
--template-custom-gcode ABCD
|
|
||||||
This G-code will be used as a custom code
|
|
||||||
--thumbnails Picture sizes to be stored into a .gcode and .sl1 / .sl1s files, in the
|
|
||||||
following format: "XxY, XxY, ..." (default: )
|
|
||||||
--thumbnails-format Format of G-code thumbnails: PNG for best quality, JPG for smallest size, QOI
|
|
||||||
for low memory firmware (PNG, JPG, QOI; default: PNG)
|
|
||||||
--toolchange-gcode ABCD
|
|
||||||
This custom code is inserted before every toolchange. Placeholder variables for
|
|
||||||
all PrusaSlicer settings as well as {toolchange_z}, {previous_extruder} and
|
|
||||||
{next_extruder} can be used. When a tool-changing command which changes to the
|
|
||||||
correct extruder is included (such as T{next_extruder}), PrusaSlicer will emit
|
|
||||||
no other such command. It is therefore possible to script custom behaviour both
|
|
||||||
before and after the toolchange.
|
|
||||||
--travel-speed N Speed for travel moves (jumps between distant extrusion points). (mm/s, default:
|
|
||||||
130)
|
|
||||||
--travel-speed-z N Speed for movements along the Z axis. When set to zero, the value is ignored and
|
|
||||||
regular travel speed is used instead. (mm/s, default: 0)
|
|
||||||
--use-firmware-retraction
|
|
||||||
This experimental setting uses G10 and G11 commands to have the firmware handle
|
|
||||||
the retraction. This is only supported in recent Marlin.
|
|
||||||
--use-relative-e-distances
|
|
||||||
If your firmware requires relative E values, check this, otherwise leave it
|
|
||||||
unchecked. Most firmwares use absolute values.
|
|
||||||
--use-volumetric-e This experimental setting uses outputs the E values in cubic millimeters instead
|
|
||||||
of linear millimeters. If your firmware doesn't already know filament
|
|
||||||
diameter(s), you can put commands like 'M200 D[filament_diameter_0] T0' in your
|
|
||||||
start G-code in order to turn volumetric mode on and use the filament diameter
|
|
||||||
associated to the filament selected in Slic3r. This is only supported in recent
|
|
||||||
Marlin.
|
|
||||||
--variable-layer-height
|
|
||||||
Some printers or printer setups may have difficulties printing with a variable
|
|
||||||
layer height. Enabled by default.
|
|
||||||
--wipe This flag will move the nozzle while retracting to minimize the possible blob on
|
|
||||||
leaky extruders. (default: 0)
|
|
||||||
--wipe-tower Multi material printers may need to prime or purge extruders on tool changes.
|
|
||||||
Extrude the excess material into the wipe tower.
|
|
||||||
--wipe-tower-bridging N
|
|
||||||
Maximal distance between supports on sparse infill sections. (mm, default: 10)
|
|
||||||
--wipe-tower-brim-width N
|
|
||||||
Wipe tower brim width (mm, default: 2)
|
|
||||||
--wipe-tower-no-sparse-layers
|
|
||||||
If enabled, the wipe tower will not be printed on layers with no toolchanges. On
|
|
||||||
layers with a toolchange, extruder will travel downward to print the wipe tower.
|
|
||||||
User is responsible for ensuring there is no collision with the print.
|
|
||||||
--wipe-tower-rotation-angle N
|
|
||||||
Wipe tower rotation angle with respect to x-axis. (°, default: 0)
|
|
||||||
--wipe-tower-width N
|
|
||||||
Width of a wipe tower (mm, default: 60)
|
|
||||||
--wipe-tower-x N X coordinate of the left front corner of a wipe tower (mm, default: 180)
|
|
||||||
--wipe-tower-y N Y coordinate of the left front corner of a wipe tower (mm, default: 140)
|
|
||||||
--wiping-volumes-extruders N
|
|
||||||
This vector saves required volumes to change from/to each tool used on the wipe
|
|
||||||
tower. These values are used to simplify creation of the full purging volumes
|
|
||||||
below. (default: 70,70,70,70,70,70,70,70,70,70)
|
|
||||||
--wiping-volumes-matrix N
|
|
||||||
This matrix describes volumes (in cubic milimetres) required to purge the new
|
|
||||||
filament on the wipe tower for any given pair of tools. (default:
|
|
||||||
0,140,140,140,140,140,0,140,140,140,140,140,0,140,140,140,140,140,0,140,140,140,140,140,0)
|
|
||||||
--z-offset N This value will be added (or subtracted) from all the Z coordinates in the
|
|
||||||
output G-code. It is used to compensate for bad Z endstop position: for example,
|
|
||||||
if your endstop zero actually leaves the nozzle 0.3mm far from the print bed,
|
|
||||||
set this to -0.3 (or fix your endstop). (mm, default: 0)
|
|
||||||
Advanced:
|
|
||||||
--bridge-flow-ratio N
|
|
||||||
This factor affects the amount of plastic for bridging. You can decrease it
|
|
||||||
slightly to pull the extrudates and prevent sagging, although default settings
|
|
||||||
are usually good and you should experiment with cooling (use a fan) before
|
|
||||||
tweaking this. (default: 1)
|
|
||||||
--elefant-foot-compensation N
|
|
||||||
The first layer will be shrunk in the XY plane by the configured value to
|
|
||||||
compensate for the 1st layer squish aka an Elephant Foot effect. (mm, default:
|
|
||||||
0)
|
|
||||||
--infill-anchor N Connect an infill line to an internal perimeter with a short segment of an
|
|
||||||
additional perimeter. If expressed as percentage (example: 15%) it is calculated
|
|
||||||
over infill extrusion width. PrusaSlicer tries to connect two close infill lines
|
|
||||||
to a short perimeter segment. If no such perimeter segment shorter than
|
|
||||||
infill_anchor_max is found, the infill line is connected to a perimeter segment
|
|
||||||
at just one side and the length of the perimeter segment taken is limited to
|
|
||||||
this parameter, but no longer than anchor_length_max. Set this parameter to zero
|
|
||||||
to disable anchoring perimeters connected to a single infill line. (mm or %,
|
|
||||||
default: 600%)
|
|
||||||
--infill-anchor-max N
|
|
||||||
Connect an infill line to an internal perimeter with a short segment of an
|
|
||||||
additional perimeter. If expressed as percentage (example: 15%) it is calculated
|
|
||||||
over infill extrusion width. PrusaSlicer tries to connect two close infill lines
|
|
||||||
to a short perimeter segment. If no such perimeter segment shorter than this
|
|
||||||
parameter is found, the infill line is connected to a perimeter segment at just
|
|
||||||
one side and the length of the perimeter segment taken is limited to
|
|
||||||
infill_anchor, but no longer than this parameter. Set this parameter to zero to
|
|
||||||
disable anchoring. (mm or %, default: 50)
|
|
||||||
--infill-overlap N This setting applies an additional overlap between infill and perimeters for
|
|
||||||
better bonding. Theoretically this shouldn't be needed, but backlash might cause
|
|
||||||
gaps. If expressed as percentage (example: 15%) it is calculated over perimeter
|
|
||||||
extrusion width. (mm or %, default: 25%)
|
|
||||||
--min-bead-width N Width of the perimeter that will replace thin features (according to the Minimum
|
|
||||||
feature size) of the model. If the Minimum perimeter width is thinner than the
|
|
||||||
thickness of the feature, the perimeter will become as thick as the feature
|
|
||||||
itself. If expressed as a percentage (for example 85%), it will be computed
|
|
||||||
based on the nozzle diameter. (mm or %, default: 85%)
|
|
||||||
--min-feature-size N
|
|
||||||
Minimum thickness of thin features. Model features that are thinner than this
|
|
||||||
value will not be printed, while features thicker than the Minimum feature size
|
|
||||||
will be widened to the Minimum perimeter width. If expressed as a percentage
|
|
||||||
(for example 25%), it will be computed based on the nozzle diameter. (mm or %,
|
|
||||||
default: 25%)
|
|
||||||
--mmu-segmented-region-max-width N
|
|
||||||
Maximum width of a segmented region. Zero disables this feature. (mm (zero to
|
|
||||||
disable), default: 0)
|
|
||||||
--slice-closing-radius N
|
|
||||||
Cracks smaller than 2x gap closing radius are being filled during the triangle
|
|
||||||
mesh slicing. The gap closing operation may reduce the final print resolution,
|
|
||||||
therefore it is advisable to keep the value reasonably low. (mm, default: 0.049)
|
|
||||||
--slicing-mode Use "Even-odd" for 3DLabPrint airplane models. Use "Close holes" to close all
|
|
||||||
holes in the model. (regular, even_odd, close_holes; default: regular)
|
|
||||||
--wall-distribution-count N
|
|
||||||
The number of perimeters, counted from the center, over which the variation
|
|
||||||
needs to be spread. Lower values mean that the outer perimeters don't change in
|
|
||||||
width. (default: 1)
|
|
||||||
--wall-transition-angle N
|
|
||||||
When to create transitions between even and odd numbers of perimeters. A wedge
|
|
||||||
shape with an angle greater than this setting will not have transitions and no
|
|
||||||
perimeters will be printed in the center to fill the remaining space. Reducing
|
|
||||||
this setting reduces the number and length of these center perimeters, but may
|
|
||||||
leave gaps or overextrude. (°, default: 10)
|
|
||||||
--wall-transition-filter-deviation N
|
|
||||||
Prevent transitioning back and forth between one extra perimeter and one less.
|
|
||||||
This margin extends the range of extrusion widths which follow to [Minimum
|
|
||||||
perimeter width - margin, 2 * Minimum perimeter width + margin]. Increasing this
|
|
||||||
margin reduces the number of transitions, which reduces the number of extrusion
|
|
||||||
starts/stops and travel time. However, large extrusion width variation can lead
|
|
||||||
to under- or overextrusion problems. If expressed as a percentage (for example
|
|
||||||
25%), it will be computed based on the nozzle diameter. (mm or %, default: 25%)
|
|
||||||
--wall-transition-length N
|
|
||||||
When transitioning between different numbers of perimeters as the part becomes
|
|
||||||
thinner, a certain amount of space is allotted to split or join the perimeter
|
|
||||||
segments. If expressed as a percentage (for example 100%), it will be computed
|
|
||||||
based on the nozzle diameter. (mm or %, default: 100%)
|
|
||||||
--xy-size-compensation N
|
|
||||||
The object will be grown/shrunk in the XY plane by the configured value
|
|
||||||
(negative = inwards, positive = outwards). This might be useful for fine-tuning
|
|
||||||
hole sizes. (mm, default: 0)
|
|
||||||
Extruders:
|
|
||||||
--extruder N The extruder to use (unless more specific extruder settings are specified). This
|
|
||||||
value overrides perimeter and infill extruders, but not the support extruders.
|
|
||||||
--infill-extruder N The extruder to use when printing infill. (default: 1)
|
|
||||||
--perimeter-extruder N
|
|
||||||
The extruder to use when printing perimeters and brim. First extruder is 1.
|
|
||||||
(default: 1)
|
|
||||||
--solid-infill-extruder N
|
|
||||||
The extruder to use when printing solid infill. (default: 1)
|
|
||||||
--support-material-extruder N
|
|
||||||
The extruder to use when printing support material, raft and skirt (1+, 0 to use
|
|
||||||
the current extruder to minimize tool changes). (default: 1)
|
|
||||||
--support-material-interface-extruder N
|
|
||||||
The extruder to use when printing support material interface (1+, 0 to use the
|
|
||||||
current extruder to minimize tool changes). This affects raft too. (default: 1)
|
|
||||||
Extrusion Width:
|
|
||||||
--external-perimeter-extrusion-width N
|
|
||||||
Set this to a non-zero value to set a manual extrusion width for external
|
|
||||||
perimeters. If left zero, default extrusion width will be used if set, otherwise
|
|
||||||
1.125 x nozzle diameter will be used. If expressed as percentage (for example
|
|
||||||
200%), it will be computed over layer height. (mm or %, default: 0)
|
|
||||||
--extrusion-width N Set this to a non-zero value to allow a manual extrusion width. If left to zero,
|
|
||||||
Slic3r derives extrusion widths from the nozzle diameter (see the tooltips for
|
|
||||||
perimeter extrusion width, infill extrusion width etc). If expressed as
|
|
||||||
percentage (for example: 230%), it will be computed over layer height. (mm or %,
|
|
||||||
default: 0)
|
|
||||||
--first-layer-extrusion-width N
|
|
||||||
Set this to a non-zero value to set a manual extrusion width for first layer.
|
|
||||||
You can use this to force fatter extrudates for better adhesion. If expressed as
|
|
||||||
percentage (for example 120%) it will be computed over first layer height. If
|
|
||||||
set to zero, it will use the default extrusion width. (mm or %, default: 200%)
|
|
||||||
--infill-extrusion-width N
|
|
||||||
Set this to a non-zero value to set a manual extrusion width for infill. If left
|
|
||||||
zero, default extrusion width will be used if set, otherwise 1.125 x nozzle
|
|
||||||
diameter will be used. You may want to use fatter extrudates to speed up the
|
|
||||||
infill and make your parts stronger. If expressed as percentage (for example
|
|
||||||
90%) it will be computed over layer height. (mm or %, default: 0)
|
|
||||||
--perimeter-extrusion-width N
|
|
||||||
Set this to a non-zero value to set a manual extrusion width for perimeters. You
|
|
||||||
may want to use thinner extrudates to get more accurate surfaces. If left zero,
|
|
||||||
default extrusion width will be used if set, otherwise 1.125 x nozzle diameter
|
|
||||||
will be used. If expressed as percentage (for example 200%) it will be computed
|
|
||||||
over layer height. (mm or %, default: 0)
|
|
||||||
--solid-infill-extrusion-width N
|
|
||||||
Set this to a non-zero value to set a manual extrusion width for infill for
|
|
||||||
solid surfaces. If left zero, default extrusion width will be used if set,
|
|
||||||
otherwise 1.125 x nozzle diameter will be used. If expressed as percentage (for
|
|
||||||
example 90%) it will be computed over layer height. (mm or %, default: 0)
|
|
||||||
--support-material-extrusion-width N
|
|
||||||
Set this to a non-zero value to set a manual extrusion width for support
|
|
||||||
material. If left zero, default extrusion width will be used if set, otherwise
|
|
||||||
nozzle diameter will be used. If expressed as percentage (for example 90%) it
|
|
||||||
will be computed over layer height. (mm or %, default: 0)
|
|
||||||
--top-infill-extrusion-width N
|
|
||||||
Set this to a non-zero value to set a manual extrusion width for infill for top
|
|
||||||
surfaces. You may want to use thinner extrudates to fill all narrow regions and
|
|
||||||
get a smoother finish. If left zero, default extrusion width will be used if
|
|
||||||
set, otherwise nozzle diameter will be used. If expressed as percentage (for
|
|
||||||
example 90%) it will be computed over layer height. (mm or %, default: 0)
|
|
||||||
Fuzzy Skin:
|
|
||||||
--fuzzy-skin Fuzzy skin type. (none, external, all; default: none)
|
|
||||||
--fuzzy-skin-point-dist N
|
|
||||||
Perimeters will be split into multiple segments by inserting Fuzzy skin points.
|
|
||||||
Lowering the Fuzzy skin point distance will increase the number of randomly
|
|
||||||
offset points on the perimeter wall. (mm, default: 0.8)
|
|
||||||
--fuzzy-skin-thickness N
|
|
||||||
The maximum distance that each skin point can be offset (both ways), measured
|
|
||||||
perpendicular to the perimeter wall. (mm, default: 0.3)
|
|
||||||
Infill:
|
|
||||||
--bottom-fill-pattern, --external-fill-pattern, --solid-fill-pattern
|
|
||||||
Fill pattern for bottom infill. This only affects the bottom external visible
|
|
||||||
layer, and not its adjacent solid shells. (rectilinear, monotonic,
|
|
||||||
alignedrectilinear, concentric, hilbertcurve, archimedeanchords, octagramspiral;
|
|
||||||
default: monotonic)
|
|
||||||
--bridge-angle N Bridging angle override. If left to zero, the bridging angle will be calculated
|
|
||||||
automatically. Otherwise the provided angle will be used for all bridges. Use
|
|
||||||
180° for zero angle. (°, default: 0)
|
|
||||||
--fill-angle N Default base angle for infill orientation. Cross-hatching will be applied to
|
|
||||||
this. Bridges will be infilled using the best direction Slic3r can detect, so
|
|
||||||
this setting does not affect them. (°, default: 45)
|
|
||||||
--fill-density Density of internal infill, expressed in the range 0% - 100%. (%, default: 20%)
|
|
||||||
--fill-pattern Fill pattern for general low-density infill. (rectilinear, alignedrectilinear,
|
|
||||||
grid, triangles, stars, cubic, line, concentric, honeycomb, 3dhoneycomb, gyroid,
|
|
||||||
hilbertcurve, archimedeanchords, octagramspiral, adaptivecubic, supportcubic,
|
|
||||||
lightning; default: stars)
|
|
||||||
--infill-every-layers N
|
|
||||||
This feature allows to combine infill and speed up your print by extruding
|
|
||||||
thicker infill layers while preserving thin perimeters, thus accuracy. (layers,
|
|
||||||
default: 1)
|
|
||||||
--infill-only-where-needed
|
|
||||||
This option will limit infill to the areas actually needed for supporting
|
|
||||||
ceilings (it will act as internal support material). If enabled, slows down the
|
|
||||||
G-code generation due to the multiple checks involved.
|
|
||||||
--solid-infill-below-area N
|
|
||||||
Force solid infill for regions having a smaller area than the specified
|
|
||||||
threshold. (mm², default: 70)
|
|
||||||
--solid-infill-every-layers N
|
|
||||||
This feature allows to force a solid layer every given number of layers. Zero to
|
|
||||||
disable. You can set this to any value (for example 9999); Slic3r will
|
|
||||||
automatically choose the maximum possible number of layers to combine according
|
|
||||||
to nozzle diameter and layer height. (layers, default: 0)
|
|
||||||
--top-fill-pattern, --external-fill-pattern, --solid-fill-pattern
|
|
||||||
Fill pattern for top infill. This only affects the top visible layer, and not
|
|
||||||
its adjacent solid shells. (rectilinear, monotonic, alignedrectilinear,
|
|
||||||
concentric, hilbertcurve, archimedeanchords, octagramspiral; default: monotonic)
|
|
||||||
Ironing:
|
|
||||||
--ironing Enable ironing of the top layers with the hot print head for smooth surface
|
|
||||||
--ironing-flowrate Percent of a flow rate relative to object's normal layer height. (%, default:
|
|
||||||
15%)
|
|
||||||
--ironing-spacing N Distance between ironing lines (mm, default: 0.1)
|
|
||||||
--ironing-type Ironing Type (top, topmost, solid; default: top)
|
|
||||||
Layers and Perimeters:
|
|
||||||
--avoid-crossing-perimeters-max-detour N
|
|
||||||
The maximum detour length for avoid crossing perimeters. If the detour is longer
|
|
||||||
than this value, avoid crossing perimeters is not applied for this travel path.
|
|
||||||
Detour length could be specified either as an absolute value or as percentage
|
|
||||||
(for example 50%) of a direct travel path. (mm or % (zero to disable), default:
|
|
||||||
0)
|
|
||||||
--bottom-solid-layers N
|
|
||||||
Number of solid layers to generate on bottom surfaces. (default: 3)
|
|
||||||
--bottom-solid-min-thickness N
|
|
||||||
The number of bottom solid layers is increased above bottom_solid_layers if
|
|
||||||
necessary to satisfy minimum thickness of bottom shell. (mm, default: 0)
|
|
||||||
--ensure-vertical-shell-thickness
|
|
||||||
Add solid infill near sloping surfaces to guarantee the vertical shell thickness
|
|
||||||
(top+bottom solid layers).
|
|
||||||
--external-perimeters-first
|
|
||||||
Print contour perimeters from the outermost one to the innermost one instead of
|
|
||||||
the default inverse order.
|
|
||||||
--extra-perimeters Add more perimeters when needed for avoiding gaps in sloping walls. Slic3r keeps
|
|
||||||
adding perimeters, until more than 70% of the loop immediately above is
|
|
||||||
supported.
|
|
||||||
--first-layer-height N
|
|
||||||
When printing with very low layer heights, you might still want to print a
|
|
||||||
thicker bottom layer to improve adhesion and tolerance for non perfect build
|
|
||||||
plates. (mm, default: 0.35)
|
|
||||||
--gap-fill-enabled Enables filling of gaps between perimeters and between the inner most perimeters
|
|
||||||
and infill.
|
|
||||||
--interface-shells Force the generation of solid shells between adjacent materials/volumes. Useful
|
|
||||||
for multi-extruder prints with translucent materials or manual soluble support
|
|
||||||
material.
|
|
||||||
--layer-height N This setting controls the height (and thus the total number) of the
|
|
||||||
slices/layers. Thinner layers give better accuracy but take more time to print.
|
|
||||||
(mm, default: 0.3)
|
|
||||||
--overhangs Experimental option to adjust flow for overhangs (bridge flow will be used), to
|
|
||||||
apply bridge speed to them and enable fan.
|
|
||||||
--perimeter-generator
|
|
||||||
Classic perimeter generator produces perimeters with constant extrusion width
|
|
||||||
and for very thin areas is used gap-fill. Arachne engine produces perimeters
|
|
||||||
with variable extrusion width. This setting also affects the Concentric infill.
|
|
||||||
(classic, arachne; default: arachne)
|
|
||||||
--perimeters N This option sets the number of perimeters to generate for each layer. Note that
|
|
||||||
Slic3r may increase this number automatically when it detects sloping surfaces
|
|
||||||
which benefit from a higher number of perimeters if the Extra Perimeters option
|
|
||||||
is enabled. ((minimum), default: 3)
|
|
||||||
--seam-position Position of perimeters starting points. (random, nearest, aligned, rear;
|
|
||||||
default: aligned)
|
|
||||||
--thick-bridges If enabled, bridges are more reliable, can bridge longer distances, but may look
|
|
||||||
worse. If disabled, bridges look better but are reliable just for shorter
|
|
||||||
bridged distances.
|
|
||||||
--thin-walls Detect single-width walls (parts where two extrusions don't fit and we need to
|
|
||||||
collapse them into a single trace).
|
|
||||||
--top-solid-layers N
|
|
||||||
Number of solid layers to generate on top surfaces. (default: 3)
|
|
||||||
--top-solid-min-thickness N
|
|
||||||
The number of top solid layers is increased above top_solid_layers if necessary
|
|
||||||
to satisfy minimum thickness of top shell. This is useful to prevent pillowing
|
|
||||||
effect when printing with variable layer height. (mm, default: 0)
|
|
||||||
Machine limits:
|
|
||||||
--machine-limits-usage
|
|
||||||
How to apply the Machine Limits (emit_to_gcode, time_estimate_only, ignore;
|
|
||||||
default: time_estimate_only)
|
|
||||||
--machine-max-acceleration-e N
|
|
||||||
Maximum acceleration of the E axis (mm/s², default: 10000,5000)
|
|
||||||
--machine-max-acceleration-extruding N
|
|
||||||
Maximum acceleration when extruding (M204 P) Marlin (legacy) firmware flavor
|
|
||||||
will use this also as travel acceleration (M204 T). (mm/s², default: 1500,1250)
|
|
||||||
--machine-max-acceleration-retracting N
|
|
||||||
Maximum acceleration when retracting (M204 R) (mm/s², default: 1500,1250)
|
|
||||||
--machine-max-acceleration-travel N
|
|
||||||
Maximum acceleration for travel moves (M204 T) (mm/s², default: 1500,1250)
|
|
||||||
--machine-max-acceleration-x N
|
|
||||||
Maximum acceleration of the X axis (mm/s², default: 9000,1000)
|
|
||||||
--machine-max-acceleration-y N
|
|
||||||
Maximum acceleration of the Y axis (mm/s², default: 9000,1000)
|
|
||||||
--machine-max-acceleration-z N
|
|
||||||
Maximum acceleration of the Z axis (mm/s², default: 500,200)
|
|
||||||
--machine-max-feedrate-e N
|
|
||||||
Maximum feedrate of the E axis (mm/s, default: 120,120)
|
|
||||||
--machine-max-feedrate-x N
|
|
||||||
Maximum feedrate of the X axis (mm/s, default: 500,200)
|
|
||||||
--machine-max-feedrate-y N
|
|
||||||
Maximum feedrate of the Y axis (mm/s, default: 500,200)
|
|
||||||
--machine-max-feedrate-z N
|
|
||||||
Maximum feedrate of the Z axis (mm/s, default: 12,12)
|
|
||||||
--machine-max-jerk-e N
|
|
||||||
Maximum jerk of the E axis (mm/s, default: 2.5,2.5)
|
|
||||||
--machine-max-jerk-x N
|
|
||||||
Maximum jerk of the X axis (mm/s, default: 10,10)
|
|
||||||
--machine-max-jerk-y N
|
|
||||||
Maximum jerk of the Y axis (mm/s, default: 10,10)
|
|
||||||
--machine-max-jerk-z N
|
|
||||||
Maximum jerk of the Z axis (mm/s, default: 0.2,0.4)
|
|
||||||
--machine-min-extruding-rate N
|
|
||||||
Minimum feedrate when extruding (M205 S) (mm/s, default: 0,0)
|
|
||||||
--machine-min-travel-rate N
|
|
||||||
Minimum travel feedrate (M205 T) (mm/s, default: 0,0)
|
|
||||||
Skirt and brim:
|
|
||||||
--brim-separation N Offset of brim from the printed object. The offset is applied after the elephant
|
|
||||||
foot compensation. (mm, default: 0)
|
|
||||||
--brim-type The places where the brim will be printed around each object on the first layer.
|
|
||||||
(no_brim, outer_only, inner_only, outer_and_inner; default: outer_only)
|
|
||||||
--brim-width N The horizontal width of the brim that will be printed around each object on the
|
|
||||||
first layer. When raft is used, no brim is generated (use
|
|
||||||
raft_first_layer_expansion). (mm, default: 0)
|
|
||||||
Speed:
|
|
||||||
--bridge-speed N Speed for printing bridges. (mm/s, default: 60)
|
|
||||||
--external-perimeter-speed N
|
|
||||||
This separate setting will affect the speed of external perimeters (the visible
|
|
||||||
ones). If expressed as percentage (for example: 80%) it will be calculated on
|
|
||||||
the perimeters speed setting above. Set to zero for auto. (mm/s or %, default:
|
|
||||||
50%)
|
|
||||||
--gap-fill-speed N Speed for filling small gaps using short zigzag moves. Keep this reasonably low
|
|
||||||
to avoid too much shaking and resonance issues. Set zero to disable gaps
|
|
||||||
filling. (mm/s, default: 20)
|
|
||||||
--infill-speed N Speed for printing the internal fill. Set to zero for auto. (mm/s, default: 80)
|
|
||||||
--ironing-speed N Ironing (mm/s, default: 15)
|
|
||||||
--perimeter-speed N Speed for perimeters (contours, aka vertical shells). Set to zero for auto.
|
|
||||||
(mm/s, default: 60)
|
|
||||||
--small-perimeter-speed N
|
|
||||||
This separate setting will affect the speed of perimeters having radius <= 6.5mm
|
|
||||||
(usually holes). If expressed as percentage (for example: 80%) it will be
|
|
||||||
calculated on the perimeters speed setting above. Set to zero for auto. (mm/s or
|
|
||||||
%, default: 15)
|
|
||||||
--solid-infill-speed N
|
|
||||||
Speed for printing solid regions (top/bottom/internal horizontal shells). This
|
|
||||||
can be expressed as a percentage (for example: 80%) over the default infill
|
|
||||||
speed above. Set to zero for auto. (mm/s or %, default: 20)
|
|
||||||
--top-solid-infill-speed N
|
|
||||||
Speed for printing top solid layers (it only applies to the uppermost external
|
|
||||||
layers and not to their internal solid layers). You may want to slow down this
|
|
||||||
to get a nicer surface finish. This can be expressed as a percentage (for
|
|
||||||
example: 80%) over the solid infill speed above. Set to zero for auto. (mm/s or
|
|
||||||
%, default: 15)
|
|
||||||
Support material:
|
|
||||||
--dont-support-bridges
|
|
||||||
Experimental option for preventing support material from being generated under
|
|
||||||
bridged areas.
|
|
||||||
--raft-contact-distance N
|
|
||||||
The vertical distance between object and raft. Ignored for soluble interface.
|
|
||||||
(mm, default: 0.1)
|
|
||||||
--raft-expansion N Expansion of the raft in XY plane for better stability. (mm, default: 1.5)
|
|
||||||
--raft-first-layer-density
|
|
||||||
Density of the first raft or support layer. (%, default: 90%)
|
|
||||||
--raft-first-layer-expansion N
|
|
||||||
Expansion of the first raft or support layer to improve adhesion to print bed.
|
|
||||||
(mm, default: 3)
|
|
||||||
--raft-layers N The object will be raised by this number of layers, and support material will be
|
|
||||||
generated under it. (layers, default: 0)
|
|
||||||
--support-material Enable support material generation.
|
|
||||||
--support-material-angle N
|
|
||||||
Use this setting to rotate the support material pattern on the horizontal plane.
|
|
||||||
(°, default: 0)
|
|
||||||
--support-material-auto
|
|
||||||
If checked, supports will be generated automatically based on the overhang
|
|
||||||
threshold value. If unchecked, supports will be generated inside the "Support
|
|
||||||
Enforcer" volumes only.
|
|
||||||
--support-material-bottom-contact-distance N
|
|
||||||
The vertical distance between the object top surface and the support material
|
|
||||||
interface. If set to zero, support_material_contact_distance will be used for
|
|
||||||
both top and bottom contact Z distances. (mm, default: 0)
|
|
||||||
--support-material-bottom-interface-layers N
|
|
||||||
Number of interface layers to insert between the object(s) and support material.
|
|
||||||
Set to -1 to use support_material_interface_layers (layers, default: -1)
|
|
||||||
--support-material-buildplate-only
|
|
||||||
Only create support if it lies on a build plate. Don't create support on a
|
|
||||||
print.
|
|
||||||
--support-material-closing-radius N
|
|
||||||
For snug supports, the support regions will be merged using morphological
|
|
||||||
closing operation. Gaps smaller than the closing radius will be filled in. (mm,
|
|
||||||
default: 2)
|
|
||||||
--support-material-contact-distance N
|
|
||||||
The vertical distance between object and support material interface. Setting
|
|
||||||
this to 0 will also prevent Slic3r from using bridge flow and speed for the
|
|
||||||
first object layer. (mm, default: 0.2)
|
|
||||||
--support-material-enforce-layers N
|
|
||||||
Generate support material for the specified number of layers counting from
|
|
||||||
bottom, regardless of whether normal support material is enabled or not and
|
|
||||||
regardless of any angle threshold. This is useful for getting more adhesion of
|
|
||||||
objects having a very thin or poor footprint on the build plate. (layers,
|
|
||||||
default: 0)
|
|
||||||
--support-material-interface-contact-loops
|
|
||||||
Cover the top contact layer of the supports with loops. Disabled by default.
|
|
||||||
--support-material-interface-layers N
|
|
||||||
Number of interface layers to insert between the object(s) and support material.
|
|
||||||
(layers, default: 3)
|
|
||||||
--support-material-interface-pattern
|
|
||||||
Pattern used to generate support material interface. Default pattern for
|
|
||||||
non-soluble support interface is Rectilinear, while default pattern for soluble
|
|
||||||
support interface is Concentric. (auto, rectilinear, concentric; default:
|
|
||||||
rectilinear)
|
|
||||||
--support-material-interface-spacing N
|
|
||||||
Spacing between interface lines. Set zero to get a solid interface. (mm,
|
|
||||||
default: 0)
|
|
||||||
--support-material-interface-speed N
|
|
||||||
Speed for printing support material interface layers. If expressed as percentage
|
|
||||||
(for example 50%) it will be calculated over support material speed. (mm/s or %,
|
|
||||||
default: 100%)
|
|
||||||
--support-material-pattern
|
|
||||||
Pattern used to generate support material. (rectilinear, rectilinear-grid,
|
|
||||||
honeycomb; default: rectilinear)
|
|
||||||
--support-material-spacing N
|
|
||||||
--support-material-speed N
|
|
||||||
--support-material-style
|
|
||||||
--support-material-synchronize-layers
|
|
||||||
--support-material-threshold N
|
|
||||||
--support-material-with-sheath
|
|
||||||
--support-material-xy-spacing N
|
|
||||||
--wipe-into-infill
|
|
||||||
--wipe-into-objects
|
|
||||||
@@ -1,21 +0,0 @@
|
|||||||
import json
|
|
||||||
import os
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
all_files = os.sys.argv[1:]
|
|
||||||
print(all_files)
|
|
||||||
keys = {}
|
|
||||||
for file in all_files:
|
|
||||||
js = json.load(open(file))
|
|
||||||
for k, v in js.items():
|
|
||||||
if k in ['filament_id','setting_id',"type","name","from","instantiation","inherits","compatible_printers","filename_format"]:
|
|
||||||
continue
|
|
||||||
if type(v) == list:
|
|
||||||
v = v[0]
|
|
||||||
keys[k] = v
|
|
||||||
print(json.dumps(keys))
|
|
||||||
with open("0.08mm_Extra_Fine.ini", "w") as f:
|
|
||||||
for k, v in keys.items():
|
|
||||||
v_str = v.replace('\n', '\\n')
|
|
||||||
f.write(f"{k} = {v_str}\n")
|
|
||||||
417
valid_keys.txt
417
valid_keys.txt
@@ -1,417 +0,0 @@
|
|||||||
load
|
|
||||||
material_profile
|
|
||||||
print_profile
|
|
||||||
printer_profile
|
|
||||||
export_3mf
|
|
||||||
export_gcode
|
|
||||||
gcode
|
|
||||||
export_obj
|
|
||||||
export_sla
|
|
||||||
sla
|
|
||||||
export_stl
|
|
||||||
gcodeviewer
|
|
||||||
help
|
|
||||||
help_fff
|
|
||||||
help_sla
|
|
||||||
info
|
|
||||||
query_print_filament_profiles
|
|
||||||
query_printer_models
|
|
||||||
save
|
|
||||||
slice
|
|
||||||
align_xy
|
|
||||||
center
|
|
||||||
cut
|
|
||||||
dont_arrange
|
|
||||||
duplicate
|
|
||||||
duplicate_grid
|
|
||||||
ensure_on_bed
|
|
||||||
no_ensure_on_bed
|
|
||||||
merge
|
|
||||||
rotate
|
|
||||||
rotate_x
|
|
||||||
rotate_y
|
|
||||||
scale
|
|
||||||
scale_to_fit
|
|
||||||
split
|
|
||||||
config_compatibility
|
|
||||||
datadir
|
|
||||||
delete_after_load
|
|
||||||
ignore_nonexistent_config
|
|
||||||
load
|
|
||||||
loglevel
|
|
||||||
opengl_aa
|
|
||||||
output
|
|
||||||
single_instance
|
|
||||||
threads
|
|
||||||
fill_pattern
|
|
||||||
load
|
|
||||||
arc_fitting
|
|
||||||
autoemit_temperature_commands
|
|
||||||
avoid_crossing_curled_overhangs
|
|
||||||
avoid_crossing_perimeters
|
|
||||||
bed_custom_model
|
|
||||||
bed_custom_texture
|
|
||||||
bed_shape
|
|
||||||
bed_temperature
|
|
||||||
before_layer_gcode
|
|
||||||
between_objects_gcode
|
|
||||||
binary_gcode
|
|
||||||
bridge_acceleration
|
|
||||||
bridge_fan_speed
|
|
||||||
chamber_minimal_temperature
|
|
||||||
chamber_temperature
|
|
||||||
color_change_gcode
|
|
||||||
colorprint_heights
|
|
||||||
complete_objects
|
|
||||||
cooling
|
|
||||||
cooling_perimeter_transition_distance
|
|
||||||
cooling_slowdown_logic
|
|
||||||
cooling_tube_length
|
|
||||||
cooling_tube_retraction
|
|
||||||
custom_parameters_filament
|
|
||||||
custom_parameters_print
|
|
||||||
custom_parameters_printer
|
|
||||||
default_acceleration
|
|
||||||
deretract_speed
|
|
||||||
disable_fan_first_layers
|
|
||||||
draft_shield
|
|
||||||
duplicate_distance
|
|
||||||
enable_dynamic_fan_speeds
|
|
||||||
end_filament_gcode
|
|
||||||
end_gcode
|
|
||||||
external_perimeter_acceleration
|
|
||||||
extra_loading_move
|
|
||||||
extruder_clearance_height
|
|
||||||
extruder_clearance_radius
|
|
||||||
extruder_colour
|
|
||||||
extruder_offset
|
|
||||||
extrusion_axis
|
|
||||||
extrusion_multiplier
|
|
||||||
fan_always_on
|
|
||||||
fan_below_layer_time
|
|
||||||
filament_abrasive
|
|
||||||
filament_colour
|
|
||||||
filament_cooling_final_speed
|
|
||||||
filament_cooling_initial_speed
|
|
||||||
filament_cooling_moves
|
|
||||||
filament_cost
|
|
||||||
filament_density
|
|
||||||
filament_deretract_speed
|
|
||||||
filament_diameter
|
|
||||||
filament_infill_max_crossing_speed
|
|
||||||
filament_infill_max_speed
|
|
||||||
filament_load_time
|
|
||||||
filament_loading_speed
|
|
||||||
filament_loading_speed_start
|
|
||||||
filament_max_volumetric_speed
|
|
||||||
filament_minimal_purge_on_wipe_tower
|
|
||||||
filament_multitool_ramming
|
|
||||||
filament_multitool_ramming_flow
|
|
||||||
filament_multitool_ramming_volume
|
|
||||||
filament_notes
|
|
||||||
filament_purge_multiplier
|
|
||||||
filament_ramming_parameters
|
|
||||||
filament_retract_before_travel
|
|
||||||
filament_retract_before_wipe
|
|
||||||
filament_retract_layer_change
|
|
||||||
filament_retract_length
|
|
||||||
filament_retract_length_toolchange
|
|
||||||
filament_retract_lift
|
|
||||||
filament_retract_lift_above
|
|
||||||
filament_retract_lift_below
|
|
||||||
filament_retract_restart_extra
|
|
||||||
filament_retract_restart_extra_toolchange
|
|
||||||
filament_retract_speed
|
|
||||||
filament_seam_gap_distance
|
|
||||||
filament_shrinkage_compensation_xy
|
|
||||||
filament_shrinkage_compensation_z
|
|
||||||
filament_soluble
|
|
||||||
filament_spool_weight
|
|
||||||
filament_stamping_distance
|
|
||||||
filament_stamping_loading_speed
|
|
||||||
filament_toolchange_delay
|
|
||||||
filament_travel_lift_before_obstacle
|
|
||||||
filament_travel_max_lift
|
|
||||||
filament_travel_ramping_lift
|
|
||||||
filament_travel_slope
|
|
||||||
filament_type
|
|
||||||
filament_unload_time
|
|
||||||
filament_unloading_speed
|
|
||||||
filament_unloading_speed_start
|
|
||||||
filament_wipe
|
|
||||||
first_layer_acceleration
|
|
||||||
first_layer_acceleration_over_raft
|
|
||||||
first_layer_bed_temperature
|
|
||||||
first_layer_infill_speed
|
|
||||||
first_layer_speed
|
|
||||||
first_layer_speed_over_raft
|
|
||||||
first_layer_temperature
|
|
||||||
full_fan_speed_layer
|
|
||||||
gcode_comments
|
|
||||||
gcode_flavor
|
|
||||||
gcode_label_objects
|
|
||||||
gcode_resolution
|
|
||||||
gcode_substitutions
|
|
||||||
high_current_on_filament_swap
|
|
||||||
infill_acceleration
|
|
||||||
infill_first
|
|
||||||
after_layer_gcode
|
|
||||||
layer_gcode
|
|
||||||
max_fan_speed
|
|
||||||
max_layer_height
|
|
||||||
max_print_height
|
|
||||||
max_print_speed
|
|
||||||
max_volumetric_extrusion_rate_slope_negative
|
|
||||||
max_volumetric_extrusion_rate_slope_positive
|
|
||||||
max_volumetric_speed
|
|
||||||
min_fan_speed
|
|
||||||
min_layer_height
|
|
||||||
min_print_speed
|
|
||||||
min_skirt_length
|
|
||||||
multimaterial_purging
|
|
||||||
notes
|
|
||||||
nozzle_diameter
|
|
||||||
nozzle_high_flow
|
|
||||||
only_retract_when_crossing_perimeters
|
|
||||||
ooze_prevention
|
|
||||||
output_filename_format
|
|
||||||
overhang_fan_speed_0
|
|
||||||
overhang_fan_speed_1
|
|
||||||
overhang_fan_speed_2
|
|
||||||
overhang_fan_speed_3
|
|
||||||
parking_pos_retraction
|
|
||||||
pause_print_gcode
|
|
||||||
perimeter_acceleration
|
|
||||||
post_process
|
|
||||||
prefer_clockwise_movements
|
|
||||||
preset_name
|
|
||||||
preset_names
|
|
||||||
printer_model
|
|
||||||
printer_notes
|
|
||||||
printer_technology
|
|
||||||
printer_variant
|
|
||||||
remaining_times
|
|
||||||
resolution
|
|
||||||
retract_before_travel
|
|
||||||
retract_before_wipe
|
|
||||||
retract_layer_change
|
|
||||||
retract_length
|
|
||||||
retract_length_toolchange
|
|
||||||
retract_lift
|
|
||||||
retract_lift_above
|
|
||||||
retract_lift_below
|
|
||||||
retract_restart_extra
|
|
||||||
retract_restart_extra_toolchange
|
|
||||||
retract_speed
|
|
||||||
seam_gap_distance
|
|
||||||
silent_mode
|
|
||||||
single_extruder_multi_material
|
|
||||||
single_extruder_multi_material_priming
|
|
||||||
skirt_distance
|
|
||||||
skirt_height
|
|
||||||
skirts
|
|
||||||
slowdown_below_layer_time
|
|
||||||
solid_infill_acceleration
|
|
||||||
solid_layers
|
|
||||||
solid_min_thickness
|
|
||||||
spiral_vase
|
|
||||||
staggered_inner_seams
|
|
||||||
standby_temperature_delta
|
|
||||||
start_filament_gcode
|
|
||||||
start_gcode
|
|
||||||
temperature
|
|
||||||
template_custom_gcode
|
|
||||||
thumbnails
|
|
||||||
thumbnails_format
|
|
||||||
toolchange_gcode
|
|
||||||
top_solid_infill_acceleration
|
|
||||||
travel_acceleration
|
|
||||||
travel_lift_before_obstacle
|
|
||||||
travel_max_lift
|
|
||||||
travel_ramping_lift
|
|
||||||
travel_short_distance_acceleration
|
|
||||||
travel_slope
|
|
||||||
travel_speed
|
|
||||||
travel_speed_z
|
|
||||||
use_firmware_retraction
|
|
||||||
use_relative_e_distances
|
|
||||||
use_volumetric_e
|
|
||||||
variable_layer_height
|
|
||||||
wipe
|
|
||||||
wipe_tower
|
|
||||||
wipe_tower_acceleration
|
|
||||||
wipe_tower_bridging
|
|
||||||
wipe_tower_brim_width
|
|
||||||
wipe_tower_cone_angle
|
|
||||||
wipe_tower_extra_flow
|
|
||||||
wipe_tower_extra_spacing
|
|
||||||
wipe_tower_no_sparse_layers
|
|
||||||
wipe_tower_width
|
|
||||||
wiping_volumes_matrix
|
|
||||||
wiping_volumes_use_custom_matrix
|
|
||||||
z_offset
|
|
||||||
bridge_flow_ratio
|
|
||||||
elefant_foot_compensation
|
|
||||||
infill_anchor
|
|
||||||
infill_anchor_max
|
|
||||||
infill_overlap
|
|
||||||
interlocking_beam
|
|
||||||
interlocking_beam_layer_count
|
|
||||||
interlocking_beam_width
|
|
||||||
interlocking_boundary_avoidance
|
|
||||||
interlocking_depth
|
|
||||||
interlocking_orientation
|
|
||||||
min_bead_width
|
|
||||||
min_feature_size
|
|
||||||
mmu_segmented_region_interlocking_depth
|
|
||||||
mmu_segmented_region_max_width
|
|
||||||
slice_closing_radius
|
|
||||||
slicing_mode
|
|
||||||
wall_distribution_count
|
|
||||||
wall_transition_angle
|
|
||||||
wall_transition_filter_deviation
|
|
||||||
wall_transition_length
|
|
||||||
xy_size_compensation
|
|
||||||
bed_temperature_extruder
|
|
||||||
extruder
|
|
||||||
infill_extruder
|
|
||||||
perimeter_extruder
|
|
||||||
solid_infill_extruder
|
|
||||||
support_material_extruder
|
|
||||||
support_material_interface_extruder
|
|
||||||
wipe_tower_extruder
|
|
||||||
automatic_extrusion_widths
|
|
||||||
external_perimeter_extrusion_width
|
|
||||||
extrusion_width
|
|
||||||
first_layer_extrusion_width
|
|
||||||
infill_extrusion_width
|
|
||||||
perimeter_extrusion_width
|
|
||||||
solid_infill_extrusion_width
|
|
||||||
support_material_extrusion_width
|
|
||||||
top_infill_extrusion_width
|
|
||||||
fuzzy_skin
|
|
||||||
fuzzy_skin_point_dist
|
|
||||||
fuzzy_skin_thickness
|
|
||||||
automatic_infill_combination
|
|
||||||
automatic_infill_combination_max_layer_height
|
|
||||||
bottom_fill_pattern
|
|
||||||
external_fill_pattern
|
|
||||||
solid_fill_pattern
|
|
||||||
bridge_angle
|
|
||||||
fill_angle
|
|
||||||
fill_density
|
|
||||||
fill_pattern
|
|
||||||
infill_every_layers
|
|
||||||
solid_infill_below_area
|
|
||||||
solid_infill_every_layers
|
|
||||||
top_fill_pattern
|
|
||||||
external_fill_pattern
|
|
||||||
solid_fill_pattern
|
|
||||||
ironing
|
|
||||||
ironing_flowrate
|
|
||||||
ironing_spacing
|
|
||||||
ironing_type
|
|
||||||
avoid_crossing_perimeters_max_detour
|
|
||||||
bottom_solid_layers
|
|
||||||
bottom_solid_min_thickness
|
|
||||||
ensure_vertical_shell_thickness
|
|
||||||
external_perimeters_first
|
|
||||||
extra_perimeters
|
|
||||||
extra_perimeters_on_overhangs
|
|
||||||
first_layer_height
|
|
||||||
gap_fill_enabled
|
|
||||||
interface_shells
|
|
||||||
layer_height
|
|
||||||
only_one_perimeter_first_layer
|
|
||||||
overhangs
|
|
||||||
perimeter_generator
|
|
||||||
perimeters
|
|
||||||
scarf_seam_entire_loop
|
|
||||||
scarf_seam_length
|
|
||||||
scarf_seam_max_segment_length
|
|
||||||
scarf_seam_on_inner_perimeters
|
|
||||||
scarf_seam_only_on_smooth
|
|
||||||
scarf_seam_placement
|
|
||||||
scarf_seam_start_height
|
|
||||||
seam_position
|
|
||||||
thick_bridges
|
|
||||||
thin_walls
|
|
||||||
top_one_perimeter_type
|
|
||||||
top_solid_layers
|
|
||||||
top_solid_min_thickness
|
|
||||||
machine_limits_usage
|
|
||||||
machine_max_acceleration_e
|
|
||||||
machine_max_acceleration_extruding
|
|
||||||
machine_max_acceleration_retracting
|
|
||||||
machine_max_acceleration_travel
|
|
||||||
machine_max_acceleration_x
|
|
||||||
machine_max_acceleration_y
|
|
||||||
machine_max_acceleration_z
|
|
||||||
machine_max_feedrate_e
|
|
||||||
machine_max_feedrate_x
|
|
||||||
machine_max_feedrate_y
|
|
||||||
machine_max_feedrate_z
|
|
||||||
machine_max_jerk_e
|
|
||||||
machine_max_jerk_x
|
|
||||||
machine_max_jerk_y
|
|
||||||
machine_max_jerk_z
|
|
||||||
machine_max_junction_deviation
|
|
||||||
machine_min_extruding_rate
|
|
||||||
machine_min_travel_rate
|
|
||||||
brim_separation
|
|
||||||
brim_type
|
|
||||||
brim_width
|
|
||||||
bridge_speed
|
|
||||||
enable_dynamic_overhang_speeds
|
|
||||||
external_perimeter_speed
|
|
||||||
gap_fill_speed
|
|
||||||
infill_speed
|
|
||||||
ironing_speed
|
|
||||||
over_bridge_speed
|
|
||||||
overhang_speed_0
|
|
||||||
overhang_speed_1
|
|
||||||
overhang_speed_2
|
|
||||||
overhang_speed_3
|
|
||||||
perimeter_speed
|
|
||||||
small_perimeter_speed
|
|
||||||
solid_infill_speed
|
|
||||||
top_solid_infill_speed
|
|
||||||
dont_support_bridges
|
|
||||||
raft_contact_distance
|
|
||||||
raft_expansion
|
|
||||||
raft_first_layer_density
|
|
||||||
raft_first_layer_expansion
|
|
||||||
raft_layers
|
|
||||||
support_material
|
|
||||||
support_material_angle
|
|
||||||
support_material_auto
|
|
||||||
support_material_bottom_contact_distance
|
|
||||||
support_material_bottom_interface_layers
|
|
||||||
support_material_buildplate_only
|
|
||||||
support_material_closing_radius
|
|
||||||
support_material_contact_distance
|
|
||||||
support_material_enforce_layers
|
|
||||||
support_material_interface_contact_loops
|
|
||||||
support_material_interface_layers
|
|
||||||
support_material_interface_pattern
|
|
||||||
support_material_interface_spacing
|
|
||||||
support_material_interface_speed
|
|
||||||
support_material_pattern
|
|
||||||
support_material_spacing
|
|
||||||
support_material_speed
|
|
||||||
support_material_style
|
|
||||||
support_material_synchronize_layers
|
|
||||||
support_material_threshold
|
|
||||||
support_material_with_sheath
|
|
||||||
support_material_xy_spacing
|
|
||||||
support_tree_angle
|
|
||||||
support_tree_angle_slow
|
|
||||||
support_tree_branch_diameter
|
|
||||||
support_tree_branch_diameter_angle
|
|
||||||
support_tree_branch_diameter_double_wall
|
|
||||||
support_tree_branch_distance
|
|
||||||
support_tree_tip_diameter
|
|
||||||
support_tree_top_rate
|
|
||||||
wipe_into_infill
|
|
||||||
wipe_into_objects
|
|
||||||
idle_temperature
|
|
||||||
Reference in New Issue
Block a user