- Registriert
- Nov. 2009
- Beiträge
- 6.738
Hallo liebe Bambu Lab Drucker Freunde,
für ein nerviges Problem, hier eine einfache Lösung, mit Script und Dokumentation.
Ausgangssituation:
Nach jedem Update von Bambu Studio fügt Bambu Lab wieder Profile für PolyLite, Polymaker & PolyTerra, Overture und eSun hinzu.
Besonders nervig, die Profile liegen im %AppData% wie auch Systemverzeichnis, in Program Files und lassen sich von vielen Usern nicht (!) bei System-Filamente im Slicer dauerhaft entfernen.
Obwohl es diese Option theoretisch gibt, übernimmt er die Einstellungen nicht, oder man wird zumindest bei einem Software-Update wieder damit zwangsbeglückt.
(Diese Fehler werden bei Github oder im Bambu Lab Forum auch gemeldet, scheinbar aber seit mehreren Versionen nicht behoben)
Am besten in Notepad oder Notepad++ als *.ps1 speichern Pfad merken und mit Befehl unten als Administrator ausführen, Bamulab Studio muss natürlich auch geschlossen sein.
Der Code ist PowerShell, benötigt Admin Rechte, ihr könnt den Code selbst einsehen und prüfen, kein Download.
Was macht das Tool?
Hier der Code des PowerShell Scripts
Zum Ausführen PowerShell als Admin öffnen (Bambu Lab Studio ist geschlossen)
-ExecutionPolicy Bypass bedeutet in diesem Fall, dass ihr den Vorgang "Execution Policy" nur für diese eine Ausführung eurer erstellten *.ps1 einmalig aufhebt und logischerweise nicht dauerhaft.
Getestet mit Bambu Lab Studio 2.6.x, 2.7.x, 2.8.x unter Windows 11, Bambu Lab X1C und A1 Mini (Privat) und H2D (beruflich).
Möglicherweise schreibe ich ein ähnliches Script demnächst noch für macOS.
Transparenz, für Hilfe bei derErstellung des Menüs in der PowerShell habe ich KI Funktionen genutzt.
Gern Feedback & Noch einmal: Vorsicht & Backup ist in der Regel euer Freund.
Sollte es dennoch wider Erwarten Probleme geben, einfach den Bambu Lab Studio Installer wieder "drüberbügeln", und alle Filamente sind wieder vorhanden, auch die möglicherweise unerwünschten.
Das Script darf frei verändert werden, ich verzichte bewußt auf Hinweise zum Autor, weil mir, nicht vollständig ohne KI Unterstützung, Lorbeeren zustehen.
Bei Veröffentlichung in anderen Foren, Github oder Sonstiges freue ich mich aber über Verlinkung und Hinweise der Quelle (Computerbase-Forenlink zu diesem Beitrag).
Einschränkungen:
Changelog:
für ein nerviges Problem, hier eine einfache Lösung, mit Script und Dokumentation.
Ausgangssituation:
Nach jedem Update von Bambu Studio fügt Bambu Lab wieder Profile für PolyLite, Polymaker & PolyTerra, Overture und eSun hinzu.
Besonders nervig, die Profile liegen im %AppData% wie auch Systemverzeichnis, in Program Files und lassen sich von vielen Usern nicht (!) bei System-Filamente im Slicer dauerhaft entfernen.
Obwohl es diese Option theoretisch gibt, übernimmt er die Einstellungen nicht, oder man wird zumindest bei einem Software-Update wieder damit zwangsbeglückt.
(Diese Fehler werden bei Github oder im Bambu Lab Forum auch gemeldet, scheinbar aber seit mehreren Versionen nicht behoben)
Vor dem Script:
Nach dem Script:
Nach dem Script:
Am besten in Notepad oder Notepad++ als *.ps1 speichern Pfad merken und mit Befehl unten als Administrator ausführen, Bamulab Studio muss natürlich auch geschlossen sein.
Der Code ist PowerShell, benötigt Admin Rechte, ihr könnt den Code selbst einsehen und prüfen, kein Download.
Was macht das Tool?
- Es prüft als erstes ob Admin Rechte (Löschrechte) vorhanden sind.
- Fragt dann im Menü ab, welche Profile der Filament-Hersteller unerwünscht sind und gelöscht werden sollen.
- Löscht dann im %AppData% Profilordner des angemeldeten (!) Users die unerwünschten *.json Dateien
- Löscht im Program Files Ordner von Bambu Lab die Profile der Fremdhersteller, die ihr im Menü auswählt
Beibehalten wird immer Bambu Lab, Sunlu und Generic - Explizit werden nur *.json Dateien gelöscht, Benutzerdefinierte Profile anderer Hersteller, Einstellungen eurer Nozzle etc. alles bleibt erhalten.
Dennoch: Sicherheitskopie und Vorsicht ist der Mutter der Porzelankiste.
Hier der Code des PowerShell Scripts
Code:
[Console]::OutputEncoding=[System.Text.Encoding]::UTF8
[Console]::InputEncoding=[System.Text.Encoding]::UTF8
while ($true) {
Clear-Host
Write-Host @'
____ _
| _ \ | |
| |_) | __ _ _ __ ___ | |__ _ _
| _ < / _` | '_ ` _ \| '_ \| | | |
| |_) | (_| | | | | | | |_) | |_| |
|____/ \__,_|_| |_| |_|_.__/ \__,_|
_____ _ _ _
/ ____| | | (_)
| (___ | |_ _ _ __| |_ ___
\___ \| __| | | |/ _` | |/ _ \
____) | |_| |_| | (_| | | (_) |
|_____/ \__|\__,_|\__,_|_|\___/
'@ -ForegroundColor Green
Write-Host "`n================================================================================"
Write-Host "--- BAMBU STUDIO BEREINIGUNGSTOOL ---" -ForegroundColor Cyan
Write-Host "--- Dieses Script entfernt unerw$([char]0x00FC)nschte Filamente aus dem Bambu Lab Studio v 1.4 ---" -ForegroundColor Cyan
Write-Host "================================================================================"
# Administrator-Prüfung
$isAdmin = ([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)
if (-not $isAdmin) {
Write-Host "`n[WICHTIGER HINWEIS]" -ForegroundColor Red
Write-Host "Einige Dateien k$([char]0x00F6)nnen nur entfernt werden, wenn PowerShell als Administrator gestartet wurde und Bambu Studio geschlossen ist." -ForegroundColor Red
Write-Host "Zur Zeit hat das Script keinen vollen Schreibzugriff." -ForegroundColor Red
}
$p=@("$env:USERPROFILE\AppData\Roaming\BambuStudio\system\BBL\filament","C:\Program Files\Bambu Studio\resources\profiles\BBL\filament")
$sub=@("$env:USERPROFILE\AppData\Roaming\BambuStudio\system\BBL\filament\P1P","$env:USERPROFILE\AppData\Roaming\BambuStudio\system\BBL\filament\Polymaker")
Write-Host "`n W$([char]0x00E4)hle eine Option aus:" -ForegroundColor Gray
Write-Host ""
Write-Host " [1] PolyLite, Polymaker & PolyTerra" -ForegroundColor DarkYellow
Write-Host " [2] Overture" -ForegroundColor Cyan
Write-Host " [3] eSun" -ForegroundColor Yellow
Write-Host " [4] Alle Profile (PolyLite, Polymaker, Overture, eSun)" -ForegroundColor Green
Write-Host " [0] BEENDEN & keine $([char]0x00C4)nderungen durchf$([char]0x00FC)hren" -ForegroundColor Red
$c=Read-Host "`n Deine Auswahl"
if($c -eq '0'){ exit }
$t=@()
switch($c){
'1'{$t=@("PolyLite","Polymaker","PolyTerra")};'2'{$t=@("Overture")};'3'{$t=@("eSun")};'4'{$t=@("PolyLite","Polymaker","PolyTerra","Overture","eSun")}
Default{Write-Host "Ung$([char]0x00FC)ltige Auswahl!" -ForegroundColor Red; Start-Sleep 2; continue }
}
if((Read-Host "`nSICHERHEITSABFRAGE: Wirklich l$([char]0x00F6)schen? (J/N)") -notmatch '^[JjYy]$'){
Write-Host "`nAbbruch, kehre zum Men$([char]0x00FC) zur$([char]0x00FC)ck..." -ForegroundColor Gray
Start-Sleep -Seconds 2
continue
}
$cnt=0
$accessError=$false
foreach($d in $p){
if(Test-Path $d){
$files=Get-ChildItem $d -Filter "*.json" -File
foreach($f in $files){
$del=$false
# Die gefährliche Negativ-Prüfung wurde entfernt.
# Stattdessen gleicht Option 4 nun alle bekannten Marken sicher ab.
foreach($term in $t){if($f.Name -like "*$term*"){$del=$true}}
if($del){
try {
Set-ItemProperty $f.FullName -Name IsReadOnly -Value $false -ErrorAction Stop
Remove-Item $f.FullName -Force -ErrorAction Stop
$cnt++
} catch {
$accessError=$true
}
}
}
}
}
foreach($f in $sub){
if(Test-Path $f){
try {
Remove-Item $f -Recurse -Force -ErrorAction Stop
} catch {
$accessError=$true
}
}
}
Write-Host "`n[ERFOLG] $cnt Dateien und Ordner verarbeitet." -ForegroundColor Green
if($accessError){
Write-Host "`n[FEHLER] Nicht alle Dateien wurden restlos gel$([char]0x00F6)scht, weil du das Script nicht mit Administrator-Rechten gestartet hast (oder Bambu Studio noch ge$([char]0x00F6)ffnet ist)." -ForegroundColor Red
Write-Host "Kehre zum Men$([char]0x00FC) zur$([char]0x00FC)ck..." -ForegroundColor Gray
Start-Sleep -Seconds 6
} else {
Write-Host "Kehre zum Men$([char]0x00FC) zur$([char]0x00FC)ck..." -ForegroundColor Gray
Start-Sleep -Seconds 6
}
}
Code:
#!/bin/zsh
while true; do
clear
echo -e "\033[0;32m"
cat << 'EOF'
____ _
| _ \ | |
| |_) | __ _ _ __ ___ | |__ _ _
| _ < / _` | '_ ` _ \| '_ \| | | |
| |_) | (_| | | | | | | |_) | |_| |
|____/ \__,_|_| |_| |_|_.__/ \__,_|
_____ _ _ _
/ ____| | | (_)
| (___ | |_ _ _ __| |_ ___
\___ \| __| | | |/ _` | |/ _ \
____) | |_| |_| | (_| | | (_) |
|_____/ \__|\__,_|\__,_|_|\___/
EOF
echo -e "\033[0m"
echo -e "\033[0;36m================================================================================\033[0m"
echo -e "\033[0;36m--- BAMBU STUDIO BEREINIGUNGSTOOL (macOS) ---\033[0m"
echo -e "\033[0;36m--- Dieses Script entfernt unerwünschte Filamente aus dem Bambu Lab Studio ---\033[0m"
echo -e "\033[0;36m================================================================================\033[0m\n"
# Pfade unter macOS
APP_DIR="/Applications/BambuStudio.app/Contents/Resources/profiles/BBL/filament"
USER_DIR="$HOME/Library/Application Support/BambuStudio/system/BBL/filament"
# Rechte-Prüfung für das App-Bundle
if [ -d "$APP_DIR" ] && [ ! -w "$APP_DIR" ]; then
echo -e "\033[0;31m[WICHTIGER HINWEIS]\nEinige Dateien können nur entfernt werden, wenn das Script mit Admin-Rechten (sudo) ausgeführt wird.\nZur Zeit hat das Script keinen vollen Schreibzugriff auf den Programmordner.\033[0m\n"
fi
echo -e "\033[0;90m Wähle eine Option aus:\033[0m\n"
echo -e "\033[0;33m [1] PolyLite, Polymaker & PolyTerra\033[0m"
echo -e "\033[0;36m [2] Overture\033[0m"
echo -e "\033[1;33m [3] eSun\033[0m"
echo -e "\033[0;32m [4] Alle Profile (PolyLite, Polymaker, Overture, eSun)\033[0m"
echo -e "\033[0;31m [0] BEENDEN & keine Änderungen durchführen\033[0m"
echo ""
printf " Deine Auswahl: "
read choice
if [[ "$choice" == "0" ]]; then
exit 0
fi
terms=()
case "$choice" in
1) terms=("PolyLite" "Polymaker" "PolyTerra") ;;
2) terms=("Overture") ;;
3) terms=("eSun") ;;
4) terms=("PolyLite" "Polymaker" "PolyTerra" "Overture" "eSun") ;;
*) echo -e "\033[0;31mUngültige Auswahl!\033[0m"; sleep 2; continue ;;
esac
echo ""
printf " SICHERHEITSABFRAGE: Wirklich löschen? (J/N): "
read confirm
if [[ ! "$confirm" =~ ^[JjYy]$ ]]; then
echo -e "\033[0;90mAbbruch, kehre zum Menü zurück...\033[0m"
sleep 2
continue
fi
count=0
accessError=0
# JSON Dateien in beiden Pfaden löschen
for target_dir in "$USER_DIR" "$APP_DIR"; do
if [ -d "$target_dir" ]; then
for term in "${terms[@]}"; do
while IFS= read -r file; do
if rm -f "$file" 2>/dev/null; then
((count++))
else
accessError=1
fi
done < <(find "$target_dir" -type f -name "*${term}*.json" 2>/dev/null)
done
fi
done
# P1P und Polymaker Unterordner löschen
for sub in "P1P" "Polymaker"; do
if [ -d "$USER_DIR/$sub" ]; then
if rm -rf "$USER_DIR/$sub" 2>/dev/null; then
:
else
accessError=1
fi
fi
done
echo -e "\n\033[0;32m[ERFOLG] $count Dateien und Ordner verarbeitet.\033[0m"
if [ $accessError -eq 1 ]; then
echo -e "\n\033[0;31m[FEHLER] Nicht alle Dateien wurden restlos gelöscht, da Rechte fehlen oder Bambu Studio geöffnet ist.\033[0m"
echo -e "\033[0;90mKehre zum Menü zurück...\033[0m"
sleep 6
else
echo -e "\033[0;90mKehre zum Menü zurück...\033[0m"
sleep 3
fi
done
Zum Ausführen PowerShell als Admin öffnen (Bambu Lab Studio ist geschlossen)
Code:
powershell.exe -ExecutionPolicy Bypass -File "Pfad zum PowerShell Script.ps1"
-ExecutionPolicy Bypass bedeutet in diesem Fall, dass ihr den Vorgang "Execution Policy" nur für diese eine Ausführung eurer erstellten *.ps1 einmalig aufhebt und logischerweise nicht dauerhaft.
Getestet mit Bambu Lab Studio 2.6.x, 2.7.x, 2.8.x unter Windows 11, Bambu Lab X1C und A1 Mini (Privat) und H2D (beruflich).
Möglicherweise schreibe ich ein ähnliches Script demnächst noch für macOS.
Transparenz, für Hilfe bei derErstellung des Menüs in der PowerShell habe ich KI Funktionen genutzt.
Gern Feedback & Noch einmal: Vorsicht & Backup ist in der Regel euer Freund.
Sollte es dennoch wider Erwarten Probleme geben, einfach den Bambu Lab Studio Installer wieder "drüberbügeln", und alle Filamente sind wieder vorhanden, auch die möglicherweise unerwünschten.
Das Script darf frei verändert werden, ich verzichte bewußt auf Hinweise zum Autor, weil mir, nicht vollständig ohne KI Unterstützung, Lorbeeren zustehen.
Bei Veröffentlichung in anderen Foren, Github oder Sonstiges freue ich mich aber über Verlinkung und Hinweise der Quelle (Computerbase-Forenlink zu diesem Beitrag).
Einschränkungen:
- Setzt unter Windows den Standard-Pfad auf Laufwerk C: voraus, ansonsten muss der Pfad angepasst werden.
(Zeile 33 und 34) - An macOS Version setzt den Standard-Pfad voraus und Datei muss mit chmod +x noch ausführbar gemacht werden. Gespeichert werden muss dies dann als BBL.command
Changelog:
- Version 1.1 Warnmeldung wenn keine Admin-Rechte oder Löschproblem wegen offenem Bambu Lab Studio
- Version 1.2 Menü eingebaut und farblich aufgefrischt
- Version 1.3 mit Negativ Prüfung bei Option 4
- Version 1.4 Final mit Sicherheitsprüfung und Abgleich der Marker der unerwünschten Profile
(KI Gegenprüfung meines Scripts, war ein Vorschlag der KI nicht auf Badword zu setzen) - Version 1.5 Version für macOS hinzugefügt, separter Spoiler Tag
Zuletzt bearbeitet: