mirror of
https://github.com/maziggy/bambuddy.git
synced 2026-10-07 14:41:24 +02:00
- Fixed bug, where Bambu Lab filament colors not showed correctly
- Added all Bambu Lab filament color tags
This commit is contained in:
@@ -63,78 +63,266 @@ import { FilamentHoverCard, EmptySlotHoverCard } from '../components/FilamentHov
|
||||
import { LinkSpoolModal } from '../components/LinkSpoolModal';
|
||||
import { useToast } from '../contexts/ToastContext';
|
||||
|
||||
// Bambu Lab color code mapping (color suffix from tray_id_name -> color name)
|
||||
// tray_id_name format: "A00-Y2" where Y2 is the color code
|
||||
const BAMBU_COLOR_CODES: Record<string, string> = {
|
||||
// Yellows
|
||||
'Y0': 'Yellow',
|
||||
'Y1': 'Savana Yellow',
|
||||
'Y2': 'Sunflower Yellow',
|
||||
'Y3': 'Lemon Yellow',
|
||||
// Oranges
|
||||
'O0': 'Orange',
|
||||
'O1': 'Mandarin Orange',
|
||||
'O2': 'Coral Orange',
|
||||
// Reds
|
||||
'R0': 'Red',
|
||||
'R1': 'Scarlet Red',
|
||||
'R2': 'Magenta',
|
||||
'R3': 'Sakura Pink',
|
||||
'R4': 'Raspberry Red',
|
||||
// Pinks
|
||||
'P0': 'Pink',
|
||||
'P1': 'Sakura Pink',
|
||||
// Purples
|
||||
'V0': 'Purple',
|
||||
'V1': 'Violet',
|
||||
'V2': 'Lilac Purple',
|
||||
// Blues
|
||||
'B0': 'Blue',
|
||||
'B1': 'Sky Blue',
|
||||
'B2': 'Navy Blue',
|
||||
'B3': 'Ice Blue',
|
||||
'B4': 'Cyan',
|
||||
// Greens
|
||||
'G0': 'Green',
|
||||
'G1': 'Grass Green',
|
||||
'G2': 'Lime Green',
|
||||
'G3': 'Mint Green',
|
||||
'G4': 'Olive Green',
|
||||
'G5': 'Jungle Green',
|
||||
'G6': 'Bambu Green',
|
||||
// Browns
|
||||
'N0': 'Brown',
|
||||
'N1': 'Peanut Brown',
|
||||
'N2': 'Coffee Brown',
|
||||
'N3': 'Caramel Brown',
|
||||
// Grays
|
||||
'A0': 'Gray',
|
||||
'A1': 'Charcoal Gray',
|
||||
'A2': 'Silver Gray',
|
||||
'A3': 'Titan Gray',
|
||||
// Blacks
|
||||
'K0': 'Black',
|
||||
'K1': 'Black',
|
||||
// Whites
|
||||
'W0': 'White',
|
||||
'W1': 'Jade White',
|
||||
'W2': 'Ivory White',
|
||||
// Special
|
||||
'T0': 'Transparent',
|
||||
'C0': 'Marble',
|
||||
'X0': 'Bronze',
|
||||
'X1': 'Gold',
|
||||
'X2': 'Silver',
|
||||
// Complete Bambu Lab filament color mapping by tray_id_name
|
||||
// Source: https://github.com/queengooborg/Bambu-Lab-RFID-Library
|
||||
const BAMBU_FILAMENT_COLORS: Record<string, string> = {
|
||||
// PLA Basic (A00)
|
||||
'A00-W1': 'Jade White',
|
||||
'A00-P0': 'Beige',
|
||||
'A00-D2': 'Light Gray',
|
||||
'A00-Y0': 'Yellow',
|
||||
'A00-Y2': 'Sunflower Yellow',
|
||||
'A00-A1': 'Pumpkin Orange',
|
||||
'A00-A0': 'Orange',
|
||||
'A00-Y4': 'Gold',
|
||||
'A00-G3': 'Bright Green',
|
||||
'A00-G1': 'Bambu Green',
|
||||
'A00-G2': 'Mistletoe Green',
|
||||
'A00-R3': 'Hot Pink',
|
||||
'A00-P6': 'Magenta',
|
||||
'A00-R0': 'Red',
|
||||
'A00-R2': 'Maroon Red',
|
||||
'A00-P5': 'Purple',
|
||||
'A00-P2': 'Indigo Purple',
|
||||
'A00-B5': 'Turquoise',
|
||||
'A00-B8': 'Cyan',
|
||||
'A00-B3': 'Cobalt Blue',
|
||||
'A00-N0': 'Brown',
|
||||
'A00-N1': 'Cocoa Brown',
|
||||
'A00-Y3': 'Bronze',
|
||||
'A00-D0': 'Gray',
|
||||
'A00-D1': 'Silver',
|
||||
'A00-B1': 'Blue Grey',
|
||||
'A00-D3': 'Dark Gray',
|
||||
'A00-K0': 'Black',
|
||||
// PLA Basic Gradient (A00-M*)
|
||||
'A00-M3': 'Pink Citrus',
|
||||
'A00-M6': 'Dusk Glare',
|
||||
'A00-M0': 'Arctic Whisper',
|
||||
'A00-M1': 'Solar Breeze',
|
||||
'A00-M5': 'Blueberry Bubblegum',
|
||||
'A00-M4': 'Mint Lime',
|
||||
'A00-M2': 'Ocean to Meadow',
|
||||
'A00-M7': 'Cotton Candy Cloud',
|
||||
// PLA Lite (A18)
|
||||
'A18-K0': 'Black',
|
||||
'A18-D0': 'Gray',
|
||||
'A18-W0': 'White',
|
||||
'A18-R0': 'Red',
|
||||
'A18-Y0': 'Yellow',
|
||||
'A18-B0': 'Cyan',
|
||||
'A18-B1': 'Blue',
|
||||
'A18-P0': 'Matte Beige',
|
||||
// PLA Matte (A01)
|
||||
'A01-W2': 'Ivory White',
|
||||
'A01-W3': 'Bone White',
|
||||
'A01-Y2': 'Lemon Yellow',
|
||||
'A01-A2': 'Mandarin Orange',
|
||||
'A01-P3': 'Sakura Pink',
|
||||
'A01-P4': 'Lilac Purple',
|
||||
'A01-R3': 'Plum',
|
||||
'A01-R1': 'Scarlet Red',
|
||||
'A01-R4': 'Dark Red',
|
||||
'A01-G0': 'Apple Green',
|
||||
'A01-G1': 'Grass Green',
|
||||
'A01-G7': 'Dark Green',
|
||||
'A01-B4': 'Ice Blue',
|
||||
'A01-B0': 'Sky Blue',
|
||||
'A01-B3': 'Marine Blue',
|
||||
'A01-B6': 'Dark Blue',
|
||||
'A01-Y3': 'Desert Tan',
|
||||
'A01-N1': 'Latte Brown',
|
||||
'A01-N3': 'Caramel',
|
||||
'A01-R2': 'Terracotta',
|
||||
'A01-N2': 'Dark Brown',
|
||||
'A01-N0': 'Dark Chocolate',
|
||||
'A01-D3': 'Ash Gray',
|
||||
'A01-D0': 'Nardo Gray',
|
||||
'A01-K1': 'Charcoal',
|
||||
// PLA Glow (A12)
|
||||
'A12-G0': 'Green',
|
||||
'A12-R0': 'Pink',
|
||||
'A12-A0': 'Orange',
|
||||
'A12-Y0': 'Yellow',
|
||||
'A12-B0': 'Blue',
|
||||
// PLA Marble (A07)
|
||||
'A07-R5': 'Red Granite',
|
||||
'A07-D4': 'White Marble',
|
||||
// PLA Aero (A11)
|
||||
'A11-W0': 'White',
|
||||
'A11-K0': 'Black',
|
||||
// PLA Sparkle (A08)
|
||||
'A08-G3': 'Alpine Green Sparkle',
|
||||
'A08-D5': 'Slate Gray Sparkle',
|
||||
'A08-B7': 'Royal Purple Sparkle',
|
||||
'A08-R2': 'Crimson Red Sparkle',
|
||||
'A08-K2': 'Onyx Black Sparkle',
|
||||
'A08-Y1': 'Classic Gold Sparkle',
|
||||
// PLA Metal (A02)
|
||||
'A02-B2': 'Cobalt Blue Metallic',
|
||||
'A02-G2': 'Oxide Green Metallic',
|
||||
'A02-Y1': 'Iridium Gold Metallic',
|
||||
'A02-D2': 'Iron Gray Metallic',
|
||||
// PLA Translucent (A17)
|
||||
'A17-B1': 'Blue',
|
||||
'A17-A0': 'Orange',
|
||||
'A17-P0': 'Purple',
|
||||
// PLA Silk+ (A06)
|
||||
'A06-Y1': 'Gold',
|
||||
'A06-D0': 'Titan Gray',
|
||||
'A06-D1': 'Silver',
|
||||
'A06-W0': 'White',
|
||||
'A06-R0': 'Candy Red',
|
||||
'A06-G0': 'Candy Green',
|
||||
'A06-G1': 'Mint',
|
||||
'A06-B1': 'Blue',
|
||||
'A06-B0': 'Baby Blue',
|
||||
'A06-P0': 'Purple',
|
||||
'A06-R1': 'Rose Gold',
|
||||
'A06-R2': 'Pink',
|
||||
'A06-Y0': 'Champagne',
|
||||
// PLA Silk Multi-Color (A05)
|
||||
'A05-M8': 'Dawn Radiance',
|
||||
'A05-M4': 'Aurora Purple',
|
||||
'A05-M1': 'South Beach',
|
||||
'A05-T3': 'Neon City',
|
||||
'A05-T2': 'Midnight Blaze',
|
||||
'A05-T1': 'Gilded Rose',
|
||||
'A05-T4': 'Blue Hawaii',
|
||||
'A05-T5': 'Velvet Eclipse',
|
||||
// PLA Galaxy (A15)
|
||||
'A15-B0': 'Purple',
|
||||
'A15-G0': 'Green',
|
||||
'A15-G1': 'Nebulae',
|
||||
'A15-R0': 'Brown',
|
||||
// PLA Wood (A16)
|
||||
'A16-K0': 'Black Walnut',
|
||||
'A16-R0': 'Rosewood',
|
||||
'A16-N0': 'Clay Brown',
|
||||
'A16-G0': 'Classic Birch',
|
||||
'A16-W0': 'White Oak',
|
||||
'A16-Y0': 'Ochre Yellow',
|
||||
// PLA-CF (A50)
|
||||
'A50-D6': 'Lava Gray',
|
||||
'A50-K0': 'Black',
|
||||
'A50-B6': 'Royal Blue',
|
||||
// PLA Tough+ (A10)
|
||||
'A10-W0': 'White',
|
||||
'A10-D0': 'Gray',
|
||||
// PLA Tough (A09)
|
||||
'A09-B5': 'Lavender Blue',
|
||||
'A09-B4': 'Light Blue',
|
||||
'A09-A0': 'Orange',
|
||||
'A09-D1': 'Silver',
|
||||
'A09-R3': 'Vermilion Red',
|
||||
'A09-Y0': 'Yellow',
|
||||
// PETG HF (G02)
|
||||
'G02-K0': 'Black',
|
||||
'G02-W0': 'White',
|
||||
'G02-R0': 'Red',
|
||||
'G02-D0': 'Gray',
|
||||
'G02-D1': 'Dark Gray',
|
||||
'G02-Y1': 'Cream',
|
||||
'G02-Y0': 'Yellow',
|
||||
'G02-A0': 'Orange',
|
||||
'G02-N1': 'Peanut Brown',
|
||||
'G02-G1': 'Lime Green',
|
||||
'G02-G0': 'Green',
|
||||
'G02-G2': 'Forest Green',
|
||||
'G02-B1': 'Lake Blue',
|
||||
'G02-B0': 'Blue',
|
||||
// PETG Translucent (G01)
|
||||
'G01-G1': 'Translucent Teal',
|
||||
'G01-B0': 'Translucent Light Blue',
|
||||
'G01-C0': 'Clear',
|
||||
'G01-D0': 'Translucent Gray',
|
||||
'G01-G0': 'Translucent Olive',
|
||||
'G01-N0': 'Translucent Brown',
|
||||
'G01-A0': 'Translucent Orange',
|
||||
'G01-P1': 'Translucent Pink',
|
||||
'G01-P0': 'Translucent Purple',
|
||||
// PETG-CF (G50)
|
||||
'G50-P7': 'Violet Purple',
|
||||
'G50-K0': 'Black',
|
||||
// ABS (B00)
|
||||
'B00-D1': 'Silver',
|
||||
'B00-K0': 'Black',
|
||||
'B00-W0': 'White',
|
||||
'B00-G6': 'Bambu Green',
|
||||
'B00-G7': 'Olive',
|
||||
'B00-Y1': 'Tangerine Yellow',
|
||||
'B00-A0': 'Orange',
|
||||
'B00-R0': 'Red',
|
||||
'B00-B4': 'Azure',
|
||||
'B00-B0': 'Blue',
|
||||
'B00-B6': 'Navy Blue',
|
||||
// ABS-GF (B50)
|
||||
'B50-A0': 'Orange',
|
||||
'B50-K0': 'Black',
|
||||
// ASA (B01)
|
||||
'B01-W0': 'White',
|
||||
'B01-K0': 'Black',
|
||||
'B01-D0': 'Gray',
|
||||
// ASA Aero (B02)
|
||||
'B02-W0': 'White',
|
||||
// PC (C00)
|
||||
'C00-C1': 'Transparent',
|
||||
'C00-C0': 'Clear Black',
|
||||
'C00-K0': 'Black',
|
||||
'C00-W0': 'White',
|
||||
// PC FR (C01)
|
||||
'C01-K0': 'Black',
|
||||
// TPU for AMS (U02)
|
||||
'U02-B0': 'Blue',
|
||||
'U02-D0': 'Gray',
|
||||
'U02-K0': 'Black',
|
||||
// PAHT-CF (N04)
|
||||
'N04-K0': 'Black',
|
||||
// PA6-GF (N08)
|
||||
'N08-K0': 'Black',
|
||||
// Support for PLA/PETG (S02, S05)
|
||||
'S02-W0': 'Nature',
|
||||
'S02-W1': 'White',
|
||||
'S05-C0': 'Black',
|
||||
// Support for ABS (S06)
|
||||
'S06-W0': 'White',
|
||||
// Support for PA/PET (S03)
|
||||
'S03-G1': 'Green',
|
||||
// PVA (S04)
|
||||
'S04-Y0': 'Clear',
|
||||
};
|
||||
|
||||
// Fallback color codes for unknown material prefixes
|
||||
const BAMBU_COLOR_CODE_FALLBACK: Record<string, string> = {
|
||||
'W0': 'White', 'W1': 'Jade White', 'W2': 'Ivory White', 'W3': 'Bone White',
|
||||
'Y0': 'Yellow', 'Y1': 'Gold', 'Y2': 'Sunflower Yellow', 'Y3': 'Bronze', 'Y4': 'Gold',
|
||||
'A0': 'Orange', 'A1': 'Pumpkin Orange', 'A2': 'Mandarin Orange',
|
||||
'R0': 'Red', 'R1': 'Scarlet Red', 'R2': 'Maroon Red', 'R3': 'Hot Pink', 'R4': 'Dark Red', 'R5': 'Red Granite',
|
||||
'P0': 'Beige', 'P1': 'Pink', 'P2': 'Indigo Purple', 'P3': 'Sakura Pink', 'P4': 'Lilac Purple', 'P5': 'Purple', 'P6': 'Magenta', 'P7': 'Violet Purple',
|
||||
'B0': 'Blue', 'B1': 'Blue Grey', 'B2': 'Cobalt Blue', 'B3': 'Cobalt Blue', 'B4': 'Ice Blue', 'B5': 'Turquoise', 'B6': 'Navy Blue', 'B7': 'Royal Purple', 'B8': 'Cyan',
|
||||
'G0': 'Green', 'G1': 'Grass Green', 'G2': 'Mistletoe Green', 'G3': 'Bright Green', 'G6': 'Bambu Green', 'G7': 'Dark Green',
|
||||
'N0': 'Brown', 'N1': 'Peanut Brown', 'N2': 'Dark Brown', 'N3': 'Caramel',
|
||||
'D0': 'Gray', 'D1': 'Silver', 'D2': 'Light Gray', 'D3': 'Dark Gray', 'D4': 'White Marble', 'D5': 'Slate Gray', 'D6': 'Lava Gray',
|
||||
'K0': 'Black', 'K1': 'Charcoal', 'K2': 'Onyx Black',
|
||||
'C0': 'Clear Black', 'C1': 'Transparent',
|
||||
'M0': 'Arctic Whisper', 'M1': 'Solar Breeze', 'M2': 'Ocean to Meadow', 'M3': 'Pink Citrus', 'M4': 'Aurora Purple', 'M5': 'Blueberry Bubblegum', 'M6': 'Dusk Glare', 'M7': 'Cotton Candy Cloud', 'M8': 'Dawn Radiance',
|
||||
'T1': 'Gilded Rose', 'T2': 'Midnight Blaze', 'T3': 'Neon City', 'T4': 'Blue Hawaii', 'T5': 'Velvet Eclipse',
|
||||
};
|
||||
|
||||
// Get color name from Bambu Lab tray_id_name (e.g., "A00-Y2" -> "Sunflower Yellow")
|
||||
function getBambuColorName(trayIdName: string | null | undefined): string | null {
|
||||
if (!trayIdName) return null;
|
||||
// Extract color code after the dash (e.g., "A00-Y2" -> "Y2")
|
||||
|
||||
// First try exact match with full tray_id_name
|
||||
if (BAMBU_FILAMENT_COLORS[trayIdName]) {
|
||||
return BAMBU_FILAMENT_COLORS[trayIdName];
|
||||
}
|
||||
|
||||
// Fall back to color code suffix lookup for unknown material prefixes
|
||||
const parts = trayIdName.split('-');
|
||||
if (parts.length < 2) return null;
|
||||
const colorCode = parts[1];
|
||||
return BAMBU_COLOR_CODES[colorCode] || null;
|
||||
return BAMBU_COLOR_CODE_FALLBACK[colorCode] || null;
|
||||
}
|
||||
|
||||
// Convert hex color to basic color name
|
||||
|
||||
File diff suppressed because one or more lines are too long
+1
-1
@@ -23,7 +23,7 @@
|
||||
|
||||
<!-- Splash screens for iOS -->
|
||||
<link rel="apple-touch-startup-image" href="/img/android-chrome-512x512.png" />
|
||||
<script type="module" crossorigin src="/assets/index-oq5Qet6N.js"></script>
|
||||
<script type="module" crossorigin src="/assets/index-uGH4AzFZ.js"></script>
|
||||
<link rel="stylesheet" crossorigin href="/assets/index-Da3qKIoX.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
Reference in New Issue
Block a user