bambuddy/backend/app/data/filament_fields.json
maziggy bfbf5d59af fix(profiles): add PLA-CF + Bambu CF/GF/specialty variants to filament_type select (#1686)
The Profiles page edit modal (shared by BL Cloud / Orca Cloud / Local
  Profiles) renders filament_type from backend/app/data/filament_fields.json
  via GET /cloud/fields/filament. The curated 11-option list pre-dated Bambu's
  CF/GF lineup expansion, so PLA-CF and most carbon/glass-fiber variants were
  unselectable — saved presets carried the wrong material code at dispatch.

  Expanded to 25 BambuStudio-aligned options grouped by family: PLA (+ CF/GF/
  AERO), PETG (+ CF), ABS (+ GF), ASA (+ CF/GF), PC, PCTG, PA family (+ CF/
  PAHT-CF/PA6-CF/PA6-GF), PET-CF, TPU, PPS family (+ CF/GF for X1E), PVA, HIPS.

  K-profiles editor unaffected (picks filament_id, not filament_type).
2026-06-09 07:38:59 +02:00

639 lines
18 KiB
JSON

{
"version": "1.0.0",
"description": "Filament preset field definitions for Bambu Lab printers",
"fields": [
{
"key": "filament_vendor",
"label": "Vendor",
"type": "text",
"category": "basic",
"description": "Filament manufacturer name"
},
{
"key": "filament_type",
"label": "Filament Type",
"type": "select",
"category": "basic",
"description": "Material type",
"options": [
{"value": "PLA", "label": "PLA"},
{"value": "PLA-CF", "label": "PLA-CF"},
{"value": "PLA-GF", "label": "PLA-GF"},
{"value": "PLA-AERO", "label": "PLA Aero"},
{"value": "PETG", "label": "PETG"},
{"value": "PETG-CF", "label": "PETG-CF"},
{"value": "ABS", "label": "ABS"},
{"value": "ABS-GF", "label": "ABS-GF"},
{"value": "ASA", "label": "ASA"},
{"value": "ASA-CF", "label": "ASA-CF"},
{"value": "ASA-GF", "label": "ASA-GF"},
{"value": "PC", "label": "PC"},
{"value": "PCTG", "label": "PCTG"},
{"value": "PA", "label": "PA (Nylon)"},
{"value": "PA-CF", "label": "PA-CF"},
{"value": "PAHT-CF", "label": "PAHT-CF"},
{"value": "PA6-CF", "label": "PA6-CF"},
{"value": "PA6-GF", "label": "PA6-GF"},
{"value": "PET-CF", "label": "PET-CF"},
{"value": "TPU", "label": "TPU"},
{"value": "PPS", "label": "PPS"},
{"value": "PPS-CF", "label": "PPS-CF"},
{"value": "PPS-GF", "label": "PPS-GF"},
{"value": "PVA", "label": "PVA"},
{"value": "HIPS", "label": "HIPS"}
]
},
{
"key": "filament_cost",
"label": "Filament Cost",
"type": "number",
"category": "basic",
"description": "Cost per kg",
"unit": "$/kg"
},
{
"key": "filament_density",
"label": "Density",
"type": "number",
"category": "basic",
"description": "Material density",
"unit": "g/cm³",
"step": 0.01
},
{
"key": "filament_diameter",
"label": "Filament Diameter",
"type": "number",
"category": "basic",
"description": "Filament diameter",
"unit": "mm",
"step": 0.01,
"min": 1.5,
"max": 3.0
},
{
"key": "nozzle_temperature",
"label": "Nozzle Temperature",
"type": "text",
"category": "temperature",
"description": "Printing temperature (comma-separated: normal,first layer)",
"unit": "°C"
},
{
"key": "nozzle_temperature_initial_layer",
"label": "Initial Layer Nozzle Temp",
"type": "text",
"category": "temperature",
"description": "First layer nozzle temperature",
"unit": "°C"
},
{
"key": "nozzle_temperature_range_low",
"label": "Min Nozzle Temp",
"type": "number",
"category": "temperature",
"description": "Minimum recommended nozzle temperature",
"unit": "°C",
"min": 150,
"max": 350
},
{
"key": "nozzle_temperature_range_high",
"label": "Max Nozzle Temp",
"type": "number",
"category": "temperature",
"description": "Maximum recommended nozzle temperature",
"unit": "°C",
"min": 150,
"max": 350
},
{
"key": "hot_plate_temp",
"label": "Bed Temperature (Hot Plate)",
"type": "number",
"category": "temperature",
"description": "Bed temperature for standard plate",
"unit": "°C",
"min": 0,
"max": 120
},
{
"key": "hot_plate_temp_initial_layer",
"label": "Initial Layer Bed Temp (Hot Plate)",
"type": "number",
"category": "temperature",
"description": "First layer bed temperature for standard plate",
"unit": "°C",
"min": 0,
"max": 120
},
{
"key": "cool_plate_temp",
"label": "Bed Temperature (Cool Plate)",
"type": "number",
"category": "temperature",
"description": "Bed temperature for cool plate",
"unit": "°C",
"min": 0,
"max": 120
},
{
"key": "cool_plate_temp_initial_layer",
"label": "Initial Layer Bed Temp (Cool Plate)",
"type": "number",
"category": "temperature",
"description": "First layer bed temperature for cool plate",
"unit": "°C",
"min": 0,
"max": 120
},
{
"key": "eng_plate_temp",
"label": "Bed Temperature (Engineering Plate)",
"type": "number",
"category": "temperature",
"description": "Bed temperature for engineering plate",
"unit": "°C",
"min": 0,
"max": 120
},
{
"key": "eng_plate_temp_initial_layer",
"label": "Initial Layer Bed Temp (Eng Plate)",
"type": "number",
"category": "temperature",
"description": "First layer bed temperature for engineering plate",
"unit": "°C",
"min": 0,
"max": 120
},
{
"key": "textured_plate_temp",
"label": "Bed Temperature (Textured Plate)",
"type": "number",
"category": "temperature",
"description": "Bed temperature for textured plate",
"unit": "°C",
"min": 0,
"max": 120
},
{
"key": "textured_plate_temp_initial_layer",
"label": "Initial Layer Bed Temp (Textured)",
"type": "number",
"category": "temperature",
"description": "First layer bed temperature for textured plate",
"unit": "°C",
"min": 0,
"max": 120
},
{
"key": "temperature_vitrification",
"label": "Glass Transition Temperature",
"type": "number",
"category": "temperature",
"description": "Glass transition temperature of material",
"unit": "°C"
},
{
"key": "pressure_advance",
"label": "Pressure Advance",
"type": "number",
"category": "flow",
"description": "Pressure advance value for linear advance",
"step": 0.001,
"min": 0,
"max": 0.2
},
{
"key": "enable_pressure_advance",
"label": "Enable Pressure Advance",
"type": "boolean",
"category": "flow",
"description": "Enable pressure advance compensation"
},
{
"key": "filament_flow_ratio",
"label": "Flow Ratio",
"type": "number",
"category": "flow",
"description": "Flow rate multiplier",
"step": 0.01,
"min": 0.8,
"max": 1.2
},
{
"key": "filament_max_volumetric_speed",
"label": "Max Volumetric Speed",
"type": "text",
"category": "flow",
"description": "Maximum volumetric flow rate (comma-separated values)",
"unit": "mm³/s"
},
{
"key": "fan_min_speed",
"label": "Min Fan Speed",
"type": "number",
"category": "cooling",
"description": "Minimum part cooling fan speed",
"unit": "%",
"min": 0,
"max": 100
},
{
"key": "fan_max_speed",
"label": "Max Fan Speed",
"type": "number",
"category": "cooling",
"description": "Maximum part cooling fan speed",
"unit": "%",
"min": 0,
"max": 100
},
{
"key": "fan_cooling_layer_time",
"label": "Fan Cooling Layer Time",
"type": "number",
"category": "cooling",
"description": "Layer time threshold for max fan",
"unit": "s",
"min": 0,
"max": 120
},
{
"key": "slow_down_layer_time",
"label": "Slow Down Layer Time",
"type": "number",
"category": "cooling",
"description": "Minimum layer time before slowing down",
"unit": "s",
"min": 0,
"max": 60
},
{
"key": "slow_down_min_speed",
"label": "Slow Down Min Speed",
"type": "number",
"category": "cooling",
"description": "Minimum speed when slowing down for cooling",
"unit": "mm/s",
"min": 5,
"max": 100
},
{
"key": "close_fan_the_first_x_layers",
"label": "Disable Fan First Layers",
"type": "number",
"category": "cooling",
"description": "Number of initial layers without fan",
"min": 0,
"max": 10
},
{
"key": "overhang_fan_threshold",
"label": "Overhang Fan Threshold",
"type": "text",
"category": "cooling",
"description": "Overhang angle to trigger fan boost"
},
{
"key": "overhang_fan_speed",
"label": "Overhang Fan Speed",
"type": "number",
"category": "cooling",
"description": "Fan speed for overhangs",
"unit": "%",
"min": 0,
"max": 100
},
{
"key": "reduce_fan_stop_start_freq",
"label": "Reduce Fan Stop/Start Frequency",
"type": "boolean",
"category": "cooling",
"description": "Prevent frequent fan speed changes"
},
{
"key": "activate_air_filtration",
"label": "Activate Air Filtration",
"type": "boolean",
"category": "chamber",
"description": "Enable chamber air filtration during print"
},
{
"key": "during_print_exhaust_fan_speed",
"label": "Exhaust Fan Speed (During Print)",
"type": "number",
"category": "chamber",
"description": "Exhaust fan speed during printing",
"unit": "%",
"min": 0,
"max": 100
},
{
"key": "complete_print_exhaust_fan_speed",
"label": "Exhaust Fan Speed (After Print)",
"type": "number",
"category": "chamber",
"description": "Exhaust fan speed after print completes",
"unit": "%",
"min": 0,
"max": 100
},
{
"key": "activate_chamber_temp_control",
"label": "Chamber Temp Control",
"type": "boolean",
"category": "chamber",
"description": "Enable active chamber temperature control"
},
{
"key": "chamber_temperature",
"label": "Chamber Temperature",
"type": "number",
"category": "chamber",
"description": "Target chamber temperature",
"unit": "°C",
"min": 0,
"max": 60
},
{
"key": "filament_retraction_length",
"label": "Retraction Length",
"type": "number",
"category": "retraction",
"description": "Length of filament to retract",
"unit": "mm",
"step": 0.1,
"min": 0,
"max": 10
},
{
"key": "filament_retract_before_wipe",
"label": "Retract Before Wipe",
"type": "number",
"category": "retraction",
"description": "Percentage of retraction before wipe",
"unit": "%",
"min": 0,
"max": 100
},
{
"key": "filament_retraction_speed",
"label": "Retraction Speed",
"type": "number",
"category": "retraction",
"description": "Speed for retraction moves",
"unit": "mm/s",
"min": 10,
"max": 120
},
{
"key": "filament_deretraction_speed",
"label": "Deretraction Speed",
"type": "number",
"category": "retraction",
"description": "Speed for priming after retraction",
"unit": "mm/s",
"min": 10,
"max": 120
},
{
"key": "filament_retract_restart_extra",
"label": "Extra Length on Restart",
"type": "number",
"category": "retraction",
"description": "Extra filament to prime after retraction",
"unit": "mm",
"step": 0.01
},
{
"key": "filament_retract_when_changing_layer",
"label": "Retract on Layer Change",
"type": "boolean",
"category": "retraction",
"description": "Force retraction when changing layers"
},
{
"key": "filament_wipe",
"label": "Enable Wipe",
"type": "boolean",
"category": "retraction",
"description": "Enable nozzle wipe during retraction"
},
{
"key": "filament_wipe_distance",
"label": "Wipe Distance",
"type": "number",
"category": "retraction",
"description": "Distance to wipe while retracting",
"unit": "mm",
"step": 0.1
},
{
"key": "filament_z_hop",
"label": "Z Hop Height",
"type": "number",
"category": "retraction",
"description": "Lift height during travel moves",
"unit": "mm",
"step": 0.1,
"min": 0,
"max": 2
},
{
"key": "filament_z_hop_types",
"label": "Z Hop Type",
"type": "select",
"category": "retraction",
"description": "Type of Z hop motion",
"options": [
{"value": "Normal Lift", "label": "Normal Lift"},
{"value": "Slope Lift", "label": "Slope Lift"},
{"value": "Spiral Lift", "label": "Spiral Lift"}
]
},
{
"key": "filament_retraction_minimum_travel",
"label": "Min Travel After Retraction",
"type": "number",
"category": "retraction",
"description": "Minimum travel distance to trigger retraction",
"unit": "mm",
"step": 0.1
},
{
"key": "filament_retract_layer_change",
"label": "Retract on Layer Change",
"type": "boolean",
"category": "retraction",
"description": "Retract when layer changes"
},
{
"key": "filament_colour",
"label": "Filament Color",
"type": "text",
"category": "appearance",
"description": "Filament color (hex format #RRGGBB)"
},
{
"key": "default_filament_colour",
"label": "Default Filament Color",
"type": "text",
"category": "appearance",
"description": "Default color for this filament type"
},
{
"key": "filament_is_support",
"label": "Is Support Material",
"type": "boolean",
"category": "advanced",
"description": "Mark as support material filament"
},
{
"key": "filament_soluble",
"label": "Soluble Material",
"type": "boolean",
"category": "advanced",
"description": "Material dissolves in liquid"
},
{
"key": "required_nozzle_HRC",
"label": "Required Nozzle HRC",
"type": "number",
"category": "advanced",
"description": "Minimum nozzle hardness required",
"min": 0,
"max": 100
},
{
"key": "filament_start_gcode",
"label": "Filament Start G-code",
"type": "text",
"category": "gcode",
"description": "G-code executed when switching to this filament"
},
{
"key": "filament_end_gcode",
"label": "Filament End G-code",
"type": "text",
"category": "gcode",
"description": "G-code executed when switching from this filament"
},
{
"key": "filament_loading_speed",
"label": "Loading Speed",
"type": "number",
"category": "ams",
"description": "Speed for loading filament",
"unit": "mm/s"
},
{
"key": "filament_loading_speed_start",
"label": "Loading Start Speed",
"type": "number",
"category": "ams",
"description": "Initial speed when loading filament",
"unit": "mm/s"
},
{
"key": "filament_unloading_speed",
"label": "Unloading Speed",
"type": "number",
"category": "ams",
"description": "Speed for unloading filament",
"unit": "mm/s"
},
{
"key": "filament_unloading_speed_start",
"label": "Unloading Start Speed",
"type": "number",
"category": "ams",
"description": "Initial speed when unloading filament",
"unit": "mm/s"
},
{
"key": "filament_toolchange_delay",
"label": "Toolchange Delay",
"type": "number",
"category": "ams",
"description": "Delay after tool change",
"unit": "s"
},
{
"key": "filament_cooling_moves",
"label": "Cooling Moves",
"type": "number",
"category": "ams",
"description": "Number of cooling moves during unload"
},
{
"key": "filament_cooling_initial_speed",
"label": "Cooling Initial Speed",
"type": "number",
"category": "ams",
"description": "Initial speed for tip shaping cooling moves",
"unit": "mm/s"
},
{
"key": "filament_cooling_final_speed",
"label": "Cooling Final Speed",
"type": "number",
"category": "ams",
"description": "Final speed for tip shaping cooling moves",
"unit": "mm/s"
},
{
"key": "filament_ramming_parameters",
"label": "Ramming Parameters",
"type": "text",
"category": "ams",
"description": "Ramming sequence parameters"
},
{
"key": "filament_minimal_purge_on_wipe_tower",
"label": "Min Purge on Wipe Tower",
"type": "number",
"category": "ams",
"description": "Minimum purge volume on wipe tower",
"unit": "mm³"
},
{
"key": "filament_multitool_ramming",
"label": "Multitool Ramming",
"type": "boolean",
"category": "ams",
"description": "Enable ramming for multi-tool"
},
{
"key": "filament_multitool_ramming_volume",
"label": "Multitool Ramming Volume",
"type": "number",
"category": "ams",
"description": "Volume to ram during multi-tool change",
"unit": "mm³"
},
{
"key": "filament_multitool_ramming_flow",
"label": "Multitool Ramming Flow",
"type": "number",
"category": "ams",
"description": "Flow rate during multi-tool ramming",
"unit": "mm³/s"
},
{
"key": "filament_long_retractions_when_cut",
"label": "Long Retractions When Cut",
"type": "boolean",
"category": "ams",
"description": "Use long retraction when cutting filament"
},
{
"key": "filament_retraction_distances_when_cut",
"label": "Retraction Distance When Cut",
"type": "text",
"category": "ams",
"description": "Retraction distance during filament cut"
}
]
}