Files
OrcaSlicer/resources/profiles/UltiMaker/machine/UltiMaker 2 0.4 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

120 lines
3.5 KiB
JSON

{
"type": "machine",
"name": "UltiMaker 2 0.4 nozzle",
"inherits": "fdm_machine_common",
"from": "system",
"setting_id": "Jl8sUeuACVyrnrst",
"instantiation": "true",
"printer_model": "UltiMaker 2",
"default_print_profile": "0.18mm Standard @UltiMaker 2",
"nozzle_diameter": [
"0.4"
],
"printable_area": [
"0x0",
"224x0",
"224x225",
"0x225"
],
"printable_height": "212",
"nozzle_type": "undefine",
"auxiliary_fan": "0",
"machine_max_acceleration_extruding": [
"1500",
"1500"
],
"machine_max_acceleration_retracting": [
"1500",
"1500"
],
"machine_max_acceleration_travel": [
"3000",
"3000"
],
"machine_max_acceleration_x": [
"3000",
"3000"
],
"machine_max_acceleration_y": [
"3000",
"3000"
],
"machine_max_acceleration_z": [
"500",
"500"
],
"machine_max_speed_e": [
"120",
"120"
],
"machine_max_speed_x": [
"500",
"500"
],
"machine_max_speed_y": [
"500",
"500"
],
"machine_max_speed_z": [
"12",
"12"
],
"machine_max_jerk_e": [
"2.5",
"2.5"
],
"machine_max_jerk_x": [
"20",
"20"
],
"machine_max_jerk_y": [
"20",
"20"
],
"machine_max_jerk_z": [
"0.4",
"0.4"
],
"machine_max_junction_deviation": [
"0.013",
"0"
],
"max_layer_height": [
"0.3"
],
"min_layer_height": [
"0.08"
],
"printer_settings_id": "Qidi",
"retraction_minimum_travel": [
"5"
],
"retract_before_wipe": [
"70%"
],
"retraction_length": [
"4.5"
],
"retract_length_toolchange": [
"10"
],
"retraction_speed": [
"35"
],
"deretraction_speed": [
"0"
],
"wipe_distance": [
"0.2"
],
"single_extruder_multi_material": "1",
"change_filament_gcode": "",
"machine_pause_gcode": "M0",
"default_filament_profile": [
"Generic PLA @System"
],
"machine_start_gcode": "; # # # # # # START Header\nG21; metric values\nG90; absolute positioning\nM82 ; set extruder to absolute mode\nM107; start with the fan off\n\nM140 S[bed_temperature_initial_layer_single]; start bed heating\n\nG28 X0 Y0 Z0; move X/Y/Z to endstops\nG1 X1 Y6 F15000; move X/Y to start position\nG1 Z35 F9000; move Z to start position\n\n; Wait for bed and nozzle temperatures\nM190 S{hot_plate_temp_initial_layer[0] - 5}; wait for bed temperature - 5\nM140 S[bed_temperature_initial_layer_single]; continue bed heating\nM109 S[nozzle_temperature_initial_layer]; wait for nozzle temperature\n\n; Purge and prime\nM83; set extruder to relative mode\nG92 E0; reset extrusion distance\nG0 X0 Y1 F10000\nG1 F150 E20 ; compress the bowden tube\nG1 E-8 F1200\nG0 X30 Y1 F5000\nG0 F1200 Z{initial_layer_print_height/2}; Cut the connection to priming blob\nG0 X100 F10000; disconnect with the prime blob\nG0 X50; Avoid the metal clip holding the Ultimaker glass plate\nG0 Z0.2 F720\nG1 E8 F1200\nG1 X80 E3 F1000; intro line 1\nG1 X110 E4 F1000 ; intro line 2\nG1 X140 F600; drag filament to decompress bowden tube\nG1 X100 F3200; wipe backwards a bit\nG1 X150 F3200; back to where there is no plastic: avoid dragging\nG92 E0; reset extruder reference\nM82; set extruder to absolute mode\n\n; # # # # # # END Header",
"machine_end_gcode": "; # # # # # # START Footer\nG91; relative coordinates\n;G1 E-1 F1200; retract the filament\nG1 Z+15 X-10 Y-10 E-7 F6000; move Z a bit\n; G1 X-10 Y-10 F6000; move XY a bit\nG1 E-5.5 F300; retract the filament\nG28 X0 Y0; move X/Y to min endstops, so the head is out of the way\nM104 S0; extruder heater off\nM140 S0; heated bed heater off (if you have it)\nM84; disable motors\n; # # # # # # END Footer\n",
"scan_first_layer": "0"
}