phase 0
This commit is contained in:
@@ -0,0 +1,109 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"$id": "mpmedia/step-processor/parts-mapping/v1",
|
||||
"title": "PartsMapping",
|
||||
"description": "Mapping file that classifies parts from a STEP assembly tree. Used by the external diagram generator to determine geometry scope and labels. Supports Chinese-to-English normalization. One file per product model, stored alongside the STEP file or in a shared product data directory.",
|
||||
|
||||
"type": "object",
|
||||
"required": ["model_number", "parts"],
|
||||
|
||||
"properties": {
|
||||
"model_number": {
|
||||
"type": "string",
|
||||
"description": "Product model number this mapping applies to. e.g. 'MR28UW'"
|
||||
},
|
||||
"parts": {
|
||||
"type": "object",
|
||||
"description": "Keyed by original part name from STEP file (may be Chinese). Value is a classification object.",
|
||||
"additionalProperties": {
|
||||
"type": "object",
|
||||
"required": ["english_name", "category"],
|
||||
"properties": {
|
||||
"english_name": {
|
||||
"type": "string",
|
||||
"description": "Translated/normalized English name. Used in diagrams and BOM."
|
||||
},
|
||||
"category": {
|
||||
"type": "string",
|
||||
"enum": ["enclosure", "mounting", "internal", "fastener", "display_panel", "cable", "other"],
|
||||
"description": "Classification drives inclusion/exclusion logic per diagram mode."
|
||||
},
|
||||
"include_in_diagram": {
|
||||
"type": "boolean",
|
||||
"default": true,
|
||||
"description": "Override flag. False = always exclude from diagrams regardless of mode."
|
||||
},
|
||||
"diagram_label": {
|
||||
"type": ["string", "null"],
|
||||
"description": "Optional custom label shown on the diagram for this part. If null, english_name is used."
|
||||
},
|
||||
"mounting_variant": {
|
||||
"type": ["string", "null"],
|
||||
"description": "If this part belongs to a specific mounting variant, name it here. e.g. 'Wall Mount VESA 200x200'. Parts with the same variant_name are shown/hidden together."
|
||||
},
|
||||
"notes": {
|
||||
"type": "string",
|
||||
"description": "Free-text notes for documentation or translator flags."
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"mounting_variants": {
|
||||
"type": ["array", "null"],
|
||||
"description": "Named mounting configurations available in this STEP file. Each variant is a named group of mounting parts that should be shown together.",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"required": ["name"],
|
||||
"properties": {
|
||||
"name": { "type": "string" },
|
||||
"description": { "type": "string" },
|
||||
"default": { "type": "boolean", "description": "True = use this variant when mode is enclosure_plus_mounting and no variant is specified." }
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
"examples": [
|
||||
{
|
||||
"model_number": "MR28UW",
|
||||
"parts": {
|
||||
"前面板": {
|
||||
"english_name": "Front Panel",
|
||||
"category": "enclosure",
|
||||
"include_in_diagram": true,
|
||||
"diagram_label": null,
|
||||
"mounting_variant": null
|
||||
},
|
||||
"安装支架": {
|
||||
"english_name": "Mounting Bracket",
|
||||
"category": "mounting",
|
||||
"include_in_diagram": true,
|
||||
"diagram_label": "Wall Mount Bracket",
|
||||
"mounting_variant": "Wall Mount"
|
||||
},
|
||||
"VESA板": {
|
||||
"english_name": "VESA Plate 200x200",
|
||||
"category": "mounting",
|
||||
"include_in_diagram": true,
|
||||
"diagram_label": "VESA 200x200 Plate",
|
||||
"mounting_variant": "VESA Mount"
|
||||
},
|
||||
"螺钉M4": {
|
||||
"english_name": "M4 Screw",
|
||||
"category": "fastener",
|
||||
"include_in_diagram": false,
|
||||
"notes": "Internal fastener - exclude from all diagrams"
|
||||
},
|
||||
"主板": {
|
||||
"english_name": "Main Board",
|
||||
"category": "internal",
|
||||
"include_in_diagram": false
|
||||
}
|
||||
},
|
||||
"mounting_variants": [
|
||||
{ "name": "Wall Mount", "description": "Standard wall mount bracket", "default": true },
|
||||
{ "name": "VESA Mount", "description": "VESA 200x200 compatible plate", "default": false }
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user