refactor: Restructure mounting and PCB data into modular files, adding new armpitmfg options and updating data references.

This commit is contained in:
MunchDev-oss
2026-01-07 02:55:45 -05:00
parent 5366865b4b
commit 004fcc59df
13 changed files with 407 additions and 428 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 101 KiB

View File

@@ -167,11 +167,10 @@ export default function OptionsStep({ config, updateConfig, buildType }) {
<button
key={option.id}
onClick={() => handleOptionClick(option, mainSectionId, subSectionId)}
className={`p-4 border-2 rounded-lg text-left transition-all w-full ${
isSelected
className={`p-4 border-2 rounded-lg text-left transition-all w-full ${isSelected
? 'border-blue-600 dark:border-blue-500 bg-blue-50 dark:bg-blue-900/30'
: 'border-gray-200 dark:border-gray-700 hover:border-gray-300 dark:hover:border-gray-600 hover:bg-gray-50 dark:hover:bg-gray-700/50'
}`}
}`}
>
{option.image && (
<div className="mb-3 flex justify-center">
@@ -274,9 +273,8 @@ export default function OptionsStep({ config, updateConfig, buildType }) {
)}
</div>
<svg
className={`w-4 h-4 text-gray-500 dark:text-gray-400 transition-transform ${
isExpanded ? 'transform rotate-180' : ''
}`}
className={`w-4 h-4 text-gray-500 dark:text-gray-400 transition-transform ${isExpanded ? 'transform rotate-180' : ''
}`}
fill="none"
stroke="currentColor"
viewBox="0 0 24 24"
@@ -308,21 +306,18 @@ export default function OptionsStep({ config, updateConfig, buildType }) {
const isComplete = isMainSectionComplete(mainSectionId, mainSection);
return (
<div key={mainSectionId} className={`border-2 rounded-lg overflow-hidden mb-4 ${
isComplete ? 'border-green-500 dark:border-green-600' : 'border-gray-300 dark:border-gray-700'
}`}>
<div key={mainSectionId} className={`border-2 rounded-lg overflow-hidden mb-4 ${isComplete ? 'border-green-500 dark:border-green-600' : 'border-gray-300 dark:border-gray-700'
}`}>
<button
onClick={() => toggleMainSection(mainSectionId)}
className={`w-full px-6 py-4 transition-colors flex items-center justify-between ${
isComplete
className={`w-full px-6 py-4 transition-colors flex items-center justify-between ${isComplete
? 'bg-green-50 dark:bg-green-900/30 hover:bg-green-100 dark:hover:bg-green-900/40'
: 'bg-gray-100 dark:bg-gray-800 hover:bg-gray-200 dark:hover:bg-gray-700'
}`}
}`}
>
<div className="flex items-center gap-3">
<h3 className={`text-xl font-bold ${
isComplete ? 'text-green-900 dark:text-green-300' : 'text-gray-900 dark:text-white'
}`}>
<h3 className={`text-xl font-bold ${isComplete ? 'text-green-900 dark:text-green-300' : 'text-gray-900 dark:text-white'
}`}>
{mainSection.title}
</h3>
{isComplete && (
@@ -347,9 +342,8 @@ export default function OptionsStep({ config, updateConfig, buildType }) {
)}
</div>
<svg
className={`w-6 h-6 transition-transform ${
isExpanded ? 'transform rotate-180' : ''
} ${isComplete ? 'text-green-600 dark:text-green-400' : 'text-gray-600 dark:text-gray-400'}`}
className={`w-6 h-6 transition-transform ${isExpanded ? 'transform rotate-180' : ''
} ${isComplete ? 'text-green-600 dark:text-green-400' : 'text-gray-600 dark:text-gray-400'}`}
fill="none"
stroke="currentColor"
viewBox="0 0 24 24"
@@ -389,7 +383,7 @@ export default function OptionsStep({ config, updateConfig, buildType }) {
Object.entries(mainSection.sections || {}).forEach(([subSectionId, subSection]) => {
// Check if this sub-section has mod options
const hasModOptions = subSection.options?.some(opt => opt.type === 'mod') ||
subSection.componentType === 'mod';
subSection.componentType === 'mod';
if (hasModOptions) {
// Filter options to only show mods

View File

@@ -82,7 +82,7 @@
"pinned_sha": "52537c0896eaef83fd9771dcc633903c7aa6a8ab",
"pinned_raw_url": "https://raw.githubusercontent.com/KinkyMakers/OSSM-hardware/52537c0896eaef83fd9771dcc633903c7aa6a8ab/Printed Parts/Actuator/OSSM - Belt Tensioner.stl",
"checksum_sha256": "31c74250c237763b0013ff42cc714ce14c293382a726de363f1686a7559f525f",
"last_checked": "2026-01-07T01:21:05.499523+00:00",
"last_checked": "2026-01-07T07:29:56.698523+00:00",
"status": "up-to-date"
}
},
@@ -161,7 +161,7 @@
"required": true,
"quantity": 2,
"relatedParts": [
"ossm-24mm-nut-6-sided"
"ossm-24mm-nut-5-sided"
]
},
{
@@ -177,7 +177,7 @@
"required": true,
"quantity": 7,
"relatedParts": [
"ossm-24mm-nut-hex"
"ossm-24mm-nut-5-sided"
]
},
{
@@ -194,16 +194,15 @@
"quantity": 7,
"relatedParts": [
"ossm-actuator-body-bottom",
"ossm-actuator-body-middle",
"ossm-actuator-body-middle-pivot"
"ossm-actuator-body-middle"
]
},
{
"id": "hardware-fasteners-m5x35-shcs",
"required": true,
"quantity": 7,
"quantity": 4,
"relatedParts": [
"ossm-24mm-nut-shcs"
"ossm-actuator-body-middle-pivot"
]
},
{
@@ -211,7 +210,7 @@
"required": true,
"quantity": 7,
"relatedParts": [
"ossm-24mm-nut-hex"
"ossm-24mm-nut-5-sided"
]
},
{
@@ -236,8 +235,8 @@
"required": true,
"quantity": 1,
"relatedParts": [
"ossm-gt2-belt-clamp",
"ossm-24mm-nut-shcs",
"ossm-24mm-clamping-thread-belt-clamp",
"ossm-24mm-nut-5-sided",
"ossm-actuator-body-bottom"
]
},

View File

@@ -1,240 +0,0 @@
{
"pitClamp": {
"category": "PitClamp",
"type": "base",
"printedParts": [
{
"id": "ossm-pitclamp-mini-lower",
"name": "PitClamp Mini Lower",
"description": "PitClamp mounting system",
"filamentEstimate": 49.45,
"timeEstimate": "1h55m",
"colour": "primary",
"required": true,
"filePath": "OSSM - Base - PitClamp Mini - Lower V1.1.stl",
"url": "https://github.com/KinkyMakers/OSSM-hardware/blob/main/Printed%20Parts/Mounting/OSSM%20-%20Base%20-%20PitClamp%20Mini%20-%20Lower%20V1.1.stl?raw=true",
"vendor": {
"manifest_id": "ossm-pitclamp-mini-lower",
"local_path": "vendor/KinkyMakers-OSSM-hardware/Printed Parts/Mounting/OSSM - Base - PitClamp Mini - Lower V1.1.stl",
"pinned_sha": null,
"pinned_raw_url": null,
"checksum_sha256": null,
"last_checked": null,
"status": "error"
}
},
{
"id": "ossm-pitclamp-mini-upper",
"name": "PitClamp Mini Upper",
"description": "PitClamp mounting system",
"filamentEstimate": 27.36,
"timeEstimate": "1h11m",
"colour": "primary",
"required": true,
"filePath": "OSSM - Base - PitClamp Mini - Upper V1.1.stl",
"url": "https://github.com/KinkyMakers/OSSM-hardware/blob/main/Printed%20Parts/Mounting/OSSM%20-%20Base%20-%20PitClamp%20Mini%20-%20Upper%20V1.1.stl?raw=true",
"vendor": {
"manifest_id": "ossm-pitclamp-mini-upper",
"local_path": "vendor/KinkyMakers-OSSM-hardware/Printed Parts/Mounting/OSSM - Base - PitClamp Mini - Upper V1.1.stl",
"pinned_sha": null,
"pinned_raw_url": null,
"checksum_sha256": null,
"last_checked": null,
"status": "error"
}
},
{
"id": "ossm-pitclamp-mini-57AIM30",
"name": "PitClamp Mini 57AIM30",
"description": "PitClamp mounting system",
"filamentEstimate": 46.03,
"timeEstimate": "2h10m",
"colour": "primary",
"required": true,
"Condition": {
"motor.id": "57AIM30"
},
"filePath": "OSSM - Base - PitClamp Mini - 57AIM30 V1.1.stl",
"url": "https://github.com/KinkyMakers/OSSM-hardware/blob/main/Printed%20Parts/Mounting/OSSM%20-%20Mounting%20Ring%20-%20PitClamp%20Mini%20-%2057AIM%20V1.1.stl?raw=true",
"vendor": {
"manifest_id": "ossm-pitclamp-mini-57AIM30",
"local_path": "vendor/KinkyMakers-OSSM-hardware/Printed Parts/Mounting/OSSM - Mounting Ring - PitClamp Mini - 57AIM V1.1.stl",
"pinned_sha": null,
"pinned_raw_url": null,
"checksum_sha256": null,
"last_checked": null,
"status": "error"
}
},
{
"id": "ossm-pitclamp-mini-42AIM30",
"name": "PitClamp Mini 42AIM30",
"description": "PitClamp mounting system",
"filamentEstimate": 46.03,
"timeEstimate": "2h10m",
"colour": "primary",
"required": true,
"Condition": {
"motor.id": "42AIM30"
},
"filePath": "OSSM - Base - PitClamp Mini - 42AIM30 V1.1.stl",
"url": "https://github.com/KinkyMakers/OSSM-hardware/blob/main/Printed%20Parts/Mounting/Non-standard/OSSM%20-%20Mounting%20Ring%20-%20PitClamp%20Mini%20-%2042AIM%20V1.1.stl?raw=true",
"vendor": {
"manifest_id": "ossm-pitclamp-mini-42AIM30",
"local_path": "vendor/KinkyMakers-OSSM-hardware/Printed Parts/Mounting/Non-standard/OSSM - Mounting Ring - PitClamp Mini - 42AIM V1.1.stl",
"pinned_sha": null,
"pinned_raw_url": null,
"checksum_sha256": null,
"last_checked": null,
"status": "error"
}
},
{
"id": "ossm-pitclamp-mini-iHSV57",
"name": "PitClamp Mini iHSV57",
"description": "PitClamp mounting system",
"filamentEstimate": 46.03,
"timeEstimate": "2h10m",
"colour": "primary",
"required": true,
"Condition": {
"motor.id": "iHSV57"
},
"filePath": "OSSM - Base - PitClamp Mini - iHSV57 V1.1.stl",
"url": "https://github.com/KinkyMakers/OSSM-hardware/blob/main/Printed%20Parts/Mounting/Non-standard/OSSM%20-%20Mounting%20Ring%20-%20PitClamp%20Mini%20-%20iHSV57.stl?raw=true",
"vendor": {
"manifest_id": "ossm-pitclamp-mini-iHSV57",
"local_path": "vendor/KinkyMakers-OSSM-hardware/Printed Parts/Mounting/Non-standard/OSSM - Mounting Ring - PitClamp Mini - iHSV57.stl",
"pinned_sha": null,
"pinned_raw_url": null,
"checksum_sha256": null,
"last_checked": null,
"status": "error"
}
},
{
"id": "ossm-pitclamp-mini-handle",
"name": "PitClamp Mini Handle",
"description": "PitClamp mounting system",
"filamentEstimate": 9.23,
"timeEstimate": "2h10m",
"colour": "secondary",
"required": true,
"filePath": "OSSM - Handle - PitClamp Mini V1.1.stl",
"url": "https://github.com/KinkyMakers/OSSM-hardware/blob/main/Printed%20Parts/Mounting/OSSM%20-%20Base%20-%20PitClamp%20Mini%20-%20Handle.stl?raw=true",
"vendor": {
"manifest_id": "ossm-pitclamp-mini-handle",
"local_path": "vendor/KinkyMakers-OSSM-hardware/Printed Parts/Mounting/OSSM - Base - PitClamp Mini - Handle.stl",
"pinned_sha": null,
"pinned_raw_url": null,
"checksum_sha256": null,
"last_checked": null,
"status": "error"
}
},
{
"id": "ossm-pitclamp-mini-dogbone-nuts",
"name": "PitClamp Mini Dogbone Nuts",
"description": "PitClamp mounting system",
"filamentEstimate": 4.44,
"timeEstimate": "20m49s",
"colour": "secondary",
"required": true,
"quantity": 2,
"filePath": "OSSM - Dogbone Nuts - PitClamp Mini V1.1.stl",
"url": "https://github.com/KinkyMakers/OSSM-hardware/blob/main/Printed%20Parts/Mounting/OSSM%20-%20Base%20-%20PitClamp%20Mini%20-%20Dogbone%20Nuts.stl?raw=true",
"vendor": {
"manifest_id": "ossm-pitclamp-mini-dogbone-nuts",
"local_path": "vendor/KinkyMakers-OSSM-hardware/Printed Parts/Mounting/OSSM - Base - PitClamp Mini - Dogbone Nuts.stl",
"pinned_sha": null,
"pinned_raw_url": null,
"checksum_sha256": null,
"last_checked": null,
"status": "error"
}
},
{
"id": "ossm-pitclamp-mini-dogbone-bolts ",
"name": "PitClamp Mini Dogbone Bolts",
"description": "PitClamp mounting system",
"filamentEstimate": 4.44,
"timeEstimate": "20m49s",
"colour": "secondary",
"required": true,
"quantity": 2,
"filePath": "OSSM - Dogbone Bolts - PitClamp Mini V1.1.stl",
"url": "https://github.com/KinkyMakers/OSSM-hardware/blob/main/Printed%20Parts/Mounting/OSSM%20-%20Base%20-%20PitClamp%20Mini%20-%20Dogbone%20Bolts.stl?raw=true",
"vendor": {
"manifest_id": "ossm-pitclamp-mini-dogbone-bolts ",
"local_path": "vendor/KinkyMakers-OSSM-hardware/Printed Parts/Mounting/OSSM - Base - PitClamp Mini - Dogbone Bolts.stl",
"pinned_sha": null,
"pinned_raw_url": null,
"checksum_sha256": null,
"last_checked": null,
"status": "error"
}
}
],
"hardwareParts": [
{
"id": "pitclamp-hardware",
"required": true
}
]
},
"middlePivot": {
"category": "Middle Pivot",
"type": "base",
"printedParts": [
{
"id": "ossm-actuator-body-middle-pivot",
"name": "Actuator Body Middle Pivot",
"description": "Middle Pivot mounting system",
"filamentEstimate": 147.19,
"timeEstimate": "5h8m",
"colour": "primary",
"required": true,
"replaces": [
"ossm-actuator-body-middle"
],
"filePath": "OSSM - Actuator Body Middle Pivot.stl",
"url": "https://github.com/KinkyMakers/OSSM-hardware/blob/main/Printed%20Parts/Actuator/Non-standard/OSSM%20-%20Actuator%20-%20Body%20-%20Middle%20Pivot.stl?raw=true",
"vendor": {
"manifest_id": "ossm-actuator-body-middle-pivot",
"local_path": "vendor/KinkyMakers-OSSM-hardware/Printed Parts/Actuator/Non-standard/OSSM - Actuator - Body - Middle Pivot.stl",
"pinned_sha": "ad39a03b628b8e38549b99036c8dfd4131948545",
"pinned_raw_url": "https://raw.githubusercontent.com/KinkyMakers/OSSM-hardware/ad39a03b628b8e38549b99036c8dfd4131948545/Printed Parts/Actuator/Non-standard/OSSM - Actuator - Body - Middle Pivot.stl",
"checksum_sha256": "f6403a3c53e0d8c8e63d48bf853ab17c9f283421b1665b5503dbb04d59d0f52d",
"last_checked": "2026-01-07T01:21:04.528132+00:00",
"status": "up-to-date"
}
},
{
"id": "ossm-handle-spacer",
"name": "Handle Spacer",
"description": "Handle spacer part",
"filamentEstimate": 0,
"colour": "secondary",
"required": true,
"quantity": 2,
"filePath": "OSSM - Handle Spacer.stl",
"url": "https://github.com/KinkyMakers/OSSM-hardware/blob/main/Printed%20Parts/Stand/OSSM%20-%20Stand%20-%203030%20Extrusion%20Base%20-%20Handle%20Spacer.stl?raw=true",
"vendor": {
"manifest_id": "ossm-handle-spacer",
"local_path": "vendor/KinkyMakers-OSSM-hardware/Printed Parts/Stand/OSSM - Stand - 3030 Extrusion Base - Handle Spacer.stl",
"pinned_sha": null,
"pinned_raw_url": null,
"checksum_sha256": null,
"last_checked": null,
"status": "error"
}
}
],
"hardwareParts": [
{
"id": "middle-pivot-hardware",
"required": true
}
]
}
}

View File

@@ -0,0 +1,121 @@
{
"pitclamp": {
"name": "PitClamp Mini",
"description": "armpitMFG PitClamp Mini - Modular Quick-Release Mount",
"image": "https://raw.githubusercontent.com/armpitMFG/PitClamp-Mini/main/Images/Renders/Primary/Parts%20Only.png",
"printedParts": [
{
"id": "pitclamp-mini-base-ossm-v2",
"name": "PitClamp Mini Base - OSSM v2",
"description": "Modular base for OSSM v2",
"filamentEstimate": 65,
"timeEstimate": "2h30m",
"colour": "primary",
"required": true,
"filePath": "PitClamp Mini - Base - Modular - OSSM v2.stl",
"url": "https://github.com/armpitMFG/PitClamp-Mini/blob/main/Files/Bases/PitClamp%20Mini%20-%20Base%20-%20Modular%20-%20OSSM%20v2.stl?raw=true",
"vendor": {
"manifest_id": "pitclamp-mini-base-ossm-v2",
"local_path": "vendor/armpitMFG-PitClamp-Mini/Files/Bases/PitClamp Mini - Base - Modular - OSSM v2.stl",
"pinned_sha": null,
"pinned_raw_url": null,
"checksum_sha256": null,
"last_checked": null,
"status": "pending"
}
},
{
"id": "pitclamp-mini-rail-clamp",
"name": "PitClamp Mini Rail Clamp",
"description": "Standard rail clamp mod",
"filamentEstimate": 25,
"timeEstimate": "1h",
"colour": "primary",
"required": true,
"filePath": "PitClamp Mini - Rail - Standard Mod - Clamp V1.1.stl",
"url": "https://github.com/armpitMFG/PitClamp-Mini/blob/main/Files/Rail%20Components/PitClamp%20Mini%20-%20Rail%20-%20Standard%20Mod%20-%20Clamp%20V1.1.stl?raw=true",
"vendor": {
"manifest_id": "pitclamp-mini-rail-clamp",
"local_path": "vendor/armpitMFG-PitClamp-Mini/Files/Rail Components/PitClamp Mini - Rail - Standard Mod - Clamp V1.1.stl",
"pinned_sha": null,
"pinned_raw_url": null,
"checksum_sha256": null,
"last_checked": null,
"status": "pending"
}
},
{
"id": "pitclamp-mini-rail-pivot",
"name": "PitClamp Mini Rail Pivot",
"description": "Standard rail pivot mod",
"filamentEstimate": 25,
"timeEstimate": "1h",
"colour": "primary",
"required": true,
"filePath": "PitClamp Mini - Rail - Standard Mod - Pivot V1.1.stl",
"url": "https://github.com/armpitMFG/PitClamp-Mini/blob/main/Files/Rail%20Components/PitClamp%20Mini%20-%20Rail%20-%20Standard%20Mod%20-%20Pivot%20V1.1.stl?raw=true",
"vendor": {
"manifest_id": "pitclamp-mini-rail-pivot",
"local_path": "vendor/armpitMFG-PitClamp-Mini/Files/Rail Components/PitClamp Mini - Rail - Standard Mod - Pivot V1.1.stl",
"pinned_sha": null,
"pinned_raw_url": null,
"checksum_sha256": null,
"last_checked": null,
"status": "pending"
}
},
{
"id": "pitclamp-mini-ring-57aim",
"name": "PitClamp Mini Ring - 57AIM",
"description": "Motor ring for 57AIM",
"filamentEstimate": 45,
"timeEstimate": "1h45m",
"colour": "primary",
"required": true,
"Condition": {
"motor.id": "57AIM30"
},
"filePath": "PitClamp Mini - Ring v1.1 - 57AIM - 5mm Offset +Passthru.stl",
"url": "https://github.com/armpitMFG/PitClamp-Mini/blob/main/Files/Rings/PitClamp%20Mini%20-%20Ring%20v1.1%20-%2057AIM%20-%205mm%20Offset%20+Passthru.stl?raw=true",
"vendor": {
"manifest_id": "pitclamp-mini-ring-57aim",
"local_path": "vendor/armpitMFG-PitClamp-Mini/Files/Rings/PitClamp Mini - Ring v1.1 - 57AIM - 5mm Offset +Passthru.stl",
"pinned_sha": null,
"pinned_raw_url": null,
"checksum_sha256": null,
"last_checked": null,
"status": "pending"
}
},
{
"id": "pitclamp-mini-ring-ihsv57",
"name": "PitClamp Mini Ring - iHSV57",
"description": "Motor ring for iHSV57",
"filamentEstimate": 45,
"timeEstimate": "1h45m",
"colour": "primary",
"required": true,
"Condition": {
"motor.id": "iHSV57"
},
"filePath": "PitClamp Mini - Ring - iHSV57 - Default - 5mm Offset.stl",
"url": "https://github.com/armpitMFG/PitClamp-Mini/blob/main/Files/Rings/PitClamp%20Mini%20-%20Ring%20-%20iHSV57%20-%20Default%20-%205mm%20Offset.stl?raw=true",
"vendor": {
"manifest_id": "pitclamp-mini-ring-ihsv57",
"local_path": "vendor/armpitMFG-PitClamp-Mini/Files/Rings/PitClamp Mini - Ring - iHSV57 - Default - 5mm Offset.stl",
"pinned_sha": null,
"pinned_raw_url": null,
"checksum_sha256": null,
"last_checked": null,
"status": "pending"
}
}
],
"hardwareParts": [
{
"id": "pitclamp-hardware",
"required": true
}
]
}
}

View File

@@ -0,0 +1,13 @@
import ossm from './ossm.json';
import armpitmfg from './armpitmfg.json';
export default {
"mounting": {
"category": "Mounting",
"type": "base",
"systems": {
...ossm,
...armpitmfg
}
}
};

View File

@@ -0,0 +1,59 @@
{
"middle-pivot": {
"name": "Middle Pivot",
"description": "Standard OSSM Middle Pivot mounting system",
"image": "/images/options/middle-pivot.png",
"printedParts": [
{
"id": "ossm-actuator-body-middle-pivot",
"name": "Actuator Body Middle Pivot",
"description": "Middle Pivot mounting system",
"filamentEstimate": 147.19,
"timeEstimate": "5h8m",
"colour": "primary",
"required": true,
"replaces": [
"ossm-actuator-body-middle"
],
"filePath": "OSSM - Actuator Body Middle Pivot.stl",
"url": "https://github.com/KinkyMakers/OSSM-hardware/blob/main/Printed%20Parts/Actuator/Non-standard/OSSM%20-%20Actuator%20-%20Body%20-%20Middle%20Pivot.stl?raw=true",
"vendor": {
"manifest_id": "ossm-actuator-body-middle-pivot",
"local_path": "vendor/KinkyMakers-OSSM-hardware/Printed Parts/Actuator/Non-standard/OSSM - Actuator - Body - Middle Pivot.stl",
"pinned_sha": "ad39a03b628b8e38549b99036c8dfd4131948545",
"pinned_raw_url": "https://raw.githubusercontent.com/KinkyMakers/OSSM-hardware/ad39a03b628b8e38549b99036c8dfd4131948545/Printed Parts/Actuator/Non-standard/OSSM - Actuator - Body - Middle Pivot.stl",
"checksum_sha256": "f6403a3c53e0d8c8e63d48bf853ab17c9f283421b1665b5503dbb04d59d0f52d",
"last_checked": "2026-01-07T01:21:04.528132+00:00",
"status": "up-to-date"
}
},
{
"id": "ossm-handle-spacer",
"name": "Handle Spacer",
"description": "Handle spacer part",
"filamentEstimate": 10,
"colour": "secondary",
"required": true,
"quantity": 2,
"filePath": "OSSM - Handle Spacer.stl",
"url": "https://github.com/KinkyMakers/OSSM-hardware/blob/main/Printed%20Parts/Stand/OSSM%20-%20Stand%20-%203030%20Extrusion%20Base%20-%20Handle%20Spacer.stl?raw=true",
"vendor": {
"manifest_id": "ossm-handle-spacer",
"local_path": "vendor/KinkyMakers-OSSM-hardware/Printed Parts/Stand/OSSM - Stand - 3030 Extrusion Base - Handle Spacer.stl",
"pinned_sha": null,
"pinned_raw_url": null,
"checksum_sha256": null,
"last_checked": null,
"status": "pending"
}
}
],
"hardwareParts": [
{
"id": "hardware-fasteners-m5x35-shcs",
"required": true,
"quantity": 4
}
]
}
}

View File

@@ -1,102 +0,0 @@
{
"3030-mount": {
"category": "PCB Mount",
"type": "base",
"printedParts": [
{
"id": "ossm-pcb-3030-mount",
"name": "PCB 3030 Mount",
"description": "PCB mount for 3030 extrusion",
"filamentEstimate": 15,
"timeEstimate": "45m",
"colour": "primary",
"required": true,
"filePath": "OSSM - PCB - 3030 Mount.stl",
"url": "https://github.com/KinkyMakers/OSSM-hardware/blob/main/Printed%20Parts/PCB/OSSM%20-%20PCB%20-%203030%20Mount.stl?raw=true",
"vendor": {
"manifest_id": "ossm-pcb-3030-mount",
"local_path": "vendor/KinkyMakers-OSSM-hardware/Printed Parts/PCB/OSSM - PCB - 3030 Mount.stl",
"pinned_sha": null,
"pinned_raw_url": null,
"checksum_sha256": null,
"last_checked": null,
"status": "error"
}
},
{
"id": "ossm-pcb-3030-mount-cover",
"name": "PCB 3030 Mount Cover",
"description": "Cover for the 3030 mount",
"filamentEstimate": 15,
"timeEstimate": "45m",
"colour": "primary",
"required": true,
"filePath": "OSSM - PCB - 3030 Mount Cover.stl",
"url": "https://github.com/KinkyMakers/OSSM-hardware/blob/main/Printed%20Parts/PCB/OSSM%20-%20PCB%20-%203030%20Mount%20Cover.stl?raw=true",
"vendor": {
"manifest_id": "ossm-pcb-3030-mount-cover",
"local_path": "vendor/KinkyMakers-OSSM-hardware/Printed Parts/PCB/OSSM - PCB - 3030 Mount Cover.stl",
"pinned_sha": null,
"pinned_raw_url": null,
"checksum_sha256": null,
"last_checked": null,
"status": "error"
}
}
],
"hardwareParts": [
{
"id": "hardware-fasteners-m6x12-shcs",
"required": true,
"quantity": 4,
"relatedParts": [
"ossm-pcb-3030-mount"
]
},
{
"id": "hardware-fasteners-m6-t-nuts",
"required": true,
"quantity": 4,
"relatedParts": [
"ossm-pcb-3030-mount"
]
}
]
},
"aio-cover-mount": {
"category": "PCB Mount",
"type": "base",
"printedParts": [
{
"id": "ossm-pcb-aio-cover-mount",
"name": "PCB AIO Cover Mount",
"description": "All-in-one cover mount on the actuator",
"filamentEstimate": 20,
"timeEstimate": "1h",
"colour": "primary",
"required": true,
"filePath": "OSSM - PCB - AIO Cover Mount.stl",
"url": "https://github.com/KinkyMakers/OSSM-hardware/blob/main/Printed%20Parts/PCB/OSSM%20-%20PCB%20-%20AIO%20Cover%20Mount.stl?raw=true",
"vendor": {
"manifest_id": "ossm-pcb-aio-cover-mount",
"local_path": "vendor/KinkyMakers-OSSM-hardware/Printed Parts/PCB/OSSM - PCB - AIO Cover Mount.stl",
"pinned_sha": null,
"pinned_raw_url": null,
"checksum_sha256": null,
"last_checked": null,
"status": "error"
}
}
],
"hardwareParts": [
{
"id": "hardware-fasteners-m3x8-shcs",
"required": true,
"quantity": 4,
"relatedParts": [
"ossm-pcb-aio-cover-mount"
]
}
]
}
}

View File

@@ -0,0 +1,56 @@
{
"aio-cover-mount": {
"name": "AIO Cover Mount",
"description": "All-in-one cover mount for OSSM v2 AIO PCB",
"image": "https://raw.githubusercontent.com/armpitMFG/OSSM-Parts/main/OSSM%20v2%20AIO%20PCB%20Backpack%20Mod/Images/Workspace/AIO%20PCB%20Backpack%20-%20Back%20Right.png",
"printedParts": [
{
"id": "ossm-pcb-aio-backpack-base",
"name": "AIO PCB Backpack Base",
"description": "Base part for AIO PCB Backpack V2.3c",
"filamentEstimate": 45,
"timeEstimate": "2h",
"colour": "primary",
"required": true,
"filePath": "OSSM Mods - AIO PCB Backpack - Base V2.3c.stl",
"url": "https://github.com/armpitMFG/OSSM-Parts/blob/main/OSSM%20v2%20AIO%20PCB%20Backpack%20Mod/Files/OSSM%20Mods%20-%20AIO%20PCB%20Backpack%20-%20Base%20V2.3c.stl?raw=true",
"vendor": {
"manifest_id": "ossm-pcb-aio-backpack-base",
"local_path": "vendor/armpitMFG-OSSM-Parts/OSSM v2 AIO PCB Backpack Mod/Files/OSSM Mods - AIO PCB Backpack - Base V2.3c.stl",
"pinned_sha": null,
"pinned_raw_url": null,
"checksum_sha256": null,
"last_checked": null,
"status": "pending"
}
},
{
"id": "ossm-pcb-aio-backpack-cap",
"name": "AIO PCB Backpack Cap",
"description": "Default cap for AIO PCB Backpack",
"filamentEstimate": 15,
"timeEstimate": "45m",
"colour": "primary",
"required": true,
"filePath": "OSSM Mods - AIO PCB Backpack - Cap (Default).stl",
"url": "https://github.com/armpitMFG/OSSM-Parts/blob/main/OSSM%20v2%20AIO%20PCB%20Backpack%20Mod/Files/OSSM%20Mods%20-%20AIO%20PCB%20Backpack%20-%20Cap%20(Default).stl?raw=true",
"vendor": {
"manifest_id": "ossm-pcb-aio-backpack-cap",
"local_path": "vendor/armpitMFG-OSSM-Parts/OSSM v2 AIO PCB Backpack Mod/Files/OSSM Mods - AIO PCB Backpack - Cap (Default).stl",
"pinned_sha": null,
"pinned_raw_url": null,
"checksum_sha256": null,
"last_checked": null,
"status": "pending"
}
}
],
"hardwareParts": [
{
"id": "hardware-fasteners-m3x8-shcs",
"required": true,
"quantity": 4
}
]
}
}

View File

@@ -0,0 +1,13 @@
import ossm from './ossm.json';
import armpitmfg from './armpitmfg.json';
export default {
"pcbMounts": {
"category": "PCB Mount",
"type": "base",
"systems": {
...ossm,
...armpitmfg
}
}
};

View File

@@ -0,0 +1,69 @@
{
"3030-mount": {
"name": "3030 Mount",
"description": "PCB mount for 3030 extrusion",
"image": "/images/options/3030-pcb-mount.png",
"category": "PCB Mount",
"type": "base",
"printedParts": [
{
"id": "ossm-pcb-3030-mount",
"name": "PCB 3030 Mount",
"description": "PCB mount for 3030 extrusion",
"filamentEstimate": 15,
"timeEstimate": "45m",
"colour": "primary",
"required": true,
"filePath": "OSSM - PCB - 3030 Mount.stl",
"url": "https://github.com/KinkyMakers/OSSM-hardware/blob/main/Printed%20Parts/PCB/OSSM%20-%20PCB%20-%203030%20Mount.stl?raw=true",
"vendor": {
"manifest_id": "ossm-pcb-3030-mount",
"local_path": "vendor/KinkyMakers-OSSM-hardware/Printed Parts/PCB/OSSM - PCB - 3030 Mount.stl",
"pinned_sha": null,
"pinned_raw_url": null,
"checksum_sha256": null,
"last_checked": null,
"status": "pending"
}
},
{
"id": "ossm-pcb-3030-mount-cover",
"name": "PCB 3030 Mount Cover",
"description": "Cover for the 3030 mount",
"filamentEstimate": 15,
"timeEstimate": "45m",
"colour": "primary",
"required": true,
"filePath": "OSSM - PCB - 3030 Mount Cover.stl",
"url": "https://github.com/KinkyMakers/OSSM-hardware/blob/main/Printed%20Parts/PCB/OSSM%20-%20PCB%20-%203030%20Mount%20Cover.stl?raw=true",
"vendor": {
"manifest_id": "ossm-pcb-3030-mount-cover",
"local_path": "vendor/KinkyMakers-OSSM-hardware/Printed Parts/PCB/OSSM - PCB - 3030 Mount Cover.stl",
"pinned_sha": null,
"pinned_raw_url": null,
"checksum_sha256": null,
"last_checked": null,
"status": "pending"
}
}
],
"hardwareParts": [
{
"id": "hardware-fasteners-m6x12-shcs",
"required": true,
"quantity": 4,
"relatedParts": [
"ossm-pcb-3030-mount"
]
},
{
"id": "hardware-fasteners-m6-t-nuts",
"required": true,
"quantity": 4,
"relatedParts": [
"ossm-pcb-3030-mount"
]
}
]
}
}

View File

@@ -4,23 +4,10 @@
"sections": {
"mounts": {
"title": "Mounts",
"options": [
{
"id": "middle-pivot",
"name": "Middle Pivot",
"description": "Middle Pivot mounting system",
"image": "/images/options/middle-pivot.png",
"filamentEstimate": "~147g",
"type": "base"
},
{
"id": "pitclamp",
"name": "PitClamp Mini",
"description": "PitClamp Mini mounting system",
"image": "/images/options/PitClamp Mini Base.png",
"filamentEstimate": "~137g",
"type": "base"
}
"useComponents": "mounting",
"componentIds": [
"middle-pivot",
"pitclamp"
],
"isMultiSelect": false
},
@@ -49,23 +36,10 @@
},
"pcbMount": {
"title": "PCB Mount",
"options": [
{
"id": "3030-mount",
"name": "3030 Mount",
"description": "PCB mount for 3030 extrusion",
"image": null,
"filamentEstimate": null,
"type": "base"
},
{
"id": "aio-cover-mount",
"name": "AIO Cover Mount",
"description": "All-in-one cover mount on the actuator",
"image": null,
"filamentEstimate": null,
"type": "base"
}
"useComponents": "pcbMounts",
"componentIds": [
"3030-mount",
"aio-cover-mount"
],
"isMultiSelect": false
}
@@ -77,19 +51,28 @@
"hinges": {
"title": "Hinges",
"useComponents": "hinges",
"componentIds": ["pivot-plate", "pitclamp-reinforced-3030"],
"componentIds": [
"pivot-plate",
"pitclamp-reinforced-3030"
],
"isMultiSelect": false
},
"feet": {
"title": "Feet",
"useComponents": "feet",
"componentIds": ["standard-feet", "suction-feet"],
"componentIds": [
"standard-feet",
"suction-feet"
],
"isMultiSelect": false
},
"crossbarSupports": {
"title": "Crossbar Supports",
"useComponents": "crossbarSupports",
"componentIds": ["standard-90-degree-support", "3d-printed-90-degree-support"],
"componentIds": [
"standard-90-degree-support",
"3d-printed-90-degree-support"
],
"isMultiSelect": false
}
}
@@ -100,22 +83,36 @@
"sections": {
"vacULock": {
"title": "Vac-U-Lock",
"componentIds": ["ossm-toy-mount-double-double-24mm-threaded", "ossm-toy-mount-double-double-rail-mounted"],
"componentIds": [
"ossm-toy-mount-double-double-24mm-threaded",
"ossm-toy-mount-double-double-rail-mounted"
],
"isMultiSelect": true
},
"flangeMount": {
"title": "Flange Mount",
"componentIds": ["ossm-toy-mount-flange-base-24mm-threaded", "ossm-toy-mount-flange-base-dildo-ring-2.5in", "ossm-toy-mount-flange-base-dildo-ring-2in"],
"componentIds": [
"ossm-toy-mount-flange-base-24mm-threaded",
"ossm-toy-mount-flange-base-dildo-ring-2.5in",
"ossm-toy-mount-flange-base-dildo-ring-2in"
],
"isMultiSelect": true
},
"suCSOn": {
"title": "SuCSOn",
"componentIds": ["ossm-toy-mount-sucson-mount-base-plate-24mm-threaded", "ossm-toy-mount-sucson-mount-ring-insert-55mm", "ossm-toy-mount-sucson-mount-threaded-ring"],
"componentIds": [
"ossm-toy-mount-sucson-mount-base-plate-24mm-threaded",
"ossm-toy-mount-sucson-mount-ring-insert-55mm",
"ossm-toy-mount-sucson-mount-threaded-ring"
],
"isMultiSelect": true
},
"tieDown": {
"title": "TieDown",
"componentIds": ["ossm-toy-mount-tie-down-and-suction-plate-110mm", "ossm-toy-mount-tie-down-and-suction-plate-135mm"],
"componentIds": [
"ossm-toy-mount-tie-down-and-suction-plate-110mm",
"ossm-toy-mount-tie-down-and-suction-plate-135mm"
],
"isMultiSelect": true
}
}

View File

@@ -5,10 +5,10 @@ import colors from './common/colors.json';
import hardwareData from './common/hardware.json';
import actuatorComponents from './components/actuator.json';
import standComponents from './components/stand.json';
import mountingComponents from './components/mounting.json';
import mountingComponents from './components/mounting/index.js';
import toyMountsComponents from './components/toyMounts/index.js';
import remoteComponents from './components/remote.json';
import pcbComponents from './components/pcb.json';
import pcbComponents from './components/pcb/index.js';
// Create a hardware lookup map from hardware.json
const hardwareLookup = new Map();