feat: add Bambu Lab A1 3D printer exploded diagrams

Add complete exploded diagram package for the Bambu Lab A1 3D printer
with 41 parts across 5 assemblies:

- Printhead (8 parts): hotend, extruder, cooling fans, toolhead PCB
- Motion System (9 parts): linear rails, carriages, stepper motors, belts
- Frame (8 parts): base frame, Z-columns, top beam, mounts
- Heatbed (8 parts): heated plate, PEI surface, carriage, insulation
- Electronics (8 parts): mainboard, PSU, LCD, WiFi module, wiring

All parts include detailed 3D geometry for WebGL rendering and
2D geometry for SVG export.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-01-21 23:51:23 +00:00
parent c3dca5ea64
commit aef5928572
46 changed files with 4891 additions and 0 deletions

View File

@@ -0,0 +1,15 @@
{
"id": "electronics",
"name": "Electronics Assembly",
"description": "Bambu Lab A1 electronics system - main control board, power supply, display, connectivity, and wiring",
"parts": [
"mainboard",
"power-supply",
"lcd-screen",
"wifi-module",
"stepper-driver",
"power-switch",
"usb-port",
"wiring-harness"
]
}

View File

@@ -0,0 +1,66 @@
{
"id": "lcd-screen",
"name": "Touch Screen Display",
"partNumber": "BL-A1-LCD01",
"material": "glass",
"quantity": 1,
"weight": 125.0,
"weightUnit": "g",
"baseY": 160,
"description": "2.8 inch capacitive touch LCD display - IPS panel with RGB interface",
"installation": {
"tools": [
{ "name": "Hex key", "size": "2mm", "required": true },
{ "name": "Plastic spudger", "size": "-", "required": true },
{ "name": "ESD wrist strap", "size": "-", "required": true }
],
"hardware": [
{ "name": "M2.5 screw", "spec": "M2.5x5", "qty": 4, "reusable": true },
{ "name": "FFC cable", "spec": "24-pin 0.5mm pitch", "qty": 1, "reusable": true },
{ "name": "Foam gasket", "spec": "Display bezel", "qty": 1, "reusable": false }
],
"torque": [
{ "fastener": "M2.5 screws", "value": 0.3, "unit": "Nm", "sequence": "Diagonal pattern", "notes": "Very light torque - do not crack display" }
],
"notes": [
"Handle display by edges only - avoid touching screen surface",
"FFC cable is fragile - lift connector lock before removing",
"Clean screen with microfiber cloth before reassembly",
"Check ribbon cable orientation - contacts face down"
]
},
"geometry": [
{ "type": "rect", "width": 85, "height": 60, "rx": 3, "fill": "#1a1a1a" },
{ "type": "rect", "width": 70, "height": 50, "rx": 1, "fill": "#0a2040" },
{ "type": "rect", "width": 65, "height": 45, "fill": "#102050" },
{ "type": "rect", "width": 20, "height": 8, "offsetY": 30, "fill": "#404040" }
],
"geometry3d": [
{ "type": "box", "width": 70, "height": 4, "depth": 50, "fill": "#1a1a1a" },
{ "type": "box", "width": 62, "height": 1, "depth": 42, "offsetY": 2.5, "fill": "#0a1525" },
{ "type": "box", "width": 60, "height": 0.5, "depth": 40, "offsetY": 3, "fill": "#102040" },
{ "type": "box", "width": 72, "height": 6, "depth": 52, "offsetY": -1, "fill": "#252530" },
{ "type": "box", "width": 64, "height": 8, "depth": 44, "offsetY": -1, "subtract": true },
{ "type": "box", "width": 74, "height": 2, "depth": 54, "offsetY": -4, "fill": "#353540" },
{ "type": "box", "width": 20, "height": 3, "depth": 6, "offsetY": -5.5, "offsetZ": 28, "fill": "#404045" },
{ "type": "box", "width": 18, "height": 2, "depth": 2, "offsetY": -5, "offsetZ": 30, "fill": "#808080" },
{ "type": "box", "width": 68, "height": 12, "depth": 5, "offsetY": -4, "offsetZ": -25, "fill": "#006030" },
{ "type": "box", "width": 10, "height": 3, "depth": 10, "offsetY": 0, "offsetZ": -30, "fill": "#303030" },
{ "type": "box", "width": 25, "height": 1.5, "depth": 8, "offsetY": -10, "offsetZ": -30, "fill": "#c0c0c0" },
{ "type": "cylinder", "r": 1.3, "height": 8, "offsetX": -32, "offsetY": -2, "offsetZ": -22, "fill": "#606060" },
{ "type": "cylinder", "r": 1.3, "height": 8, "offsetX": 32, "offsetY": -2, "offsetZ": -22, "fill": "#606060" },
{ "type": "cylinder", "r": 1.3, "height": 8, "offsetX": -32, "offsetY": -2, "offsetZ": 22, "fill": "#606060" },
{ "type": "cylinder", "r": 1.3, "height": 8, "offsetX": 32, "offsetY": -2, "offsetZ": 22, "fill": "#606060" },
{ "type": "cylinder", "r": 2, "height": 3, "offsetX": -28, "offsetY": 0, "offsetZ": -18, "fill": "#202025" },
{ "type": "cylinder", "r": 1.5, "height": 2, "offsetX": -28, "offsetY": 1.5, "offsetZ": -18, "fill": "#101015" }
]
}

View File

@@ -0,0 +1,88 @@
{
"id": "mainboard",
"name": "Main Control Board (MCU)",
"partNumber": "BL-A1-MCB01",
"material": "pcb",
"quantity": 1,
"weight": 185.0,
"weightUnit": "g",
"baseY": 0,
"description": "ARM Cortex-M4 based main controller - handles motion control, temperature, and communication",
"installation": {
"tools": [
{ "name": "Hex key", "size": "2.5mm", "required": true },
{ "name": "ESD wrist strap", "size": "-", "required": true },
{ "name": "Phillips screwdriver", "size": "PH1", "required": true },
{ "name": "Multimeter", "size": "-", "required": false }
],
"hardware": [
{ "name": "M3 standoff", "spec": "M3x6", "qty": 4, "reusable": true },
{ "name": "M3 screw", "spec": "M3x6", "qty": 4, "reusable": true },
{ "name": "Thermal pad", "spec": "20x20x1mm", "qty": 1, "reusable": false }
],
"torque": [
{ "fastener": "M3 mounting screws", "value": 0.5, "unit": "Nm", "sequence": "Diagonal pattern", "notes": "Do not overtighten - PCB may crack" }
],
"notes": [
"Disconnect all power before handling",
"Always use ESD protection when handling PCB",
"Note connector positions before removal",
"Check firmware version compatibility before replacement",
"Apply thermal paste between MCU and heatsink"
]
},
"geometry": [
{ "type": "rect", "width": 120, "height": 85, "rx": 3, "fill": "#006030" },
{ "type": "rect", "width": 110, "height": 75, "rx": 2, "fill": "#005528" },
{ "type": "rect", "width": 18, "height": 18, "offsetX": -30, "offsetY": -15, "fill": "#303030" },
{ "type": "rect", "width": 12, "height": 12, "offsetX": 15, "offsetY": -20, "fill": "#303030" },
{ "type": "rect", "width": 35, "height": 8, "offsetX": -35, "offsetY": 30, "fill": "#c0c0c0" },
{ "type": "rect", "width": 25, "height": 8, "offsetX": 10, "offsetY": 30, "fill": "#c0c0c0" },
{ "type": "rect", "width": 15, "height": 8, "offsetX": 45, "offsetY": 30, "fill": "#c0c0c0" },
{ "type": "circle", "r": 3, "offsetX": -52, "offsetY": -35, "fill": "#c0c0c0" },
{ "type": "circle", "r": 3, "offsetX": 52, "offsetY": -35, "fill": "#c0c0c0" },
{ "type": "circle", "r": 3, "offsetX": -52, "offsetY": 35, "fill": "#c0c0c0" },
{ "type": "circle", "r": 3, "offsetX": 52, "offsetY": 35, "fill": "#c0c0c0" }
],
"geometry3d": [
{ "type": "box", "width": 100, "height": 2, "depth": 70, "fill": "#006030" },
{ "type": "box", "width": 16, "height": 3.5, "depth": 16, "offsetX": -28, "offsetY": 2.75, "offsetZ": -12, "fill": "#1a1a1a" },
{ "type": "box", "width": 14, "height": 1, "depth": 14, "offsetX": -28, "offsetY": 5, "offsetZ": -12, "fill": "#404040" },
{ "type": "box", "width": 10, "height": 2.5, "depth": 10, "offsetX": 12, "offsetY": 2.25, "offsetZ": -18, "fill": "#1a1a1a" },
{ "type": "box", "width": 8, "height": 2, "depth": 8, "offsetX": 32, "offsetY": 2, "offsetZ": -18, "fill": "#1a1a1a" },
{ "type": "box", "width": 8, "height": 2, "depth": 8, "offsetX": 32, "offsetY": 2, "offsetZ": -5, "fill": "#1a1a1a" },
{ "type": "box", "width": 8, "height": 2, "depth": 8, "offsetX": 32, "offsetY": 2, "offsetZ": 8, "fill": "#1a1a1a" },
{ "type": "box", "width": 30, "height": 8, "depth": 6, "offsetX": -30, "offsetY": 5, "offsetZ": 28, "fill": "#c0c0c0" },
{ "type": "box", "width": 28, "height": 6, "depth": 4, "offsetX": -30, "offsetY": 5, "offsetZ": 28, "subtract": true },
{ "type": "box", "width": 22, "height": 8, "depth": 6, "offsetX": 8, "offsetY": 5, "offsetZ": 28, "fill": "#c0c0c0" },
{ "type": "box", "width": 20, "height": 6, "depth": 4, "offsetX": 8, "offsetY": 5, "offsetZ": 28, "subtract": true },
{ "type": "box", "width": 14, "height": 8, "depth": 6, "offsetX": 38, "offsetY": 5, "offsetZ": 28, "fill": "#c0c0c0" },
{ "type": "box", "width": 12, "height": 6, "depth": 4, "offsetX": 38, "offsetY": 5, "offsetZ": 28, "subtract": true },
{ "type": "cylinder", "r": 8, "height": 10, "offsetX": -38, "offsetY": 6, "offsetZ": 5, "fill": "#1a1a1a" },
{ "type": "cylinder", "r": 7, "height": 8, "offsetX": -38, "offsetY": 8, "offsetZ": 5, "fill": "#303030" },
{ "type": "cylinder", "r": 6, "height": 8, "offsetX": -20, "offsetY": 5, "offsetZ": 5, "fill": "#1a1a1a" },
{ "type": "cylinder", "r": 5, "height": 6, "offsetX": -20, "offsetY": 6, "offsetZ": 5, "fill": "#303030" },
{ "type": "box", "width": 3, "height": 4, "depth": 6, "offsetX": -5, "offsetY": 3, "offsetZ": 8, "fill": "#ffcc00" },
{ "type": "box", "width": 3, "height": 4, "depth": 6, "offsetX": 0, "offsetY": 3, "offsetZ": 8, "fill": "#00cc00" },
{ "type": "box", "width": 3, "height": 4, "depth": 6, "offsetX": 5, "offsetY": 3, "offsetZ": 8, "fill": "#cc0000" },
{ "type": "box", "width": 12, "height": 6, "depth": 5, "offsetX": 20, "offsetY": 4, "offsetZ": -28, "fill": "#303030" },
{ "type": "box", "width": 6, "height": 1.5, "depth": 10, "offsetX": -15, "offsetY": 1.75, "offsetZ": -25, "fill": "#505050" },
{ "type": "box", "width": 6, "height": 1.5, "depth": 10, "offsetX": -5, "offsetY": 1.75, "offsetZ": -25, "fill": "#505050" },
{ "type": "cylinder", "r": 1.6, "height": 4, "offsetX": -45, "offsetY": 0, "offsetZ": -30, "fill": "#c0c0c0" },
{ "type": "cylinder", "r": 1.6, "height": 4, "offsetX": 45, "offsetY": 0, "offsetZ": -30, "fill": "#c0c0c0" },
{ "type": "cylinder", "r": 1.6, "height": 4, "offsetX": -45, "offsetY": 0, "offsetZ": 30, "fill": "#c0c0c0" },
{ "type": "cylinder", "r": 1.6, "height": 4, "offsetX": 45, "offsetY": 0, "offsetZ": 30, "fill": "#c0c0c0" }
]
}

View File

@@ -0,0 +1,88 @@
{
"id": "power-supply",
"name": "24V Power Supply Unit",
"partNumber": "BL-A1-PSU24",
"material": "aluminum",
"quantity": 1,
"weight": 650.0,
"weightUnit": "g",
"baseY": 80,
"description": "24V 350W switching power supply - Mean Well style enclosed PSU with active cooling",
"installation": {
"tools": [
{ "name": "Phillips screwdriver", "size": "PH2", "required": true },
{ "name": "Hex key", "size": "3mm", "required": true },
{ "name": "Wire stripper", "size": "18-22 AWG", "required": true },
{ "name": "Multimeter", "size": "-", "required": true }
],
"hardware": [
{ "name": "M4 screw", "spec": "M4x8", "qty": 4, "reusable": true },
{ "name": "Ring terminal", "spec": "M4 14-16 AWG", "qty": 2, "reusable": false },
{ "name": "IEC C14 connector", "spec": "10A 250V", "qty": 1, "reusable": true }
],
"torque": [
{ "fastener": "M4 mounting screws", "value": 1.2, "unit": "Nm", "sequence": "Corner to corner", "notes": "Ensure PSU is level" },
{ "fastener": "Terminal screws", "value": 0.8, "unit": "Nm", "sequence": "", "notes": "Check wire is secure" }
],
"notes": [
"DANGER: Mains voltage present - disconnect AC power first",
"Wait 5 minutes for capacitors to discharge",
"Verify input voltage selector matches local mains",
"Check output voltage is 24.0V +/- 0.5V before connecting",
"Ensure adequate ventilation around PSU"
]
},
"geometry": [
{ "type": "rect", "width": 140, "height": 70, "rx": 2, "fill": "#404040" },
{ "type": "rect", "width": 130, "height": 60, "rx": 1, "fill": "#353535" },
{ "type": "rect", "width": 50, "height": 15, "offsetX": -35, "offsetY": -20, "fill": "#1a1a1a" },
{ "type": "circle", "r": 20, "offsetX": 35, "offsetY": 0, "fill": "#2a2a2a" },
{ "type": "circle", "r": 15, "offsetX": 35, "offsetY": 0, "fill": "#1a1a1a" },
{ "type": "rect", "width": 8, "height": 5, "offsetX": -55, "offsetY": 25, "fill": "#c0c0c0" },
{ "type": "rect", "width": 8, "height": 5, "offsetX": -40, "offsetY": 25, "fill": "#c0c0c0" },
{ "type": "rect", "width": 8, "height": 5, "offsetX": -25, "offsetY": 25, "fill": "#c0c0c0" }
],
"geometry3d": [
{ "type": "box", "width": 115, "height": 50, "depth": 200, "fill": "#383840" },
{ "type": "box", "width": 117, "height": 2, "depth": 202, "offsetY": 26, "fill": "#454550" },
{ "type": "box", "width": 117, "height": 2, "depth": 202, "offsetY": -26, "fill": "#454550" },
{ "type": "box", "width": 50, "height": 35, "depth": 8, "offsetX": -25, "offsetZ": -96, "fill": "#1a1a1a" },
{ "type": "box", "width": 44, "height": 29, "depth": 20, "offsetX": -25, "offsetZ": -92, "subtract": true },
{ "type": "cylinder", "r": 20, "height": 8, "rotateX": 90, "offsetX": 30, "offsetZ": 96, "fill": "#303035" },
{ "type": "cylinder", "r": 18, "height": 10, "rotateX": 90, "offsetX": 30, "offsetZ": 96, "subtract": true },
{ "type": "box", "width": 2, "height": 36, "depth": 5, "offsetX": 30, "offsetZ": 96, "fill": "#252530" },
{ "type": "box", "width": 36, "height": 2, "depth": 5, "offsetX": 30, "offsetZ": 96, "fill": "#252530" },
{ "type": "box", "width": 26, "height": 26, "depth": 5, "rotateZ": 45, "offsetX": 30, "offsetZ": 96, "fill": "#252530" },
{ "type": "box", "width": 8, "height": 10, "depth": 12, "offsetX": -45, "offsetY": -20, "offsetZ": -96, "fill": "#c0c0c0" },
{ "type": "box", "width": 8, "height": 10, "depth": 12, "offsetX": -32, "offsetY": -20, "offsetZ": -96, "fill": "#c0c0c0" },
{ "type": "box", "width": 8, "height": 10, "depth": 12, "offsetX": -19, "offsetY": -20, "offsetZ": -96, "fill": "#c0c0c0" },
{ "type": "box", "width": 8, "height": 10, "depth": 12, "offsetX": -6, "offsetY": -20, "offsetZ": -96, "fill": "#ffcc00" },
{ "type": "box", "width": 8, "height": 10, "depth": 12, "offsetX": 7, "offsetY": -20, "offsetZ": -96, "fill": "#ffcc00" },
{ "type": "cylinder", "r": 2, "height": 8, "offsetX": -45, "offsetY": -20, "offsetZ": -102, "fill": "#808080" },
{ "type": "cylinder", "r": 2, "height": 8, "offsetX": -32, "offsetY": -20, "offsetZ": -102, "fill": "#808080" },
{ "type": "cylinder", "r": 2, "height": 8, "offsetX": -19, "offsetY": -20, "offsetZ": -102, "fill": "#808080" },
{ "type": "cylinder", "r": 2, "height": 8, "offsetX": -6, "offsetY": -20, "offsetZ": -102, "fill": "#808080" },
{ "type": "cylinder", "r": 2, "height": 8, "offsetX": 7, "offsetY": -20, "offsetZ": -102, "fill": "#808080" },
{ "type": "box", "width": 30, "height": 10, "depth": 5, "offsetX": 35, "offsetY": -20, "offsetZ": -98, "fill": "#00aa00" },
{ "type": "cylinder", "r": 3, "height": 8, "offsetX": 25, "offsetY": -20, "offsetZ": -96, "fill": "#606060" },
{ "type": "box", "width": 100, "height": 3, "depth": 180, "offsetY": 23, "fill": "#303035" },
{ "type": "box", "width": 3, "height": 3, "depth": 170, "offsetX": -40, "offsetY": 23, "fill": "#404045" },
{ "type": "box", "width": 3, "height": 3, "depth": 170, "offsetX": -20, "offsetY": 23, "fill": "#404045" },
{ "type": "box", "width": 3, "height": 3, "depth": 170, "offsetX": 0, "offsetY": 23, "fill": "#404045" },
{ "type": "box", "width": 3, "height": 3, "depth": 170, "offsetX": 20, "offsetY": 23, "fill": "#404045" },
{ "type": "box", "width": 3, "height": 3, "depth": 170, "offsetX": 40, "offsetY": 23, "fill": "#404045" },
{ "type": "cylinder", "r": 2.5, "height": 55, "offsetX": -52, "offsetY": 0, "offsetZ": -90, "fill": "#606060" },
{ "type": "cylinder", "r": 2.5, "height": 55, "offsetX": 52, "offsetY": 0, "offsetZ": -90, "fill": "#606060" },
{ "type": "cylinder", "r": 2.5, "height": 55, "offsetX": -52, "offsetY": 0, "offsetZ": 90, "fill": "#606060" },
{ "type": "cylinder", "r": 2.5, "height": 55, "offsetX": 52, "offsetY": 0, "offsetZ": 90, "fill": "#606060" }
]
}

View File

@@ -0,0 +1,59 @@
{
"id": "power-switch",
"name": "Main Power Switch",
"partNumber": "BL-A1-PSW01",
"material": "plastic",
"quantity": 1,
"weight": 25.0,
"weightUnit": "g",
"baseY": 340,
"description": "Illuminated rocker switch - DPST 16A 250VAC with integrated LED indicator",
"installation": {
"tools": [
{ "name": "Flathead screwdriver", "size": "3mm", "required": true },
{ "name": "Wire crimper", "size": "16-22 AWG", "required": false }
],
"hardware": [
{ "name": "Spade terminal", "spec": "6.3mm female", "qty": 4, "reusable": false },
{ "name": "Panel gasket", "spec": "30x22mm", "qty": 1, "reusable": false }
],
"torque": [],
"notes": [
"DANGER: Mains voltage - ensure power is disconnected",
"Switch snaps into panel cutout - no screws required",
"LED indicator shows power-on state",
"Verify wiring matches original before powering on",
"Test switch operation before closing enclosure"
]
},
"geometry": [
{ "type": "rect", "width": 35, "height": 20, "rx": 3, "fill": "#1a1a1a" },
{ "type": "rect", "width": 28, "height": 14, "rx": 7, "fill": "#303030" },
{ "type": "rect", "width": 12, "height": 10, "offsetX": -5, "rx": 2, "fill": "#cc0000" },
{ "type": "circle", "r": 2, "offsetX": 8, "offsetY": 0, "fill": "#00ff00" }
],
"geometry3d": [
{ "type": "box", "width": 30, "height": 22, "depth": 25, "fill": "#1a1a1a" },
{ "type": "box", "width": 24, "height": 6, "depth": 14, "offsetY": 14, "fill": "#252530" },
{ "type": "box", "width": 22, "height": 3, "depth": 12, "offsetY": 16.5, "fill": "#303035" },
{ "type": "box", "width": 10, "height": 8, "depth": 12, "rotateZ": -15, "offsetX": -4, "offsetY": 16, "fill": "#cc0000" },
{ "type": "box", "width": 9, "height": 7, "depth": 11, "rotateZ": -15, "offsetX": -4, "offsetY": 16.5, "fill": "#dd2020" },
{ "type": "cylinder", "r": 2, "height": 4, "offsetX": 8, "offsetY": 16, "fill": "#00aa00" },
{ "type": "cylinder", "r": 1.5, "height": 2, "offsetX": 8, "offsetY": 18.5, "fill": "#00ff00" },
{ "type": "box", "width": 5, "height": 8, "depth": 3, "offsetX": -10, "offsetY": -15, "fill": "#c0c0c0" },
{ "type": "box", "width": 5, "height": 8, "depth": 3, "offsetX": -3, "offsetY": -15, "fill": "#c0c0c0" },
{ "type": "box", "width": 5, "height": 8, "depth": 3, "offsetX": 4, "offsetY": -15, "fill": "#c0c0c0" },
{ "type": "box", "width": 5, "height": 8, "depth": 3, "offsetX": 11, "offsetY": -15, "fill": "#c0c0c0" },
{ "type": "box", "width": 32, "height": 2, "depth": 27, "offsetY": 10, "fill": "#303035" },
{ "type": "box", "width": 2, "height": 5, "depth": 2, "offsetX": -13, "offsetY": 3, "offsetZ": -10, "fill": "#404045" },
{ "type": "box", "width": 2, "height": 5, "depth": 2, "offsetX": 13, "offsetY": 3, "offsetZ": -10, "fill": "#404045" },
{ "type": "box", "width": 2, "height": 5, "depth": 2, "offsetX": -13, "offsetY": 3, "offsetZ": 10, "fill": "#404045" },
{ "type": "box", "width": 2, "height": 5, "depth": 2, "offsetX": 13, "offsetY": 3, "offsetZ": 10, "fill": "#404045" }
]
}

View File

@@ -0,0 +1,74 @@
{
"id": "stepper-driver",
"name": "TMC Stepper Driver",
"partNumber": "BL-A1-TMC22",
"material": "pcb",
"quantity": 4,
"weight": 8.0,
"weightUnit": "g",
"baseY": 280,
"description": "TMC2209 silent stepper driver module - StealthChop/SpreadCycle with UART interface",
"installation": {
"tools": [
{ "name": "ESD wrist strap", "size": "-", "required": true },
{ "name": "Small flathead screwdriver", "size": "2mm", "required": true },
{ "name": "Thermal paste", "size": "-", "required": false }
],
"hardware": [
{ "name": "Heatsink", "spec": "9x9x5mm", "qty": 1, "reusable": true },
{ "name": "Thermal tape", "spec": "Double-sided", "qty": 1, "reusable": false }
],
"torque": [],
"notes": [
"Ensure correct orientation before inserting - EN pin location varies",
"Set Vref to 1.0V for stock motors (0.8A RMS)",
"Heatsink required for reliable operation",
"StealthChop enabled by default - UART for SpreadCycle",
"Allow 30 seconds between power cycles"
]
},
"geometry": [
{ "type": "rect", "width": 20, "height": 15, "rx": 1, "fill": "#006030" },
{ "type": "rect", "width": 8, "height": 8, "offsetY": -1, "fill": "#303030" },
{ "type": "rect", "width": 18, "height": 3, "offsetY": 5, "fill": "#c0c0c0" },
{ "type": "circle", "r": 2, "offsetX": 7, "offsetY": -4, "fill": "#c0c0c0" }
],
"geometry3d": [
{ "type": "box", "width": 15, "height": 1.2, "depth": 20, "fill": "#006030" },
{ "type": "box", "width": 6, "height": 1.5, "depth": 6, "offsetY": 1.35, "offsetZ": -3, "fill": "#1a1a1a" },
{ "type": "box", "width": 9, "height": 5, "depth": 9, "offsetY": 4.6, "offsetZ": -3, "fill": "#202025" },
{ "type": "box", "width": 8.5, "height": 1, "depth": 8.5, "offsetY": 7.6, "offsetZ": -3, "fill": "#303035" },
{ "type": "box", "width": 7, "height": 0.5, "depth": 7, "offsetY": 7.35, "offsetZ": -3, "fill": "#252530" },
{ "type": "box", "width": 13, "height": 2.5, "depth": 2.5, "offsetY": 1.85, "offsetZ": 7.5, "fill": "#c0c0c0" },
{ "type": "box", "width": 13, "height": 2.5, "depth": 2.5, "offsetY": 1.85, "offsetZ": -13.5, "fill": "#c0c0c0" },
{ "type": "cylinder", "r": 1.8, "height": 1.5, "offsetX": 5, "offsetY": 1.35, "offsetZ": 3, "fill": "#c0c0c0" },
{ "type": "cylinder", "r": 1, "height": 0.5, "offsetX": 5, "offsetY": 2.35, "offsetZ": 3, "fill": "#606060" },
{ "type": "box", "width": 2.5, "height": 1.5, "depth": 2.5, "offsetX": -5, "offsetY": 1.35, "offsetZ": 3, "fill": "#1a1a1a" },
{ "type": "box", "width": 1.5, "height": 1, "depth": 1.5, "offsetX": 5, "offsetY": 1.1, "offsetZ": -3, "fill": "#1a1a1a" },
{ "type": "box", "width": 1.5, "height": 1, "depth": 1.5, "offsetX": -5, "offsetY": 1.1, "offsetZ": -3, "fill": "#1a1a1a" },
{ "type": "box", "width": 1.5, "height": 1, "depth": 1.5, "offsetX": 5, "offsetY": 1.1, "offsetZ": -8, "fill": "#1a1a1a" },
{ "type": "box", "width": 1.5, "height": 1, "depth": 1.5, "offsetX": -5, "offsetY": 1.1, "offsetZ": -8, "fill": "#1a1a1a" },
{ "type": "cylinder", "r": 0.3, "height": 3, "offsetX": -6, "offsetY": -1.5, "offsetZ": 8, "fill": "#c0c0c0" },
{ "type": "cylinder", "r": 0.3, "height": 3, "offsetX": -4, "offsetY": -1.5, "offsetZ": 8, "fill": "#c0c0c0" },
{ "type": "cylinder", "r": 0.3, "height": 3, "offsetX": -2, "offsetY": -1.5, "offsetZ": 8, "fill": "#c0c0c0" },
{ "type": "cylinder", "r": 0.3, "height": 3, "offsetX": 0, "offsetY": -1.5, "offsetZ": 8, "fill": "#c0c0c0" },
{ "type": "cylinder", "r": 0.3, "height": 3, "offsetX": 2, "offsetY": -1.5, "offsetZ": 8, "fill": "#c0c0c0" },
{ "type": "cylinder", "r": 0.3, "height": 3, "offsetX": 4, "offsetY": -1.5, "offsetZ": 8, "fill": "#c0c0c0" },
{ "type": "cylinder", "r": 0.3, "height": 3, "offsetX": 6, "offsetY": -1.5, "offsetZ": 8, "fill": "#c0c0c0" },
{ "type": "cylinder", "r": 0.3, "height": 3, "offsetX": -6, "offsetY": -1.5, "offsetZ": -14, "fill": "#c0c0c0" },
{ "type": "cylinder", "r": 0.3, "height": 3, "offsetX": -4, "offsetY": -1.5, "offsetZ": -14, "fill": "#c0c0c0" },
{ "type": "cylinder", "r": 0.3, "height": 3, "offsetX": -2, "offsetY": -1.5, "offsetZ": -14, "fill": "#c0c0c0" },
{ "type": "cylinder", "r": 0.3, "height": 3, "offsetX": 0, "offsetY": -1.5, "offsetZ": -14, "fill": "#c0c0c0" },
{ "type": "cylinder", "r": 0.3, "height": 3, "offsetX": 2, "offsetY": -1.5, "offsetZ": -14, "fill": "#c0c0c0" },
{ "type": "cylinder", "r": 0.3, "height": 3, "offsetX": 4, "offsetY": -1.5, "offsetZ": -14, "fill": "#c0c0c0" },
{ "type": "cylinder", "r": 0.3, "height": 3, "offsetX": 6, "offsetY": -1.5, "offsetZ": -14, "fill": "#c0c0c0" }
]
}

View File

@@ -0,0 +1,60 @@
{
"id": "usb-port",
"name": "USB Connectivity Port",
"partNumber": "BL-A1-USB01",
"material": "plastic",
"quantity": 1,
"weight": 15.0,
"weightUnit": "g",
"baseY": 400,
"description": "USB Type-A and Type-C combo port assembly - for firmware updates and file transfer",
"installation": {
"tools": [
{ "name": "Hex key", "size": "2mm", "required": true },
{ "name": "ESD wrist strap", "size": "-", "required": true }
],
"hardware": [
{ "name": "M2 screw", "spec": "M2x5", "qty": 2, "reusable": true },
{ "name": "USB cable", "spec": "4-wire shielded", "qty": 1, "reusable": true }
],
"torque": [
{ "fastener": "M2 screws", "value": 0.2, "unit": "Nm", "sequence": "", "notes": "Light torque" }
],
"notes": [
"USB-C port supports data transfer only - not power delivery",
"USB-A port for thumb drives and firmware updates",
"Shield must be grounded for EMI compliance",
"Check port alignment before tightening"
]
},
"geometry": [
{ "type": "rect", "width": 45, "height": 18, "rx": 2, "fill": "#1a1a1a" },
{ "type": "rect", "width": 15, "height": 8, "offsetX": -10, "fill": "#404040" },
{ "type": "rect", "width": 12, "height": 5, "offsetX": -10, "fill": "#c0c0c0" },
{ "type": "rect", "width": 10, "height": 4, "offsetX": 12, "rx": 2, "fill": "#404040" },
{ "type": "rect", "width": 8, "height": 2.5, "offsetX": 12, "rx": 1, "fill": "#c0c0c0" }
],
"geometry3d": [
{ "type": "box", "width": 40, "height": 12, "depth": 22, "fill": "#1a1a1a" },
{ "type": "box", "width": 14, "height": 7, "depth": 18, "offsetX": -10, "offsetY": 2, "fill": "#c0c0c0" },
{ "type": "box", "width": 12, "height": 5, "depth": 20, "offsetX": -10, "offsetY": 2, "subtract": true },
{ "type": "box", "width": 10, "height": 2, "depth": 10, "offsetX": -10, "offsetY": 2, "offsetZ": -3, "fill": "#2060cc" },
{ "type": "box", "width": 10, "height": 4, "depth": 10, "offsetX": 10, "offsetY": 3, "fill": "#c0c0c0" },
{ "type": "box", "width": 8.5, "height": 2.5, "depth": 12, "offsetX": 10, "offsetY": 3, "subtract": true },
{ "type": "box", "width": 6, "height": 1, "depth": 5, "offsetX": 10, "offsetY": 3, "offsetZ": -1, "fill": "#303030" },
{ "type": "box", "width": 42, "height": 3, "depth": 24, "offsetY": -7.5, "fill": "#006030" },
{ "type": "box", "width": 4, "height": 4, "depth": 4, "offsetX": -16, "offsetY": -5.5, "fill": "#1a1a1a" },
{ "type": "box", "width": 4, "height": 4, "depth": 4, "offsetX": 16, "offsetY": -5.5, "fill": "#1a1a1a" },
{ "type": "box", "width": 35, "height": 2, "depth": 5, "offsetY": -10, "offsetZ": -8, "fill": "#c0c0c0" },
{ "type": "cylinder", "r": 1, "height": 15, "offsetX": -18, "offsetY": 0, "offsetZ": -8, "fill": "#606060" },
{ "type": "cylinder", "r": 1, "height": 15, "offsetX": 18, "offsetY": 0, "offsetZ": -8, "fill": "#606060" },
{ "type": "box", "width": 2, "height": 1, "depth": 2, "offsetX": 0, "offsetY": -5.5, "offsetZ": 8, "fill": "#00cc00" }
]
}

View File

@@ -0,0 +1,62 @@
{
"id": "wifi-module",
"name": "WiFi/Connectivity Module",
"partNumber": "BL-A1-WIFI1",
"material": "pcb",
"quantity": 1,
"weight": 12.0,
"weightUnit": "g",
"baseY": 220,
"description": "ESP32-based WiFi and Bluetooth module - dual-band 2.4/5GHz with PCB antenna",
"installation": {
"tools": [
{ "name": "Hex key", "size": "2mm", "required": true },
{ "name": "ESD wrist strap", "size": "-", "required": true },
{ "name": "Tweezers", "size": "Precision", "required": false }
],
"hardware": [
{ "name": "M2 screw", "spec": "M2x4", "qty": 2, "reusable": true },
{ "name": "Flex cable", "spec": "6-pin 1.0mm pitch", "qty": 1, "reusable": true }
],
"torque": [
{ "fastener": "M2 screws", "value": 0.2, "unit": "Nm", "sequence": "", "notes": "Very light torque" }
],
"notes": [
"WiFi credentials stored in module - backup before replacement",
"Antenna area must not be covered by metal",
"Keep away from stepper drivers to reduce interference",
"Firmware must be re-paired after replacement"
]
},
"geometry": [
{ "type": "rect", "width": 35, "height": 22, "rx": 1, "fill": "#006030" },
{ "type": "rect", "width": 12, "height": 12, "offsetX": -8, "offsetY": 0, "fill": "#303030" },
{ "type": "rect", "width": 8, "height": 3, "offsetX": 10, "offsetY": -6, "fill": "#c0c0c0" },
{ "type": "rect", "width": 6, "height": 8, "offsetX": 12, "offsetY": 4, "fill": "#006030" }
],
"geometry3d": [
{ "type": "box", "width": 32, "height": 1.6, "depth": 18, "fill": "#006030" },
{ "type": "box", "width": 10, "height": 2, "depth": 10, "offsetX": -8, "offsetY": 1.8, "offsetZ": 0, "fill": "#252530" },
{ "type": "box", "width": 8, "height": 0.8, "depth": 8, "offsetX": -8, "offsetY": 3, "offsetZ": 0, "fill": "#404045" },
{ "type": "box", "width": 4, "height": 1.5, "depth": 4, "offsetX": 2, "offsetY": 1.55, "offsetZ": -4, "fill": "#1a1a1a" },
{ "type": "box", "width": 4, "height": 1.5, "depth": 4, "offsetX": 2, "offsetY": 1.55, "offsetZ": 4, "fill": "#1a1a1a" },
{ "type": "cylinder", "r": 1.8, "height": 2.5, "offsetX": 8, "offsetY": 2.05, "offsetZ": -5, "fill": "#303030" },
{ "type": "cylinder", "r": 1.5, "height": 1.5, "offsetX": 8, "offsetY": 3, "offsetZ": -5, "fill": "#505050" },
{ "type": "box", "width": 8, "height": 3, "depth": 6, "offsetX": 8, "offsetY": 2.3, "offsetZ": 4, "fill": "#c0c0c0" },
{ "type": "box", "width": 6, "height": 2, "depth": 4, "offsetX": 8, "offsetY": 2.3, "offsetZ": 5, "subtract": true },
{ "type": "box", "width": 5, "height": 0.3, "depth": 12, "offsetX": 13, "offsetY": 0.95, "offsetZ": 0, "fill": "#c0a000" },
{ "type": "box", "width": 3, "height": 0.3, "depth": 3, "offsetX": 14, "offsetY": 0.95, "offsetZ": -6, "fill": "#c0a000" },
{ "type": "box", "width": 3, "height": 0.3, "depth": 3, "offsetX": 14, "offsetY": 0.95, "offsetZ": 6, "fill": "#c0a000" },
{ "type": "cylinder", "r": 1, "height": 2, "offsetX": -14, "offsetY": 0, "offsetZ": -7, "fill": "#606060" },
{ "type": "cylinder", "r": 1, "height": 2, "offsetX": -14, "offsetY": 0, "offsetZ": 7, "fill": "#606060" },
{ "type": "box", "width": 2, "height": 1, "depth": 1, "offsetX": -2, "offsetY": 1.3, "offsetZ": -7, "fill": "#00cc00" },
{ "type": "box", "width": 2, "height": 1, "depth": 1, "offsetX": -2, "offsetY": 1.3, "offsetZ": -5, "fill": "#0000cc" }
]
}

View File

@@ -0,0 +1,84 @@
{
"id": "wiring-harness",
"name": "Main Cable Harness",
"partNumber": "BL-A1-WH001",
"material": "copper",
"quantity": 1,
"weight": 320.0,
"weightUnit": "g",
"baseY": 460,
"description": "Main wiring loom assembly - connects mainboard to all motors, sensors, and peripherals",
"installation": {
"tools": [
{ "name": "Plastic spudger", "size": "-", "required": true },
{ "name": "Cable ties", "size": "100mm", "required": true },
{ "name": "Wire loom tape", "size": "19mm", "required": false },
{ "name": "Multimeter", "size": "-", "required": true }
],
"hardware": [
{ "name": "Cable clip", "spec": "Self-adhesive 10mm", "qty": 12, "reusable": false },
{ "name": "Spiral wrap", "spec": "6mm diameter", "qty": 1, "reusable": true },
{ "name": "JST-XH connector", "spec": "Various", "qty": 8, "reusable": true }
],
"torque": [],
"notes": [
"Photograph harness routing before removal",
"Label each connector before disconnecting",
"Do not kink or sharply bend cables",
"Keep away from heated components and moving parts",
"Check continuity on all wires after installation",
"Route cables through designated channels"
]
},
"geometry": [
{ "type": "rect", "width": 140, "height": 12, "rx": 6, "fill": "#1a1a1a" },
{ "type": "rect", "width": 8, "height": 35, "offsetX": -55, "offsetY": 18, "rx": 4, "fill": "#1a1a1a" },
{ "type": "rect", "width": 8, "height": 40, "offsetX": -35, "offsetY": 20, "rx": 4, "fill": "#1a1a1a" },
{ "type": "rect", "width": 8, "height": 30, "offsetX": -15, "offsetY": 15, "rx": 4, "fill": "#1a1a1a" },
{ "type": "rect", "width": 8, "height": 45, "offsetX": 5, "offsetY": 22, "rx": 4, "fill": "#1a1a1a" },
{ "type": "rect", "width": 8, "height": 35, "offsetX": 25, "offsetY": 18, "rx": 4, "fill": "#1a1a1a" },
{ "type": "rect", "width": 8, "height": 50, "offsetX": 45, "offsetY": 25, "rx": 4, "fill": "#1a1a1a" },
{ "type": "rect", "width": 8, "height": 25, "offsetX": 60, "offsetY": 12, "rx": 4, "fill": "#1a1a1a" },
{ "type": "rect", "width": 20, "height": 10, "offsetX": -55, "offsetY": 38, "rx": 2, "fill": "#ffffff" },
{ "type": "rect", "width": 20, "height": 10, "offsetX": 5, "offsetY": 48, "rx": 2, "fill": "#ffffff" },
{ "type": "rect", "width": 20, "height": 10, "offsetX": 45, "offsetY": 53, "rx": 2, "fill": "#ffcc00" }
],
"geometry3d": [
{ "type": "box", "width": 120, "height": 10, "depth": 10, "fill": "#1a1a1a" },
{ "type": "cylinder", "r": 4, "height": 30, "offsetX": -50, "offsetZ": 20, "fill": "#1a1a1a" },
{ "type": "cylinder", "r": 4, "height": 35, "offsetX": -30, "offsetZ": 25, "fill": "#1a1a1a" },
{ "type": "cylinder", "r": 4, "height": 25, "offsetX": -10, "offsetZ": 15, "fill": "#1a1a1a" },
{ "type": "cylinder", "r": 4, "height": 40, "offsetX": 10, "offsetZ": 28, "fill": "#1a1a1a" },
{ "type": "cylinder", "r": 4, "height": 30, "offsetX": 30, "offsetZ": 20, "fill": "#1a1a1a" },
{ "type": "cylinder", "r": 4, "height": 45, "offsetX": 50, "offsetZ": 30, "fill": "#1a1a1a" },
{ "type": "box", "width": 18, "height": 6, "depth": 8, "offsetX": -50, "offsetZ": 38, "fill": "#ffffff" },
{ "type": "box", "width": 16, "height": 4, "depth": 5, "offsetX": -50, "offsetZ": 40, "subtract": true },
{ "type": "box", "width": 18, "height": 6, "depth": 8, "offsetX": -30, "offsetZ": 46, "fill": "#ffffff" },
{ "type": "box", "width": 16, "height": 4, "depth": 5, "offsetX": -30, "offsetZ": 48, "subtract": true },
{ "type": "box", "width": 14, "height": 5, "depth": 6, "offsetX": -10, "offsetZ": 30, "fill": "#ffffff" },
{ "type": "box", "width": 12, "height": 3, "depth": 4, "offsetX": -10, "offsetZ": 32, "subtract": true },
{ "type": "box", "width": 22, "height": 8, "depth": 10, "offsetX": 10, "offsetZ": 52, "fill": "#ffffff" },
{ "type": "box", "width": 20, "height": 6, "depth": 7, "offsetX": 10, "offsetZ": 54, "subtract": true },
{ "type": "box", "width": 18, "height": 6, "depth": 8, "offsetX": 30, "offsetZ": 38, "fill": "#ffcc00" },
{ "type": "box", "width": 16, "height": 4, "depth": 5, "offsetX": 30, "offsetZ": 40, "subtract": true },
{ "type": "box", "width": 22, "height": 8, "depth": 10, "offsetX": 50, "offsetZ": 56, "fill": "#ffcc00" },
{ "type": "box", "width": 20, "height": 6, "depth": 7, "offsetX": 50, "offsetZ": 58, "subtract": true },
{ "type": "cylinder", "r": 2, "height": 12, "offsetX": -55, "offsetZ": -10, "fill": "#cc0000" },
{ "type": "cylinder", "r": 2, "height": 12, "offsetX": -52, "offsetZ": -10, "fill": "#1a1a1a" },
{ "type": "cylinder", "r": 2, "height": 15, "offsetX": 55, "offsetZ": -10, "fill": "#ffcc00" },
{ "type": "cylinder", "r": 2, "height": 15, "offsetX": 52, "offsetZ": -10, "fill": "#1a1a1a" },
{ "type": "box", "width": 3, "height": 3, "depth": 3, "offsetX": -40, "offsetY": 3, "fill": "#404045" },
{ "type": "box", "width": 3, "height": 3, "depth": 3, "offsetX": 0, "offsetY": 3, "fill": "#404045" },
{ "type": "box", "width": 3, "height": 3, "depth": 3, "offsetX": 40, "offsetY": 3, "fill": "#404045" }
]
}

View File

@@ -0,0 +1,84 @@
{
"name": "Frame Assembly",
"description": "Bambu Lab A1 structural frame assembly - aluminum extrusion base with vertical columns, horizontal beam, motor mounts, and peripheral mounting points for LCD and spool holder",
"category": "3d-printers",
"manufacturer": "Bambu Lab",
"model": "A1",
"parts": [
"base-frame",
"z-column-left",
"z-column-right",
"top-beam",
"z-motor-mount",
"spool-holder",
"footpad",
"lcd-mount"
],
"assemblyOrder": [
{
"step": 1,
"part": "footpad",
"description": "Install all four footpads to base frame corner mounting points",
"quantity": 4
},
{
"step": 2,
"part": "base-frame",
"description": "Position base frame on level surface, verify stability"
},
{
"step": 3,
"part": "z-motor-mount",
"description": "Attach Z-motor mount to rear-right of base frame"
},
{
"step": 4,
"part": "z-column-left",
"description": "Mount left Z-column to base frame, verify perpendicular"
},
{
"step": 5,
"part": "z-column-right",
"description": "Mount right Z-column to base frame, verify parallel to left column"
},
{
"step": 6,
"part": "top-beam",
"description": "Install top horizontal beam connecting both columns, verify level"
},
{
"step": 7,
"part": "spool-holder",
"description": "Attach spool holder arm to rear of top beam"
},
{
"step": 8,
"part": "lcd-mount",
"description": "Mount LCD bracket to front-left of base frame"
}
],
"totalWeight": {
"value": 4130,
"unit": "g",
"note": "Includes 4x footpads at 28g each"
},
"dimensions": {
"width": 280,
"depth": 240,
"height": 350,
"unit": "mm"
},
"materials": [
"aluminum",
"steel",
"plastic",
"rubber"
],
"primaryColor": "#252525",
"notes": [
"All aluminum extrusions are 2020 profile",
"Frame must be assembled on level surface",
"Verify squareness at each step before proceeding",
"Z-columns must be perfectly perpendicular for accurate prints"
]
}

View File

@@ -0,0 +1,86 @@
{
"id": "base-frame",
"name": "Base Frame",
"partNumber": "BL-A1-001",
"material": "aluminum",
"quantity": 1,
"weight": 1850.0,
"weightUnit": "g",
"baseY": 0,
"description": "Main aluminum extrusion base frame - provides structural foundation for entire printer assembly with integrated cable routing channels and mounting points for all major components",
"installation": {
"tools": [
{ "name": "Hex key", "size": "2.5mm", "required": true },
{ "name": "Hex key", "size": "3mm", "required": true },
{ "name": "Level", "size": "300mm", "required": true },
{ "name": "Soft mallet", "size": "-", "required": false }
],
"hardware": [
{ "name": "Frame corner bracket", "spec": "20x20mm", "qty": 8, "reusable": true },
{ "name": "T-slot nut", "spec": "M4", "qty": 16, "reusable": true },
{ "name": "Socket head cap screw", "spec": "M4x8", "grade": "12.9", "qty": 16, "reusable": true },
{ "name": "Rubber bumper", "spec": "M4x10", "qty": 4, "reusable": true }
],
"torque": [
{ "fastener": "Corner bracket screws", "value": 2.5, "unit": "Nm", "sequence": "Opposing corners first", "notes": "Do not overtighten - aluminum threads" },
{ "fastener": "T-slot nuts", "value": 2.0, "unit": "Nm", "sequence": "Slide in before tightening", "notes": "Ensure nut is fully seated in slot" }
],
"notes": [
"Base frame is the foundation - ensure perfect level before proceeding",
"Check all corner brackets for square alignment",
"Cable routing channels face inward",
"Footpad mounting holes are pre-threaded"
]
},
"geometry": [
{ "type": "rect", "width": 200, "height": 180, "rx": 4, "fill": "#252525" },
{ "type": "rect", "width": 180, "height": 160, "rx": 2, "fill": "#1a1a1a" },
{ "type": "rect", "width": 20, "height": 180, "offsetX": -90, "fill": "#303030" },
{ "type": "rect", "width": 20, "height": 180, "offsetX": 90, "fill": "#303030" },
{ "type": "rect", "width": 200, "height": 20, "offsetY": -80, "fill": "#303030" },
{ "type": "rect", "width": 200, "height": 20, "offsetY": 80, "fill": "#303030" },
{ "type": "circle", "r": 5, "offsetX": -85, "offsetY": -75, "fill": "#444" },
{ "type": "circle", "r": 5, "offsetX": 85, "offsetY": -75, "fill": "#444" },
{ "type": "circle", "r": 5, "offsetX": -85, "offsetY": 75, "fill": "#444" },
{ "type": "circle", "r": 5, "offsetX": 85, "offsetY": 75, "fill": "#444" }
],
"geometry3d": [
{ "type": "box", "width": 280, "height": 20, "depth": 40, "offsetZ": -100, "fill": "#252525" },
{ "type": "box", "width": 280, "height": 20, "depth": 40, "offsetZ": 100, "fill": "#252525" },
{ "type": "box", "width": 40, "height": 20, "depth": 200, "offsetX": -120, "fill": "#252525" },
{ "type": "box", "width": 40, "height": 20, "depth": 200, "offsetX": 120, "fill": "#252525" },
{ "type": "box", "width": 260, "height": 12, "depth": 20, "offsetZ": -100, "offsetY": 2, "fill": "#303030" },
{ "type": "box", "width": 260, "height": 12, "depth": 20, "offsetZ": 100, "offsetY": 2, "fill": "#303030" },
{ "type": "box", "width": 20, "height": 12, "depth": 180, "offsetX": -120, "offsetY": 2, "fill": "#303030" },
{ "type": "box", "width": 20, "height": 12, "depth": 180, "offsetX": 120, "offsetY": 2, "fill": "#303030" },
{ "type": "box", "width": 8, "height": 8, "depth": 200, "offsetX": -120, "offsetY": -4, "subtract": true },
{ "type": "box", "width": 8, "height": 8, "depth": 200, "offsetX": 120, "offsetY": -4, "subtract": true },
{ "type": "box", "width": 280, "height": 8, "depth": 8, "offsetZ": -100, "offsetY": -4, "subtract": true },
{ "type": "box", "width": 280, "height": 8, "depth": 8, "offsetZ": 100, "offsetY": -4, "subtract": true },
{ "type": "cylinder", "r": 3, "height": 25, "offsetX": -120, "offsetZ": -100, "subtract": true },
{ "type": "cylinder", "r": 3, "height": 25, "offsetX": 120, "offsetZ": -100, "subtract": true },
{ "type": "cylinder", "r": 3, "height": 25, "offsetX": -120, "offsetZ": 100, "subtract": true },
{ "type": "cylinder", "r": 3, "height": 25, "offsetX": 120, "offsetZ": 100, "subtract": true },
{ "type": "cylinder", "r": 6, "height": 8, "offsetX": -120, "offsetZ": -100, "offsetY": 8, "fill": "#404040" },
{ "type": "cylinder", "r": 6, "height": 8, "offsetX": 120, "offsetZ": -100, "offsetY": 8, "fill": "#404040" },
{ "type": "cylinder", "r": 6, "height": 8, "offsetX": -120, "offsetZ": 100, "offsetY": 8, "fill": "#404040" },
{ "type": "cylinder", "r": 6, "height": 8, "offsetX": 120, "offsetZ": 100, "offsetY": 8, "fill": "#404040" },
{ "type": "box", "width": 60, "height": 6, "depth": 180, "offsetX": 0, "offsetY": 8, "fill": "#353535" },
{ "type": "box", "width": 40, "height": 5, "depth": 30, "offsetX": -80, "offsetZ": -85, "offsetY": 9, "fill": "#404040" },
{ "type": "box", "width": 40, "height": 5, "depth": 30, "offsetX": 80, "offsetZ": -85, "offsetY": 9, "fill": "#404040" },
{ "type": "cylinder", "r": 4, "height": 10, "offsetX": -80, "offsetZ": -85, "subtract": true },
{ "type": "cylinder", "r": 4, "height": 10, "offsetX": 80, "offsetZ": -85, "subtract": true },
{ "type": "box", "width": 15, "height": 15, "depth": 15, "offsetX": -105, "offsetZ": -85, "fill": "#383838" },
{ "type": "box", "width": 15, "height": 15, "depth": 15, "offsetX": 105, "offsetZ": -85, "fill": "#383838" },
{ "type": "box", "width": 15, "height": 15, "depth": 15, "offsetX": -105, "offsetZ": 85, "fill": "#383838" },
{ "type": "box", "width": 15, "height": 15, "depth": 15, "offsetX": 105, "offsetZ": 85, "fill": "#383838" }
]
}

View File

@@ -0,0 +1,69 @@
{
"id": "footpad",
"name": "Vibration Dampening Footpad",
"partNumber": "BL-A1-007",
"material": "rubber",
"quantity": 4,
"weight": 28.0,
"weightUnit": "g",
"baseY": -15,
"description": "Molded rubber vibration dampening footpad - absorbs high-frequency vibrations from stepper motors and rapid movements, features threaded steel insert for secure frame attachment and non-slip base texture",
"installation": {
"tools": [
{ "name": "Hex key", "size": "3mm", "required": true },
{ "name": "Level", "size": "200mm", "required": true }
],
"hardware": [
{ "name": "Footpad screw", "spec": "M4x12", "grade": "8.8", "qty": 1, "reusable": true },
{ "name": "Steel threaded insert", "spec": "M4", "qty": 1, "reusable": true }
],
"torque": [
{ "fastener": "Footpad screw", "value": 1.8, "unit": "Nm", "sequence": "Hand tight then quarter turn", "notes": "Rubber compresses - do not overtighten" }
],
"notes": [
"Install all four footpads before frame assembly",
"Use level to verify printer is stable on surface",
"Footpads may compress slightly during first weeks of use",
"Replace if rubber becomes hard or cracked"
]
},
"geometry": [
{ "type": "ellipse", "rx": 22, "ry": 18, "fill": "#252525" },
{ "type": "ellipse", "rx": 18, "ry": 14, "fill": "#303030" },
{ "type": "circle", "r": 5, "fill": "#404040" },
{ "type": "circle", "r": 3, "fill": "#555" }
],
"geometry3d": [
{ "type": "cylinder", "r": 20, "height": 6, "offsetY": -8, "fill": "#252525" },
{ "type": "cylinder", "r": 18, "height": 10, "offsetY": -2, "fill": "#303030" },
{ "type": "cylinder", "r": 15, "height": 8, "offsetY": 6, "fill": "#353535" },
{ "type": "cylinder", "r": 5, "height": 18, "fill": "#505050" },
{ "type": "cylinder", "r": 2.5, "height": 22, "subtract": true },
{ "type": "cylinder", "r": 4.5, "height": 6, "offsetY": 8, "fill": "#606060" },
{ "type": "cylinder", "r": 22, "height": 2, "offsetY": -12, "fill": "#1a1a1a" },
{ "type": "box", "width": 40, "height": 1, "depth": 3, "offsetY": -12, "fill": "#2a2a2a" },
{ "type": "box", "width": 3, "height": 1, "depth": 40, "offsetY": -12, "fill": "#2a2a2a" },
{ "type": "box", "width": 30, "height": 1, "depth": 3, "offsetY": -12, "offsetZ": 8, "fill": "#2a2a2a" },
{ "type": "box", "width": 30, "height": 1, "depth": 3, "offsetY": -12, "offsetZ": -8, "fill": "#2a2a2a" },
{ "type": "box", "width": 3, "height": 1, "depth": 30, "offsetY": -12, "offsetX": 8, "fill": "#2a2a2a" },
{ "type": "box", "width": 3, "height": 1, "depth": 30, "offsetY": -12, "offsetX": -8, "fill": "#2a2a2a" },
{ "type": "cylinder", "r": 17, "height": 3, "offsetY": -5, "fill": "#282828" },
{ "type": "cylinder", "r": 14, "height": 4, "offsetY": -5, "fill": "#303030" },
{ "type": "box", "width": 2, "height": 14, "depth": 2, "offsetX": 12, "offsetZ": 0, "fill": "#404040" },
{ "type": "box", "width": 2, "height": 14, "depth": 2, "offsetX": -12, "offsetZ": 0, "fill": "#404040" },
{ "type": "box", "width": 2, "height": 14, "depth": 2, "offsetX": 0, "offsetZ": 12, "fill": "#404040" },
{ "type": "box", "width": 2, "height": 14, "depth": 2, "offsetX": 0, "offsetZ": -12, "fill": "#404040" },
{ "type": "cylinder", "r": 8, "height": 4, "offsetY": 10, "fill": "#454545" },
{ "type": "cylinder", "r": 6, "height": 2, "offsetY": 13, "fill": "#555555" }
]
}

View File

@@ -0,0 +1,83 @@
{
"id": "lcd-mount",
"name": "LCD Display Mount",
"partNumber": "BL-A1-008",
"material": "plastic",
"quantity": 1,
"weight": 42.0,
"weightUnit": "g",
"baseY": 50,
"description": "Injection molded LCD display mounting bracket - positions the touchscreen display at optimal viewing angle, features snap-fit cable routing and integrated tilt adjustment mechanism",
"installation": {
"tools": [
{ "name": "Hex key", "size": "2mm", "required": true },
{ "name": "Phillips screwdriver", "size": "#1", "required": true },
{ "name": "Plastic spudger", "size": "-", "required": false }
],
"hardware": [
{ "name": "Display screw", "spec": "M3x6", "grade": "8.8", "qty": 4, "reusable": true },
{ "name": "Mount bracket screw", "spec": "M4x10", "grade": "8.8", "qty": 2, "reusable": true },
{ "name": "T-slot nut", "spec": "M4", "qty": 2, "reusable": true },
{ "name": "FFC ribbon cable", "spec": "24-pin 100mm", "qty": 1, "reusable": false }
],
"torque": [
{ "fastener": "Display screws", "value": 0.4, "unit": "Nm", "sequence": "Diagonal pattern", "notes": "Very light torque - LCD can crack" },
{ "fastener": "Mount bracket screws", "value": 1.5, "unit": "Nm", "sequence": "Both evenly", "notes": "Allows angle adjustment" }
],
"notes": [
"Handle LCD with care - static sensitive",
"Route ribbon cable before securing display",
"Tilt angle adjustable 15-45 degrees",
"Cable connector is delicate - align carefully"
]
},
"geometry": [
{ "type": "rect", "width": 90, "height": 60, "rx": 4, "fill": "#303030" },
{ "type": "rect", "width": 80, "height": 50, "rx": 2, "fill": "#1a1a1a" },
{ "type": "rect", "width": 20, "height": 25, "offsetY": 35, "fill": "#353535" },
{ "type": "circle", "r": 3, "offsetX": -38, "offsetY": -22, "fill": "#444" },
{ "type": "circle", "r": 3, "offsetX": 38, "offsetY": -22, "fill": "#444" },
{ "type": "circle", "r": 3, "offsetX": -38, "offsetY": 22, "fill": "#444" },
{ "type": "circle", "r": 3, "offsetX": 38, "offsetY": 22, "fill": "#444" }
],
"geometry3d": [
{ "type": "box", "width": 90, "height": 60, "depth": 6, "fill": "#303030" },
{ "type": "box", "width": 82, "height": 52, "depth": 3, "offsetZ": 2, "fill": "#1a1a1a" },
{ "type": "box", "width": 95, "height": 8, "depth": 10, "offsetY": -28, "fill": "#353535" },
{ "type": "box", "width": 95, "height": 8, "depth": 10, "offsetY": 28, "fill": "#353535" },
{ "type": "cylinder", "r": 2, "height": 12, "offsetX": -40, "offsetY": -24, "rotateX": 90, "subtract": true },
{ "type": "cylinder", "r": 2, "height": 12, "offsetX": 40, "offsetY": -24, "rotateX": 90, "subtract": true },
{ "type": "cylinder", "r": 2, "height": 12, "offsetX": -40, "offsetY": 24, "rotateX": 90, "subtract": true },
{ "type": "cylinder", "r": 2, "height": 12, "offsetX": 40, "offsetY": 24, "rotateX": 90, "subtract": true },
{ "type": "cylinder", "r": 4, "height": 3, "offsetX": -40, "offsetY": -24, "offsetZ": 3, "fill": "#505050" },
{ "type": "cylinder", "r": 4, "height": 3, "offsetX": 40, "offsetY": -24, "offsetZ": 3, "fill": "#505050" },
{ "type": "cylinder", "r": 4, "height": 3, "offsetX": -40, "offsetY": 24, "offsetZ": 3, "fill": "#505050" },
{ "type": "cylinder", "r": 4, "height": 3, "offsetX": 40, "offsetY": 24, "offsetZ": 3, "fill": "#505050" },
{ "type": "box", "width": 20, "height": 40, "depth": 8, "offsetY": 45, "fill": "#353535" },
{ "type": "box", "width": 8, "height": 12, "depth": 25, "offsetY": 60, "fill": "#404040" },
{ "type": "cylinder", "r": 2.5, "height": 25, "offsetY": 60, "rotateZ": 90, "subtract": true },
{ "type": "cylinder", "r": 5, "height": 10, "offsetY": 55, "offsetX": -6, "rotateZ": 90, "fill": "#505050" },
{ "type": "cylinder", "r": 5, "height": 10, "offsetY": 55, "offsetX": 6, "rotateZ": 90, "fill": "#505050" },
{ "type": "box", "width": 30, "height": 8, "depth": 4, "offsetY": 32, "offsetZ": -3, "fill": "#2a2a2a" },
{ "type": "box", "width": 24, "height": 5, "depth": 6, "offsetY": 32, "offsetZ": -3, "subtract": true },
{ "type": "box", "width": 4, "height": 55, "depth": 8, "offsetX": -43, "fill": "#383838" },
{ "type": "box", "width": 4, "height": 55, "depth": 8, "offsetX": 43, "fill": "#383838" },
{ "type": "box", "width": 50, "height": 3, "depth": 4, "offsetY": -35, "offsetZ": 1, "fill": "#454545" },
{ "type": "box", "width": 35, "height": 2, "depth": 2, "offsetY": -35, "offsetZ": 1, "subtract": true },
{ "type": "box", "width": 12, "height": 6, "depth": 3, "offsetX": 35, "offsetY": 0, "offsetZ": -4, "fill": "#404040" },
{ "type": "cylinder", "r": 1.5, "height": 8, "offsetX": 35, "offsetY": 2, "offsetZ": -4, "rotateX": 90, "subtract": true },
{ "type": "cylinder", "r": 1.5, "height": 8, "offsetX": 35, "offsetY": -2, "offsetZ": -4, "rotateX": 90, "subtract": true }
]
}

View File

@@ -0,0 +1,73 @@
{
"id": "spool-holder",
"name": "Filament Spool Holder",
"partNumber": "BL-A1-006",
"material": "plastic",
"quantity": 1,
"weight": 85.0,
"weightUnit": "g",
"baseY": 220,
"description": "Injection molded filament spool holder arm - mounts to top beam rear, supports standard 1kg spools up to 200mm diameter with integrated runout sensor mount and smooth roller bearings",
"installation": {
"tools": [
{ "name": "Hex key", "size": "2.5mm", "required": true },
{ "name": "Phillips screwdriver", "size": "#1", "required": true }
],
"hardware": [
{ "name": "Mounting screw", "spec": "M4x12", "grade": "8.8", "qty": 2, "reusable": true },
{ "name": "T-slot nut", "spec": "M4", "qty": 2, "reusable": true },
{ "name": "Roller bearing", "spec": "608ZZ", "qty": 2, "reusable": true },
{ "name": "Bearing spacer", "spec": "8x12x5mm", "qty": 1, "reusable": true }
],
"torque": [
{ "fastener": "Mounting screws", "value": 1.5, "unit": "Nm", "sequence": "Both screws evenly", "notes": "Plastic threads - do not overtighten" }
],
"notes": [
"Supports spools up to 1kg standard size",
"Roller bearings allow smooth spool rotation",
"Position with filament path clear to extruder",
"Runout sensor mounts on inner arm face"
]
},
"geometry": [
{ "type": "rect", "width": 25, "height": 80, "rx": 3, "fill": "#303030" },
{ "type": "rect", "width": 100, "height": 15, "offsetY": -30, "rx": 4, "fill": "#353535" },
{ "type": "circle", "r": 8, "offsetX": -35, "offsetY": -30, "fill": "#252525" },
{ "type": "circle", "r": 8, "offsetX": 40, "offsetY": -30, "fill": "#252525" },
{ "type": "circle", "r": 4, "offsetY": 30, "fill": "#444" },
{ "type": "circle", "r": 4, "offsetY": 15, "fill": "#444" }
],
"geometry3d": [
{ "type": "box", "width": 25, "height": 15, "depth": 30, "offsetY": 0, "fill": "#303030" },
{ "type": "box", "width": 120, "height": 12, "depth": 20, "offsetX": 50, "offsetY": 0, "fill": "#353535" },
{ "type": "cylinder", "r": 10, "height": 25, "offsetX": 100, "rotateZ": 90, "fill": "#404040" },
{ "type": "cylinder", "r": 5, "height": 30, "offsetX": 100, "rotateZ": 90, "subtract": true },
{ "type": "cylinder", "r": 8, "height": 8, "offsetX": 100, "offsetY": 10, "rotateZ": 90, "fill": "#606060" },
{ "type": "cylinder", "r": 8, "height": 8, "offsetX": 100, "offsetY": -10, "rotateZ": 90, "fill": "#606060" },
{ "type": "cylinder", "r": 4, "height": 10, "offsetX": 100, "offsetY": 10, "rotateZ": 90, "subtract": true },
{ "type": "cylinder", "r": 4, "height": 10, "offsetX": 100, "offsetY": -10, "rotateZ": 90, "subtract": true },
{ "type": "box", "width": 8, "height": 40, "depth": 25, "offsetX": 0, "offsetY": 25, "fill": "#383838" },
{ "type": "cylinder", "r": 2.5, "height": 20, "offsetX": 0, "offsetY": 35, "rotateX": 90, "subtract": true },
{ "type": "cylinder", "r": 2.5, "height": 20, "offsetX": 0, "offsetY": 20, "rotateX": 90, "subtract": true },
{ "type": "box", "width": 20, "height": 8, "depth": 15, "offsetX": 25, "offsetY": 4, "fill": "#404040" },
{ "type": "box", "width": 15, "height": 10, "depth": 10, "offsetX": 25, "offsetY": 4, "subtract": true },
{ "type": "cylinder", "r": 6, "height": 30, "offsetX": 15, "rotateZ": 90, "fill": "#2a2a2a" },
{ "type": "box", "width": 15, "height": 6, "depth": 12, "offsetX": 60, "offsetY": 8, "fill": "#505050" },
{ "type": "cylinder", "r": 2, "height": 8, "offsetX": 55, "offsetY": 8, "subtract": true },
{ "type": "cylinder", "r": 2, "height": 8, "offsetX": 65, "offsetY": 8, "subtract": true },
{ "type": "box", "width": 6, "height": 18, "depth": 10, "offsetX": 110, "offsetY": 0, "fill": "#454545" },
{ "type": "box", "width": 100, "height": 3, "depth": 15, "offsetX": 50, "offsetY": -6, "fill": "#252525" },
{ "type": "cylinder", "r": 3, "height": 14, "offsetX": 80, "rotateZ": 90, "fill": "#505050" }
]
}

View File

@@ -0,0 +1,76 @@
{
"id": "top-beam",
"name": "Top Horizontal Beam",
"partNumber": "BL-A1-004",
"material": "aluminum",
"quantity": 1,
"weight": 420.0,
"weightUnit": "g",
"baseY": 200,
"description": "Top horizontal aluminum extrusion beam connecting left and right Z-columns - provides gantry stability, supports X-axis components, and houses the spool holder mounting point",
"installation": {
"tools": [
{ "name": "Hex key", "size": "4mm", "required": true },
{ "name": "Hex key", "size": "3mm", "required": true },
{ "name": "Spirit level", "size": "200mm", "required": true },
{ "name": "Measuring tape", "size": "1m", "required": true }
],
"hardware": [
{ "name": "Beam mounting bolt", "spec": "M5x20", "grade": "12.9", "qty": 4, "reusable": true },
{ "name": "T-slot nut", "spec": "M5", "qty": 4, "reusable": true },
{ "name": "Corner gusset plate", "spec": "40x40mm", "qty": 2, "reusable": true },
{ "name": "Spool holder bracket screw", "spec": "M4x12", "qty": 2, "reusable": true }
],
"torque": [
{ "fastener": "Beam mounting bolts", "value": 4.5, "unit": "Nm", "sequence": "Hand tight, then final torque both sides", "notes": "Verify beam is level before final torque" },
{ "fastener": "Corner gusset bolts", "value": 3.5, "unit": "Nm", "sequence": "Gusset adds rigidity", "notes": "Install after main beam is secured" }
],
"notes": [
"Beam must be perfectly level for consistent Z-height",
"Install corner gussets for additional rigidity",
"Spool holder mounts to rear center of beam",
"Route any wiring through top channel before closing"
]
},
"geometry": [
{ "type": "rect", "width": 180, "height": 30, "rx": 2, "fill": "#252525" },
{ "type": "rect", "width": 170, "height": 6, "offsetY": -8, "fill": "#303030" },
{ "type": "rect", "width": 170, "height": 6, "offsetY": 8, "fill": "#303030" },
{ "type": "circle", "r": 4, "offsetX": -80, "offsetY": 0, "fill": "#444" },
{ "type": "circle", "r": 4, "offsetX": 80, "offsetY": 0, "fill": "#444" },
{ "type": "rect", "width": 20, "height": 12, "offsetX": 0, "offsetY": 0, "fill": "#404040" }
],
"geometry3d": [
{ "type": "box", "width": 260, "height": 30, "depth": 30, "fill": "#252525" },
{ "type": "box", "width": 240, "height": 8, "depth": 8, "subtract": true },
{ "type": "box", "width": 250, "height": 6, "depth": 12, "offsetY": 10, "fill": "#303030" },
{ "type": "box", "width": 250, "height": 6, "depth": 12, "offsetY": -10, "fill": "#303030" },
{ "type": "box", "width": 32, "height": 32, "depth": 32, "offsetX": -125, "fill": "#353535" },
{ "type": "box", "width": 32, "height": 32, "depth": 32, "offsetX": 125, "fill": "#353535" },
{ "type": "cylinder", "r": 3.5, "height": 40, "offsetX": -125, "offsetY": 8, "rotateZ": 90, "subtract": true },
{ "type": "cylinder", "r": 3.5, "height": 40, "offsetX": -125, "offsetY": -8, "rotateZ": 90, "subtract": true },
{ "type": "cylinder", "r": 3.5, "height": 40, "offsetX": 125, "offsetY": 8, "rotateZ": 90, "subtract": true },
{ "type": "cylinder", "r": 3.5, "height": 40, "offsetX": 125, "offsetY": -8, "rotateZ": 90, "subtract": true },
{ "type": "box", "width": 30, "height": 10, "depth": 20, "offsetX": 0, "offsetY": 18, "offsetZ": -10, "fill": "#404040" },
{ "type": "cylinder", "r": 2.5, "height": 15, "offsetX": -8, "offsetY": 18, "offsetZ": -10, "subtract": true },
{ "type": "cylinder", "r": 2.5, "height": 15, "offsetX": 8, "offsetY": 18, "offsetZ": -10, "subtract": true },
{ "type": "cylinder", "r": 2, "height": 35, "offsetX": -60, "offsetZ": 0, "rotateZ": 90, "subtract": true },
{ "type": "cylinder", "r": 2, "height": 35, "offsetX": -30, "offsetZ": 0, "rotateZ": 90, "subtract": true },
{ "type": "cylinder", "r": 2, "height": 35, "offsetX": 30, "offsetZ": 0, "rotateZ": 90, "subtract": true },
{ "type": "cylinder", "r": 2, "height": 35, "offsetX": 60, "offsetZ": 0, "rotateZ": 90, "subtract": true },
{ "type": "box", "width": 240, "height": 4, "depth": 6, "offsetY": -13, "offsetZ": 8, "fill": "#383838" },
{ "type": "box", "width": 8, "height": 20, "depth": 4, "offsetX": -100, "offsetY": 5, "offsetZ": 15, "fill": "#505050" },
{ "type": "box", "width": 8, "height": 20, "depth": 4, "offsetX": 100, "offsetY": 5, "offsetZ": 15, "fill": "#505050" },
{ "type": "box", "width": 50, "height": 8, "depth": 35, "offsetX": 0, "offsetY": -17, "offsetZ": 0, "fill": "#2a2a2a" },
{ "type": "cylinder", "r": 4, "height": 40, "offsetX": 0, "offsetY": -17, "offsetZ": 0, "rotateX": 90, "subtract": true }
]
}

View File

@@ -0,0 +1,77 @@
{
"id": "z-column-left",
"name": "Z-Axis Column Left",
"partNumber": "BL-A1-002",
"material": "aluminum",
"quantity": 1,
"weight": 680.0,
"weightUnit": "g",
"baseY": 80,
"description": "Left vertical aluminum extrusion column - supports Z-axis linear rail and provides structural rigidity for the gantry system with integrated cable management channels",
"installation": {
"tools": [
{ "name": "Hex key", "size": "3mm", "required": true },
{ "name": "Hex key", "size": "4mm", "required": true },
{ "name": "Square", "size": "150mm", "required": true },
{ "name": "Torque driver", "size": "0.5-6 Nm", "required": true }
],
"hardware": [
{ "name": "Column mounting bolt", "spec": "M5x16", "grade": "12.9", "qty": 4, "reusable": true },
{ "name": "T-slot nut", "spec": "M5", "qty": 4, "reusable": true },
{ "name": "Alignment dowel", "spec": "4x8mm", "qty": 2, "reusable": true },
{ "name": "Linear rail", "spec": "MGN12H-300", "qty": 1, "reusable": true }
],
"torque": [
{ "fastener": "Column mounting bolts", "value": 4.5, "unit": "Nm", "sequence": "Bottom pair first, then top", "notes": "Verify perpendicular to base before final torque" },
{ "fastener": "Linear rail screws", "value": 1.2, "unit": "Nm", "sequence": "Center outward", "notes": "Rail must be parallel to column edge" }
],
"notes": [
"Verify column is perfectly perpendicular to base frame",
"Install linear rail before mounting column",
"Left and right columns are mirror images - check orientation",
"Cable channel faces inward toward print area"
]
},
"geometry": [
{ "type": "rect", "width": 35, "height": 140, "rx": 2, "fill": "#252525" },
{ "type": "rect", "width": 8, "height": 130, "offsetX": -10, "fill": "#303030" },
{ "type": "rect", "width": 25, "height": 8, "offsetX": 2, "offsetY": -60, "fill": "#353535" },
{ "type": "rect", "width": 25, "height": 8, "offsetX": 2, "offsetY": 60, "fill": "#353535" },
{ "type": "circle", "r": 3, "offsetX": 8, "offsetY": -55, "fill": "#444" },
{ "type": "circle", "r": 3, "offsetX": 8, "offsetY": 55, "fill": "#444" },
{ "type": "rect", "width": 6, "height": 100, "offsetX": 12, "fill": "#505050" }
],
"geometry3d": [
{ "type": "box", "width": 40, "height": 300, "depth": 40, "fill": "#252525" },
{ "type": "box", "width": 8, "height": 280, "depth": 8, "offsetY": 0, "subtract": true },
{ "type": "box", "width": 10, "height": 290, "depth": 20, "offsetX": -12, "fill": "#303030" },
{ "type": "box", "width": 42, "height": 15, "depth": 42, "offsetY": -145, "fill": "#353535" },
{ "type": "box", "width": 42, "height": 15, "depth": 42, "offsetY": 145, "fill": "#353535" },
{ "type": "cylinder", "r": 3.5, "height": 50, "offsetX": 12, "offsetY": -140, "rotateX": 90, "subtract": true },
{ "type": "cylinder", "r": 3.5, "height": 50, "offsetX": -12, "offsetY": -140, "rotateX": 90, "subtract": true },
{ "type": "cylinder", "r": 3.5, "height": 50, "offsetX": 12, "offsetY": 140, "rotateX": 90, "subtract": true },
{ "type": "cylinder", "r": 3.5, "height": 50, "offsetX": -12, "offsetY": 140, "rotateX": 90, "subtract": true },
{ "type": "box", "width": 8, "height": 260, "depth": 3, "offsetX": 18, "fill": "#606060" },
{ "type": "cylinder", "r": 2, "height": 10, "offsetX": 18, "offsetY": -120, "rotateZ": 90, "subtract": true },
{ "type": "cylinder", "r": 2, "height": 10, "offsetX": 18, "offsetY": -80, "rotateZ": 90, "subtract": true },
{ "type": "cylinder", "r": 2, "height": 10, "offsetX": 18, "offsetY": -40, "rotateZ": 90, "subtract": true },
{ "type": "cylinder", "r": 2, "height": 10, "offsetX": 18, "offsetY": 0, "rotateZ": 90, "subtract": true },
{ "type": "cylinder", "r": 2, "height": 10, "offsetX": 18, "offsetY": 40, "rotateZ": 90, "subtract": true },
{ "type": "cylinder", "r": 2, "height": 10, "offsetX": 18, "offsetY": 80, "rotateZ": 90, "subtract": true },
{ "type": "cylinder", "r": 2, "height": 10, "offsetX": 18, "offsetY": 120, "rotateZ": 90, "subtract": true },
{ "type": "box", "width": 6, "height": 280, "depth": 10, "offsetX": -18, "offsetZ": 10, "fill": "#383838" },
{ "type": "box", "width": 4, "height": 270, "depth": 6, "offsetX": -18, "offsetZ": 10, "subtract": true },
{ "type": "box", "width": 20, "height": 12, "depth": 8, "offsetX": 5, "offsetY": 135, "offsetZ": 18, "fill": "#404040" },
{ "type": "cylinder", "r": 2.5, "height": 15, "offsetX": 5, "offsetY": 135, "offsetZ": 18, "subtract": true },
{ "type": "cylinder", "r": 4, "height": 8, "offsetX": 0, "offsetY": -148, "fill": "#505050" },
{ "type": "cylinder", "r": 2, "height": 15, "offsetX": 0, "offsetY": -148, "subtract": true }
]
}

View File

@@ -0,0 +1,80 @@
{
"id": "z-column-right",
"name": "Z-Axis Column Right",
"partNumber": "BL-A1-003",
"material": "aluminum",
"quantity": 1,
"weight": 680.0,
"weightUnit": "g",
"baseY": 80,
"description": "Right vertical aluminum extrusion column - mirrors left column, supports Z-axis linear rail and houses the Z-motor mounting interface with integrated cable routing",
"installation": {
"tools": [
{ "name": "Hex key", "size": "3mm", "required": true },
{ "name": "Hex key", "size": "4mm", "required": true },
{ "name": "Square", "size": "150mm", "required": true },
{ "name": "Torque driver", "size": "0.5-6 Nm", "required": true }
],
"hardware": [
{ "name": "Column mounting bolt", "spec": "M5x16", "grade": "12.9", "qty": 4, "reusable": true },
{ "name": "T-slot nut", "spec": "M5", "qty": 4, "reusable": true },
{ "name": "Alignment dowel", "spec": "4x8mm", "qty": 2, "reusable": true },
{ "name": "Linear rail", "spec": "MGN12H-300", "qty": 1, "reusable": true }
],
"torque": [
{ "fastener": "Column mounting bolts", "value": 4.5, "unit": "Nm", "sequence": "Bottom pair first, then top", "notes": "Verify perpendicular to base before final torque" },
{ "fastener": "Linear rail screws", "value": 1.2, "unit": "Nm", "sequence": "Center outward", "notes": "Rail must be parallel to column edge" }
],
"notes": [
"Mirror image of left column - verify correct orientation",
"Z-motor mount interfaces at base of this column",
"Ensure equal spacing from both columns to center",
"Verify both columns are parallel before proceeding"
]
},
"geometry": [
{ "type": "rect", "width": 35, "height": 140, "rx": 2, "fill": "#252525" },
{ "type": "rect", "width": 8, "height": 130, "offsetX": 10, "fill": "#303030" },
{ "type": "rect", "width": 25, "height": 8, "offsetX": -2, "offsetY": -60, "fill": "#353535" },
{ "type": "rect", "width": 25, "height": 8, "offsetX": -2, "offsetY": 60, "fill": "#353535" },
{ "type": "circle", "r": 3, "offsetX": -8, "offsetY": -55, "fill": "#444" },
{ "type": "circle", "r": 3, "offsetX": -8, "offsetY": 55, "fill": "#444" },
{ "type": "rect", "width": 6, "height": 100, "offsetX": -12, "fill": "#505050" }
],
"geometry3d": [
{ "type": "box", "width": 40, "height": 300, "depth": 40, "fill": "#252525" },
{ "type": "box", "width": 8, "height": 280, "depth": 8, "offsetY": 0, "subtract": true },
{ "type": "box", "width": 10, "height": 290, "depth": 20, "offsetX": 12, "fill": "#303030" },
{ "type": "box", "width": 42, "height": 15, "depth": 42, "offsetY": -145, "fill": "#353535" },
{ "type": "box", "width": 42, "height": 15, "depth": 42, "offsetY": 145, "fill": "#353535" },
{ "type": "cylinder", "r": 3.5, "height": 50, "offsetX": 12, "offsetY": -140, "rotateX": 90, "subtract": true },
{ "type": "cylinder", "r": 3.5, "height": 50, "offsetX": -12, "offsetY": -140, "rotateX": 90, "subtract": true },
{ "type": "cylinder", "r": 3.5, "height": 50, "offsetX": 12, "offsetY": 140, "rotateX": 90, "subtract": true },
{ "type": "cylinder", "r": 3.5, "height": 50, "offsetX": -12, "offsetY": 140, "rotateX": 90, "subtract": true },
{ "type": "box", "width": 8, "height": 260, "depth": 3, "offsetX": -18, "fill": "#606060" },
{ "type": "cylinder", "r": 2, "height": 10, "offsetX": -18, "offsetY": -120, "rotateZ": 90, "subtract": true },
{ "type": "cylinder", "r": 2, "height": 10, "offsetX": -18, "offsetY": -80, "rotateZ": 90, "subtract": true },
{ "type": "cylinder", "r": 2, "height": 10, "offsetX": -18, "offsetY": -40, "rotateZ": 90, "subtract": true },
{ "type": "cylinder", "r": 2, "height": 10, "offsetX": -18, "offsetY": 0, "rotateZ": 90, "subtract": true },
{ "type": "cylinder", "r": 2, "height": 10, "offsetX": -18, "offsetY": 40, "rotateZ": 90, "subtract": true },
{ "type": "cylinder", "r": 2, "height": 10, "offsetX": -18, "offsetY": 80, "rotateZ": 90, "subtract": true },
{ "type": "cylinder", "r": 2, "height": 10, "offsetX": -18, "offsetY": 120, "rotateZ": 90, "subtract": true },
{ "type": "box", "width": 6, "height": 280, "depth": 10, "offsetX": 18, "offsetZ": 10, "fill": "#383838" },
{ "type": "box", "width": 4, "height": 270, "depth": 6, "offsetX": 18, "offsetZ": 10, "subtract": true },
{ "type": "box", "width": 20, "height": 12, "depth": 8, "offsetX": -5, "offsetY": 135, "offsetZ": 18, "fill": "#404040" },
{ "type": "cylinder", "r": 2.5, "height": 15, "offsetX": -5, "offsetY": 135, "offsetZ": 18, "subtract": true },
{ "type": "cylinder", "r": 4, "height": 8, "offsetX": 0, "offsetY": -148, "fill": "#505050" },
{ "type": "cylinder", "r": 2, "height": 15, "offsetX": 0, "offsetY": -148, "subtract": true },
{ "type": "box", "width": 25, "height": 40, "depth": 20, "offsetX": 8, "offsetY": -125, "offsetZ": -25, "fill": "#404040" },
{ "type": "cylinder", "r": 3, "height": 25, "offsetX": 8, "offsetY": -125, "offsetZ": -25, "rotateX": 90, "subtract": true }
]
}

View File

@@ -0,0 +1,77 @@
{
"id": "z-motor-mount",
"name": "Z-Axis Motor Mount",
"partNumber": "BL-A1-005",
"material": "steel",
"quantity": 1,
"weight": 145.0,
"weightUnit": "g",
"baseY": 35,
"description": "Stamped steel Z-axis motor mounting bracket - precisely positions the Z stepper motor for belt-driven bed movement with integrated tensioner slot and anti-vibration mounting points",
"installation": {
"tools": [
{ "name": "Hex key", "size": "2.5mm", "required": true },
{ "name": "Hex key", "size": "3mm", "required": true },
{ "name": "Phillips screwdriver", "size": "#2", "required": true },
{ "name": "Belt tension gauge", "size": "-", "required": false }
],
"hardware": [
{ "name": "Motor mount bolt", "spec": "M3x8", "grade": "12.9", "qty": 4, "reusable": true },
{ "name": "Frame mounting bolt", "spec": "M4x10", "grade": "12.9", "qty": 3, "reusable": true },
{ "name": "T-slot nut", "spec": "M4", "qty": 3, "reusable": true },
{ "name": "Vibration damper", "spec": "M3 silicone", "qty": 4, "reusable": false },
{ "name": "Belt tensioner screw", "spec": "M4x16", "qty": 1, "reusable": true }
],
"torque": [
{ "fastener": "Motor screws", "value": 0.8, "unit": "Nm", "sequence": "Diagonal pattern", "notes": "Use vibration dampers under motor" },
{ "fastener": "Frame mount bolts", "value": 2.5, "unit": "Nm", "sequence": "Center bolt first", "notes": "Bracket should have slight float for alignment" }
],
"notes": [
"Install vibration dampers to reduce motor noise",
"Tensioner slot allows belt adjustment",
"Motor shaft must align with belt path",
"Check motor clearance from base frame"
]
},
"geometry": [
{ "type": "rect", "width": 70, "height": 55, "rx": 3, "fill": "#353535" },
{ "type": "circle", "r": 12, "offsetX": -10, "offsetY": 0, "fill": "#252525" },
{ "type": "circle", "r": 4, "offsetX": -30, "offsetY": -18, "fill": "#444" },
{ "type": "circle", "r": 4, "offsetX": 10, "offsetY": -18, "fill": "#444" },
{ "type": "circle", "r": 4, "offsetX": -30, "offsetY": 18, "fill": "#444" },
{ "type": "circle", "r": 4, "offsetX": 10, "offsetY": 18, "fill": "#444" },
{ "type": "rect", "width": 8, "height": 20, "offsetX": 28, "fill": "#303030" }
],
"geometry3d": [
{ "type": "box", "width": 60, "height": 8, "depth": 50, "fill": "#353535" },
{ "type": "box", "width": 45, "height": 45, "depth": 8, "offsetX": -5, "offsetZ": -25, "fill": "#404040" },
{ "type": "cylinder", "r": 12, "height": 50, "offsetX": -5, "offsetZ": -25, "rotateX": 90, "subtract": true },
{ "type": "cylinder", "r": 2, "height": 15, "offsetX": -20, "offsetY": -18, "offsetZ": -25, "rotateX": 90, "subtract": true },
{ "type": "cylinder", "r": 2, "height": 15, "offsetX": 10, "offsetY": -18, "offsetZ": -25, "rotateX": 90, "subtract": true },
{ "type": "cylinder", "r": 2, "height": 15, "offsetX": -20, "offsetY": 18, "offsetZ": -25, "rotateX": 90, "subtract": true },
{ "type": "cylinder", "r": 2, "height": 15, "offsetX": 10, "offsetY": 18, "offsetZ": -25, "rotateX": 90, "subtract": true },
{ "type": "cylinder", "r": 4, "height": 12, "offsetX": -20, "offsetY": -18, "offsetZ": -22, "rotateX": 90, "fill": "#505050" },
{ "type": "cylinder", "r": 4, "height": 12, "offsetX": 10, "offsetY": -18, "offsetZ": -22, "rotateX": 90, "fill": "#505050" },
{ "type": "cylinder", "r": 4, "height": 12, "offsetX": -20, "offsetY": 18, "offsetZ": -22, "rotateX": 90, "fill": "#505050" },
{ "type": "cylinder", "r": 4, "height": 12, "offsetX": 10, "offsetY": 18, "offsetZ": -22, "rotateX": 90, "fill": "#505050" },
{ "type": "box", "width": 15, "height": 8, "depth": 30, "offsetX": 25, "fill": "#383838" },
{ "type": "box", "width": 6, "height": 12, "depth": 18, "offsetX": 25, "subtract": true },
{ "type": "cylinder", "r": 2.5, "height": 12, "offsetX": -25, "offsetZ": 0, "subtract": true },
{ "type": "cylinder", "r": 2.5, "height": 12, "offsetX": -25, "offsetZ": 15, "subtract": true },
{ "type": "cylinder", "r": 2.5, "height": 12, "offsetX": 20, "offsetZ": 15, "subtract": true },
{ "type": "box", "width": 12, "height": 35, "depth": 6, "offsetX": -28, "offsetZ": 0, "fill": "#404040" },
{ "type": "box", "width": 62, "height": 4, "depth": 52, "offsetY": -4, "fill": "#303030" },
{ "type": "box", "width": 55, "height": 6, "depth": 45, "offsetY": -4, "subtract": true },
{ "type": "box", "width": 8, "height": 12, "depth": 8, "offsetX": 28, "offsetY": 6, "offsetZ": -5, "fill": "#454545" },
{ "type": "cylinder", "r": 2.5, "height": 15, "offsetX": 28, "offsetZ": -5, "subtract": true }
]
}

View File

@@ -0,0 +1,17 @@
{
"id": "heatbed",
"name": "Heatbed Assembly",
"description": "Bambu Lab A1 256x256mm heated bed assembly with PEI build surface, silicone heater, and Y-axis carriage",
"category": "Print Bed",
"version": "1.0.0",
"parts": [
"y-carriage",
"bed-mount",
"bed-insulation",
"bed-heater",
"bed-thermistor",
"heatbed-plate",
"build-surface",
"purge-wiper"
]
}

View File

@@ -0,0 +1,71 @@
{
"id": "bed-heater",
"name": "Silicone Bed Heater",
"partNumber": "BL-A1-HTR-001",
"material": "silicone",
"quantity": 1,
"weight": 220.0,
"weightUnit": "g",
"baseY": -30,
"description": "256x256mm 350W silicone heating pad with integrated NTC thermistor and thermal fuse - AC powered",
"installation": {
"tools": [
{ "name": "Isopropyl alcohol", "size": "99%", "required": true },
{ "name": "Heat gun", "size": "-", "required": false },
{ "name": "Roller", "size": "rubber", "required": true },
{ "name": "Multimeter", "size": "-", "required": true }
],
"hardware": [
{ "name": "3M VHB tape", "spec": "5952", "qty": 1, "reusable": false },
{ "name": "Thermal fuse", "spec": "130C 10A", "qty": 1, "reusable": false },
{ "name": "Wire connector", "spec": "XT60", "qty": 1, "reusable": true }
],
"torque": [],
"notes": [
"DANGER: AC voltage present - disconnect power before servicing",
"Test heater resistance before installation (expect ~35-40 ohms)",
"Clean aluminum plate with IPA before applying heater",
"Press firmly and roll to remove air bubbles",
"Verify thermal fuse continuity after installation",
"Do not exceed 110C operating temperature"
]
},
"geometry": [
{ "type": "rect", "width": 170, "height": 170, "rx": 3, "fill": "#e05000" },
{ "type": "rect", "width": 160, "height": 160, "rx": 2, "fill": "#c04000" },
{ "type": "line", "x1": -70, "y1": -60, "x2": 70, "y2": -60, "stroke": "#d06000", "strokeWidth": 2 },
{ "type": "line", "x1": -70, "y1": -30, "x2": 70, "y2": -30, "stroke": "#d06000", "strokeWidth": 2 },
{ "type": "line", "x1": -70, "y1": 0, "x2": 70, "y2": 0, "stroke": "#d06000", "strokeWidth": 2 },
{ "type": "line", "x1": -70, "y1": 30, "x2": 70, "y2": 30, "stroke": "#d06000", "strokeWidth": 2 },
{ "type": "line", "x1": -70, "y1": 60, "x2": 70, "y2": 60, "stroke": "#d06000", "strokeWidth": 2 },
{ "type": "rect", "width": 30, "height": 20, "offsetX": -60, "offsetY": 70, "fill": "#333" }
],
"geometry3d": [
{ "type": "box", "width": 256, "height": 2, "depth": 256, "fill": "#e05000" },
{ "type": "box", "width": 250, "height": 1.5, "depth": 250, "offsetY": 0.25, "fill": "#c04000" },
{ "type": "box", "width": 240, "height": 0.5, "depth": 4, "offsetY": 0.75, "offsetZ": -100, "fill": "#d06000" },
{ "type": "box", "width": 240, "height": 0.5, "depth": 4, "offsetY": 0.75, "offsetZ": -66, "fill": "#d06000" },
{ "type": "box", "width": 240, "height": 0.5, "depth": 4, "offsetY": 0.75, "offsetZ": -33, "fill": "#d06000" },
{ "type": "box", "width": 240, "height": 0.5, "depth": 4, "offsetY": 0.75, "offsetZ": 0, "fill": "#d06000" },
{ "type": "box", "width": 240, "height": 0.5, "depth": 4, "offsetY": 0.75, "offsetZ": 33, "fill": "#d06000" },
{ "type": "box", "width": 240, "height": 0.5, "depth": 4, "offsetY": 0.75, "offsetZ": 66, "fill": "#d06000" },
{ "type": "box", "width": 240, "height": 0.5, "depth": 4, "offsetY": 0.75, "offsetZ": 100, "fill": "#d06000" },
{ "type": "box", "width": 4, "height": 0.5, "depth": 220, "offsetY": 0.75, "offsetX": -115, "fill": "#d06000" },
{ "type": "box", "width": 4, "height": 0.5, "depth": 220, "offsetY": 0.75, "offsetX": 115, "fill": "#d06000" },
{ "type": "box", "width": 40, "height": 8, "depth": 25, "offsetX": -90, "offsetY": -5, "offsetZ": 120, "fill": "#333333" },
{ "type": "box", "width": 35, "height": 6, "depth": 20, "offsetX": -90, "offsetY": -5, "offsetZ": 120, "fill": "#222222" },
{ "type": "cylinder", "r": 3, "height": 15, "offsetX": -90, "offsetY": -10, "offsetZ": 135, "rotateX": 90, "fill": "#444444" },
{ "type": "cylinder", "r": 3, "height": 15, "offsetX": -80, "offsetY": -10, "offsetZ": 135, "rotateX": 90, "fill": "#444444" },
{ "type": "box", "width": 15, "height": 4, "depth": 10, "offsetX": 100, "offsetY": -3, "offsetZ": 115, "fill": "#555555" },
{ "type": "cylinder", "r": 2, "height": 8, "offsetX": 100, "offsetY": -3, "offsetZ": 125, "rotateX": 90, "fill": "#666666" },
{ "type": "cylinder", "r": 3, "height": 3, "offsetX": -118, "offsetY": 0, "offsetZ": -118, "subtract": true },
{ "type": "cylinder", "r": 3, "height": 3, "offsetX": 118, "offsetY": 0, "offsetZ": -118, "subtract": true },
{ "type": "cylinder", "r": 3, "height": 3, "offsetX": -118, "offsetY": 0, "offsetZ": 118, "subtract": true },
{ "type": "cylinder", "r": 3, "height": 3, "offsetX": 118, "offsetY": 0, "offsetZ": 118, "subtract": true }
]
}

View File

@@ -0,0 +1,56 @@
{
"id": "bed-insulation",
"name": "Thermal Insulation Layer",
"partNumber": "BL-A1-INS-001",
"material": "ceramicFiber",
"quantity": 1,
"weight": 45.0,
"weightUnit": "g",
"baseY": -60,
"description": "256x256mm ceramic fiber insulation mat with aluminum foil backing - reduces heat loss and protects electronics",
"installation": {
"tools": [
{ "name": "Scissors", "size": "-", "required": true },
{ "name": "Marker", "size": "-", "required": true }
],
"hardware": [
{ "name": "High-temp adhesive tape", "spec": "Kapton", "qty": 1, "reusable": false }
],
"torque": [],
"notes": [
"Cut holes for mounting screws before installation",
"Aluminum side faces toward heater",
"Do not compress insulation excessively",
"Check for gaps that could allow heat escape",
"Replace if damaged or contaminated with oils"
]
},
"geometry": [
{ "type": "rect", "width": 170, "height": 170, "rx": 2, "fill": "#c0c0c0" },
{ "type": "rect", "width": 160, "height": 160, "rx": 1, "fill": "#d0d0d0" },
{ "type": "circle", "r": 5, "offsetX": -75, "offsetY": -75, "fill": "#999" },
{ "type": "circle", "r": 5, "offsetX": 75, "offsetY": -75, "fill": "#999" },
{ "type": "circle", "r": 5, "offsetX": -75, "offsetY": 75, "fill": "#999" },
{ "type": "circle", "r": 5, "offsetX": 75, "offsetY": 75, "fill": "#999" }
],
"geometry3d": [
{ "type": "box", "width": 256, "height": 5, "depth": 256, "fill": "#e8e8e0" },
{ "type": "box", "width": 254, "height": 0.3, "depth": 254, "offsetY": 2.65, "fill": "#c0c0c0" },
{ "type": "box", "width": 254, "height": 4, "depth": 254, "offsetY": 0.15, "fill": "#f0f0e8" },
{ "type": "box", "width": 250, "height": 1, "depth": 3, "offsetY": 0, "offsetZ": -80, "fill": "#d8d8d0" },
{ "type": "box", "width": 250, "height": 1, "depth": 3, "offsetY": 0, "offsetZ": 0, "fill": "#d8d8d0" },
{ "type": "box", "width": 250, "height": 1, "depth": 3, "offsetY": 0, "offsetZ": 80, "fill": "#d8d8d0" },
{ "type": "box", "width": 3, "height": 1, "depth": 250, "offsetY": 0, "offsetX": -80, "fill": "#d8d8d0" },
{ "type": "box", "width": 3, "height": 1, "depth": 250, "offsetY": 0, "offsetX": 80, "fill": "#d8d8d0" },
{ "type": "cylinder", "r": 5, "height": 8, "offsetX": -118, "offsetY": 0, "offsetZ": -118, "subtract": true },
{ "type": "cylinder", "r": 5, "height": 8, "offsetX": 118, "offsetY": 0, "offsetZ": -118, "subtract": true },
{ "type": "cylinder", "r": 5, "height": 8, "offsetX": -118, "offsetY": 0, "offsetZ": 118, "subtract": true },
{ "type": "cylinder", "r": 5, "height": 8, "offsetX": 118, "offsetY": 0, "offsetZ": 118, "subtract": true },
{ "type": "box", "width": 50, "height": 8, "depth": 30, "offsetX": -90, "offsetY": 0, "offsetZ": 120, "subtract": true },
{ "type": "box", "width": 256, "height": 0.2, "depth": 256, "offsetY": -2.6, "fill": "#d0d0c8" }
]
}

View File

@@ -0,0 +1,64 @@
{
"id": "bed-mount",
"name": "Bed Mounting Bracket with Spring",
"partNumber": "BL-A1-MNT-001",
"material": "steel",
"quantity": 4,
"weight": 12.0,
"weightUnit": "g",
"baseY": -90,
"description": "Spring-loaded bed leveling mount with adjustment knob - provides consistent bed leveling and vibration damping",
"installation": {
"tools": [
{ "name": "Hex key", "size": "2.5mm", "required": true },
{ "name": "Hex key", "size": "3mm", "required": true }
],
"hardware": [
{ "name": "Mount screw", "spec": "M3x30 SHCS", "grade": "12.9", "qty": 1, "reusable": true },
{ "name": "Leveling spring", "spec": "OD8xID4x15mm", "qty": 1, "reusable": true },
{ "name": "Adjustment wheel", "spec": "M3 knurled", "qty": 1, "reusable": true },
{ "name": "Lock washer", "spec": "M3 split", "qty": 1, "reusable": true }
],
"torque": [
{ "fastener": "Mount screw", "value": 0.6, "unit": "Nm", "sequence": "", "notes": "Adjust for proper bed height - spring should be partially compressed" }
],
"notes": [
"All four mounts must be adjusted for level bed",
"Use mesh leveling after manual adjustment",
"Replace springs if sagging or uneven compression",
"Check periodically for loosening"
]
},
"geometry": [
{ "type": "rect", "width": 20, "height": 25, "rx": 2, "fill": "#666" },
{ "type": "circle", "r": 6, "offsetY": -5, "fill": "#888" },
{ "type": "circle", "r": 3, "offsetY": -5, "fill": "#555" },
{ "type": "rect", "width": 12, "height": 8, "offsetY": 8, "rx": 1, "fill": "#777" }
],
"geometry3d": [
{ "type": "box", "width": 15, "height": 3, "depth": 15, "fill": "#606060" },
{ "type": "cylinder", "r": 6, "height": 4, "offsetY": 3.5, "fill": "#707070" },
{ "type": "cylinder", "r": 5, "height": 2, "offsetY": 6, "fill": "#656565" },
{ "type": "cylinder", "r": 2, "height": 10, "offsetY": 0, "subtract": true },
{ "type": "cylinder", "r": 4, "height": 15, "offsetY": -9, "fill": "#c0c0c0" },
{ "type": "cylinder", "r": 3.5, "height": 14, "offsetY": -8.5, "fill": "#a0a0a0" },
{ "type": "cylinder", "r": 2, "height": 18, "offsetY": -10, "subtract": true },
{ "type": "box", "width": 0.8, "height": 1.5, "depth": 8, "offsetY": -5, "fill": "#b0b0b0" },
{ "type": "box", "width": 0.8, "height": 1.5, "depth": 8, "offsetY": -7, "fill": "#b0b0b0" },
{ "type": "box", "width": 0.8, "height": 1.5, "depth": 8, "offsetY": -9, "fill": "#b0b0b0" },
{ "type": "box", "width": 0.8, "height": 1.5, "depth": 8, "offsetY": -11, "fill": "#b0b0b0" },
{ "type": "box", "width": 0.8, "height": 1.5, "depth": 8, "offsetY": -13, "fill": "#b0b0b0" },
{ "type": "cylinder", "r": 8, "height": 5, "offsetY": -20, "fill": "#505050" },
{ "type": "cylinder", "r": 7, "height": 4, "offsetY": -19.5, "fill": "#454545" },
{ "type": "cylinder", "r": 2, "height": 8, "offsetY": -20, "subtract": true },
{ "type": "box", "width": 1, "height": 4, "depth": 16, "offsetY": -20, "fill": "#555555" },
{ "type": "box", "width": 16, "height": 4, "depth": 1, "offsetY": -20, "fill": "#555555" },
{ "type": "box", "width": 1, "height": 4, "depth": 16, "offsetY": -20, "rotateY": 45, "fill": "#555555" },
{ "type": "box", "width": 1, "height": 4, "depth": 16, "offsetY": -20, "rotateY": -45, "fill": "#555555" }
]
}

View File

@@ -0,0 +1,55 @@
{
"id": "bed-thermistor",
"name": "Bed Temperature Sensor",
"partNumber": "BL-A1-NTC-001",
"material": "ceramic",
"quantity": 1,
"weight": 5.0,
"weightUnit": "g",
"baseY": -10,
"description": "100K NTC thermistor with glass bead encapsulation and PTFE-insulated leads for accurate bed temperature sensing",
"installation": {
"tools": [
{ "name": "Hex key", "size": "1.5mm", "required": true },
{ "name": "Thermal paste", "size": "-", "required": true },
{ "name": "Multimeter", "size": "-", "required": true }
],
"hardware": [
{ "name": "Thermistor mount screw", "spec": "M2x4 SHCS", "qty": 1, "reusable": true },
{ "name": "Thermistor clip", "spec": "spring steel", "qty": 1, "reusable": true }
],
"torque": [
{ "fastener": "Thermistor mount screw", "value": 0.2, "unit": "Nm", "sequence": "", "notes": "Light torque - do not crush thermistor" }
],
"notes": [
"Test resistance before installation: ~100K at 25C",
"Apply thin layer of thermal paste for good thermal contact",
"Route wires away from heater traces",
"Do not kink or sharply bend leads",
"Verify reading matches ambient temp before heating"
]
},
"geometry": [
{ "type": "circle", "r": 4, "fill": "#a08060" },
{ "type": "circle", "r": 2.5, "fill": "#806040" },
{ "type": "line", "x1": 0, "y1": 4, "x2": 0, "y2": 25, "stroke": "#555", "strokeWidth": 1 },
{ "type": "line", "x1": 2, "y1": 4, "x2": 2, "y2": 25, "stroke": "#555", "strokeWidth": 1 }
],
"geometry3d": [
{ "type": "cylinder", "r": 2.5, "height": 4, "fill": "#a08060" },
{ "type": "cylinder", "r": 2, "height": 3, "offsetY": 0.5, "fill": "#806040" },
{ "type": "cylinder", "r": 1.8, "height": 2.5, "offsetY": 1, "fill": "#c0a080" },
{ "type": "cylinder", "r": 0.5, "height": 30, "offsetX": -0.8, "offsetY": -17, "fill": "#555555" },
{ "type": "cylinder", "r": 0.5, "height": 30, "offsetX": 0.8, "offsetY": -17, "fill": "#555555" },
{ "type": "cylinder", "r": 1, "height": 6, "offsetX": -0.8, "offsetY": -34, "fill": "#666666" },
{ "type": "cylinder", "r": 1, "height": 6, "offsetX": 0.8, "offsetY": -34, "fill": "#666666" },
{ "type": "box", "width": 8, "height": 2, "depth": 5, "offsetX": 0, "offsetY": -38, "fill": "#333333" },
{ "type": "cylinder", "r": 2, "height": 15, "offsetX": 0, "offsetY": -48, "fill": "#444444" },
{ "type": "box", "width": 6, "height": 1, "depth": 4, "offsetX": 0, "offsetY": 2.5, "fill": "#707070" },
{ "type": "cylinder", "r": 1, "height": 2, "offsetX": 0, "offsetY": 2.5, "subtract": true }
]
}

View File

@@ -0,0 +1,56 @@
{
"id": "build-surface",
"name": "PEI Textured Build Plate",
"partNumber": "BL-A1-PEI-001",
"material": "springSteel",
"quantity": 1,
"weight": 380.0,
"weightUnit": "g",
"baseY": 30,
"description": "256x256mm spring steel plate with textured PEI coating - magnetically attached for easy print removal",
"installation": {
"tools": [
{ "name": "Isopropyl alcohol", "size": "99%", "required": true },
{ "name": "Lint-free cloth", "size": "-", "required": true }
],
"hardware": [],
"torque": [],
"notes": [
"Clean with IPA before each print for best adhesion",
"Ensure magnetic attachment is secure and flat",
"Flex plate to remove prints - do not use sharp tools",
"Replace when PEI coating is damaged or worn",
"Do not exceed 100C bed temperature to preserve PEI"
]
},
"geometry": [
{ "type": "rect", "width": 175, "height": 175, "rx": 2, "fill": "#404040" },
{ "type": "rect", "width": 165, "height": 165, "rx": 1, "fill": "#353535" },
{ "type": "rect", "width": 40, "height": 12, "offsetY": -75, "fill": "#303030" },
{ "type": "text", "content": "PEI", "offsetY": 0, "fill": "#505050", "fontSize": 12 }
],
"geometry3d": [
{ "type": "box", "width": 256, "height": 0.8, "depth": 256, "fill": "#404040" },
{ "type": "box", "width": 254, "height": 0.3, "depth": 254, "offsetY": 0.5, "fill": "#353535" },
{ "type": "box", "width": 250, "height": 0.2, "depth": 250, "offsetY": 0.6, "fill": "#383838" },
{ "type": "box", "width": 60, "height": 1.2, "depth": 20, "offsetX": 0, "offsetY": 0, "offsetZ": -120, "fill": "#303030" },
{ "type": "box", "width": 50, "height": 0.5, "depth": 15, "offsetX": 0, "offsetY": 0.7, "offsetZ": -120, "fill": "#282828" },
{ "type": "box", "width": 40, "height": 1.5, "depth": 8, "offsetX": -100, "offsetY": 0, "offsetZ": -120, "fill": "#454545" },
{ "type": "box", "width": 40, "height": 1.5, "depth": 8, "offsetX": 100, "offsetY": 0, "offsetZ": -120, "fill": "#454545" },
{ "type": "box", "width": 256, "height": 0.1, "depth": 2, "offsetY": 0.55, "offsetZ": -64, "fill": "#484848" },
{ "type": "box", "width": 256, "height": 0.1, "depth": 2, "offsetY": 0.55, "offsetZ": 0, "fill": "#484848" },
{ "type": "box", "width": 256, "height": 0.1, "depth": 2, "offsetY": 0.55, "offsetZ": 64, "fill": "#484848" },
{ "type": "box", "width": 2, "height": 0.1, "depth": 256, "offsetY": 0.55, "offsetX": -64, "fill": "#484848" },
{ "type": "box", "width": 2, "height": 0.1, "depth": 256, "offsetY": 0.55, "offsetX": 0, "fill": "#484848" },
{ "type": "box", "width": 2, "height": 0.1, "depth": 256, "offsetY": 0.55, "offsetX": 64, "fill": "#484848" },
{ "type": "cylinder", "r": 3, "height": 1, "offsetX": -118, "offsetY": 0, "offsetZ": -118, "subtract": true },
{ "type": "cylinder", "r": 3, "height": 1, "offsetX": 118, "offsetY": 0, "offsetZ": -118, "subtract": true },
{ "type": "cylinder", "r": 3, "height": 1, "offsetX": -118, "offsetY": 0, "offsetZ": 118, "subtract": true },
{ "type": "cylinder", "r": 3, "height": 1, "offsetX": 118, "offsetY": 0, "offsetZ": 118, "subtract": true }
]
}

View File

@@ -0,0 +1,71 @@
{
"id": "heatbed-plate",
"name": "Heated Bed Plate",
"partNumber": "BL-A1-HBP-001",
"material": "aluminum",
"quantity": 1,
"weight": 850.0,
"weightUnit": "g",
"baseY": 0,
"description": "256x256mm 6061-T6 aluminum heated bed plate with precision machined surface and integrated thermistor mount",
"installation": {
"tools": [
{ "name": "Hex key", "size": "2.5mm", "required": true },
{ "name": "Hex key", "size": "3mm", "required": true },
{ "name": "Torque driver", "size": "1-5 Nm", "required": true },
{ "name": "Thermal paste", "size": "-", "required": true }
],
"hardware": [
{ "name": "Bed mounting screw", "spec": "M3x8 SHCS", "grade": "12.9", "qty": 4, "reusable": true },
{ "name": "Bed leveling spring", "spec": "OD8xID4x15mm", "qty": 4, "reusable": true },
{ "name": "Adjustment knob", "spec": "M3 knurled", "qty": 4, "reusable": true },
{ "name": "Thermistor mounting screw", "spec": "M2x4", "qty": 1, "reusable": true }
],
"torque": [
{ "fastener": "Bed mounting screws", "value": 0.8, "unit": "Nm", "sequence": "Diagonal pattern", "notes": "Do not overtighten - springs must compress evenly" },
{ "fastener": "Thermistor screw", "value": 0.3, "unit": "Nm", "sequence": "", "notes": "Apply thermal paste to thermistor first" }
],
"notes": [
"Clean mating surfaces before installation",
"Ensure thermistor has good thermal contact",
"Level bed after installation using mesh calibration",
"Check flatness with straight edge - should be within 0.1mm"
]
},
"geometry": [
{ "type": "rect", "width": 180, "height": 180, "rx": 4, "fill": "#707070" },
{ "type": "rect", "width": 170, "height": 170, "rx": 2, "fill": "#808080" },
{ "type": "circle", "r": 4, "offsetX": -80, "offsetY": -80, "fill": "#555" },
{ "type": "circle", "r": 4, "offsetX": 80, "offsetY": -80, "fill": "#555" },
{ "type": "circle", "r": 4, "offsetX": -80, "offsetY": 80, "fill": "#555" },
{ "type": "circle", "r": 4, "offsetX": 80, "offsetY": 80, "fill": "#555" },
{ "type": "rect", "width": 8, "height": 8, "offsetX": 70, "offsetY": 70, "fill": "#606060" },
{ "type": "text", "content": "256x256", "offsetY": 0, "fill": "#555", "fontSize": 10 }
],
"geometry3d": [
{ "type": "box", "width": 256, "height": 4, "depth": 256, "fill": "#707070" },
{ "type": "box", "width": 250, "height": 2, "depth": 250, "offsetY": 1.5, "fill": "#808080" },
{ "type": "box", "width": 240, "height": 3, "depth": 240, "offsetY": -0.5, "fill": "#656565" },
{ "type": "cylinder", "r": 5, "height": 6, "offsetX": -118, "offsetY": 0, "offsetZ": -118, "fill": "#505050" },
{ "type": "cylinder", "r": 5, "height": 6, "offsetX": 118, "offsetY": 0, "offsetZ": -118, "fill": "#505050" },
{ "type": "cylinder", "r": 5, "height": 6, "offsetX": -118, "offsetY": 0, "offsetZ": 118, "fill": "#505050" },
{ "type": "cylinder", "r": 5, "height": 6, "offsetX": 118, "offsetY": 0, "offsetZ": 118, "fill": "#505050" },
{ "type": "cylinder", "r": 2, "height": 8, "offsetX": -118, "offsetY": 0, "offsetZ": -118, "subtract": true },
{ "type": "cylinder", "r": 2, "height": 8, "offsetX": 118, "offsetY": 0, "offsetZ": -118, "subtract": true },
{ "type": "cylinder", "r": 2, "height": 8, "offsetX": -118, "offsetY": 0, "offsetZ": 118, "subtract": true },
{ "type": "cylinder", "r": 2, "height": 8, "offsetX": 118, "offsetY": 0, "offsetZ": 118, "subtract": true },
{ "type": "box", "width": 10, "height": 5, "depth": 10, "offsetX": 100, "offsetY": -2, "offsetZ": 100, "fill": "#606060" },
{ "type": "cylinder", "r": 3, "height": 6, "offsetX": 100, "offsetY": -2, "offsetZ": 100, "subtract": true },
{ "type": "box", "width": 30, "height": 2, "depth": 8, "offsetX": -100, "offsetY": -3, "offsetZ": 0, "fill": "#555555" },
{ "type": "box", "width": 8, "height": 2, "depth": 30, "offsetX": 0, "offsetY": -3, "offsetZ": -100, "fill": "#555555" },
{ "type": "box", "width": 256, "height": 1, "depth": 3, "offsetY": 2.5, "offsetZ": 0, "fill": "#606060" },
{ "type": "box", "width": 3, "height": 1, "depth": 256, "offsetY": 2.5, "offsetX": 0, "fill": "#606060" },
{ "type": "box", "width": 15, "height": 3, "depth": 10, "offsetX": 115, "offsetY": -3.5, "offsetZ": 0, "fill": "#505050" }
]
}

View File

@@ -0,0 +1,64 @@
{
"id": "purge-wiper",
"name": "Purge and Wiper Station",
"partNumber": "BL-A1-PWS-001",
"material": "plastic",
"quantity": 1,
"weight": 35.0,
"weightUnit": "g",
"baseY": 60,
"description": "Nozzle purge bucket and silicone wiper assembly - cleans nozzle before print and catches purged filament",
"installation": {
"tools": [
{ "name": "Hex key", "size": "2mm", "required": true },
{ "name": "Phillips screwdriver", "size": "#1", "required": true }
],
"hardware": [
{ "name": "Mount screw", "spec": "M3x6 BHCS", "qty": 2, "reusable": true },
{ "name": "Wiper bracket screw", "spec": "M2x4", "qty": 2, "reusable": true },
{ "name": "Silicone wiper", "spec": "heat-resistant", "qty": 1, "reusable": true }
],
"torque": [
{ "fastener": "Mount screws", "value": 0.5, "unit": "Nm", "sequence": "", "notes": "" },
{ "fastener": "Wiper bracket screws", "value": 0.3, "unit": "Nm", "sequence": "", "notes": "" }
],
"notes": [
"Clean purge bucket regularly",
"Replace silicone wiper when worn or hardened",
"Ensure wiper makes gentle contact with nozzle",
"Check alignment after bed leveling changes"
]
},
"geometry": [
{ "type": "rect", "width": 60, "height": 30, "rx": 3, "fill": "#333" },
{ "type": "rect", "width": 50, "height": 20, "rx": 2, "fill": "#444" },
{ "type": "rect", "width": 10, "height": 25, "offsetX": 20, "rx": 1, "fill": "#666" },
{ "type": "rect", "width": 3, "height": 20, "offsetX": 25, "fill": "#e05000" }
],
"geometry3d": [
{ "type": "box", "width": 60, "height": 15, "depth": 35, "fill": "#333333" },
{ "type": "box", "width": 55, "height": 12, "depth": 30, "offsetY": 3, "subtract": true },
{ "type": "box", "width": 58, "height": 2, "depth": 33, "offsetY": 7, "fill": "#3a3a3a" },
{ "type": "box", "width": 60, "height": 3, "depth": 8, "offsetY": -6, "offsetZ": -18, "fill": "#404040" },
{ "type": "cylinder", "r": 2, "height": 4, "offsetX": -25, "offsetY": -6, "offsetZ": -18, "subtract": true },
{ "type": "cylinder", "r": 2, "height": 4, "offsetX": 25, "offsetY": -6, "offsetZ": -18, "subtract": true },
{ "type": "box", "width": 15, "height": 25, "depth": 8, "offsetX": 35, "offsetY": 5, "offsetZ": 0, "fill": "#444444" },
{ "type": "box", "width": 12, "height": 22, "depth": 6, "offsetX": 35, "offsetY": 6.5, "offsetZ": 0, "fill": "#505050" },
{ "type": "box", "width": 3, "height": 20, "depth": 10, "offsetX": 42, "offsetY": 7, "offsetZ": 0, "fill": "#e05000" },
{ "type": "box", "width": 2, "height": 18, "depth": 8, "offsetX": 42.5, "offsetY": 8, "offsetZ": 0, "fill": "#ff6010" },
{ "type": "box", "width": 8, "height": 8, "depth": 6, "offsetX": 35, "offsetY": -3, "offsetZ": 0, "fill": "#383838" },
{ "type": "cylinder", "r": 1.5, "height": 10, "offsetX": 35, "offsetY": -3, "offsetZ": 0, "subtract": true },
{ "type": "box", "width": 20, "height": 2, "depth": 25, "offsetX": -15, "offsetY": -5, "offsetZ": 0, "fill": "#2a2a2a" },
{ "type": "cylinder", "r": 5, "height": 3, "offsetX": -25, "offsetY": -5, "offsetZ": 0, "fill": "#353535" },
{ "type": "cylinder", "r": 3, "height": 5, "offsetX": -25, "offsetY": -5, "offsetZ": 0, "subtract": true },
{ "type": "box", "width": 10, "height": 4, "depth": 30, "offsetX": -30, "offsetY": 3, "fill": "#3d3d3d" },
{ "type": "box", "width": 8, "height": 10, "depth": 28, "offsetX": -30, "offsetY": -1, "subtract": true }
]
}

View File

@@ -0,0 +1,92 @@
{
"id": "y-carriage",
"name": "Y-Axis Carriage Plate",
"partNumber": "BL-A1-YCP-001",
"material": "aluminum",
"quantity": 1,
"weight": 420.0,
"weightUnit": "g",
"baseY": -120,
"description": "CNC machined aluminum carriage plate for Y-axis motion - mounts heated bed and rides on linear rails",
"installation": {
"tools": [
{ "name": "Hex key", "size": "2.5mm", "required": true },
{ "name": "Hex key", "size": "3mm", "required": true },
{ "name": "Torque driver", "size": "1-10 Nm", "required": true },
{ "name": "Loctite", "size": "242 blue", "required": true }
],
"hardware": [
{ "name": "Linear bearing block screw", "spec": "M3x8 SHCS", "grade": "12.9", "qty": 8, "reusable": true },
{ "name": "Belt clamp screw", "spec": "M3x10 SHCS", "qty": 4, "reusable": true },
{ "name": "Belt clamp plate", "spec": "GT2 6mm", "qty": 2, "reusable": true },
{ "name": "Bed mount standoff", "spec": "M3x25 hex", "qty": 4, "reusable": true }
],
"torque": [
{ "fastener": "Linear bearing screws", "value": 1.2, "unit": "Nm", "sequence": "Crosshatch", "notes": "Apply Loctite 242" },
{ "fastener": "Belt clamp screws", "value": 0.8, "unit": "Nm", "sequence": "Alternating", "notes": "Ensure belt is tight" },
{ "fastener": "Bed mount standoffs", "value": 1.5, "unit": "Nm", "sequence": "", "notes": "" }
],
"notes": [
"Check linear bearing preload after installation",
"Verify carriage moves freely along full Y travel",
"Belt tension should deflect ~3mm with moderate finger pressure",
"Clean rails and lubricate with light machine oil"
]
},
"geometry": [
{ "type": "rect", "width": 200, "height": 180, "rx": 5, "fill": "#707070" },
{ "type": "rect", "width": 180, "height": 160, "rx": 3, "fill": "#808080" },
{ "type": "rect", "width": 30, "height": 170, "offsetX": -85, "rx": 2, "fill": "#606060" },
{ "type": "rect", "width": 30, "height": 170, "offsetX": 85, "rx": 2, "fill": "#606060" },
{ "type": "circle", "r": 4, "offsetX": -85, "offsetY": -70, "fill": "#555" },
{ "type": "circle", "r": 4, "offsetX": -85, "offsetY": 70, "fill": "#555" },
{ "type": "circle", "r": 4, "offsetX": 85, "offsetY": -70, "fill": "#555" },
{ "type": "circle", "r": 4, "offsetX": 85, "offsetY": 70, "fill": "#555" }
],
"geometry3d": [
{ "type": "box", "width": 280, "height": 5, "depth": 260, "fill": "#707070" },
{ "type": "box", "width": 270, "height": 3, "depth": 250, "offsetY": 1, "fill": "#808080" },
{ "type": "box", "width": 280, "height": 8, "depth": 25, "offsetY": -3, "offsetZ": -115, "fill": "#606060" },
{ "type": "box", "width": 280, "height": 8, "depth": 25, "offsetY": -3, "offsetZ": 115, "fill": "#606060" },
{ "type": "cylinder", "r": 8, "height": 10, "offsetX": -120, "offsetY": -2, "offsetZ": -115, "fill": "#555555" },
{ "type": "cylinder", "r": 8, "height": 10, "offsetX": -60, "offsetY": -2, "offsetZ": -115, "fill": "#555555" },
{ "type": "cylinder", "r": 8, "height": 10, "offsetX": 60, "offsetY": -2, "offsetZ": -115, "fill": "#555555" },
{ "type": "cylinder", "r": 8, "height": 10, "offsetX": 120, "offsetY": -2, "offsetZ": -115, "fill": "#555555" },
{ "type": "cylinder", "r": 8, "height": 10, "offsetX": -120, "offsetY": -2, "offsetZ": 115, "fill": "#555555" },
{ "type": "cylinder", "r": 8, "height": 10, "offsetX": -60, "offsetY": -2, "offsetZ": 115, "fill": "#555555" },
{ "type": "cylinder", "r": 8, "height": 10, "offsetX": 60, "offsetY": -2, "offsetZ": 115, "fill": "#555555" },
{ "type": "cylinder", "r": 8, "height": 10, "offsetX": 120, "offsetY": -2, "offsetZ": 115, "fill": "#555555" },
{ "type": "cylinder", "r": 2, "height": 15, "offsetX": -120, "offsetY": -2, "offsetZ": -115, "subtract": true },
{ "type": "cylinder", "r": 2, "height": 15, "offsetX": -60, "offsetY": -2, "offsetZ": -115, "subtract": true },
{ "type": "cylinder", "r": 2, "height": 15, "offsetX": 60, "offsetY": -2, "offsetZ": -115, "subtract": true },
{ "type": "cylinder", "r": 2, "height": 15, "offsetX": 120, "offsetY": -2, "offsetZ": -115, "subtract": true },
{ "type": "cylinder", "r": 2, "height": 15, "offsetX": -120, "offsetY": -2, "offsetZ": 115, "subtract": true },
{ "type": "cylinder", "r": 2, "height": 15, "offsetX": -60, "offsetY": -2, "offsetZ": 115, "subtract": true },
{ "type": "cylinder", "r": 2, "height": 15, "offsetX": 60, "offsetY": -2, "offsetZ": 115, "subtract": true },
{ "type": "cylinder", "r": 2, "height": 15, "offsetX": 120, "offsetY": -2, "offsetZ": 115, "subtract": true },
{ "type": "cylinder", "r": 6, "height": 8, "offsetX": -118, "offsetY": 5, "offsetZ": -118, "fill": "#656565" },
{ "type": "cylinder", "r": 6, "height": 8, "offsetX": 118, "offsetY": 5, "offsetZ": -118, "fill": "#656565" },
{ "type": "cylinder", "r": 6, "height": 8, "offsetX": -118, "offsetY": 5, "offsetZ": 118, "fill": "#656565" },
{ "type": "cylinder", "r": 6, "height": 8, "offsetX": 118, "offsetY": 5, "offsetZ": 118, "fill": "#656565" },
{ "type": "cylinder", "r": 2, "height": 12, "offsetX": -118, "offsetY": 5, "offsetZ": -118, "subtract": true },
{ "type": "cylinder", "r": 2, "height": 12, "offsetX": 118, "offsetY": 5, "offsetZ": -118, "subtract": true },
{ "type": "cylinder", "r": 2, "height": 12, "offsetX": -118, "offsetY": 5, "offsetZ": 118, "subtract": true },
{ "type": "cylinder", "r": 2, "height": 12, "offsetX": 118, "offsetY": 5, "offsetZ": 118, "subtract": true },
{ "type": "box", "width": 40, "height": 8, "depth": 15, "offsetX": -130, "offsetY": -3, "offsetZ": 0, "fill": "#585858" },
{ "type": "box", "width": 35, "height": 3, "depth": 12, "offsetX": -130, "offsetY": 0, "offsetZ": 0, "fill": "#505050" },
{ "type": "cylinder", "r": 2, "height": 10, "offsetX": -135, "offsetY": -3, "offsetZ": -4, "subtract": true },
{ "type": "cylinder", "r": 2, "height": 10, "offsetX": -135, "offsetY": -3, "offsetZ": 4, "subtract": true },
{ "type": "box", "width": 200, "height": 10, "depth": 180, "offsetY": 0, "subtract": true },
{ "type": "box", "width": 8, "height": 6, "depth": 220, "offsetX": -90, "offsetY": 1, "fill": "#757575" },
{ "type": "box", "width": 8, "height": 6, "depth": 220, "offsetX": 90, "offsetY": 1, "fill": "#757575" },
{ "type": "box", "width": 220, "height": 6, "depth": 8, "offsetZ": -90, "offsetY": 1, "fill": "#757575" },
{ "type": "box", "width": 220, "height": 6, "depth": 8, "offsetZ": 90, "offsetY": 1, "fill": "#757575" }
]
}

View File

@@ -0,0 +1,18 @@
{
"id": "motion-system",
"name": "Motion System Assembly",
"description": "CoreXY-style motion system with linear rails, stepper motors, GT2 belts, and resonance compensation for the Bambu Lab A1 3D printer",
"category": "Motion",
"version": "1.0.0",
"parts": [
"x-axis-rail",
"x-axis-carriage",
"y-axis-rail",
"x-motor",
"y-motor",
"xy-belt",
"belt-tensioner",
"x-axis-endstop",
"accelerometer"
]
}

View File

@@ -0,0 +1,68 @@
{
"id": "accelerometer",
"name": "Input Shaper Accelerometer",
"partNumber": "BL-A1-MR009",
"material": "plastic",
"quantity": 1,
"weight": 2.5,
"weightUnit": "g",
"baseY": 560,
"description": "ADXL345 3-axis accelerometer for resonance compensation and input shaping calibration",
"installation": {
"tools": [
{ "name": "Hex key", "size": "2mm", "required": true },
{ "name": "Precision screwdriver", "size": "PH0", "required": true }
],
"hardware": [
{ "name": "M2x4 socket head cap screw", "spec": "M2x0.4x4", "grade": "8.8", "qty": 2, "reusable": true },
{ "name": "FFC cable", "spec": "6-pin 0.5mm pitch", "qty": 1, "reusable": true }
],
"torque": [
{ "fastener": "Mounting screws", "value": 0.15, "unit": "Nm", "sequence": "", "notes": "Sensor must be rigidly mounted" }
],
"notes": [
"Mount rigidly to printhead - no flex allowed",
"Ensure correct orientation (X/Y/Z axes)",
"Run calibration after any mechanical changes",
"Check cable connection if readings are noisy"
]
},
"geometry": [
{ "type": "rect", "width": 18, "height": 18, "rx": 2, "fill": "#2040A0" },
{ "type": "rect", "width": 8, "height": 8, "fill": "#303030" },
{ "type": "circle", "r": 1, "offsetX": -6, "offsetY": -6, "fill": "#FFD700" },
{ "type": "circle", "r": 1, "offsetX": 6, "offsetY": -6, "fill": "#FFD700" },
{ "type": "circle", "r": 1, "offsetX": -6, "offsetY": 6, "fill": "#FFD700" },
{ "type": "circle", "r": 1, "offsetX": 6, "offsetY": 6, "fill": "#FFD700" }
],
"geometry3d": [
{ "type": "box", "width": 18, "height": 1.5, "depth": 18, "fill": "#2040A0" },
{ "type": "box", "width": 5, "height": 2, "depth": 5, "offsetY": 1.5, "fill": "#303030" },
{ "type": "cylinder", "r": 0.8, "height": 0.5, "offsetX": -6, "offsetZ": -6, "offsetY": 1, "fill": "#FFD700" },
{ "type": "cylinder", "r": 0.8, "height": 0.5, "offsetX": 6, "offsetZ": -6, "offsetY": 1, "fill": "#FFD700" },
{ "type": "cylinder", "r": 0.8, "height": 0.5, "offsetX": -6, "offsetZ": 6, "offsetY": 1, "fill": "#FFD700" },
{ "type": "cylinder", "r": 0.8, "height": 0.5, "offsetX": 6, "offsetZ": 6, "offsetY": 1, "fill": "#FFD700" },
{ "type": "cylinder", "r": 0.5, "height": 0.3, "offsetX": -7, "offsetZ": 0, "offsetY": 1, "fill": "#C0C0C0" },
{ "type": "cylinder", "r": 0.5, "height": 0.3, "offsetX": -5, "offsetZ": 0, "offsetY": 1, "fill": "#C0C0C0" },
{ "type": "cylinder", "r": 0.5, "height": 0.3, "offsetX": -3, "offsetZ": 0, "offsetY": 1, "fill": "#C0C0C0" },
{ "type": "cylinder", "r": 0.5, "height": 0.3, "offsetX": 7, "offsetZ": 0, "offsetY": 1, "fill": "#C0C0C0" },
{ "type": "cylinder", "r": 0.5, "height": 0.3, "offsetX": 5, "offsetZ": 0, "offsetY": 1, "fill": "#C0C0C0" },
{ "type": "cylinder", "r": 0.5, "height": 0.3, "offsetX": 3, "offsetZ": 0, "offsetY": 1, "fill": "#C0C0C0" },
{ "type": "cylinder", "r": 1, "height": 2, "offsetX": -7, "offsetZ": -7, "subtract": true },
{ "type": "cylinder", "r": 1, "height": 2, "offsetX": 7, "offsetZ": -7, "subtract": true },
{ "type": "box", "width": 2, "height": 1, "depth": 3, "offsetX": 3, "offsetZ": 3, "offsetY": 1.5, "fill": "#404040" },
{ "type": "box", "width": 1.5, "height": 0.8, "depth": 2, "offsetX": -3, "offsetZ": 3, "offsetY": 1.5, "fill": "#505050" },
{ "type": "box", "width": 10, "height": 2, "depth": 4, "offsetZ": -11, "fill": "#404040" },
{ "type": "box", "width": 8, "height": 1, "depth": 2, "offsetZ": -12, "offsetY": 1, "fill": "#F5F5DC" },
{ "type": "box", "width": 3, "height": 1.2, "depth": 2, "offsetX": -5, "offsetZ": 5, "offsetY": 1.5, "fill": "#606060" },
{ "type": "cylinder", "r": 0.3, "height": 0.4, "offsetX": 0, "offsetZ": 0, "offsetY": 2.5, "fill": "#00FF00" }
]
}

View File

@@ -0,0 +1,65 @@
{
"id": "belt-tensioner",
"name": "Belt Tensioner Assembly",
"partNumber": "BL-A1-MR007",
"material": "aluminum",
"quantity": 2,
"weight": 18.0,
"weightUnit": "g",
"baseY": 440,
"description": "Adjustable belt tensioner with idler pulley for GT2 belt tension adjustment",
"installation": {
"tools": [
{ "name": "Hex key", "size": "2.5mm", "required": true },
{ "name": "Hex key", "size": "3mm", "required": true },
{ "name": "Belt tension gauge", "size": "GT2", "required": true }
],
"hardware": [
{ "name": "M3x20 socket head cap screw", "spec": "M3x0.5x20", "grade": "8.8", "qty": 1, "reusable": true },
{ "name": "M3 nylock nut", "spec": "M3", "qty": 1, "reusable": false },
{ "name": "F623ZZ bearing", "spec": "3x10x4mm flanged", "qty": 2, "reusable": true },
{ "name": "Idler spacer", "spec": "3x5x6mm", "qty": 1, "reusable": true }
],
"torque": [
{ "fastener": "Tensioner adjustment screw", "value": 0.3, "unit": "Nm", "sequence": "", "notes": "Adjust until target belt tension reached" },
{ "fastener": "Idler axle screw", "value": 0.5, "unit": "Nm", "sequence": "", "notes": "Idler must spin freely" }
],
"notes": [
"Set belt tension to 40-50Hz",
"Check tensioner does not bottom out",
"Verify idler spins freely without wobble",
"Re-check tension after 50 print hours"
]
},
"geometry": [
{ "type": "rect", "width": 30, "height": 20, "rx": 3, "fill": "#606060" },
{ "type": "circle", "r": 8, "offsetX": 8, "fill": "#505050" },
{ "type": "circle", "r": 5, "offsetX": 8, "fill": "#707070" },
{ "type": "rect", "width": 8, "height": 25, "offsetX": -12, "fill": "#505050" },
{ "type": "circle", "r": 2, "offsetX": -12, "offsetY": 10, "fill": "#404040" }
],
"geometry3d": [
{ "type": "box", "width": 25, "height": 15, "depth": 20, "fill": "#606060" },
{ "type": "box", "width": 8, "height": 25, "depth": 15, "offsetX": -12, "fill": "#505050" },
{ "type": "cylinder", "r": 2, "height": 30, "offsetX": -12, "offsetY": 8, "subtract": true },
{ "type": "cylinder", "r": 10, "height": 8, "offsetX": 10, "rotateX": 90, "fill": "#707070" },
{ "type": "cylinder", "r": 8, "height": 6, "offsetX": 10, "rotateX": 90, "fill": "#808080" },
{ "type": "cylinder", "r": 11, "height": 1, "offsetX": 10, "offsetZ": 4, "rotateX": 90, "fill": "#606060" },
{ "type": "cylinder", "r": 11, "height": 1, "offsetX": 10, "offsetZ": -4, "rotateX": 90, "fill": "#606060" },
{ "type": "cylinder", "r": 1.5, "height": 25, "offsetX": 10, "rotateX": 90, "fill": "#404040" },
{ "type": "cylinder", "r": 5, "height": 3, "offsetX": 10, "offsetZ": -6, "rotateX": 90, "fill": "#505050" },
{ "type": "cylinder", "r": 2, "height": 5, "offsetX": 10, "offsetZ": -8, "rotateX": 90, "fill": "#404040" },
{ "type": "box", "width": 8, "height": 8, "depth": 25, "offsetX": -5, "offsetY": -5, "fill": "#555555" },
{ "type": "cylinder", "r": 2.5, "height": 30, "offsetX": -5, "offsetY": -5, "rotateX": 90, "subtract": true },
{ "type": "cylinder", "r": 4, "height": 3, "offsetX": -12, "offsetY": 12, "fill": "#707070" },
{ "type": "cylinder", "r": 1.5, "height": 5, "offsetX": -12, "offsetY": 14, "fill": "#404040" }
]
}

View File

@@ -0,0 +1,64 @@
{
"id": "x-axis-carriage",
"name": "X-Axis Carriage Block",
"partNumber": "BL-A1-MR002",
"material": "steel",
"quantity": 1,
"weight": 28.0,
"weightUnit": "g",
"baseY": 140,
"description": "MGN12H carriage block with recirculating ball bearings for printhead mounting",
"installation": {
"tools": [
{ "name": "Hex key", "size": "2mm", "required": true },
{ "name": "Torque screwdriver", "size": "0.5-2 Nm", "required": true },
{ "name": "Grease syringe", "size": "-", "required": false }
],
"hardware": [
{ "name": "M3x6 socket head cap screw", "spec": "M3x0.5x6", "grade": "12.9", "qty": 4, "reusable": true },
{ "name": "Grease nipple", "spec": "M3", "qty": 1, "reusable": true }
],
"torque": [
{ "fastener": "Printhead mounting screws", "value": 0.6, "unit": "Nm", "sequence": "Diagonal pattern", "notes": "Do not overtighten" }
],
"notes": [
"Pre-lubricate with lithium grease before assembly",
"Slide carriage gently onto rail - do not force",
"Check for smooth movement without excessive play",
"Re-grease every 500 print hours"
]
},
"geometry": [
{ "type": "rect", "width": 35, "height": 28, "rx": 3, "fill": "#505050" },
{ "type": "rect", "width": 28, "height": 20, "offsetY": -2, "fill": "#606060" },
{ "type": "circle", "r": 2, "offsetX": -10, "offsetY": -8, "fill": "#404040" },
{ "type": "circle", "r": 2, "offsetX": 10, "offsetY": -8, "fill": "#404040" },
{ "type": "circle", "r": 2, "offsetX": -10, "offsetY": 8, "fill": "#404040" },
{ "type": "circle", "r": 2, "offsetX": 10, "offsetY": 8, "fill": "#404040" }
],
"geometry3d": [
{ "type": "box", "width": 27, "height": 13, "depth": 35, "fill": "#505050" },
{ "type": "box", "width": 35, "height": 8, "depth": 28, "offsetY": 10, "fill": "#606060" },
{ "type": "box", "width": 27, "height": 5, "depth": 12, "offsetY": -9, "fill": "#404040" },
{ "type": "cylinder", "r": 1.5, "height": 10, "offsetX": -10, "offsetZ": -10, "offsetY": 10, "subtract": true },
{ "type": "cylinder", "r": 1.5, "height": 10, "offsetX": 10, "offsetZ": -10, "offsetY": 10, "subtract": true },
{ "type": "cylinder", "r": 1.5, "height": 10, "offsetX": -10, "offsetZ": 10, "offsetY": 10, "subtract": true },
{ "type": "cylinder", "r": 1.5, "height": 10, "offsetX": 10, "offsetZ": 10, "offsetY": 10, "subtract": true },
{ "type": "cylinder", "r": 3, "height": 2, "offsetX": -10, "offsetZ": -10, "offsetY": 15, "fill": "#707070" },
{ "type": "cylinder", "r": 3, "height": 2, "offsetX": 10, "offsetZ": -10, "offsetY": 15, "fill": "#707070" },
{ "type": "cylinder", "r": 3, "height": 2, "offsetX": -10, "offsetZ": 10, "offsetY": 15, "fill": "#707070" },
{ "type": "cylinder", "r": 3, "height": 2, "offsetX": 10, "offsetZ": 10, "offsetY": 15, "fill": "#707070" },
{ "type": "cylinder", "r": 2, "height": 4, "offsetX": 0, "offsetZ": 15, "offsetY": 8, "rotateX": 90, "fill": "#303030" },
{ "type": "box", "width": 4, "height": 6, "depth": 30, "offsetX": -12, "offsetY": 4, "fill": "#555555" },
{ "type": "box", "width": 4, "height": 6, "depth": 30, "offsetX": 12, "offsetY": 4, "fill": "#555555" },
{ "type": "cylinder", "r": 1, "height": 28, "offsetX": -11, "offsetY": 4, "offsetZ": 0, "rotateX": 90, "fill": "#808080" },
{ "type": "cylinder", "r": 1, "height": 28, "offsetX": 11, "offsetY": 4, "offsetZ": 0, "rotateX": 90, "fill": "#808080" }
]
}

View File

@@ -0,0 +1,62 @@
{
"id": "x-axis-endstop",
"name": "X-Axis Optical Endstop",
"partNumber": "BL-A1-MR008",
"material": "plastic",
"quantity": 1,
"weight": 3.0,
"weightUnit": "g",
"baseY": 500,
"description": "Optical endstop sensor with infrared LED and phototransistor for X-axis homing",
"installation": {
"tools": [
{ "name": "Hex key", "size": "2mm", "required": true },
{ "name": "Multimeter", "size": "-", "required": false }
],
"hardware": [
{ "name": "M2x6 socket head cap screw", "spec": "M2x0.4x6", "grade": "8.8", "qty": 2, "reusable": true },
{ "name": "JST-XH 3-pin connector", "spec": "2.54mm pitch", "qty": 1, "reusable": true }
],
"torque": [
{ "fastener": "Mounting screws", "value": 0.2, "unit": "Nm", "sequence": "", "notes": "Do not overtighten - plastic mount" }
],
"notes": [
"Gap between LED and sensor must be clear",
"Clean slot with compressed air if triggering fails",
"Check 3.3V supply voltage at connector",
"Verify flag enters slot cleanly without contact"
]
},
"geometry": [
{ "type": "rect", "width": 24, "height": 12, "rx": 2, "fill": "#303030" },
{ "type": "rect", "width": 6, "height": 18, "offsetX": -6, "fill": "#252525" },
{ "type": "rect", "width": 6, "height": 18, "offsetX": 6, "fill": "#252525" },
{ "type": "circle", "r": 2, "offsetX": -6, "offsetY": -6, "fill": "#FF3030" },
{ "type": "circle", "r": 2, "offsetX": 6, "offsetY": -6, "fill": "#303030" }
],
"geometry3d": [
{ "type": "box", "width": 24, "height": 6, "depth": 10, "fill": "#303030" },
{ "type": "box", "width": 6, "height": 16, "depth": 10, "offsetX": -8, "offsetY": 8, "fill": "#252525" },
{ "type": "box", "width": 6, "height": 16, "depth": 10, "offsetX": 8, "offsetY": 8, "fill": "#252525" },
{ "type": "box", "width": 8, "height": 10, "depth": 6, "offsetY": 8, "subtract": true },
{ "type": "cylinder", "r": 2, "height": 3, "offsetX": -8, "offsetY": 12, "offsetZ": 4, "rotateX": 90, "fill": "#FF3030" },
{ "type": "cylinder", "r": 2, "height": 3, "offsetX": 8, "offsetY": 12, "offsetZ": 4, "rotateX": 90, "fill": "#404040" },
{ "type": "cylinder", "r": 1, "height": 8, "offsetX": -10, "subtract": true },
{ "type": "cylinder", "r": 1, "height": 8, "offsetX": 10, "subtract": true },
{ "type": "box", "width": 8, "height": 4, "depth": 12, "offsetY": -5, "fill": "#404040" },
{ "type": "cylinder", "r": 1, "height": 8, "offsetX": -2, "offsetY": -5, "offsetZ": 8, "rotateX": 90, "fill": "#C0C0C0" },
{ "type": "cylinder", "r": 1, "height": 8, "offsetX": 0, "offsetY": -5, "offsetZ": 8, "rotateX": 90, "fill": "#C0C0C0" },
{ "type": "cylinder", "r": 1, "height": 8, "offsetX": 2, "offsetY": -5, "offsetZ": 8, "rotateX": 90, "fill": "#C0C0C0" },
{ "type": "cylinder", "r": 1.5, "height": 2, "offsetX": -8, "offsetY": 12, "offsetZ": 2, "rotateX": 90, "fill": "#808080" },
{ "type": "cylinder", "r": 1.5, "height": 2, "offsetX": 8, "offsetY": 12, "offsetZ": 2, "rotateX": 90, "fill": "#808080" },
{ "type": "box", "width": 10, "height": 1, "depth": 8, "offsetY": 3, "fill": "#1a1a1a" }
]
}

View File

@@ -0,0 +1,65 @@
{
"id": "x-axis-rail",
"name": "X-Axis Linear Rail",
"partNumber": "BL-A1-MR001",
"material": "steel",
"quantity": 1,
"weight": 85.0,
"weightUnit": "g",
"baseY": 100,
"description": "MGN12H linear rail for X-axis printhead movement, 220mm travel length",
"installation": {
"tools": [
{ "name": "Hex key", "size": "2.5mm", "required": true },
{ "name": "Torque screwdriver", "size": "0.5-2 Nm", "required": true },
{ "name": "Level gauge", "size": "-", "required": true },
{ "name": "Dial indicator", "size": "-", "required": false }
],
"hardware": [
{ "name": "M3x8 socket head cap screw", "spec": "M3x0.5x8", "grade": "12.9", "qty": 8, "reusable": true },
{ "name": "Alignment dowel pin", "spec": "2x4mm", "qty": 2, "reusable": true }
],
"torque": [
{ "fastener": "Rail mounting screws", "value": 0.8, "unit": "Nm", "sequence": "Center out alternating", "notes": "Apply threadlocker" }
],
"notes": [
"Clean rail with isopropyl alcohol before installation",
"Apply light machine oil to rail surface",
"Check parallelism to Y-axis after mounting",
"Verify smooth carriage movement without binding"
]
},
"geometry": [
{ "type": "rect", "width": 180, "height": 12, "rx": 2, "fill": "#606060" },
{ "type": "rect", "width": 170, "height": 4, "offsetY": 0, "fill": "#505050" },
{ "type": "circle", "r": 2, "offsetX": -80, "fill": "#404040" },
{ "type": "circle", "r": 2, "offsetX": -60, "fill": "#404040" },
{ "type": "circle", "r": 2, "offsetX": 60, "fill": "#404040" },
{ "type": "circle", "r": 2, "offsetX": 80, "fill": "#404040" }
],
"geometry3d": [
{ "type": "box", "width": 220, "height": 8, "depth": 12, "fill": "#505050" },
{ "type": "box", "width": 220, "height": 3, "depth": 4, "offsetY": 4, "fill": "#606060" },
{ "type": "box", "width": 220, "height": 2, "depth": 2, "offsetY": 2, "offsetZ": 4, "fill": "#707070" },
{ "type": "box", "width": 220, "height": 2, "depth": 2, "offsetY": 2, "offsetZ": -4, "fill": "#707070" },
{ "type": "cylinder", "r": 1.5, "height": 10, "offsetX": -100, "subtract": true },
{ "type": "cylinder", "r": 1.5, "height": 10, "offsetX": -75, "subtract": true },
{ "type": "cylinder", "r": 1.5, "height": 10, "offsetX": -50, "subtract": true },
{ "type": "cylinder", "r": 1.5, "height": 10, "offsetX": 50, "subtract": true },
{ "type": "cylinder", "r": 1.5, "height": 10, "offsetX": 75, "subtract": true },
{ "type": "cylinder", "r": 1.5, "height": 10, "offsetX": 100, "subtract": true },
{ "type": "cylinder", "r": 3, "height": 2, "offsetX": -100, "offsetY": -4, "fill": "#404040" },
{ "type": "cylinder", "r": 3, "height": 2, "offsetX": -75, "offsetY": -4, "fill": "#404040" },
{ "type": "cylinder", "r": 3, "height": 2, "offsetX": -50, "offsetY": -4, "fill": "#404040" },
{ "type": "cylinder", "r": 3, "height": 2, "offsetX": 50, "offsetY": -4, "fill": "#404040" },
{ "type": "cylinder", "r": 3, "height": 2, "offsetX": 75, "offsetY": -4, "fill": "#404040" },
{ "type": "cylinder", "r": 3, "height": 2, "offsetX": 100, "offsetY": -4, "fill": "#404040" },
{ "type": "box", "width": 10, "height": 10, "depth": 14, "offsetX": -105, "fill": "#606060" },
{ "type": "box", "width": 10, "height": 10, "depth": 14, "offsetX": 105, "fill": "#606060" }
]
}

View File

@@ -0,0 +1,72 @@
{
"id": "x-motor",
"name": "X-Axis Stepper Motor",
"partNumber": "BL-A1-MR004",
"material": "steel",
"quantity": 1,
"weight": 180.0,
"weightUnit": "g",
"baseY": 220,
"description": "NEMA 17 stepper motor with integrated GT2 pulley for X-axis drive, 1.8 degree step angle",
"installation": {
"tools": [
{ "name": "Hex key", "size": "3mm", "required": true },
{ "name": "Hex key", "size": "1.5mm", "required": true },
{ "name": "Torque screwdriver", "size": "1-4 Nm", "required": true }
],
"hardware": [
{ "name": "M3x10 socket head cap screw", "spec": "M3x0.5x10", "grade": "8.8", "qty": 4, "reusable": true },
{ "name": "GT2 20T pulley", "spec": "5mm bore", "qty": 1, "reusable": true },
{ "name": "Pulley set screw", "spec": "M3x4 grub", "qty": 2, "reusable": true }
],
"torque": [
{ "fastener": "Motor mounting screws", "value": 1.2, "unit": "Nm", "sequence": "Diagonal pattern", "notes": "" },
{ "fastener": "Pulley grub screws", "value": 0.5, "unit": "Nm", "sequence": "Alternate tightening", "notes": "One screw on shaft flat" }
],
"notes": [
"Align pulley with belt path before tightening",
"Connect motor cable before mounting",
"Check for correct rotation direction",
"Verify pulley set screw on shaft flat"
]
},
"geometry": [
{ "type": "rect", "width": 42, "height": 42, "rx": 3, "fill": "#303030" },
{ "type": "circle", "r": 11, "fill": "#505050" },
{ "type": "circle", "r": 2.5, "fill": "#404040" },
{ "type": "circle", "r": 3, "offsetX": -15, "offsetY": -15, "fill": "#252525" },
{ "type": "circle", "r": 3, "offsetX": 15, "offsetY": -15, "fill": "#252525" },
{ "type": "circle", "r": 3, "offsetX": -15, "offsetY": 15, "fill": "#252525" },
{ "type": "circle", "r": 3, "offsetX": 15, "offsetY": 15, "fill": "#252525" },
{ "type": "circle", "r": 8, "offsetY": -28, "fill": "#707070" }
],
"geometry3d": [
{ "type": "box", "width": 42, "height": 40, "depth": 42, "fill": "#303030" },
{ "type": "cylinder", "r": 11, "height": 3, "offsetY": 21, "fill": "#404040" },
{ "type": "cylinder", "r": 2.5, "height": 24, "offsetY": 32, "fill": "#606060" },
{ "type": "cylinder", "r": 8, "height": 12, "offsetY": 38, "fill": "#707070" },
{ "type": "cylinder", "r": 6, "height": 14, "offsetY": 38, "fill": "#606060" },
{ "type": "cylinder", "r": 2.6, "height": 16, "offsetY": 38, "subtract": true },
{ "type": "box", "width": 3, "height": 4, "depth": 3, "offsetX": 0, "offsetY": 42, "offsetZ": 6, "fill": "#505050" },
{ "type": "cylinder", "r": 1.5, "height": 45, "offsetX": -15.5, "offsetZ": -15.5, "subtract": true },
{ "type": "cylinder", "r": 1.5, "height": 45, "offsetX": 15.5, "offsetZ": -15.5, "subtract": true },
{ "type": "cylinder", "r": 1.5, "height": 45, "offsetX": -15.5, "offsetZ": 15.5, "subtract": true },
{ "type": "cylinder", "r": 1.5, "height": 45, "offsetX": 15.5, "offsetZ": 15.5, "subtract": true },
{ "type": "box", "width": 15, "height": 8, "depth": 10, "offsetY": -20, "offsetZ": -20, "fill": "#404040" },
{ "type": "cylinder", "r": 2, "height": 5, "offsetY": -20, "offsetZ": -25, "rotateX": 90, "fill": "#808080" },
{ "type": "cylinder", "r": 2, "height": 5, "offsetX": 4, "offsetY": -20, "offsetZ": -25, "rotateX": 90, "fill": "#808080" },
{ "type": "cylinder", "r": 2, "height": 5, "offsetX": -4, "offsetY": -20, "offsetZ": -25, "rotateX": 90, "fill": "#808080" },
{ "type": "cylinder", "r": 2, "height": 5, "offsetX": 8, "offsetY": -20, "offsetZ": -25, "rotateX": 90, "fill": "#808080" },
{ "type": "cylinder", "r": 3, "height": 3, "offsetX": -15.5, "offsetZ": -15.5, "offsetY": 21, "fill": "#505050" },
{ "type": "cylinder", "r": 3, "height": 3, "offsetX": 15.5, "offsetZ": -15.5, "offsetY": 21, "fill": "#505050" },
{ "type": "cylinder", "r": 3, "height": 3, "offsetX": -15.5, "offsetZ": 15.5, "offsetY": 21, "fill": "#505050" },
{ "type": "cylinder", "r": 3, "height": 3, "offsetX": 15.5, "offsetZ": 15.5, "offsetY": 21, "fill": "#505050" }
]
}

View File

@@ -0,0 +1,67 @@
{
"id": "xy-belt",
"name": "GT2 Timing Belt",
"partNumber": "BL-A1-MR006",
"material": "rubber",
"quantity": 2,
"weight": 15.0,
"weightUnit": "g",
"baseY": 380,
"description": "GT2 timing belt 6mm width, fiberglass reinforced, for X and Y axis drive",
"installation": {
"tools": [
{ "name": "Belt tension gauge", "size": "GT2", "required": true },
{ "name": "Hex key", "size": "2.5mm", "required": true },
{ "name": "Needle nose pliers", "size": "-", "required": false }
],
"hardware": [
{ "name": "Belt clip", "spec": "GT2 6mm", "qty": 2, "reusable": true },
{ "name": "Belt anchor", "spec": "M3 crimp", "qty": 2, "reusable": false }
],
"torque": [
{ "fastener": "Belt anchor screws", "value": 0.5, "unit": "Nm", "sequence": "", "notes": "Ensure belt teeth fully engaged" }
],
"notes": [
"Target belt tension: 40-50Hz frequency",
"Check belt for wear, cracks, or missing teeth",
"Route belt without twists",
"Replace if stretched more than 1%"
]
},
"geometry": [
{ "type": "rect", "width": 180, "height": 6, "rx": 1, "fill": "#303030" },
{ "type": "rect", "width": 175, "height": 2, "fill": "#252525" },
{ "type": "line", "x1": -85, "y1": -1, "x2": 85, "y2": -1, "stroke": "#404040", "strokeWidth": 0.5 }
],
"geometry3d": [
{ "type": "box", "width": 400, "height": 1.5, "depth": 6, "fill": "#303030" },
{ "type": "box", "width": 400, "height": 0.8, "depth": 6, "offsetY": 1.1, "fill": "#252525" },
{ "type": "box", "width": 2, "height": 0.8, "depth": 6, "offsetX": -195, "offsetY": -0.5, "fill": "#404040" },
{ "type": "box", "width": 2, "height": 0.8, "depth": 6, "offsetX": -191, "offsetY": -0.5, "fill": "#404040" },
{ "type": "box", "width": 2, "height": 0.8, "depth": 6, "offsetX": -187, "offsetY": -0.5, "fill": "#404040" },
{ "type": "box", "width": 2, "height": 0.8, "depth": 6, "offsetX": -183, "offsetY": -0.5, "fill": "#404040" },
{ "type": "box", "width": 2, "height": 0.8, "depth": 6, "offsetX": -179, "offsetY": -0.5, "fill": "#404040" },
{ "type": "box", "width": 2, "height": 0.8, "depth": 6, "offsetX": -175, "offsetY": -0.5, "fill": "#404040" },
{ "type": "box", "width": 2, "height": 0.8, "depth": 6, "offsetX": -171, "offsetY": -0.5, "fill": "#404040" },
{ "type": "box", "width": 2, "height": 0.8, "depth": 6, "offsetX": -167, "offsetY": -0.5, "fill": "#404040" },
{ "type": "box", "width": 2, "height": 0.8, "depth": 6, "offsetX": 195, "offsetY": -0.5, "fill": "#404040" },
{ "type": "box", "width": 2, "height": 0.8, "depth": 6, "offsetX": 191, "offsetY": -0.5, "fill": "#404040" },
{ "type": "box", "width": 2, "height": 0.8, "depth": 6, "offsetX": 187, "offsetY": -0.5, "fill": "#404040" },
{ "type": "box", "width": 2, "height": 0.8, "depth": 6, "offsetX": 183, "offsetY": -0.5, "fill": "#404040" },
{ "type": "box", "width": 2, "height": 0.8, "depth": 6, "offsetX": 179, "offsetY": -0.5, "fill": "#404040" },
{ "type": "box", "width": 2, "height": 0.8, "depth": 6, "offsetX": 175, "offsetY": -0.5, "fill": "#404040" },
{ "type": "box", "width": 2, "height": 0.8, "depth": 6, "offsetX": 171, "offsetY": -0.5, "fill": "#404040" },
{ "type": "box", "width": 2, "height": 0.8, "depth": 6, "offsetX": 167, "offsetY": -0.5, "fill": "#404040" },
{ "type": "box", "width": 0.5, "height": 1.5, "depth": 6, "offsetX": 0, "fill": "#404040" },
{ "type": "box", "width": 15, "height": 4, "depth": 10, "offsetX": -195, "offsetY": 3, "fill": "#505050" },
{ "type": "cylinder", "r": 1.5, "height": 12, "offsetX": -195, "offsetY": 3, "rotateX": 90, "subtract": true },
{ "type": "box", "width": 15, "height": 4, "depth": 10, "offsetX": 195, "offsetY": 3, "fill": "#505050" },
{ "type": "cylinder", "r": 1.5, "height": 12, "offsetX": 195, "offsetY": 3, "rotateX": 90, "subtract": true }
]
}

View File

@@ -0,0 +1,74 @@
{
"id": "y-axis-rail",
"name": "Y-Axis Linear Rails",
"partNumber": "BL-A1-MR003",
"material": "steel",
"quantity": 2,
"weight": 120.0,
"weightUnit": "g",
"baseY": 180,
"description": "MGN12H linear rails for Y-axis bed movement, 256mm travel length, dual rail configuration",
"installation": {
"tools": [
{ "name": "Hex key", "size": "2.5mm", "required": true },
{ "name": "Torque screwdriver", "size": "0.5-2 Nm", "required": true },
{ "name": "Precision straightedge", "size": "300mm", "required": true },
{ "name": "Feeler gauge", "size": "0.02-0.1mm", "required": true }
],
"hardware": [
{ "name": "M3x8 socket head cap screw", "spec": "M3x0.5x8", "grade": "12.9", "qty": 16, "reusable": true },
{ "name": "Rail alignment shim", "spec": "0.1mm", "qty": 4, "reusable": true }
],
"torque": [
{ "fastener": "Rail mounting screws", "value": 0.8, "unit": "Nm", "sequence": "Center out alternating", "notes": "Verify parallelism between rails" }
],
"notes": [
"Both rails must be parallel within 0.05mm",
"Clean mounting surface thoroughly",
"Apply thin film of grease to rail grooves",
"Check bed movement is square to X-axis"
]
},
"geometry": [
{ "type": "rect", "width": 200, "height": 12, "rx": 2, "fill": "#606060" },
{ "type": "rect", "width": 190, "height": 4, "fill": "#505050" },
{ "type": "rect", "width": 200, "height": 12, "rx": 2, "offsetY": 30, "fill": "#606060" },
{ "type": "rect", "width": 190, "height": 4, "offsetY": 30, "fill": "#505050" }
],
"geometry3d": [
{ "type": "box", "width": 12, "height": 8, "depth": 256, "offsetX": -80, "fill": "#505050" },
{ "type": "box", "width": 12, "height": 8, "depth": 256, "offsetX": 80, "fill": "#505050" },
{ "type": "box", "width": 4, "height": 3, "depth": 256, "offsetX": -80, "offsetY": 4, "fill": "#606060" },
{ "type": "box", "width": 4, "height": 3, "depth": 256, "offsetX": 80, "offsetY": 4, "fill": "#606060" },
{ "type": "box", "width": 2, "height": 2, "depth": 256, "offsetX": -84, "offsetY": 2, "fill": "#707070" },
{ "type": "box", "width": 2, "height": 2, "depth": 256, "offsetX": -76, "offsetY": 2, "fill": "#707070" },
{ "type": "box", "width": 2, "height": 2, "depth": 256, "offsetX": 84, "offsetY": 2, "fill": "#707070" },
{ "type": "box", "width": 2, "height": 2, "depth": 256, "offsetX": 76, "offsetY": 2, "fill": "#707070" },
{ "type": "cylinder", "r": 1.5, "height": 10, "offsetX": -80, "offsetZ": -120, "subtract": true },
{ "type": "cylinder", "r": 1.5, "height": 10, "offsetX": -80, "offsetZ": -80, "subtract": true },
{ "type": "cylinder", "r": 1.5, "height": 10, "offsetX": -80, "offsetZ": -40, "subtract": true },
{ "type": "cylinder", "r": 1.5, "height": 10, "offsetX": -80, "offsetZ": 40, "subtract": true },
{ "type": "cylinder", "r": 1.5, "height": 10, "offsetX": -80, "offsetZ": 80, "subtract": true },
{ "type": "cylinder", "r": 1.5, "height": 10, "offsetX": -80, "offsetZ": 120, "subtract": true },
{ "type": "cylinder", "r": 1.5, "height": 10, "offsetX": 80, "offsetZ": -120, "subtract": true },
{ "type": "cylinder", "r": 1.5, "height": 10, "offsetX": 80, "offsetZ": -80, "subtract": true },
{ "type": "cylinder", "r": 1.5, "height": 10, "offsetX": 80, "offsetZ": -40, "subtract": true },
{ "type": "cylinder", "r": 1.5, "height": 10, "offsetX": 80, "offsetZ": 40, "subtract": true },
{ "type": "cylinder", "r": 1.5, "height": 10, "offsetX": 80, "offsetZ": 80, "subtract": true },
{ "type": "cylinder", "r": 1.5, "height": 10, "offsetX": 80, "offsetZ": 120, "subtract": true },
{ "type": "cylinder", "r": 3, "height": 2, "offsetX": -80, "offsetZ": -120, "offsetY": -4, "fill": "#404040" },
{ "type": "cylinder", "r": 3, "height": 2, "offsetX": -80, "offsetZ": 120, "offsetY": -4, "fill": "#404040" },
{ "type": "cylinder", "r": 3, "height": 2, "offsetX": 80, "offsetZ": -120, "offsetY": -4, "fill": "#404040" },
{ "type": "cylinder", "r": 3, "height": 2, "offsetX": 80, "offsetZ": 120, "offsetY": -4, "fill": "#404040" },
{ "type": "box", "width": 14, "height": 10, "depth": 10, "offsetX": -80, "offsetZ": -123, "fill": "#606060" },
{ "type": "box", "width": 14, "height": 10, "depth": 10, "offsetX": -80, "offsetZ": 123, "fill": "#606060" },
{ "type": "box", "width": 14, "height": 10, "depth": 10, "offsetX": 80, "offsetZ": -123, "fill": "#606060" },
{ "type": "box", "width": 14, "height": 10, "depth": 10, "offsetX": 80, "offsetZ": 123, "fill": "#606060" }
]
}

View File

@@ -0,0 +1,75 @@
{
"id": "y-motor",
"name": "Y-Axis Stepper Motor",
"partNumber": "BL-A1-MR005",
"material": "steel",
"quantity": 1,
"weight": 220.0,
"weightUnit": "g",
"baseY": 300,
"description": "NEMA 17 stepper motor with integrated GT2 pulley for Y-axis bed drive, 1.8 degree step angle, longer body for higher torque",
"installation": {
"tools": [
{ "name": "Hex key", "size": "3mm", "required": true },
{ "name": "Hex key", "size": "1.5mm", "required": true },
{ "name": "Torque screwdriver", "size": "1-4 Nm", "required": true }
],
"hardware": [
{ "name": "M3x10 socket head cap screw", "spec": "M3x0.5x10", "grade": "8.8", "qty": 4, "reusable": true },
{ "name": "GT2 20T pulley", "spec": "5mm bore", "qty": 1, "reusable": true },
{ "name": "Pulley set screw", "spec": "M3x4 grub", "qty": 2, "reusable": true },
{ "name": "Motor damper", "spec": "NEMA 17", "qty": 1, "reusable": true }
],
"torque": [
{ "fastener": "Motor mounting screws", "value": 1.2, "unit": "Nm", "sequence": "Diagonal pattern", "notes": "Install damper between motor and mount" },
{ "fastener": "Pulley grub screws", "value": 0.5, "unit": "Nm", "sequence": "Alternate tightening", "notes": "One screw on shaft flat" }
],
"notes": [
"Y motor handles bed inertia - requires higher torque",
"Use motor damper to reduce vibration resonance",
"Ensure belt tension is even on both sides",
"Check current limiting if motor runs hot"
]
},
"geometry": [
{ "type": "rect", "width": 42, "height": 48, "rx": 3, "fill": "#303030" },
{ "type": "circle", "r": 11, "fill": "#505050" },
{ "type": "circle", "r": 2.5, "fill": "#404040" },
{ "type": "circle", "r": 3, "offsetX": -15, "offsetY": -18, "fill": "#252525" },
{ "type": "circle", "r": 3, "offsetX": 15, "offsetY": -18, "fill": "#252525" },
{ "type": "circle", "r": 3, "offsetX": -15, "offsetY": 18, "fill": "#252525" },
{ "type": "circle", "r": 3, "offsetX": 15, "offsetY": 18, "fill": "#252525" },
{ "type": "circle", "r": 8, "offsetY": -32, "fill": "#707070" }
],
"geometry3d": [
{ "type": "box", "width": 42, "height": 48, "depth": 42, "fill": "#303030" },
{ "type": "cylinder", "r": 11, "height": 3, "offsetY": 25, "fill": "#404040" },
{ "type": "cylinder", "r": 2.5, "height": 24, "offsetY": 37, "fill": "#606060" },
{ "type": "cylinder", "r": 8, "height": 12, "offsetY": 43, "fill": "#707070" },
{ "type": "cylinder", "r": 6, "height": 14, "offsetY": 43, "fill": "#606060" },
{ "type": "cylinder", "r": 2.6, "height": 16, "offsetY": 43, "subtract": true },
{ "type": "box", "width": 3, "height": 4, "depth": 3, "offsetX": 0, "offsetY": 47, "offsetZ": 6, "fill": "#505050" },
{ "type": "cylinder", "r": 1.5, "height": 55, "offsetX": -15.5, "offsetZ": -15.5, "subtract": true },
{ "type": "cylinder", "r": 1.5, "height": 55, "offsetX": 15.5, "offsetZ": -15.5, "subtract": true },
{ "type": "cylinder", "r": 1.5, "height": 55, "offsetX": -15.5, "offsetZ": 15.5, "subtract": true },
{ "type": "cylinder", "r": 1.5, "height": 55, "offsetX": 15.5, "offsetZ": 15.5, "subtract": true },
{ "type": "box", "width": 15, "height": 8, "depth": 10, "offsetY": -24, "offsetZ": -20, "fill": "#404040" },
{ "type": "cylinder", "r": 2, "height": 5, "offsetY": -24, "offsetZ": -25, "rotateX": 90, "fill": "#808080" },
{ "type": "cylinder", "r": 2, "height": 5, "offsetX": 4, "offsetY": -24, "offsetZ": -25, "rotateX": 90, "fill": "#808080" },
{ "type": "cylinder", "r": 2, "height": 5, "offsetX": -4, "offsetY": -24, "offsetZ": -25, "rotateX": 90, "fill": "#808080" },
{ "type": "cylinder", "r": 2, "height": 5, "offsetX": 8, "offsetY": -24, "offsetZ": -25, "rotateX": 90, "fill": "#808080" },
{ "type": "cylinder", "r": 3, "height": 3, "offsetX": -15.5, "offsetZ": -15.5, "offsetY": 25, "fill": "#505050" },
{ "type": "cylinder", "r": 3, "height": 3, "offsetX": 15.5, "offsetZ": -15.5, "offsetY": 25, "fill": "#505050" },
{ "type": "cylinder", "r": 3, "height": 3, "offsetX": -15.5, "offsetZ": 15.5, "offsetY": 25, "fill": "#505050" },
{ "type": "cylinder", "r": 3, "height": 3, "offsetX": 15.5, "offsetZ": 15.5, "offsetY": 25, "fill": "#505050" },
{ "type": "box", "width": 46, "height": 3, "depth": 46, "offsetY": -25, "fill": "#252525" }
]
}

View File

@@ -0,0 +1,17 @@
{
"name": "Bambu Lab A1 Printhead Assembly",
"description": "Complete printhead assembly for the Bambu Lab A1 3D printer featuring direct drive extrusion, all-metal hotend, integrated filament cutter, and dual cooling system. Designed for high-speed printing with AMS multi-material support.",
"category": "3d-printers",
"manufacturer": "Bambu Lab",
"model": "A1",
"parts": [
"hotend",
"extruder-motor",
"extruder-gears",
"cooling-fan",
"hotend-fan",
"toolhead-board",
"filament-cutter",
"nozzle"
]
}

View File

@@ -0,0 +1,263 @@
{
"id": "cooling-fan",
"name": "Part Cooling Blower Fan",
"partNumber": "BL-A1-CF001",
"material": "Plastic/Metal",
"quantity": 1,
"weight": 18,
"weightUnit": "g",
"baseY": 0,
"description": "High-performance 5015 radial blower fan for part cooling during printing. Features centrifugal design for high static pressure airflow directed at the print zone. PWM controlled for variable speed operation from 0-100%.",
"installation": {
"tools": [
"2mm hex key",
"Phillips screwdriver"
],
"hardware": [
"M2.5x6 socket head cap screw x2",
"Fan duct adapter"
],
"torque": [
"Fan mounting screws: 0.2 Nm"
],
"notes": [
"Ensure fan outlet aligns with cooling duct",
"Verify fan spins freely before securing",
"Check wire routing to avoid hot components",
"Test PWM control after installation"
]
},
"geometry": [
{
"type": "rect",
"x": 5,
"y": 5,
"width": 50,
"height": 15,
"rx": 2,
"fill": "#303030",
"stroke": "#202020",
"strokeWidth": 1
},
{
"type": "circle",
"cx": 20,
"cy": 12.5,
"r": 6,
"fill": "#404040",
"stroke": "#353535",
"strokeWidth": 1
},
{
"type": "rect",
"x": 40,
"y": 8,
"width": 12,
"height": 9,
"fill": "#252525"
}
],
"geometry3d": [
{
"type": "box",
"offsetX": 0,
"offsetY": 0,
"offsetZ": 0,
"fill": "#303030",
"width": 51,
"height": 15,
"depth": 51
},
{
"type": "box",
"offsetX": 0,
"offsetY": 0,
"offsetZ": 0,
"fill": "#252525",
"width": 49,
"height": 13,
"depth": 49
},
{
"type": "cylinder",
"height": 12,
"r": 18,
"offsetX": -8,
"offsetY": 0,
"offsetZ": 0,
"fill": "#353535"
},
{
"type": "cylinder",
"height": 14,
"r": 12,
"offsetX": -8,
"offsetY": 0,
"offsetZ": 0,
"fill": "#404040"
},
{
"type": "cylinder",
"height": 16,
"r": 4,
"offsetX": -8,
"offsetY": 0,
"offsetZ": 0,
"fill": "#505050"
},
{
"type": "box",
"offsetX": -8,
"offsetY": 0,
"offsetZ": 10,
"fill": "#454545",
"width": 4,
"height": 10,
"depth": 16
},
{
"type": "box",
"offsetX": -8,
"offsetY": 0,
"offsetZ": -10,
"fill": "#454545",
"width": 4,
"height": 10,
"depth": 16
},
{
"type": "box",
"offsetX": 2,
"offsetY": 0,
"offsetZ": 0,
"fill": "#454545",
"width": 16,
"height": 10,
"depth": 4
},
{
"type": "box",
"offsetX": -18,
"offsetY": 0,
"offsetZ": 0,
"fill": "#454545",
"width": 16,
"height": 10,
"depth": 4
},
{
"type": "box",
"offsetX": -2,
"offsetY": 0,
"offsetZ": 8,
"fill": "#454545",
"width": 12,
"height": 10,
"depth": 4
},
{
"type": "box",
"offsetX": -14,
"offsetY": 0,
"offsetZ": -8,
"fill": "#454545",
"width": 12,
"height": 10,
"depth": 4
},
{
"type": "box",
"offsetX": 20,
"offsetY": 0,
"offsetZ": 0,
"fill": "#252525",
"width": 14,
"height": 12,
"depth": 16
},
{
"type": "box",
"offsetX": 28,
"offsetY": 0,
"offsetZ": 0,
"fill": "#202020",
"width": 6,
"height": 10,
"depth": 14
},
{
"type": "cylinder",
"height": 15,
"r": 1.5,
"offsetX": -20,
"offsetY": 0,
"offsetZ": 20,
"fill": "#404040"
},
{
"type": "cylinder",
"height": 15,
"r": 1.5,
"offsetX": -20,
"offsetY": 0,
"offsetZ": -20,
"fill": "#404040"
},
{
"type": "cylinder",
"height": 15,
"r": 1.5,
"offsetX": 20,
"offsetY": 0,
"offsetZ": 20,
"fill": "#404040"
},
{
"type": "cylinder",
"height": 15,
"r": 1.5,
"offsetX": 20,
"offsetY": 0,
"offsetZ": -20,
"fill": "#404040"
},
{
"type": "box",
"offsetX": 18,
"offsetY": 8,
"offsetZ": -18,
"fill": "#202020",
"width": 8,
"height": 4,
"depth": 6
},
{
"type": "box",
"offsetX": 18,
"offsetY": 10,
"offsetZ": -18,
"fill": "#f0f0f0",
"width": 6,
"height": 2,
"depth": 4
},
{
"type": "cylinder",
"height": 8,
"r": 2,
"offsetX": 23,
"offsetY": 8,
"offsetZ": -18,
"fill": "#e04000"
},
{
"type": "cylinder",
"height": 8,
"r": 2,
"offsetX": 23,
"offsetY": 8,
"offsetZ": -14,
"fill": "#303030"
}
]
}

View File

@@ -0,0 +1,275 @@
{
"id": "extruder-gears",
"name": "Dual Drive Gear Assembly",
"partNumber": "BL-A1-EG001",
"material": "Hardened Steel",
"quantity": 1,
"weight": 12,
"weightUnit": "g",
"baseY": 0,
"description": "Dual-drive extruder gear assembly with hardened steel gears featuring precision-cut teeth for reliable filament grip. Includes primary drive gear and synchronized idler gear for consistent extrusion force on both sides of filament.",
"installation": {
"tools": [
"1.5mm hex key",
"Needle nose pliers",
"Tweezers"
],
"hardware": [
"M3 set screw x2",
"Bearing 3x8x3mm x2",
"Idler arm spring"
],
"torque": [
"Set screws: 0.3 Nm"
],
"notes": [
"Align gear teeth for smooth filament feeding",
"Ensure set screw engages motor shaft flat",
"Clean gears of debris before installation",
"Check gear mesh clearance - should be minimal backlash"
]
},
"geometry": [
{
"type": "circle",
"cx": 15,
"cy": 20,
"r": 8,
"fill": "#505050",
"stroke": "#404040",
"strokeWidth": 1
},
{
"type": "circle",
"cx": 15,
"cy": 20,
"r": 5,
"fill": "#606060",
"stroke": "#505050",
"strokeWidth": 1
},
{
"type": "circle",
"cx": 30,
"cy": 20,
"r": 8,
"fill": "#505050",
"stroke": "#404040",
"strokeWidth": 1
},
{
"type": "circle",
"cx": 30,
"cy": 20,
"r": 5,
"fill": "#606060",
"stroke": "#505050",
"strokeWidth": 1
},
{
"type": "rect",
"x": 20,
"y": 15,
"width": 5,
"height": 10,
"fill": "#707070"
}
],
"geometry3d": [
{
"type": "cylinder",
"height": 8,
"r": 6,
"offsetX": -8,
"offsetY": 0,
"offsetZ": 0,
"fill": "#505050"
},
{
"type": "cylinder",
"height": 4,
"r": 7,
"offsetX": -8,
"offsetY": 0,
"offsetZ": 0,
"fill": "#606060"
},
{
"type": "cylinder",
"height": 3,
"r": 4,
"offsetX": -8,
"offsetY": -3,
"offsetZ": 0,
"fill": "#454545"
},
{
"type": "cylinder",
"height": 3,
"r": 4,
"offsetX": -8,
"offsetY": 5,
"offsetZ": 0,
"fill": "#454545"
},
{
"type": "cylinder",
"height": 14,
"r": 2.5,
"offsetX": -8,
"offsetY": 0,
"offsetZ": 0,
"fill": "#353535"
},
{
"type": "box",
"offsetX": -8,
"offsetY": 0,
"offsetZ": 3,
"fill": "#404040",
"width": 2,
"height": 8,
"depth": 3
},
{
"type": "cylinder",
"height": 8,
"r": 6,
"offsetX": 8,
"offsetY": 0,
"offsetZ": 0,
"fill": "#505050"
},
{
"type": "cylinder",
"height": 4,
"r": 7,
"offsetX": 8,
"offsetY": 0,
"offsetZ": 0,
"fill": "#606060"
},
{
"type": "cylinder",
"height": 3,
"r": 4,
"offsetX": 8,
"offsetY": -3,
"offsetZ": 0,
"fill": "#454545"
},
{
"type": "cylinder",
"height": 3,
"r": 4,
"offsetX": 8,
"offsetY": 5,
"offsetZ": 0,
"fill": "#454545"
},
{
"type": "cylinder",
"height": 2,
"r": 4,
"offsetX": 8,
"offsetY": -4,
"offsetZ": 0,
"fill": "#707070"
},
{
"type": "cylinder",
"height": 2,
"r": 4,
"offsetX": 8,
"offsetY": 6,
"offsetZ": 0,
"fill": "#707070"
},
{
"type": "cylinder",
"height": 16,
"r": 2,
"offsetX": 8,
"offsetY": 0,
"offsetZ": 0,
"fill": "#606060"
},
{
"type": "box",
"offsetX": 0,
"offsetY": 0,
"offsetZ": 0,
"fill": "#808080",
"width": 4,
"height": 3,
"depth": 4
},
{
"type": "cylinder",
"height": 6,
"r": 1,
"offsetX": 0,
"offsetY": 0,
"offsetZ": 0,
"fill": "#909090"
},
{
"type": "box",
"offsetX": -8,
"offsetY": 2,
"offsetZ": 5,
"fill": "#303030",
"width": 3,
"height": 2,
"depth": 4
},
{
"type": "cylinder",
"height": 4,
"rotation": [
90,
0,
0
],
"r": 1,
"offsetX": -8,
"offsetY": 2,
"offsetZ": 7,
"fill": "#252525"
},
{
"type": "box",
"offsetX": 12,
"offsetY": 0,
"offsetZ": 0,
"fill": "#404040",
"width": 6,
"height": 10,
"depth": 12
},
{
"type": "cylinder",
"height": 6,
"rotation": [
0,
0,
90
],
"r": 1.5,
"offsetX": 15,
"offsetY": 0,
"offsetZ": 4,
"fill": "#505050"
},
{
"type": "box",
"offsetX": 16,
"offsetY": 0,
"offsetZ": -4,
"fill": "#606060",
"width": 2,
"height": 6,
"depth": 6
}
]
}

View File

@@ -0,0 +1,282 @@
{
"id": "extruder-motor",
"name": "Extruder Stepper Motor",
"partNumber": "BL-A1-EM001",
"material": "Steel/Aluminum/Copper",
"quantity": 1,
"weight": 68,
"weightUnit": "g",
"baseY": 0,
"description": "Compact NEMA 14 pancake stepper motor optimized for direct drive extrusion. Features high torque output (0.1 Nm), low inertia design, and integrated drive gear shaft. 1.8° step angle with 200 steps per revolution.",
"installation": {
"tools": [
"2mm hex key",
"2.5mm hex key",
"Phillips screwdriver"
],
"hardware": [
"M3x8 socket head cap screw x4",
"Motor mounting plate"
],
"torque": [
"Motor mounting screws: 0.4 Nm"
],
"notes": [
"Align motor shaft with extruder gear assembly",
"Ensure motor connector is properly seated",
"Do not over-tighten mounting screws - can warp motor face",
"Verify motor direction before full assembly"
]
},
"geometry": [
{
"type": "rect",
"x": 5,
"y": 5,
"width": 35,
"height": 20,
"fill": "#303030",
"stroke": "#202020",
"strokeWidth": 1
},
{
"type": "circle",
"cx": 22.5,
"cy": 15,
"r": 8,
"fill": "#404040",
"stroke": "#303030",
"strokeWidth": 1
},
{
"type": "circle",
"cx": 22.5,
"cy": 15,
"r": 3,
"fill": "#606060",
"stroke": "#505050",
"strokeWidth": 1
},
{
"type": "rect",
"x": 20,
"y": 0,
"width": 5,
"height": 5,
"fill": "#505050"
},
{
"type": "rect",
"x": 8,
"y": 8,
"width": 4,
"height": 4,
"fill": "#252525"
},
{
"type": "rect",
"x": 33,
"y": 8,
"width": 4,
"height": 4,
"fill": "#252525"
},
{
"type": "rect",
"x": 8,
"y": 18,
"width": 4,
"height": 4,
"fill": "#252525"
},
{
"type": "rect",
"x": 33,
"y": 18,
"width": 4,
"height": 4,
"fill": "#252525"
}
],
"geometry3d": [
{
"type": "box",
"offsetX": 0,
"offsetY": 0,
"offsetZ": 0,
"fill": "#303030",
"width": 35,
"height": 14,
"depth": 35
},
{
"type": "cylinder",
"height": 2,
"r": 11,
"offsetX": 0,
"offsetY": -1,
"offsetZ": 0,
"fill": "#404040"
},
{
"type": "cylinder",
"height": 2,
"r": 11,
"offsetX": 0,
"offsetY": 13,
"offsetZ": 0,
"fill": "#404040"
},
{
"type": "cylinder",
"height": 2,
"r": 12,
"offsetX": 0,
"offsetY": -5,
"offsetZ": 0,
"fill": "#383838"
},
{
"type": "cylinder",
"height": 10,
"r": 2.5,
"offsetX": 0,
"offsetY": -10,
"offsetZ": 0,
"fill": "#606060"
},
{
"type": "cylinder",
"height": 8,
"r": 3.5,
"offsetX": 0,
"offsetY": -15,
"offsetZ": 0,
"fill": "#505050"
},
{
"type": "cylinder",
"height": 4,
"r": 5,
"offsetX": 0,
"offsetY": -18,
"offsetZ": 0,
"fill": "#606060"
},
{
"type": "cylinder",
"height": 3,
"r": 1.6,
"offsetX": 12,
"offsetY": -3,
"offsetZ": 12,
"fill": "#252525"
},
{
"type": "cylinder",
"height": 3,
"r": 1.6,
"offsetX": -12,
"offsetY": -3,
"offsetZ": 12,
"fill": "#252525"
},
{
"type": "cylinder",
"height": 3,
"r": 1.6,
"offsetX": 12,
"offsetY": -3,
"offsetZ": -12,
"fill": "#252525"
},
{
"type": "cylinder",
"height": 3,
"r": 1.6,
"offsetX": -12,
"offsetY": -3,
"offsetZ": -12,
"fill": "#252525"
},
{
"type": "box",
"offsetX": 0,
"offsetY": 15,
"offsetZ": 12,
"fill": "#202020",
"width": 10,
"height": 4,
"depth": 8
},
{
"type": "box",
"offsetX": 0,
"offsetY": 17,
"offsetZ": 12,
"fill": "#f0f0f0",
"width": 8,
"height": 2,
"depth": 6
},
{
"type": "box",
"offsetX": -3,
"offsetY": 17,
"offsetZ": 12,
"fill": "#c0a060",
"width": 1,
"height": 3,
"depth": 1
},
{
"type": "box",
"offsetX": -1,
"offsetY": 17,
"offsetZ": 12,
"fill": "#c0a060",
"width": 1,
"height": 3,
"depth": 1
},
{
"type": "box",
"offsetX": 1,
"offsetY": 17,
"offsetZ": 12,
"fill": "#c0a060",
"width": 1,
"height": 3,
"depth": 1
},
{
"type": "box",
"offsetX": 3,
"offsetY": 17,
"offsetZ": 12,
"fill": "#c0a060",
"width": 1,
"height": 3,
"depth": 1
},
{
"type": "box",
"offsetX": 14,
"offsetY": 3,
"offsetZ": 0,
"fill": "#252525",
"width": 8,
"height": 8,
"depth": 20
},
{
"type": "cylinder",
"height": 14,
"r": 6,
"offsetX": 0,
"offsetY": 7,
"offsetZ": 0,
"fill": "#353535"
}
]
}

View File

@@ -0,0 +1,283 @@
{
"id": "filament-cutter",
"name": "Integrated Filament Cutter",
"partNumber": "BL-A1-FC001",
"material": "Hardened Steel/Aluminum",
"quantity": 1,
"weight": 22,
"weightUnit": "g",
"baseY": 0,
"description": "Precision filament cutting mechanism for automated multi-color printing and filament changes. Features hardened steel blade with servo-actuated lever mechanism. Enables clean cuts for reliable tip shaping during AMS operations.",
"installation": {
"tools": [
"2mm hex key",
"1.5mm hex key",
"Tweezers"
],
"hardware": [
"M2x6 socket head cap screw x3",
"Cutter lever spring",
"Blade retention clip"
],
"torque": [
"Blade mounting: 0.2 Nm",
"Housing screws: 0.3 Nm"
],
"notes": [
"Handle blade with care - extremely sharp",
"Verify blade alignment before final assembly",
"Test cutting action before full operation",
"Replace blade after 5000 cuts or if dull"
]
},
"geometry": [
{
"type": "rect",
"x": 5,
"y": 5,
"width": 30,
"height": 25,
"fill": "#404040",
"stroke": "#303030",
"strokeWidth": 1
},
{
"type": "polygon",
"points": "10,15 25,15 25,20 15,25 10,20",
"fill": "#808080",
"stroke": "#606060",
"strokeWidth": 1
},
{
"type": "rect",
"x": 12,
"y": 8,
"width": 16,
"height": 4,
"fill": "#606060"
}
],
"geometry3d": [
{
"type": "box",
"offsetX": 0,
"offsetY": 0,
"offsetZ": 0,
"fill": "#404040",
"width": 28,
"height": 20,
"depth": 18
},
{
"type": "box",
"offsetX": 0,
"offsetY": -8,
"offsetZ": 0,
"fill": "#353535",
"width": 24,
"height": 6,
"depth": 14
},
{
"type": "box",
"offsetX": 0,
"offsetY": 12,
"offsetZ": 0,
"fill": "#454545",
"width": 20,
"height": 4,
"depth": 12
},
{
"type": "box",
"offsetX": -8,
"offsetY": 0,
"offsetZ": 0,
"fill": "#808080",
"width": 4,
"height": 16,
"depth": 12
},
{
"type": "box",
"offsetX": -10,
"offsetY": -6,
"offsetZ": 0,
"fill": "#909090",
"width": 2,
"height": 8,
"depth": 10
},
{
"type": "box",
"offsetX": -6,
"offsetY": -8,
"offsetZ": 0,
"fill": "#707070",
"width": 6,
"height": 3,
"depth": 8
},
{
"type": "cylinder",
"height": 14,
"rotation": [
0,
0,
90
],
"r": 2,
"offsetX": -8,
"offsetY": 6,
"offsetZ": 0,
"fill": "#606060"
},
{
"type": "box",
"offsetX": 6,
"offsetY": 0,
"offsetZ": 0,
"fill": "#505050",
"width": 8,
"height": 14,
"depth": 10
},
{
"type": "box",
"offsetX": 3,
"offsetY": -4,
"offsetZ": 0,
"fill": "#606060",
"width": 3,
"height": 8,
"depth": 8
},
{
"type": "cylinder",
"height": 20,
"r": 1.5,
"offsetX": 0,
"offsetY": 12,
"offsetZ": 0,
"fill": "#707070"
},
{
"type": "cylinder",
"height": 6,
"r": 2.5,
"offsetX": 0,
"offsetY": 0,
"offsetZ": 0,
"fill": "#555555"
},
{
"type": "box",
"offsetX": 10,
"offsetY": 4,
"offsetZ": 0,
"fill": "#303030",
"width": 10,
"height": 8,
"depth": 8
},
{
"type": "box",
"offsetX": 14,
"offsetY": 4,
"offsetZ": 0,
"fill": "#252525",
"width": 6,
"height": 6,
"depth": 6
},
{
"type": "cylinder",
"height": 3,
"r": 2,
"offsetX": 14,
"offsetY": 8,
"offsetZ": 0,
"fill": "#404040"
},
{
"type": "box",
"offsetX": 10,
"offsetY": 10,
"offsetZ": 0,
"fill": "#505050",
"width": 10,
"height": 2,
"depth": 3
},
{
"type": "box",
"offsetX": 0,
"offsetY": 8,
"offsetZ": 0,
"fill": "#454545",
"width": 12,
"height": 3,
"depth": 4
},
{
"type": "cylinder",
"height": 5,
"rotation": [
0,
0,
90
],
"r": 1.5,
"offsetX": -4,
"offsetY": 8,
"offsetZ": 0,
"fill": "#606060"
},
{
"type": "cylinder",
"height": 20,
"r": 1.3,
"offsetX": -12,
"offsetY": 0,
"offsetZ": -6,
"fill": "#353535"
},
{
"type": "cylinder",
"height": 20,
"r": 1.3,
"offsetX": -12,
"offsetY": 0,
"offsetZ": 6,
"fill": "#353535"
},
{
"type": "cylinder",
"height": 20,
"r": 1.3,
"offsetX": 12,
"offsetY": 0,
"offsetZ": -6,
"fill": "#353535"
},
{
"type": "box",
"offsetX": -8,
"offsetY": 3,
"offsetZ": 6,
"fill": "#404040",
"width": 3,
"height": 2,
"depth": 4
},
{
"type": "cylinder",
"height": 6,
"r": 1,
"offsetX": -8,
"offsetY": 3,
"offsetZ": 8,
"fill": "#707070"
}
]
}

View File

@@ -0,0 +1,289 @@
{
"id": "hotend-fan",
"name": "Heatsink Cooling Fan",
"partNumber": "BL-A1-HF001",
"material": "Plastic/Metal",
"quantity": 1,
"weight": 10,
"weightUnit": "g",
"baseY": 0,
"description": "Axial cooling fan (4010 size) for hotend heatsink thermal management. Runs continuously during printing to maintain cold-side temperature and prevent heat creep. Features ball bearing construction for long life and low noise.",
"installation": {
"tools": [
"2mm hex key",
"Phillips screwdriver"
],
"hardware": [
"M3x16 socket head cap screw x2",
"Fan mounting bracket"
],
"torque": [
"Fan mounting screws: 0.3 Nm"
],
"notes": [
"Position fan to blow air onto heatsink fins",
"Verify correct airflow direction (arrow on fan housing)",
"Check for obstructions before powering on",
"Fan should run whenever hotend is above 50°C"
]
},
"geometry": [
{
"type": "rect",
"x": 5,
"y": 5,
"width": 40,
"height": 10,
"fill": "#303030",
"stroke": "#202020",
"strokeWidth": 1
},
{
"type": "circle",
"cx": 25,
"cy": 10,
"r": 4,
"fill": "#404040"
},
{
"type": "circle",
"cx": 25,
"cy": 10,
"r": 2,
"fill": "#505050"
}
],
"geometry3d": [
{
"type": "box",
"offsetX": 0,
"offsetY": 0,
"offsetZ": 0,
"fill": "#303030",
"width": 40,
"height": 10,
"depth": 40
},
{
"type": "cylinder",
"height": 10,
"r": 18,
"offsetX": 0,
"offsetY": 0,
"offsetZ": 0,
"fill": "#252525"
},
{
"type": "cylinder",
"height": 12,
"r": 6,
"offsetX": 0,
"offsetY": 0,
"offsetZ": 0,
"fill": "#404040"
},
{
"type": "cylinder",
"height": 14,
"r": 3,
"offsetX": 0,
"offsetY": 0,
"offsetZ": 0,
"fill": "#505050"
},
{
"type": "box",
"offsetX": 0,
"offsetY": 0,
"offsetZ": 8,
"fill": "#454545",
"width": 3,
"height": 8,
"depth": 14
},
{
"type": "box",
"offsetX": 0,
"offsetY": 0,
"offsetZ": -8,
"fill": "#454545",
"width": 3,
"height": 8,
"depth": 14
},
{
"type": "box",
"offsetX": 8,
"offsetY": 0,
"offsetZ": 0,
"fill": "#454545",
"width": 14,
"height": 8,
"depth": 3
},
{
"type": "box",
"offsetX": -8,
"offsetY": 0,
"offsetZ": 0,
"fill": "#454545",
"width": 14,
"height": 8,
"depth": 3
},
{
"type": "box",
"offsetX": 6,
"offsetY": 0,
"offsetZ": 6,
"fill": "#454545",
"width": 10,
"height": 8,
"depth": 3
},
{
"type": "box",
"offsetX": -6,
"offsetY": 0,
"offsetZ": -6,
"fill": "#454545",
"width": 10,
"height": 8,
"depth": 3
},
{
"type": "box",
"offsetX": 6,
"offsetY": 0,
"offsetZ": -6,
"fill": "#454545",
"width": 10,
"height": 8,
"depth": 3
},
{
"type": "box",
"offsetX": -6,
"offsetY": 0,
"offsetZ": 6,
"fill": "#454545",
"width": 10,
"height": 8,
"depth": 3
},
{
"type": "box",
"offsetX": 16,
"offsetY": 0,
"offsetZ": 16,
"fill": "#353535",
"width": 6,
"height": 10,
"depth": 6
},
{
"type": "box",
"offsetX": -16,
"offsetY": 0,
"offsetZ": 16,
"fill": "#353535",
"width": 6,
"height": 10,
"depth": 6
},
{
"type": "box",
"offsetX": 16,
"offsetY": 0,
"offsetZ": -16,
"fill": "#353535",
"width": 6,
"height": 10,
"depth": 6
},
{
"type": "box",
"offsetX": -16,
"offsetY": 0,
"offsetZ": -16,
"fill": "#353535",
"width": 6,
"height": 10,
"depth": 6
},
{
"type": "cylinder",
"height": 12,
"r": 1.6,
"offsetX": 16,
"offsetY": 0,
"offsetZ": 16,
"fill": "#252525"
},
{
"type": "cylinder",
"height": 12,
"r": 1.6,
"offsetX": -16,
"offsetY": 0,
"offsetZ": 16,
"fill": "#252525"
},
{
"type": "cylinder",
"height": 12,
"r": 1.6,
"offsetX": 16,
"offsetY": 0,
"offsetZ": -16,
"fill": "#252525"
},
{
"type": "cylinder",
"height": 12,
"r": 1.6,
"offsetX": -16,
"offsetY": 0,
"offsetZ": -16,
"fill": "#252525"
},
{
"type": "box",
"offsetX": -16,
"offsetY": 6,
"offsetZ": 0,
"fill": "#202020",
"width": 6,
"height": 3,
"depth": 8
},
{
"type": "cylinder",
"height": 10,
"r": 1,
"offsetX": -20,
"offsetY": 6,
"offsetZ": 2,
"fill": "#e04000"
},
{
"type": "cylinder",
"height": 10,
"r": 1,
"offsetX": -20,
"offsetY": 6,
"offsetZ": -2,
"fill": "#303030"
},
{
"type": "box",
"offsetX": 14,
"offsetY": 0,
"offsetZ": 0,
"fill": "#505050",
"width": 4,
"height": 8,
"depth": 2
}
]
}

View File

@@ -0,0 +1,381 @@
{
"id": "hotend",
"name": "All-Metal Hotend Assembly",
"partNumber": "BL-A1-HE001",
"material": "Aluminum/Stainless Steel",
"quantity": 1,
"weight": 45,
"weightUnit": "g",
"baseY": 0,
"description": "All-metal hotend assembly featuring aluminum heatsink with cooling fins, stainless steel heat break for thermal isolation, and brass heat block. Designed for high-temperature printing up to 300°C with excellent heat dissipation.",
"installation": {
"tools": [
"2mm hex key",
"2.5mm hex key",
"7mm wrench",
"Thermal paste"
],
"hardware": [
"M2.5x8 socket head cap screw x2",
"M3x6 socket head cap screw x2",
"Thermal compound"
],
"torque": [
"Heat block screws: 0.5 Nm",
"Heatsink mounting: 0.8 Nm"
],
"notes": [
"Apply thermal paste to heat break threads before installation",
"Ensure heatsink fins are oriented for proper airflow",
"Tighten nozzle while hot (200°C) for proper seal",
"Do not overtighten - can damage heat break"
]
},
"geometry": [
{
"type": "rect",
"x": 5,
"y": 2,
"width": 30,
"height": 25,
"fill": "#505050",
"stroke": "#303030",
"strokeWidth": 1
},
{
"type": "rect",
"x": 8,
"y": 4,
"width": 24,
"height": 2,
"fill": "#707070"
},
{
"type": "rect",
"x": 8,
"y": 8,
"width": 24,
"height": 2,
"fill": "#707070"
},
{
"type": "rect",
"x": 8,
"y": 12,
"width": 24,
"height": 2,
"fill": "#707070"
},
{
"type": "rect",
"x": 8,
"y": 16,
"width": 24,
"height": 2,
"fill": "#707070"
},
{
"type": "rect",
"x": 8,
"y": 20,
"width": 24,
"height": 2,
"fill": "#707070"
},
{
"type": "rect",
"x": 17,
"y": 27,
"width": 6,
"height": 8,
"fill": "#808080",
"stroke": "#606060",
"strokeWidth": 1
},
{
"type": "rect",
"x": 15,
"y": 35,
"width": 10,
"height": 10,
"fill": "#c0a060",
"stroke": "#a08040",
"strokeWidth": 1
},
{
"type": "polygon",
"points": "17,45 23,45 21,52 19,52",
"fill": "#c0a060",
"stroke": "#a08040",
"strokeWidth": 1
}
],
"geometry3d": [
{
"type": "cylinder",
"height": 3,
"r": 11,
"offsetX": 0,
"offsetY": 0,
"offsetZ": 0,
"fill": "#505050"
},
{
"type": "cylinder",
"height": 1.5,
"r": 13,
"offsetX": 0,
"offsetY": 3,
"offsetZ": 0,
"fill": "#606060"
},
{
"type": "cylinder",
"height": 1.5,
"r": 10,
"offsetX": 0,
"offsetY": 4.5,
"offsetZ": 0,
"fill": "#505050"
},
{
"type": "cylinder",
"height": 1.5,
"r": 13,
"offsetX": 0,
"offsetY": 6,
"offsetZ": 0,
"fill": "#606060"
},
{
"type": "cylinder",
"height": 1.5,
"r": 10,
"offsetX": 0,
"offsetY": 7.5,
"offsetZ": 0,
"fill": "#505050"
},
{
"type": "cylinder",
"height": 1.5,
"r": 13,
"offsetX": 0,
"offsetY": 9,
"offsetZ": 0,
"fill": "#606060"
},
{
"type": "cylinder",
"height": 1.5,
"r": 10,
"offsetX": 0,
"offsetY": 10.5,
"offsetZ": 0,
"fill": "#505050"
},
{
"type": "cylinder",
"height": 1.5,
"r": 13,
"offsetX": 0,
"offsetY": 12,
"offsetZ": 0,
"fill": "#606060"
},
{
"type": "cylinder",
"height": 1.5,
"r": 10,
"offsetX": 0,
"offsetY": 13.5,
"offsetZ": 0,
"fill": "#505050"
},
{
"type": "cylinder",
"height": 1.5,
"r": 13,
"offsetX": 0,
"offsetY": 15,
"offsetZ": 0,
"fill": "#606060"
},
{
"type": "cylinder",
"height": 1.5,
"r": 10,
"offsetX": 0,
"offsetY": 16.5,
"offsetZ": 0,
"fill": "#505050"
},
{
"type": "cylinder",
"height": 1.5,
"r": 13,
"offsetX": 0,
"offsetY": 18,
"offsetZ": 0,
"fill": "#606060"
},
{
"type": "cylinder",
"height": 3,
"r": 11,
"offsetX": 0,
"offsetY": 19.5,
"offsetZ": 0,
"fill": "#505050"
},
{
"type": "cylinder",
"height": 12,
"r": 3,
"offsetX": 0,
"offsetY": 22.5,
"offsetZ": 0,
"fill": "#808080"
},
{
"type": "cylinder",
"height": 2,
"r": 4,
"offsetX": 0,
"offsetY": 22.5,
"offsetZ": 0,
"fill": "#707070"
},
{
"type": "cylinder",
"height": 2,
"r": 4,
"offsetX": 0,
"offsetY": 32.5,
"offsetZ": 0,
"fill": "#707070"
},
{
"type": "box",
"offsetX": 0,
"offsetY": 37,
"offsetZ": 0,
"fill": "#c0a060",
"width": 16,
"height": 10,
"depth": 16
},
{
"type": "cylinder",
"height": 10,
"r": 3,
"offsetX": 6,
"offsetY": 37,
"offsetZ": 0,
"fill": "#b09050"
},
{
"type": "cylinder",
"height": 10,
"r": 2.5,
"offsetX": -6,
"offsetY": 37,
"offsetZ": 0,
"fill": "#b09050"
},
{
"type": "box",
"offsetX": 8,
"offsetY": 40,
"offsetZ": 0,
"fill": "#a08040",
"width": 4,
"height": 4,
"depth": 8
},
{
"type": "cylinder",
"height": 3,
"r": 5,
"offsetX": 0,
"offsetY": 47,
"offsetZ": 0,
"fill": "#c0a060"
},
{
"type": "cylinder",
"height": 4,
"r": 4,
"offsetX": 0,
"offsetY": 50,
"offsetZ": 0,
"fill": "#c0a060"
},
{
"type": "cylinder",
"height": 3,
"r": 2.5,
"offsetX": 0,
"offsetY": 54,
"offsetZ": 0,
"fill": "#c0a060"
},
{
"type": "cylinder",
"height": 1,
"r": 0.6,
"offsetX": 0,
"offsetY": 57,
"offsetZ": 0,
"fill": "#a08040"
},
{
"type": "box",
"offsetX": -10,
"offsetY": 5,
"offsetZ": 0,
"fill": "#404040",
"width": 3,
"height": 14,
"depth": 6
},
{
"type": "box",
"offsetX": 10,
"offsetY": 5,
"offsetZ": 0,
"fill": "#404040",
"width": 3,
"height": 14,
"depth": 6
},
{
"type": "cylinder",
"height": 4,
"rotation": [
90,
0,
0
],
"r": 1.5,
"offsetX": -10,
"offsetY": 8,
"offsetZ": 0,
"fill": "#303030"
},
{
"type": "cylinder",
"height": 4,
"rotation": [
90,
0,
0
],
"r": 1.5,
"offsetX": 10,
"offsetY": 8,
"offsetZ": 0,
"fill": "#303030"
}
]
}

View File

@@ -0,0 +1,240 @@
{
"id": "nozzle",
"name": "Hardened Steel Nozzle",
"partNumber": "BL-A1-NZ001",
"material": "Hardened Steel",
"quantity": 1,
"weight": 4,
"weightUnit": "g",
"baseY": 0,
"description": "0.4mm hardened steel nozzle for abrasive filament compatibility. Features precision-machined orifice, optimized internal geometry for consistent flow, and hardened surface for extended life with carbon fiber and glass-filled materials. Temperature rated to 300°C.",
"installation": {
"tools": [
"7mm socket wrench",
"Heat-resistant gloves",
"Nozzle cleaning needle"
],
"hardware": [],
"torque": [
"Nozzle: 1.0 Nm (when hot at 200°C)"
],
"notes": [
"ALWAYS install nozzle when hot (200°C+)",
"Hand-tighten first, then final torque when heated",
"Do not overtighten - can damage threads",
"Clean threads before installation",
"Verify no filament blockage before use"
]
},
"geometry": [
{
"type": "polygon",
"points": "12,5 28,5 30,10 30,18 28,22 12,22 10,18 10,10",
"fill": "#606060",
"stroke": "#404040",
"strokeWidth": 1
},
{
"type": "polygon",
"points": "16,22 24,22 22,32 18,32",
"fill": "#505050",
"stroke": "#404040",
"strokeWidth": 1
},
{
"type": "circle",
"cx": 20,
"cy": 32,
"r": 1.5,
"fill": "#303030"
}
],
"geometry3d": [
{
"type": "cylinder",
"height": 3,
"r": 4,
"offsetX": 0,
"offsetY": 0,
"offsetZ": 0,
"fill": "#606060"
},
{
"type": "box",
"offsetX": 0,
"offsetY": 0,
"offsetZ": 0,
"fill": "#606060",
"width": 7.5,
"height": 5,
"depth": 6.5
},
{
"type": "box",
"offsetX": 0,
"offsetY": 0,
"offsetZ": 0,
"fill": "#555555",
"width": 6.5,
"height": 5,
"depth": 7.5
},
{
"type": "box",
"offsetX": 2.5,
"offsetY": 0,
"offsetZ": 2.5,
"fill": "#505050",
"width": 4,
"height": 5,
"depth": 4
},
{
"type": "box",
"offsetX": -2.5,
"offsetY": 0,
"offsetZ": 2.5,
"fill": "#505050",
"width": 4,
"height": 5,
"depth": 4
},
{
"type": "box",
"offsetX": 2.5,
"offsetY": 0,
"offsetZ": -2.5,
"fill": "#505050",
"width": 4,
"height": 5,
"depth": 4
},
{
"type": "box",
"offsetX": -2.5,
"offsetY": 0,
"offsetZ": -2.5,
"fill": "#505050",
"width": 4,
"height": 5,
"depth": 4
},
{
"type": "cylinder",
"height": 4,
"r": 3.2,
"offsetX": 0,
"offsetY": -4,
"offsetZ": 0,
"fill": "#555555"
},
{
"type": "cylinder",
"height": 3,
"r": 3,
"offsetX": 0,
"offsetY": -7,
"offsetZ": 0,
"fill": "#505050"
},
{
"type": "cylinder",
"height": 1,
"r": 3.4,
"offsetX": 0,
"offsetY": -5,
"offsetZ": 0,
"fill": "#606060"
},
{
"type": "cylinder",
"height": 1,
"r": 3.3,
"offsetX": 0,
"offsetY": -6.5,
"offsetZ": 0,
"fill": "#606060"
},
{
"type": "cylinder",
"height": 1,
"r": 3.2,
"offsetX": 0,
"offsetY": -8,
"offsetZ": 0,
"fill": "#606060"
},
{
"type": "cylinder",
"height": 2,
"r": 2.8,
"offsetX": 0,
"offsetY": -10,
"offsetZ": 0,
"fill": "#505050"
},
{
"type": "cylinder",
"height": 4,
"r": 2.2,
"offsetX": 0,
"offsetY": -13,
"offsetZ": 0,
"fill": "#454545"
},
{
"type": "cylinder",
"height": 3,
"r": 1.5,
"offsetX": 0,
"offsetY": -16,
"offsetZ": 0,
"fill": "#404040"
},
{
"type": "cylinder",
"height": 2,
"r": 1,
"offsetX": 0,
"offsetY": -18.5,
"offsetZ": 0,
"fill": "#353535"
},
{
"type": "cylinder",
"height": 1,
"r": 0.6,
"offsetX": 0,
"offsetY": -20,
"offsetZ": 0,
"fill": "#303030"
},
{
"type": "cylinder",
"height": 0.5,
"r": 0.2,
"offsetX": 0,
"offsetY": -20.5,
"offsetZ": 0,
"fill": "#252525"
},
{
"type": "cylinder",
"height": 22,
"r": 1.5,
"offsetX": 0,
"offsetY": 2,
"offsetZ": 0,
"fill": "#707070"
},
{
"type": "cylinder",
"height": 8,
"r": 1,
"offsetX": 0,
"offsetY": -14,
"offsetZ": 0,
"fill": "#606060"
}
]
}

View File

@@ -0,0 +1,384 @@
{
"id": "toolhead-board",
"name": "Toolhead Control PCB",
"partNumber": "BL-A1-TB001",
"material": "FR4/Electronic Components",
"quantity": 1,
"weight": 15,
"weightUnit": "g",
"baseY": 0,
"description": "Integrated toolhead control board managing all printhead functions including stepper motor control, heater PWM, thermistor reading, fan control, and filament sensor input. Features CAN bus communication for high-speed data transfer with main controller.",
"installation": {
"tools": [
"2mm hex key",
"Phillips screwdriver",
"ESD wrist strap"
],
"hardware": [
"M2x4 socket head cap screw x4",
"Ribbon cable",
"Connector clips"
],
"torque": [
"PCB mounting screws: 0.15 Nm"
],
"notes": [
"Handle with ESD precautions - sensitive electronics",
"Disconnect power before installation",
"Verify all connectors are fully seated",
"Check for shorts before powering on",
"Do not overtighten screws - can crack PCB"
]
},
"geometry": [
{
"type": "rect",
"x": 5,
"y": 5,
"width": 50,
"height": 30,
"fill": "#1a4d1a",
"stroke": "#0d260d",
"strokeWidth": 1
},
{
"type": "rect",
"x": 10,
"y": 10,
"width": 8,
"height": 8,
"fill": "#303030"
},
{
"type": "rect",
"x": 22,
"y": 10,
"width": 12,
"height": 6,
"fill": "#f0f0f0"
},
{
"type": "rect",
"x": 38,
"y": 8,
"width": 14,
"height": 10,
"fill": "#202020"
},
{
"type": "circle",
"cx": 8,
"cy": 8,
"r": 2,
"fill": "#c0a060"
},
{
"type": "circle",
"cx": 52,
"cy": 8,
"r": 2,
"fill": "#c0a060"
},
{
"type": "circle",
"cx": 8,
"cy": 32,
"r": 2,
"fill": "#c0a060"
},
{
"type": "circle",
"cx": 52,
"cy": 32,
"r": 2,
"fill": "#c0a060"
}
],
"geometry3d": [
{
"type": "box",
"offsetX": 0,
"offsetY": 0,
"offsetZ": 0,
"fill": "#1a4d1a",
"width": 55,
"height": 1.6,
"depth": 35
},
{
"type": "box",
"offsetX": 0,
"offsetY": 0.8,
"offsetZ": 0,
"fill": "#2a5d2a",
"width": 54,
"height": 0.1,
"depth": 34
},
{
"type": "box",
"offsetX": -18,
"offsetY": 2,
"offsetZ": -8,
"fill": "#303030",
"width": 8,
"height": 3,
"depth": 8
},
{
"type": "box",
"offsetX": -18,
"offsetY": 3.5,
"offsetZ": -8,
"fill": "#404040",
"width": 6,
"height": 0.5,
"depth": 6
},
{
"type": "box",
"offsetX": -5,
"offsetY": 2,
"offsetZ": -10,
"fill": "#252525",
"width": 6,
"height": 2,
"depth": 4
},
{
"type": "box",
"offsetX": 3,
"offsetY": 2,
"offsetZ": -10,
"fill": "#252525",
"width": 6,
"height": 2,
"depth": 4
},
{
"type": "box",
"offsetX": 15,
"offsetY": 2,
"offsetZ": -5,
"fill": "#202020",
"width": 16,
"height": 6,
"depth": 10
},
{
"type": "box",
"offsetX": 15,
"offsetY": 5,
"offsetZ": -5,
"fill": "#f0f0f0",
"width": 14,
"height": 4,
"depth": 8
},
{
"type": "box",
"offsetX": 11,
"offsetY": 6,
"offsetZ": -5,
"fill": "#c0a060",
"width": 1,
"height": 3,
"depth": 1
},
{
"type": "box",
"offsetX": 13,
"offsetY": 6,
"offsetZ": -5,
"fill": "#c0a060",
"width": 1,
"height": 3,
"depth": 1
},
{
"type": "box",
"offsetX": 15,
"offsetY": 6,
"offsetZ": -5,
"fill": "#c0a060",
"width": 1,
"height": 3,
"depth": 1
},
{
"type": "box",
"offsetX": 17,
"offsetY": 6,
"offsetZ": -5,
"fill": "#c0a060",
"width": 1,
"height": 3,
"depth": 1
},
{
"type": "box",
"offsetX": 19,
"offsetY": 6,
"offsetZ": -5,
"fill": "#c0a060",
"width": 1,
"height": 3,
"depth": 1
},
{
"type": "box",
"offsetX": -20,
"offsetY": 2,
"offsetZ": 8,
"fill": "#202020",
"width": 8,
"height": 4,
"depth": 6
},
{
"type": "box",
"offsetX": -8,
"offsetY": 2,
"offsetZ": 8,
"fill": "#202020",
"width": 6,
"height": 3,
"depth": 5
},
{
"type": "box",
"offsetX": 4,
"offsetY": 2,
"offsetZ": 8,
"fill": "#202020",
"width": 6,
"height": 3,
"depth": 5
},
{
"type": "box",
"offsetX": 16,
"offsetY": 2,
"offsetZ": 10,
"fill": "#202020",
"width": 6,
"height": 3,
"depth": 5
},
{
"type": "box",
"offsetX": -15,
"offsetY": 2,
"offsetZ": 0,
"fill": "#505050",
"width": 4,
"height": 2,
"depth": 4
},
{
"type": "cylinder",
"height": 3,
"r": 2,
"offsetX": -15,
"offsetY": 3,
"offsetZ": 0,
"fill": "#404040"
},
{
"type": "box",
"offsetX": -8,
"offsetY": 2,
"offsetZ": 0,
"fill": "#606060",
"width": 3,
"height": 1.5,
"depth": 3
},
{
"type": "box",
"offsetX": 0,
"offsetY": 2,
"offsetZ": 0,
"fill": "#303030",
"width": 2,
"height": 1,
"depth": 4
},
{
"type": "cylinder",
"height": 2,
"r": 1.6,
"offsetX": -24,
"offsetY": 0,
"offsetZ": -14,
"fill": "#c0a060"
},
{
"type": "cylinder",
"height": 2,
"r": 1.6,
"offsetX": 24,
"offsetY": 0,
"offsetZ": -14,
"fill": "#c0a060"
},
{
"type": "cylinder",
"height": 2,
"r": 1.6,
"offsetX": -24,
"offsetY": 0,
"offsetZ": 14,
"fill": "#c0a060"
},
{
"type": "cylinder",
"height": 2,
"r": 1.6,
"offsetX": 24,
"offsetY": 0,
"offsetZ": 14,
"fill": "#c0a060"
},
{
"type": "box",
"offsetX": 5,
"offsetY": 2,
"offsetZ": -12,
"fill": "#ff0000",
"width": 3,
"height": 1.5,
"depth": 2
},
{
"type": "box",
"offsetX": 10,
"offsetY": 2,
"offsetZ": -12,
"fill": "#00ff00",
"width": 3,
"height": 1.5,
"depth": 2
},
{
"type": "box",
"offsetX": -5,
"offsetY": 1.6,
"offsetZ": 4,
"fill": "#c0a060",
"width": 30,
"height": 0.1,
"depth": 0.5
},
{
"type": "box",
"offsetX": -10,
"offsetY": 1.6,
"offsetZ": -4,
"fill": "#c0a060",
"width": 20,
"height": 0.1,
"depth": 0.5
}
]
}