Skip to content
Snippets Groups Projects
schema.rst 9.45 KiB
Newer Older
Florian Fischer's avatar
Florian Fischer committed
Schema
===============
Florian Fischer's avatar
Florian Fischer committed

In the following code block, you can see an exemplary JSON schema of a QCF file, which can be used for the quality control of an 
additively manufactured object. It defines customizations and requirements. The schema may look different for other 
processes and application areas.

Florian Fischer's avatar
Florian Fischer committed

Florian Fischer's avatar
Florian Fischer committed
.. code-block:: JSON
Florian Fischer's avatar
Florian Fischer committed

Florian Fischer's avatar
Florian Fischer committed
        "$schema": "http://json-schema.org/draft-07/schema#",
        "title": "JSON schema quality control lotsize 1",
Florian Fischer's avatar
Florian Fischer committed
        "type": "object",
        "properties": {
Florian Fischer's avatar
Florian Fischer committed
            "$version": {
Florian Fischer's avatar
Florian Fischer committed
            "type": "string"
            },
Florian Fischer's avatar
Florian Fischer committed
            "quality_control_info": {
Florian Fischer's avatar
Florian Fischer committed
            "type": "object",
            "properties": {
                "id": {
                "type": "string"
                },
Florian Fischer's avatar
Florian Fischer committed
                "cad_model": {
                "type": "string"
                },
                "manufacturing_profile": {
Florian Fischer's avatar
Florian Fischer committed
                "type": "object",
                "properties": {
                    "id": {
                    "type": "string"
                    },
Florian Fischer's avatar
Florian Fischer committed
                    "material": {
Florian Fischer's avatar
Florian Fischer committed
                    "type": "object",
                    "properties": {
                        "id": {
                        "type": "string"
                        },
                        "name": {
                        "type": "string"
                        },
Florian Fischer's avatar
Florian Fischer committed
                        "vendor": {
                        "type": "string"
                        },
                        "weight": {
                        "type": "string"
                        },
                        "material_kind": {
                        "type": "object",
                        "properties": {
                            "id": {
                            "type": "string"
                            },
                            "name": {
                            "type": "string"
                            },
                            "processing_temp": {
                            "type": "number"
                            }
                        },
                        "required": [
                            "id",
                            "name",
                            "processing_temp"
                        ]
Florian Fischer's avatar
Florian Fischer committed
                        }
                    },
                    "required": [
                        "id",
                        "name",
Florian Fischer's avatar
Florian Fischer committed
                        "vendor",
                        "weight",
                        "material_kind"
Florian Fischer's avatar
Florian Fischer committed
                    "layer_height": {
Florian Fischer's avatar
Florian Fischer committed
                    "type": "number"
                    },
Florian Fischer's avatar
Florian Fischer committed
                    "scale_settings": {
Florian Fischer's avatar
Florian Fischer committed
                    "type": "object",
                    "properties": {
Florian Fischer's avatar
Florian Fischer committed
                        "x": {
                        "type": "number"
                        },
                        "y": {
                        "type": "number"
                        },
                        "z": {
                        "type": "number"
                        },
                        "id": {
Florian Fischer's avatar
Florian Fischer committed
                        "type": "string"
Florian Fischer's avatar
Florian Fischer committed
                        }
Florian Fischer's avatar
Florian Fischer committed
                    },
                    "required": [
Florian Fischer's avatar
Florian Fischer committed
                        "x",
                        "y",
                        "z",
                        "id"
Florian Fischer's avatar
Florian Fischer committed
                    },
                    "nozzle_diameter": {
                    "type": "number"
                    }
Florian Fischer's avatar
Florian Fischer committed
                },
                "required": [
Florian Fischer's avatar
Florian Fischer committed
                    "id",
                    "material",
                    "layer_height",
                    "scale_settings",
                    "nozzle_diameter"
Florian Fischer's avatar
Florian Fischer committed
                "customization": {
                "type": "array",
                "items": {
Florian Fischer's avatar
Florian Fischer committed
                    "type": "object",
                    "properties": {
                    "id": {
                        "type": "string"
                    },
Florian Fischer's avatar
Florian Fischer committed
                    "content": {
                        "type": "string"
                    },
                    "position": {
                        "type": "array",
                        "items": {
                        "type": "number"
                        }
                    },
                    "customization_kind": {
Florian Fischer's avatar
Florian Fischer committed
                        "type": "object",
                        "properties": {
                        "id": {
                            "type": "string"
                        },
                        "name": {
                            "type": "string"
                        }
                        },
                        "required": [
                        "id",
Florian Fischer's avatar
Florian Fischer committed
                        "name"
Florian Fischer's avatar
Florian Fischer committed
                    }
Florian Fischer's avatar
Florian Fischer committed
                    "required": [
                    "id",
                    "content",
                    "position",
                    "customization_kind"
                    ]
                }
                },
                "scan": {
                "type": "array",
                "items": {
                    "type": "object",
                    "properties": {
                    "id": {
Florian Fischer's avatar
Florian Fischer committed
                        "type": "string"
                    },
Florian Fischer's avatar
Florian Fischer committed
                    "data": {
Florian Fischer's avatar
Florian Fischer committed
                        "type": "string"
                    },
Florian Fischer's avatar
Florian Fischer committed
                    "scan_profile": {
Florian Fischer's avatar
Florian Fischer committed
                        "type": "object",
                        "properties": {
                        "id": {
                            "type": "string"
                        },
Florian Fischer's avatar
Florian Fischer committed
                        "unit": {
                            "type": "object",
                            "properties": {
                            "id": {
                                "type": "string"
                            },
                            "name": {
                                "type": "string"
                            },
                            "factor_to_m": {
                                "type": "number"
                            }
                            },
                            "required": [
                            "id",
                            "name",
                            "factor_to_m"
                            ]
                        },
                        "model": {
                            "type": "string"
                        },
                        "vendor": {
                            "type": "string"
                        },
                        "model_no": {
Florian Fischer's avatar
Florian Fischer committed
                            "type": "string"
Florian Fischer's avatar
Florian Fischer committed
                        },
                        "file_type": {
                            "type": "object",
                            "properties": {
                            "id": {
                                "type": "string"
                            },
                            "name": {
                                "type": "string"
                            }
                            },
                            "required": [
                            "id",
                            "name"
                            ]
Florian Fischer's avatar
Florian Fischer committed
                        }
                        },
                        "required": [
                        "id",
Florian Fischer's avatar
Florian Fischer committed
                        "unit",
                        "model",
                        "vendor",
                        "model_no",
                        "file_type"
Florian Fischer's avatar
Florian Fischer committed
                        ]
                    }
                    },
                    "required": [
                    "id",
Florian Fischer's avatar
Florian Fischer committed
                    "data",
                    "scan_profile"
Florian Fischer's avatar
Florian Fischer committed
                "requirements": {
                "type": "array",
                "items": {
Florian Fischer's avatar
Florian Fischer committed
                    "type": "object",
                    "properties": {
                    "id": {
                        "type": "string"
                    },
Florian Fischer's avatar
Florian Fischer committed
                    "tolerance": {
Florian Fischer's avatar
Florian Fischer committed
                        "type": "number"
                    },
Florian Fischer's avatar
Florian Fischer committed
                    "requirement_type": {
                        "type": "object",
                        "properties": {
                        "id": {
                            "type": "string"
                        },
                        "name": {
                            "type": "string"
                        },
                        "position": {
                            "type": "array",
                            "items": {
                            "type": "number"
                            }
                        },
                        "direction": {
                            "type": "array",
                            "items": {
                            "type": "number"
                            }
Florian Fischer's avatar
Florian Fischer committed
                        },
                        "required": [
                        "id",
                        "name",
                        "position",
                        "direction"
                        ]
Florian Fischer's avatar
Florian Fischer committed
                    }
                    },
                    "required": [
                    "id",
Florian Fischer's avatar
Florian Fischer committed
                    "tolerance",
                    "requirement_type"
Florian Fischer's avatar
Florian Fischer committed
                }
            },
            "required": [
Florian Fischer's avatar
Florian Fischer committed
                "id",
Florian Fischer's avatar
Florian Fischer committed
                "cad_model",
                "manufacturing_profile",
                "customization",
                "scan",
                "requirements"
            ]
Florian Fischer's avatar
Florian Fischer committed
            }
        },
        "required": [
Florian Fischer's avatar
Florian Fischer committed
            "$version",
            "quality_control_info"