Repetier
@func defineDefaultFilament str
@set local.i 0
@set global.default_filament ""
@while {{ local.i < length(local.str) }}
@if {{ substr(local.str, local.i, 1) == "@" }}
@break
@endif
@set global.default_filament {{ global.default_filament + substr(local.str, local.i, 1) }}
@set local.i {{ local.i + 1 }}
@endwhile
@endfunc
@func showSpoolSelection
@set local.res '{"code":200,"data":"[{\"id\":2,\"registered\":\"2025-11-11T13:41:42Z\",\"filament\":{\"id\":3,\"registered\":\"2025-11-11T13:41:26Z\",\"name\":\"amazon basics PLA | Neon Orange\",\"vendor\":{\"id\":2,\"registered\":\"2025-11-11T13:31:30Z\",\"name\":\"amazon basics\",\"empty_spool_weight\":228.0,\"external_id\":\"amazonbasics\",\"extra\":{}},\"material\":\"PLA\",\"price\":15.99,\"density\":1.24,\"diameter\":1.75,\"weight\":1000.0,\"spool_weight\":228.0,\"article_number\":\"B07T6VTG61\",\"comment\":\"todo\",\"settings_extruder_temp\":220,\"settings_bed_temp\":55,\"color_hex\":\"dd732c\",\"external_id\":\"amazonbasics_pla_neonorange\",\"extra\":{\"extr_multiplier\":\"1\"}},\"price\":15.99,\"remaining_weight\":1000.0,\"initial_weight\":1000.0,\"spool_weight\":232.0,\"used_weight\":0.0,\"remaining_length\":335283.6194167644,\"used_length\":0.0,\"archived\":false,\"extra\":{}},{\"id\":4,\"registered\":\"2025-11-15T14:22:47Z\",\"first_used\":\"2025-11-15T17:27:21Z\",\"last_used\":\"2025-11-16T07:51:48Z\",\"filament\":{\"id\":2,\"registered\":\"2025-11-11T13:34:01Z\",\"name\":\"amazon basics PLA | Hellgrau\",\"vendor\":{\"id\":2,\"registered\":\"2025-11-11T13:31:30Z\",\"name\":\"amazon basics\",\"empty_spool_weight\":228.0,\"external_id\":\"amazonbasics\",\"extra\":{}},\"material\":\"PLA\",\"price\":15.99,\"density\":1.24,\"diameter\":1.75,\"weight\":1000.0,\"spool_weight\":228.0,\"article_number\":\"B07T6VTG5Q\",\"settings_extruder_temp\":220,\"settings_bed_temp\":55,\"color_hex\":\"c4c7c1\",\"external_id\":\"amazonbasics_pla_hellgrau\",\"extra\":{\"extr_multiplier\":\"0.92\"}},\"price\":15.99,\"remaining_weight\":818.6704115127327,\"initial_weight\":1000.0,\"spool_weight\":232.0,\"used_weight\":181.32958848726724,\"remaining_length\":274486.778681401,\"used_length\":60796.8407353634,\"archived\":false,\"extra\":{}},{\"id\":5,\"registered\":\"2025-11-15T22:08:59Z\",\"filament\":{\"id\":2,\"registered\":\"2025-11-11T13:34:01Z\",\"name\":\"amazon basics PLA | Hellgrau\",\"vendor\":{\"id\":2,\"registered\":\"2025-11-11T13:31:30Z\",\"name\":\"amazon basics\",\"empty_spool_weight\":228.0,\"external_id\":\"amazonbasics\",\"extra\":{}},\"material\":\"PLA\",\"price\":15.99,\"density\":1.24,\"diameter\":1.75,\"weight\":1000.0,\"spool_weight\":228.0,\"article_number\":\"B07T6VTG5Q\",\"settings_extruder_temp\":220,\"settings_bed_temp\":55,\"color_hex\":\"c4c7c1\",\"external_id\":\"amazonbasics_pla_hellgrau\",\"extra\":{\"extr_multiplier\":\"0.92\"}},\"price\":15.99,\"remaining_weight\":1000.0,\"initial_weight\":1000.0,\"spool_weight\":228.0,\"used_weight\":0.0,\"remaining_length\":335283.6194167644,\"used_length\":0.0,\"archived\":false,\"extra\":{}},{\"id\":6,\"registered\":\"2025-11-15T22:09:19Z\",\"filament\":{\"id\":18,\"registered\":\"2025-11-15T21:49:43Z\",\"name\":\"amazon basics PLA | Weiß\",\"vendor\":{\"id\":2,\"registered\":\"2025-11-11T13:31:30Z\",\"name\":\"amazon basics\",\"empty_spool_weight\":228.0,\"external_id\":\"amazonbasics\",\"extra\":{}},\"material\":\"PLA\",\"price\":15.99,\"density\":1.24,\"diameter\":1.75,\"weight\":1000.0,\"spool_weight\":228.0,\"article_number\":\"B07S2ZXM97\",\"comment\":\"todo\",\"settings_extruder_temp\":220,\"settings_bed_temp\":55,\"color_hex\":\"ffffff\",\"extra\":{\"extr_multiplier\":\"1\"}},\"price\":15.99,\"remaining_weight\":1000.0,\"initial_weight\":1000.0,\"spool_weight\":228.0,\"used_weight\":0.0,\"remaining_length\":335283.6194167644,\"used_length\":0.0,\"archived\":false,\"extra\":{}}]"}'
@if {{ get_json(local.res, "/code") == "200" }}
@set local.spools {{ "{\"spools\":" + get_json(local.res, "/data") + "}" }}
@echo {{ local.spools }}
@set local.i 0
@set local.end {{ get_json_array_size(local.spools, "/spools") -1 }}
@echo {{ "end: " + local.end }}
@set local.default_id {{ get_json(local.spools, "/spools/0/id") }}
@set local.options "("
@while {{ local.i <= local.end }}
@if {{ local.i != local.end }}
@set local.options {{ local.options + "\"" + get_json(local.spools, "/spools/" + local.i + "/id") + " - " + get_json(local.spools, "/spools/" + local.i + "/filament/name") + "\":\"" + get_json(local.spools, "/spools/" + local.i + "/id") + "\"," }}
@if {{ get_json(local.spools, "/spools/" + local.i + "/filament/external_id") == global.default_filament }}
@set local.default_id {{ get_json(local.spools, "/spools/" + local.i + "/id") }}
@endif
@else
@set local.options {{ local.options + "\"" + get_json(local.spools, "/spools/" + local.i + "/id") + " - " + get_json(local.spools, "/spools/" + local.i + "/filament/name") + "\":\"" + get_json(local.spools, "/spools/" + local.i + "/id") + "\"" }}
@if {{ get_json(local.spools, "/spools/" + local.i + "/filament/external_id") == global.default_filament }}
@set local.default_id {{ get_json(local.spools, "/spools/" + local.i + "/id") }}
@endif
@endif
@set local.i {{ local.i + 1 }}
@endwhile
@set local.options {{ local.options + ")" }}
@echo {{ "options: " + local.options }}
@dialogStart "Bitte wähle die zu verwendende Filamentrolle aus" "spoolman - filament"
@dialogBlocking
@dialogInputDropdown "spoolman" perm.spool {{ local.options }} default({{ local.default_id }})
@dialogShow
@else
@warning "api not working, please correct manually, try to find error handling"
@endif
@endfunc
@listFunctions
@call defineDefaultFilament {{ job.name }}
;; @echo {{ global.default_filament }}
@call showSpoolSelection
;; @echo {{ perm.spool }}
This is the script I am executing before printjob, there I get the error, that the while lopp is not allowed outside of a function, but how you can see, the while loop is in functions. Thanks.