mirror of
https://github.com/johndoe6345789/metabuilder.git
synced 2026-04-24 13:54:57 +00:00
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:
@@ -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"
|
||||
]
|
||||
}
|
||||
@@ -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" }
|
||||
]
|
||||
}
|
||||
@@ -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" }
|
||||
]
|
||||
}
|
||||
@@ -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" }
|
||||
]
|
||||
}
|
||||
@@ -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" }
|
||||
]
|
||||
}
|
||||
@@ -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" }
|
||||
]
|
||||
}
|
||||
@@ -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" }
|
||||
]
|
||||
}
|
||||
@@ -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" }
|
||||
]
|
||||
}
|
||||
@@ -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" }
|
||||
]
|
||||
}
|
||||
@@ -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"
|
||||
]
|
||||
}
|
||||
@@ -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" }
|
||||
]
|
||||
}
|
||||
@@ -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" }
|
||||
]
|
||||
}
|
||||
@@ -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 }
|
||||
]
|
||||
}
|
||||
@@ -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" }
|
||||
]
|
||||
}
|
||||
@@ -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 }
|
||||
]
|
||||
}
|
||||
@@ -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 }
|
||||
]
|
||||
}
|
||||
@@ -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 }
|
||||
]
|
||||
}
|
||||
@@ -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 }
|
||||
]
|
||||
}
|
||||
@@ -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"
|
||||
]
|
||||
}
|
||||
@@ -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 }
|
||||
]
|
||||
}
|
||||
@@ -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" }
|
||||
]
|
||||
}
|
||||
@@ -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" }
|
||||
]
|
||||
}
|
||||
@@ -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 }
|
||||
]
|
||||
}
|
||||
@@ -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 }
|
||||
]
|
||||
}
|
||||
@@ -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" }
|
||||
]
|
||||
}
|
||||
@@ -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 }
|
||||
]
|
||||
}
|
||||
@@ -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" }
|
||||
]
|
||||
}
|
||||
@@ -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"
|
||||
]
|
||||
}
|
||||
@@ -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" }
|
||||
]
|
||||
}
|
||||
@@ -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" }
|
||||
]
|
||||
}
|
||||
@@ -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" }
|
||||
]
|
||||
}
|
||||
@@ -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" }
|
||||
]
|
||||
}
|
||||
@@ -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" }
|
||||
]
|
||||
}
|
||||
@@ -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" }
|
||||
]
|
||||
}
|
||||
@@ -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 }
|
||||
]
|
||||
}
|
||||
@@ -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" }
|
||||
]
|
||||
}
|
||||
@@ -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" }
|
||||
]
|
||||
}
|
||||
@@ -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"
|
||||
]
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user