Files
OrcaSlicer/resources/profiles/Creality/machine/Creality SPARKX i7 0.2 nozzle.json
SoftFever 8cb2e4e01e profiles: deterministic setting_id from vendor/type/name (#14432)
* profiles: enforce globally-unique, per-vendor-namespaced setting_id

Many non-Bambu vendors copied Bambu's generic setting_ids (GFSA04 alone
appeared in 1557 files), so setting_id was not globally unique. This
namespaces every vendor's ids and reserves Bambu/OrcaFilamentLibrary space.

- Reserve "G*" (Bambu) and "O*" (OrcaFilamentLibrary) id spaces.
- Assign each other vendor a 2-char prefix (first+last letter, collision
  resolved) and renumber every instantiated preset to <PREFIX><NNNN>.
- Strip setting_id from base profiles (instantiation:false) per Bambu's
  convention; assign one to instantiated presets that lacked it.
- Remove the pre-existing misspelled "settings_id" key (91 files).
- filament_id is left untouched (it is a per-material id).
- Add one-time migration script scripts/assign_vendor_setting_ids.py with a
  persisted registry resources/profiles/vendor_prefixes.json. Re-runs freeze
  existing ids; only new vendors/profiles get new ids.
- Bump version in each changed vendor index file.
- Extend scripts/orca_extra_profile_check.py with a CI guard: global
  uniqueness, in-namespace, no base setting_id, no gaps, no settings_id typo.

7425 profile files changed across 61 vendors; 0 cross-vendor collisions;
validator clean; migration idempotent. BBL and OrcaFilamentLibrary id spaces
untouched.

* profiles: add setting_id authoring guide for new vendors / profiles

* profiles: drop in-repo README; setting_id guide now lives in the wiki

* profiles: derive setting_id deterministically from vendor/type/name

* bump profile version
2026-06-27 20:11:25 +08:00

125 lines
12 KiB
JSON

{
"type": "machine",
"from": "system",
"instantiation": "true",
"inherits": "fdm_creality_common",
"printer_model": "Creality SPARKX i7",
"adaptive_bed_mesh_margin": "0",
"auxiliary_fan": "0",
"bbl_use_printhost": "0",
"bed_exclude_area": "0x0",
"bed_mesh_max": "255,255",
"bed_mesh_min": "0,0",
"bed_mesh_probe_distance": "5,5",
"before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\nG92 E0\n",
"best_object_pos": "0.5,0.5",
"change_filament_gcode": "{if toolchange_count > 1 }\r\nG17\r\nG2 Z{z_after_toolchange + 0.4} I0.86 J0.86 P1 F10000\r\n{endif}\r\nG1 X0 F18000\r\nM106 S120\r\nM8200 P S[next_extruder]\r\nM220 S100\r\n{if long_retractions_when_cut[previous_extruder]}\r\n{if retraction_distances_when_cut[previous_extruder] < 28}\r\nM8200 R E-{retraction_distances_when_cut[previous_extruder]}\r\n{else}\r\nM8200 R E-28\r\n{endif}\r\n{endif}\r\n\r\nM400\r\nG1 X5 F10000\r\nSET_VELOCITY_LIMIT ACCEL=5000 ACCEL_TO_DECEL=500\r\nG0 F500\r\n\r\nM8200 C S0\r\nSET_VELOCITY_LIMIT ACCEL=5000 ACCEL_TO_DECEL=5000\r\nG0 Y255 F18000\r\nG0 X267 F18000\r\nG0 Y130 F18000 \r\nG0 X278 F2400 \r\nM8200 R\r\nM106 S30\r\nM104 S[nozzle_temperature_range_high[previous_extruder]]\r\nM8200 L I[next_extruder]\r\n{if long_retractions_when_cut[previous_extruder]}\r\n{if retraction_distances_when_cut[previous_extruder] < 28}\r\nG1 E{retraction_distances_when_cut[previous_extruder]} F{filament_max_volumetric_speed[initial_no_support_extruder]*100} \r\n{else}\r\nG1 E28 F{filament_max_volumetric_speed[initial_no_support_extruder]*100}\r\n{endif}\r\n{endif}\r\nT[next_extruder]\r\n\r\n{if flush_length_1 > 1}\r\n;flush_length_1=[flush_length_1]\r\n; FLUSH_START\r\nM106 S70\r\n{if flush_length_2 > 1}\r\nM104 S[nozzle_temperature_range_high[next_extruder]]\r\n{else}\r\nM104 S[new_filament_temp]\r\n{endif}\r\n{if flush_length_1 > 32}\r\nG1 F60\r\nM400\r\nG1 E32 F{filament_max_volumetric_speed[initial_no_support_extruder]*100}\r\nG1 E{(flush_length_1 - 32) * 0.02} F60\r\nM400\r\nM106 S180\r\nG4 P2500\r\nM106 S30\r\nG1 E-[retraction_length] F1800\r\nG0 X267 F24000 \r\nG0 X278 F2400 \r\nG0 X267 F24000\r\nG0 X278 F2400\r\nM400\r\nM106 S70\r\nG1 E[retraction_length] F60\r\nG1 E{(flush_length_1 - 32) * 0.23} F{filament_max_volumetric_speed[initial_no_support_extruder]*100}\r\nG1 E{(flush_length_1 - 32) * 0.02} F60\r\nG1 E{(flush_length_1 - 32) * 0.23} F{filament_max_volumetric_speed[initial_no_support_extruder]*100}\r\nG1 E{(flush_length_1 - 32) * 0.02} F60\r\nM400\r\nM106 S180\r\nG4 P2500\r\nM106 S30\r\nG1 E-[retraction_length] F1800\r\nG0 X267 F24000 \r\nG0 X278 F2400 \r\nG0 X267 F24000\r\nG0 X278 F2400\r\nM400\r\nM106 S70\r\nG1 E[retraction_length] F60\r\nG1 E{(flush_length_1 - 32) * 0.23} F{filament_max_volumetric_speed[initial_no_support_extruder]*100}\r\nG1 E{(flush_length_1 - 32) * 0.02} F60\r\nG1 E{(flush_length_1 - 32) * 0.23} F{filament_max_volumetric_speed[initial_no_support_extruder]*100}\r\n{else}\r\nG1 E{flush_length_1} F{filament_max_volumetric_speed[initial_no_support_extruder]*100}\r\n{endif}\r\n{else}\r\nM104 S[new_filament_temp]\r\n{endif}\r\n\r\nM400\r\nM106 S180\r\nG4 P2500\r\nM106 S30\r\nG1 E-[old_retract_length_toolchange] F1800\r\n; FLUSH_END\r\n\r\n; WIPE\r\nSET_VELOCITY_LIMIT ACCEL=10000 ACCEL_TO_DECEL=10000\r\nG0 X267 F24000 \r\nG0 X278 F2400 \r\nG0 X267 F24000 \r\nG0 X278 F2400 \r\n\r\n{if flush_length_2 > 1}\r\n;flush_length_2=[flush_length_2]\r\n; FLUSH_START\r\n{if flush_length_3 < 1}\r\nM104 S[new_filament_temp]\r\n{endif}\r\nSET_VELOCITY_LIMIT ACCEL=5000 ACCEL_TO_DECEL=5000\r\nM400\r\nM106 S70\r\nG1 F60\r\nG1 E{flush_length_2 * 0.18 + old_retract_length_toolchange} F{filament_max_volumetric_speed[initial_no_support_extruder]*100}\r\nG1 E{flush_length_2 * 0.02} F60\r\nG1 E{flush_length_2 * 0.18} F{filament_max_volumetric_speed[initial_no_support_extruder]*100}\r\nG1 E{flush_length_2 * 0.02} F60\r\nG1 E{flush_length_2 * 0.18} F{filament_max_volumetric_speed[initial_no_support_extruder]*100}\r\nM400\r\nM106 S180\r\nG4 P2500\r\nM106 S30\r\nG1 E-[retraction_length] F1800\r\nG0 X267 F24000 \r\nG0 X278 F2400 \r\nG0 X267 F24000\r\nG0 X278 F2400\r\nM400\r\nM106 S70\r\nG1 E[retraction_length] F60\r\nG1 E{flush_length_2 * 0.02} F60\r\nG1 E{flush_length_2 * 0.18} F{filament_max_volumetric_speed[initial_no_support_extruder]*100}\r\nG1 E{flush_length_2 * 0.02} F60\r\nG1 E{flush_length_2 * 0.18} F{filament_max_volumetric_speed[initial_no_support_extruder]*100}\r\nG1 E{flush_length_2 * 0.02} F60\r\n\r\nM400\r\nM106 S180\r\nG4 P2500\r\nM106 S30\r\nG1 E-[new_retract_length_toolchange] F1800\r\n; FLUSH_END\r\n\r\n; WIPE\r\nSET_VELOCITY_LIMIT ACCEL=10000 ACCEL_TO_DECEL=10000\r\nG0 X267 F24000 \r\nG0 X278 F2400 \r\nG0 X267 F24000 \r\nG0 X278 F2400 \r\n{endif}\r\n\r\n{if flush_length_3 > 1}\r\n;flush_length_3=[flush_length_3]\r\n; FLUSH_START\r\n{if flush_length_4 < 1}\r\nM104 S[new_filament_temp]\r\n{endif}\r\nSET_VELOCITY_LIMIT ACCEL=5000 ACCEL_TO_DECEL=5000\r\nM400\r\nM106 S70\r\nG1 F60\r\nG1 E{flush_length_3 * 0.18 + new_retract_length_toolchange} F{filament_max_volumetric_speed[initial_no_support_extruder]*100}\r\nG1 E{flush_length_3 * 0.02} F60\r\nG1 E{flush_length_3 * 0.18} F{filament_max_volumetric_speed[initial_no_support_extruder]*100}\r\nG1 E{flush_length_3 * 0.02} F60\r\nG1 E{flush_length_3 * 0.18} F{filament_max_volumetric_speed[initial_no_support_extruder]*100}\r\nM400\r\nM106 S180\r\nG4 P2500\r\nM106 S30\r\nG1 E-[retraction_length] F1800\r\nG0 X267 F24000 \r\nG0 X278 F2400 \r\nG0 X267 F24000\r\nG0 X278 F2400\r\nM400\r\nM106 S70\r\nG1 E[retraction_length] F60\r\nG1 E{flush_length_3 * 0.02} F60\r\nG1 E{flush_length_3 * 0.18} F{filament_max_volumetric_speed[initial_no_support_extruder]*100}\r\nG1 E{flush_length_3 * 0.02} F60\r\nG1 E{flush_length_3 * 0.18} F{filament_max_volumetric_speed[initial_no_support_extruder]*100}\r\nG1 E{flush_length_3 * 0.02} F60\r\n\r\nM400\r\nM106 S180\r\nG4 P2500\r\nM106 S30\r\nG1 E-[new_retract_length_toolchange] F1800\r\n; FLUSH_END\r\n\r\n; WIPE\r\nSET_VELOCITY_LIMIT ACCEL=10000 ACCEL_TO_DECEL=10000\r\nG0 X267 F24000 \r\nG0 X278 F2400 \r\nG0 X267 F24000 \r\nG0 X278 F2400 \r\n{endif}\r\n\r\n{if flush_length_4 > 1}\r\n;flush_length_4=[flush_length_4]\r\n; FLUSH_START\r\nSET_VELOCITY_LIMIT ACCEL=5000 ACCEL_TO_DECEL=5000\r\nM400\r\nM106 S70\r\nG1 F60\r\nG1 E{flush_length_4 * 0.18 + new_retract_length_toolchange} F{filament_max_volumetric_speed[initial_no_support_extruder]*100}\r\nG1 E{flush_length_4 * 0.02} F60\r\nG1 E{flush_length_4 * 0.18} F{filament_max_volumetric_speed[initial_no_support_extruder]*100}\r\nG1 E{flush_length_4 * 0.02} F60\r\nG1 E{flush_length_4 * 0.18} F{filament_max_volumetric_speed[initial_no_support_extruder]*100}\r\nM400\r\nM106 S180\r\nG4 P2500\r\nM106 S30\r\nG1 E-[retraction_length] F1800\r\nG0 X267 F24000 \r\nG0 X278 F2400 \r\nG0 X267 F24000\r\nG0 X278 F2400\r\nM400\r\nM106 S70\r\nG1 E[retraction_length] F60\r\nG1 E{flush_length_4 * 0.02} F60\r\nG1 E{flush_length_4 * 0.18} F{filament_max_volumetric_speed[initial_no_support_extruder]*100} \r\nG1 E{flush_length_4 * 0.02} F60\r\nG1 E{flush_length_4 * 0.18} F{filament_max_volumetric_speed[initial_no_support_extruder]*100}\r\nG1 E{flush_length_4 * 0.02} F60\r\n\r\nM400\r\nM106 S180\r\nG4 P2500\r\nM106 S30\r\nG1 E-[new_retract_length_toolchange] F1800\r\n; FLUSH_END\r\n\r\n; WIPE\r\nSET_VELOCITY_LIMIT ACCEL=10000 ACCEL_TO_DECEL=10000\r\nG0 X267 F24000 \r\nG0 X278 F2400 \r\nG0 X267 F24000 \r\nG0 X278 F2400 \r\n{endif}\r\n\r\n\r\nSET_VELOCITY_LIMIT ACCEL=5000 ACCEL_TO_DECEL=5000\r\nG0 X267 F2400 \r\nM8200 O",
"cooling_tube_length": "0",
"cooling_tube_retraction": "0",
"creality_flush_time": "0",
"default_print_profile": "0.10mm HighDetail @Creality SPARKX i7 0.2 nozzle",
"disable_m73": "0",
"emit_machine_limits_to_gcode": "1",
"enable_filament_ramming": "0",
"enable_long_retraction_when_cut": "2",
"extra_loading_move": "0",
"extruder_clearance_height_to_lid": "130",
"extruder_clearance_height_to_rod": "40",
"extruder_clearance_radius": "64",
"fan_kickstart": "0",
"fan_speedup_overhangs": "1",
"fan_speedup_time": "0",
"file_start_gcode": "; multicolor_method = 1\n",
"gcode_flavor": "klipper",
"high_current_on_filament_swap": "0",
"host_type": "crealityprint",
"printer_agent": "crealityprint",
"machine_LED_light_exist": "1",
"machine_end_gcode": "G1 E-0.8 F2400 ; retract\nG2 Z{position[2]+3} I0.86 J0.86 P1 F10000 ; spiral lift a little from second lift\nG92 E0 ; zero the extruder\n{if print_sequence == \"by object\"}\nG0 Z{max_layer_z + 1} F1800\n{endif}\nG1 X0 Y180 F8000\nEND_PRINT",
"machine_load_filament_time": "30",
"machine_max_acceleration_e": "5000",
"machine_max_acceleration_extruding": "10000",
"machine_max_acceleration_retracting": "5000",
"machine_max_acceleration_travel": "30000",
"machine_max_acceleration_x": "10000",
"machine_max_acceleration_y": "10000",
"machine_max_acceleration_z": "500",
"machine_max_jerk_e": "3",
"machine_max_jerk_x": "9",
"machine_max_jerk_y": "9",
"machine_max_jerk_z": "3",
"machine_max_speed_e": "14",
"machine_max_speed_x": "500",
"machine_max_speed_y": "500",
"machine_max_speed_z": "20",
"machine_min_extruding_rate": "0,0",
"machine_min_travel_rate": "0,0",
"machine_pause_gcode": "PAUSE",
"machine_platform_motion_enable": "0",
"machine_ptc_exist": "0",
"machine_start_gcode": "M140 S0\nM104 S0 \nSTART_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nM83 \nM8200 P S[initial_no_support_extruder]\nM220 S100\n\nSET_VELOCITY_LIMIT ACCEL=5000 ACCEL_TO_DECEL=5000\nG0 X267 F18000 \nG0 X278 F2400\nM104 S[nozzle_temperature_initial_layer]\nM106 S0\nT[initial_no_support_extruder]\n\nM8200 O\nM204 S2000\nG1 Z3 F600\nM83\nG1 Y0 F12000\nG1 X150 F30000\nG1 Z0.2 F600\nG1 X120 Y0 E15 F{filament_max_volumetric_speed[initial_extruder]/0.3*60*0.1}\nG1 X115 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4*60}\nG1 X110 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)*60}\nG1 X105 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4*60}\nG1 X100 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)*60}\nG1 X95 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4*60}\nG91\nG1 X-1 Z-0.3\nG1 X-4\nG92 E0",
"machine_tool_change_time": "0",
"machine_unload_filament_time": "30",
"manual_filament_change": "0",
"multicolor_method": "1",
"nozzle_height": "4",
"nozzle_hrc": "0",
"nozzle_type": "hardened_steel",
"nozzle_volume": "152",
"parking_pos_retraction": "0",
"pellet_modded_printer": "0",
"preferred_orientation": "0",
"prime_tower_position_type": "Middle Upper",
"printable_area": "0x0,260x0,260x260,0x260",
"printable_height": "255",
"printer_technology": "FFF",
"printer_variant": "0.2",
"printhost_authorization_type": "key",
"printhost_ssl_ignore_revoke": "0",
"purge_in_prime_tower": "0",
"scan_first_layer": "0",
"silent_mode": "0",
"single_extruder_multi_material": "1",
"support_air_filtration": "0",
"support_chamber_temp_control": "0",
"support_multi_bed_types": "1",
"thumbnails": "140x140/PNG, 260x260/PNG",
"thumbnails_format": "PNG",
"time_cost": "0",
"time_lapse_gcode": "{if !spiral_mode && print_sequence != \"by object\" && layer_num != 0}\n;don't support timelapse gcode in spiral_mode and by object sequence for I3 structure printer\n;time lapse begin\nM5001 G92 E0\nM5001 G17\nM5001 G2 Z{layer_z + 0.4} I0.86 J0.86 P1 F20000 ; spiral lift a little\nM5001 G1 X267 Y110 F24000 ; move to safe pos\nM5001 P15\nM5001 M400 P300\nM5001 G92 E0\n;time lapse end\n{endif}",
"use_firmware_retraction": "0",
"use_relative_e_distances": "1",
"z_offset": "0",
"default_filament_profile": [
"Generic PLA @SPARKX i7-all"
],
"deretraction_speed": "30",
"extruder_colour": "#FCE94F",
"extruder_offset": "0x0",
"long_retractions_when_cut": "1",
"max_layer_height": "0.14",
"min_layer_height": "0.04",
"nozzle_diameter": [
"0.2"
],
"retract_before_wipe": "100%",
"retract_length_toolchange": "2",
"retract_lift_above": "0",
"retract_lift_below": "254",
"retract_lift_enforce": "All Surfaces",
"retract_restart_extra": "0",
"retract_restart_extra_toolchange": "0",
"retract_when_changing_layer": "1",
"retraction_distances_when_cut": "28",
"retraction_length": "0.4",
"retraction_minimum_travel": "1",
"retraction_speed": "30",
"travel_slope": "3",
"wipe": "1",
"wipe_distance": "2",
"z_hop": "0.4",
"z_hop_types": "Slope Lift",
"name": "Creality SPARKX i7 0.2 nozzle",
"setting_id": "I4qasXKWnIbPgYbu"
}