mirror of
https://github.com/maziggy/bambuddy.git
synced 2026-10-18 21:47:39 +02:00
Summary of Changes
Backend (backend/app/api/routes/archives.py): - Added filament_colors extraction from slice_info.config in 3MF files - Maps filament IDs (1-based) to tool numbers (0-based) Frontend (frontend/src/components/GcodeViewer.tsx): 1. Multi-color support: Pass extrusionColor as array of CSS color strings for multi-color prints 2. Bambu T-command filtering: Filter out special Bambu commands (T255, T1000, T1001, T65535, T65279) that corrupt tool state 3. Initial tool: Prepend T0 to ensure initial tool is set correctly 4. Disable gradient: Set disableGradient: true for multi-color to preserve actual filament colors (the gradient was turning black into gray/white) 5. Disable topLayerColor: Don't set topLayerColor for multi-color (it overrides per-tool colors) Key fixes for Bambu G-code compatibility: - Bambu uses special T commands (T1000, T65535, etc.) that aren't real tool changes - The gcode-preview library's brightness gradient was modifying colors based on layer index Commit message suggestion: Add multi-color filament support to G-code viewer - Extract filament colors from 3MF slice_info.config - Pass color array to gcode-preview for tool-based coloring - Filter Bambu special T commands (T1000, T65535, etc.) - Disable gradient to preserve actual filament colors
This commit is contained in:
@@ -17,6 +17,7 @@ interface Capabilities {
|
||||
has_model: boolean;
|
||||
has_gcode: boolean;
|
||||
build_volume: { x: number; y: number; z: number };
|
||||
filament_colors: string[];
|
||||
}
|
||||
|
||||
export function ModelViewerModal({ archiveId, title, onClose }: ModelViewerModalProps) {
|
||||
@@ -47,7 +48,7 @@ export function ModelViewerModal({ archiveId, title, onClose }: ModelViewerModal
|
||||
})
|
||||
.catch(() => {
|
||||
// Fallback to 3D model tab if capabilities check fails
|
||||
setCapabilities({ has_model: true, has_gcode: false, build_volume: { x: 256, y: 256, z: 256 } });
|
||||
setCapabilities({ has_model: true, has_gcode: false, build_volume: { x: 256, y: 256, z: 256 }, filament_colors: [] });
|
||||
setActiveTab('3d');
|
||||
setLoading(false);
|
||||
});
|
||||
@@ -136,6 +137,7 @@ export function ModelViewerModal({ archiveId, title, onClose }: ModelViewerModal
|
||||
<GcodeViewer
|
||||
gcodeUrl={api.getArchiveGcode(archiveId)}
|
||||
buildVolume={capabilities.build_volume}
|
||||
filamentColors={capabilities.filament_colors}
|
||||
className="w-full h-full"
|
||||
/>
|
||||
) : (
|
||||
|
||||
Reference in New Issue
Block a user