mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-10-04 22:31:02 +00:00
# Description
<!--
> Please provide a summary of the changes made in this PR. Include
details such as:
> * What issue does this PR address or fix?
> * What new features or enhancements does this PR introduce?
> * Are there any breaking changes or dependencies that need to be
considered?
-->
This PR fixes some problems with the current profiles for Blocks
printers
- **Fix**: start gcode for the Blocks 0.6mm RF50 printer where the start
gcode command had no newline separation on two commands so they were
concatenated and would make printing fail.
- **Added**: multi material plates selection for the RF50 printers,
right now only textured PEI and smooth high temp plates are available,
but in the future more to come.
- **Naming consistancy** for Blocks Pro S100 processes and filaments,
target labels used bare `@Blocks` while RD50 and RF50 used
`@Blocks_RD50` and `@Blocks_RF50`. Renamed Pro S100 to
`@Blocks_Pro_S100` to match the structure.
- **Filament restructure**: replaced Blocks tuned-generic filaments
(e.g. `Generic PLA @Blocks`) with real Blocks-branded filaments. One for
each printer model. Every material keeps the same coverage we already
had.
- **Fix**: `sparse_infill_pattern` was misspelled `sparse_infill_patter`
on 13 `@Blocks_RF50` process presets. Harmless due to inheritances but
fixed non the less.
- **Fix**: `Blocks RD50 V2 0.4 nozzle.json` was missing
`printer_variant`.
- **Normalize** all Blocks profiles to standard formatting (tab
indentation, key order) and bumped `Blocks.json` version.
- **RF50 retraction length** increased on all RF50 machines.
## Tests
- [x] `orca_profile_tool.py check --vendor Blocks` - clean
- [x] `orca_profile_tool.py check` - clean
- [x] `normalize` / `generate-id` / `update-index --dry-run` — fully
settled, no pending changes
- [x] `check_profile.sh --vendor Blocks` → `profile_tool` check — passes
- [ ] `validate_system` / `validate_slice` /
`validate_filament_subtypes` / `validate_custom` —
could not run locally (dev host's glibc 2.36 is older than the nightly
validator binary's
required 2.38); needs CI or a compatible host
- [x] In-app confirmation that the Blocks bundle loads
<!--
> A guide for users on how to download the artifacts from this PR.
-->
[How to Download Pull Requests Artifacts for
Testing](https://www.orcaslicer.com/wiki/how_to_download_pr_artifacts)
451 lines
12 KiB
JSON
451 lines
12 KiB
JSON
{
|
|
"name": "Blocks",
|
|
"version": "02.04.00.13",
|
|
"force_update": "0",
|
|
"description": "Blocks configurations",
|
|
"machine_model_list": [
|
|
{
|
|
"name": "BLOCKS Pro S100",
|
|
"sub_path": "machine/BLOCKS Pro S100.json"
|
|
},
|
|
{
|
|
"name": "BLOCKS RD50 V2",
|
|
"sub_path": "machine/BLOCKS RD50 V2.json"
|
|
},
|
|
{
|
|
"name": "BLOCKS RF50",
|
|
"sub_path": "machine/BLOCKS RF50.json"
|
|
}
|
|
],
|
|
"process_list": [
|
|
{
|
|
"name": "fdm_process_common",
|
|
"sub_path": "process/fdm_process_common.json"
|
|
},
|
|
{
|
|
"name": "fdm_process_blocks_common",
|
|
"sub_path": "process/fdm_process_blocks_common.json"
|
|
},
|
|
{
|
|
"name": "0.12mm Fine 0.4 nozzle @Blocks_RD50_V2",
|
|
"sub_path": "process/0.12mm Fine 0.4 nozzle @Blocks_RD50_V2.json"
|
|
},
|
|
{
|
|
"name": "0.12mm Fine 0.4 nozzle @Blocks_RF50",
|
|
"sub_path": "process/0.12mm Fine 0.4 nozzle @Blocks_RF50.json"
|
|
},
|
|
{
|
|
"name": "0.16mm Optimal 0.4 nozzle @Blocks_RD50_V2",
|
|
"sub_path": "process/0.16mm Optimal 0.4 nozzle @Blocks_RD50_V2.json"
|
|
},
|
|
{
|
|
"name": "0.16mm Optimal 0.4 nozzle @Blocks_RF50",
|
|
"sub_path": "process/0.16mm Optimal 0.4 nozzle @Blocks_RF50.json"
|
|
},
|
|
{
|
|
"name": "0.20mm Standard 0.4 nozzle @Blocks_Pro_S100",
|
|
"sub_path": "process/0.20mm Standard 0.4 nozzle @Blocks_Pro_S100.json"
|
|
},
|
|
{
|
|
"name": "0.20mm Standard 0.4 nozzle @Blocks_RD50_V2",
|
|
"sub_path": "process/0.20mm Standard 0.4 nozzle @Blocks_RD50_V2.json"
|
|
},
|
|
{
|
|
"name": "0.20mm Standard 0.4 nozzle @Blocks_RF50",
|
|
"sub_path": "process/0.20mm Standard 0.4 nozzle @Blocks_RF50.json"
|
|
},
|
|
{
|
|
"name": "0.24mm Draft 0.4 nozzle @Blocks_Pro_S100",
|
|
"sub_path": "process/0.24mm Draft 0.4 nozzle @Blocks_Pro_S100.json"
|
|
},
|
|
{
|
|
"name": "0.24mm Draft 0.4 nozzle @Blocks_RD50_V2",
|
|
"sub_path": "process/0.24mm Draft 0.4 nozzle @Blocks_RD50_V2.json"
|
|
},
|
|
{
|
|
"name": "0.24mm Draft 0.4 nozzle @Blocks_RF50",
|
|
"sub_path": "process/0.24mm Draft 0.4 nozzle @Blocks_RF50.json"
|
|
},
|
|
{
|
|
"name": "0.28mm Extra Draft 0.4 nozzle @Blocks_RD50_V2",
|
|
"sub_path": "process/0.28mm Extra Draft 0.4 nozzle @Blocks_RD50_V2.json"
|
|
},
|
|
{
|
|
"name": "0.28mm Extra Draft 0.4 nozzle @Blocks_RF50",
|
|
"sub_path": "process/0.28mm Extra Draft 0.4 nozzle @Blocks_RF50.json"
|
|
},
|
|
{
|
|
"name": "0.30mm Extra Draft 0.4 nozzle @Blocks_Pro_S100",
|
|
"sub_path": "process/0.30mm Extra Draft 0.4 nozzle @Blocks_Pro_S100.json"
|
|
},
|
|
{
|
|
"name": "fdm_process_common 0.6 nozzle",
|
|
"sub_path": "process/fdm_process_common 0.6 nozzle.json"
|
|
},
|
|
{
|
|
"name": "fdm_process_common 0.8 nozzle",
|
|
"sub_path": "process/fdm_process_common 0.8 nozzle.json"
|
|
},
|
|
{
|
|
"name": "fdm_process_common 1.0 nozzle",
|
|
"sub_path": "process/fdm_process_common 1.0 nozzle.json"
|
|
},
|
|
{
|
|
"name": "fdm_process_common 1.2 nozzle",
|
|
"sub_path": "process/fdm_process_common 1.2 nozzle.json"
|
|
},
|
|
{
|
|
"name": "0.20mm Optimal 0.6 nozzle @Blocks_RD50_V2",
|
|
"sub_path": "process/0.20mm Optimal 0.6 nozzle @Blocks_RD50_V2.json"
|
|
},
|
|
{
|
|
"name": "0.20mm Optimal 0.6 nozzle @Blocks_RF50",
|
|
"sub_path": "process/0.20mm Optimal 0.6 nozzle @Blocks_RF50.json"
|
|
},
|
|
{
|
|
"name": "0.26mm Standard 0.6 nozzle @Blocks_RD50_V2",
|
|
"sub_path": "process/0.26mm Standard 0.6 nozzle @Blocks_RD50_V2.json"
|
|
},
|
|
{
|
|
"name": "0.26mm Standard 0.6 nozzle @Blocks_RF50",
|
|
"sub_path": "process/0.26mm Standard 0.6 nozzle @Blocks_RF50.json"
|
|
},
|
|
{
|
|
"name": "0.30mm Standard 0.6 nozzle @Blocks_Pro_S100",
|
|
"sub_path": "process/0.30mm Standard 0.6 nozzle @Blocks_Pro_S100.json"
|
|
},
|
|
{
|
|
"name": "0.32mm Draft 0.6 nozzle @Blocks_RD50_V2",
|
|
"sub_path": "process/0.32mm Draft 0.6 nozzle @Blocks_RD50_V2.json"
|
|
},
|
|
{
|
|
"name": "0.32mm Draft 0.6 nozzle @Blocks_RF50",
|
|
"sub_path": "process/0.32mm Draft 0.6 nozzle @Blocks_RF50.json"
|
|
},
|
|
{
|
|
"name": "0.38mm Extra Draft 0.6 nozzle @Blocks_RD50_V2",
|
|
"sub_path": "process/0.38mm Extra Draft 0.6 nozzle @Blocks_RD50_V2.json"
|
|
},
|
|
{
|
|
"name": "0.38mm Extra Draft 0.6 nozzle @Blocks_RF50",
|
|
"sub_path": "process/0.38mm Extra Draft 0.6 nozzle @Blocks_RF50.json"
|
|
},
|
|
{
|
|
"name": "0.40mm Draft 0.6 nozzle @Blocks_Pro_S100",
|
|
"sub_path": "process/0.40mm Draft 0.6 nozzle @Blocks_Pro_S100.json"
|
|
},
|
|
{
|
|
"name": "0.30mm Optimal 0.8 nozzle @Blocks_Pro_S100",
|
|
"sub_path": "process/0.30mm Optimal 0.8 nozzle @Blocks_Pro_S100.json"
|
|
},
|
|
{
|
|
"name": "0.30mm Optimal 0.8 nozzle @Blocks_RD50_V2",
|
|
"sub_path": "process/0.30mm Optimal 0.8 nozzle @Blocks_RD50_V2.json"
|
|
},
|
|
{
|
|
"name": "0.30mm Optimal 0.8 nozzle @Blocks_RF50",
|
|
"sub_path": "process/0.30mm Optimal 0.8 nozzle @Blocks_RF50.json"
|
|
},
|
|
{
|
|
"name": "0.38mm Standard 0.8 nozzle @Blocks_RD50_V2",
|
|
"sub_path": "process/0.38mm Standard 0.8 nozzle @Blocks_RD50_V2.json"
|
|
},
|
|
{
|
|
"name": "0.38mm Standard 0.8 nozzle @Blocks_RF50",
|
|
"sub_path": "process/0.38mm Standard 0.8 nozzle @Blocks_RF50.json"
|
|
},
|
|
{
|
|
"name": "0.40mm Standard 0.8 nozzle @Blocks_Pro_S100",
|
|
"sub_path": "process/0.40mm Standard 0.8 nozzle @Blocks_Pro_S100.json"
|
|
},
|
|
{
|
|
"name": "0.46mm Draft 0.8 nozzle @Blocks_RD50_V2",
|
|
"sub_path": "process/0.46mm Draft 0.8 nozzle @Blocks_RD50_V2.json"
|
|
},
|
|
{
|
|
"name": "0.46mm Draft 0.8 nozzle @Blocks_RF50",
|
|
"sub_path": "process/0.46mm Draft 0.8 nozzle @Blocks_RF50.json"
|
|
},
|
|
{
|
|
"name": "0.50mm Draft 0.8 nozzle @Blocks_Pro_S100",
|
|
"sub_path": "process/0.50mm Draft 0.8 nozzle @Blocks_Pro_S100.json"
|
|
},
|
|
{
|
|
"name": "0.54mm Extra Draft 0.8 nozzle @Blocks_RD50_V2",
|
|
"sub_path": "process/0.54mm Extra Draft 0.8 nozzle @Blocks_RD50_V2.json"
|
|
},
|
|
{
|
|
"name": "0.54mm Extra Draft 0.8 nozzle @Blocks_RF50",
|
|
"sub_path": "process/0.54mm Extra Draft 0.8 nozzle @Blocks_RF50.json"
|
|
},
|
|
{
|
|
"name": "0.30mm Optimal 1.0 nozzle @Blocks_Pro_S100",
|
|
"sub_path": "process/0.30mm Optimal 1.0 nozzle @Blocks_Pro_S100.json"
|
|
},
|
|
{
|
|
"name": "0.50mm Standard 1.0 nozzle @Blocks_Pro_S100",
|
|
"sub_path": "process/0.50mm Standard 1.0 nozzle @Blocks_Pro_S100.json"
|
|
},
|
|
{
|
|
"name": "0.60mm Draft 1.0 nozzle @Blocks_Pro_S100",
|
|
"sub_path": "process/0.60mm Draft 1.0 nozzle @Blocks_Pro_S100.json"
|
|
},
|
|
{
|
|
"name": "0.70mm Extra Draft 1.0 nozzle @Blocks_Pro_S100",
|
|
"sub_path": "process/0.70mm Extra Draft 1.0 nozzle @Blocks_Pro_S100.json"
|
|
},
|
|
{
|
|
"name": "0.50mm Optimal 1.2 nozzle @Blocks_Pro_S100",
|
|
"sub_path": "process/0.50mm Optimal 1.2 nozzle @Blocks_Pro_S100.json"
|
|
},
|
|
{
|
|
"name": "0.60mm Standard 1.2 nozzle @Blocks_Pro_S100",
|
|
"sub_path": "process/0.60mm Standard 1.2 nozzle @Blocks_Pro_S100.json"
|
|
},
|
|
{
|
|
"name": "0.70mm Draft 1.2 nozzle @Blocks_Pro_S100",
|
|
"sub_path": "process/0.70mm Draft 1.2 nozzle @Blocks_Pro_S100.json"
|
|
},
|
|
{
|
|
"name": "0.80mm Extra Draft 1.2 nozzle @Blocks_Pro_S100",
|
|
"sub_path": "process/0.80mm Extra Draft 1.2 nozzle @Blocks_Pro_S100.json"
|
|
}
|
|
],
|
|
"filament_list": [
|
|
{
|
|
"name": "fdm_filament_common",
|
|
"sub_path": "filament/fdm_filament_common.json"
|
|
},
|
|
{
|
|
"name": "fdm_filament_abs",
|
|
"sub_path": "filament/fdm_filament_abs.json"
|
|
},
|
|
{
|
|
"name": "fdm_filament_asa",
|
|
"sub_path": "filament/fdm_filament_asa.json"
|
|
},
|
|
{
|
|
"name": "fdm_filament_pa",
|
|
"sub_path": "filament/fdm_filament_pa.json"
|
|
},
|
|
{
|
|
"name": "fdm_filament_pc",
|
|
"sub_path": "filament/fdm_filament_pc.json"
|
|
},
|
|
{
|
|
"name": "fdm_filament_petg",
|
|
"sub_path": "filament/fdm_filament_petg.json"
|
|
},
|
|
{
|
|
"name": "fdm_filament_pla",
|
|
"sub_path": "filament/fdm_filament_pla.json"
|
|
},
|
|
{
|
|
"name": "fdm_filament_pva",
|
|
"sub_path": "filament/fdm_filament_pva.json"
|
|
},
|
|
{
|
|
"name": "fdm_filament_tpu",
|
|
"sub_path": "filament/fdm_filament_tpu.json"
|
|
},
|
|
{
|
|
"name": "Blocks ABS @base",
|
|
"sub_path": "filament/Blocks ABS @base.json"
|
|
},
|
|
{
|
|
"name": "Blocks ASA @base",
|
|
"sub_path": "filament/Blocks ASA @base.json"
|
|
},
|
|
{
|
|
"name": "Blocks ASA-CF @base",
|
|
"sub_path": "filament/Blocks ASA-CF @base.json"
|
|
},
|
|
{
|
|
"name": "Blocks PA @base",
|
|
"sub_path": "filament/Blocks PA @base.json"
|
|
},
|
|
{
|
|
"name": "Blocks PA-CF @base",
|
|
"sub_path": "filament/Blocks PA-CF @base.json"
|
|
},
|
|
{
|
|
"name": "Blocks PC @base",
|
|
"sub_path": "filament/Blocks PC @base.json"
|
|
},
|
|
{
|
|
"name": "Blocks PETG @base",
|
|
"sub_path": "filament/Blocks PETG @base.json"
|
|
},
|
|
{
|
|
"name": "Blocks PLA @base",
|
|
"sub_path": "filament/Blocks PLA @base.json"
|
|
},
|
|
{
|
|
"name": "Blocks PLA-CF @base",
|
|
"sub_path": "filament/Blocks PLA-CF @base.json"
|
|
},
|
|
{
|
|
"name": "Blocks PVA @base",
|
|
"sub_path": "filament/Blocks PVA @base.json"
|
|
},
|
|
{
|
|
"name": "Blocks TPU @base",
|
|
"sub_path": "filament/Blocks TPU @base.json"
|
|
},
|
|
{
|
|
"name": "Blocks ABS @Blocks_RD50_V2",
|
|
"sub_path": "filament/Blocks ABS @Blocks_RD50_V2.json"
|
|
},
|
|
{
|
|
"name": "Blocks ABS @Blocks_RF50",
|
|
"sub_path": "filament/Blocks ABS @Blocks_RF50.json"
|
|
},
|
|
{
|
|
"name": "Blocks ASA @Blocks_RD50_V2",
|
|
"sub_path": "filament/Blocks ASA @Blocks_RD50_V2.json"
|
|
},
|
|
{
|
|
"name": "Blocks ASA @Blocks_RF50",
|
|
"sub_path": "filament/Blocks ASA @Blocks_RF50.json"
|
|
},
|
|
{
|
|
"name": "Blocks ASA-CF @Blocks_RD50_V2",
|
|
"sub_path": "filament/Blocks ASA-CF @Blocks_RD50_V2.json"
|
|
},
|
|
{
|
|
"name": "Blocks ASA-CF @Blocks_RF50",
|
|
"sub_path": "filament/Blocks ASA-CF @Blocks_RF50.json"
|
|
},
|
|
{
|
|
"name": "Blocks PA @Blocks_RD50_V2",
|
|
"sub_path": "filament/Blocks PA @Blocks_RD50_V2.json"
|
|
},
|
|
{
|
|
"name": "Blocks PA @Blocks_RF50",
|
|
"sub_path": "filament/Blocks PA @Blocks_RF50.json"
|
|
},
|
|
{
|
|
"name": "Blocks PA-CF @Blocks_RD50_V2",
|
|
"sub_path": "filament/Blocks PA-CF @Blocks_RD50_V2.json"
|
|
},
|
|
{
|
|
"name": "Blocks PA-CF @Blocks_RF50",
|
|
"sub_path": "filament/Blocks PA-CF @Blocks_RF50.json"
|
|
},
|
|
{
|
|
"name": "Blocks PC @Blocks_RD50_V2",
|
|
"sub_path": "filament/Blocks PC @Blocks_RD50_V2.json"
|
|
},
|
|
{
|
|
"name": "Blocks PC @Blocks_RF50",
|
|
"sub_path": "filament/Blocks PC @Blocks_RF50.json"
|
|
},
|
|
{
|
|
"name": "Blocks PETG @Blocks_Pro_S100",
|
|
"sub_path": "filament/Blocks PETG @Blocks_Pro_S100.json"
|
|
},
|
|
{
|
|
"name": "Blocks PETG @Blocks_RD50_V2",
|
|
"sub_path": "filament/Blocks PETG @Blocks_RD50_V2.json"
|
|
},
|
|
{
|
|
"name": "Blocks PETG @Blocks_RF50",
|
|
"sub_path": "filament/Blocks PETG @Blocks_RF50.json"
|
|
},
|
|
{
|
|
"name": "Blocks PLA @Blocks_Pro_S100",
|
|
"sub_path": "filament/Blocks PLA @Blocks_Pro_S100.json"
|
|
},
|
|
{
|
|
"name": "Blocks PLA @Blocks_RD50_V2",
|
|
"sub_path": "filament/Blocks PLA @Blocks_RD50_V2.json"
|
|
},
|
|
{
|
|
"name": "Blocks PLA @Blocks_RF50",
|
|
"sub_path": "filament/Blocks PLA @Blocks_RF50.json"
|
|
},
|
|
{
|
|
"name": "Blocks PLA-CF @Blocks_RD50_V2",
|
|
"sub_path": "filament/Blocks PLA-CF @Blocks_RD50_V2.json"
|
|
},
|
|
{
|
|
"name": "Blocks PLA-CF @Blocks_RF50",
|
|
"sub_path": "filament/Blocks PLA-CF @Blocks_RF50.json"
|
|
},
|
|
{
|
|
"name": "Blocks PVA @Blocks_RD50_V2",
|
|
"sub_path": "filament/Blocks PVA @Blocks_RD50_V2.json"
|
|
},
|
|
{
|
|
"name": "Blocks PVA @Blocks_RF50",
|
|
"sub_path": "filament/Blocks PVA @Blocks_RF50.json"
|
|
},
|
|
{
|
|
"name": "Blocks TPU @Blocks_Pro_S100",
|
|
"sub_path": "filament/Blocks TPU @Blocks_Pro_S100.json"
|
|
},
|
|
{
|
|
"name": "Blocks TPU @Blocks_RD50_V2",
|
|
"sub_path": "filament/Blocks TPU @Blocks_RD50_V2.json"
|
|
},
|
|
{
|
|
"name": "Blocks TPU @Blocks_RF50",
|
|
"sub_path": "filament/Blocks TPU @Blocks_RF50.json"
|
|
}
|
|
],
|
|
"machine_list": [
|
|
{
|
|
"name": "fdm_machine_common",
|
|
"sub_path": "machine/fdm_machine_common.json"
|
|
},
|
|
{
|
|
"name": "fdm_klipper_common",
|
|
"sub_path": "machine/fdm_klipper_common.json"
|
|
},
|
|
{
|
|
"name": "BLOCKS Pro S100 0.4 nozzle",
|
|
"sub_path": "machine/BLOCKS Pro S100 0.4 nozzle.json"
|
|
},
|
|
{
|
|
"name": "BLOCKS Pro S100 0.6 nozzle",
|
|
"sub_path": "machine/BLOCKS Pro S100 0.6 nozzle.json"
|
|
},
|
|
{
|
|
"name": "BLOCKS Pro S100 0.8 nozzle",
|
|
"sub_path": "machine/BLOCKS Pro S100 0.8 nozzle.json"
|
|
},
|
|
{
|
|
"name": "BLOCKS Pro S100 1.0 nozzle",
|
|
"sub_path": "machine/BLOCKS Pro S100 1.0 nozzle.json"
|
|
},
|
|
{
|
|
"name": "BLOCKS Pro S100 1.2 nozzle",
|
|
"sub_path": "machine/BLOCKS Pro S100 1.2 nozzle.json"
|
|
},
|
|
{
|
|
"name": "BLOCKS RD50 V2 0.4 nozzle",
|
|
"sub_path": "machine/BLOCKS RD50 V2 0.4 nozzle.json"
|
|
},
|
|
{
|
|
"name": "BLOCKS RD50 V2 0.6 nozzle",
|
|
"sub_path": "machine/BLOCKS RD50 V2 0.6 nozzle.json"
|
|
},
|
|
{
|
|
"name": "BLOCKS RD50 V2 0.8 nozzle",
|
|
"sub_path": "machine/BLOCKS RD50 V2 0.8 nozzle.json"
|
|
},
|
|
{
|
|
"name": "BLOCKS RF50 0.4 nozzle",
|
|
"sub_path": "machine/BLOCKS RF50 0.4 nozzle.json"
|
|
},
|
|
{
|
|
"name": "BLOCKS RF50 0.6 nozzle",
|
|
"sub_path": "machine/BLOCKS RF50 0.6 nozzle.json"
|
|
},
|
|
{
|
|
"name": "BLOCKS RF50 0.8 nozzle",
|
|
"sub_path": "machine/BLOCKS RF50 0.8 nozzle.json"
|
|
}
|
|
]
|
|
}
|