App file format
Introduction
Note
An ZEISS INSPECT App file (extension: *.addon) is a ZIP archive with pre-defined folder- and filenames.
While an App file will be created and modified with the App Editor in most cases, it can also be unzipped/edited/zipped manually if necessary.
Structure
Folder structure
File |
Description |
|---|---|
|
All other folders are containing App content. The format of this content is discussed below. |
|
App documentation as displayed in the Software Store. Must contain a |
|
App icon as displayed in the App Manager and the Software Store |
|
App protection and licensing information in case the App is protected |
|
Terms-of-use related to this App. Can contain a set of text files like |
|
App metainfo data (title, description, version, …); see |
Content types
Note
The top level folders determine the “content type”. Inside these top level folders, a separate sub folder must be provided for each item.
Folder / Provider name |
Content type |
Notes |
|---|---|---|
backgrounds |
Environment (rendering) backgrounds |
|
cad_import_modes |
CAD import templates |
|
configurations |
Visibility settings |
INTERNAL |
diagrams |
Diagrams (3D view) |
|
element_properties |
Element creation properties |
|
explorer_filter_templates |
Explorer filter settings |
|
export_templates |
Element export scripts |
|
gradient_color_maps |
Templates for volume color gradient |
|
gvf_templates |
Gray value feature templates |
|
inspection_styles |
I-Inspect configurations |
|
import_templates |
Element import scripts |
|
iso_tolerance_tables |
ISO tolerance table templates |
|
keywordsets |
Project keywords |
|
labels |
Element label templates |
|
languages |
Translation files |
|
legends |
3D legend templates |
|
lightingconfigs |
Light setup templates (rendering) |
|
materials |
Material templates (rendering) |
|
perspectives |
UI configurations |
|
range_color_maps |
Templates for volume color ranges |
|
reports |
Report page templates |
|
scripts |
Scripts |
|
scripted_elements |
Scripted elements |
|
surface_classifications |
Surface defect classifications |
|
tables |
Table templates (3D view) |
|
terms_of_use |
Collection of terms-of-use for App creation |
|
tolerance_legends |
Tolerance legends (3D) |
|
user_defined_checks |
User defined checks |
|
user_defined_inspection_principles |
User defined inspection principles |
|
workflow_assistant |
Workflow assistant configuration |
INTERNAL |
workspaces |
Workspace definitions |
Content data
Note
Each “content object” consists of a folder in one of the “content type” (top level) folders.
A “content object” is a single template/script/element/… distributed via an App.
Each “content object” is represented by the content of a folder in the “content type” folder matching the content type.
The exact format of the content representation depends on the “content type”.
The name of the “content object” is the same as its folder’s name.
For template-like objects, there is always a JSON file with administrative data present. Other types may vary.
Example: Labels
Folder layout ‘labels’
metainfo.json
labels
|-- Name
| |--Name.json
|-- Results
| |-- Results.json
...
The folder names ‘Name’ and ‘Results’ are the templates’ names
The JSON file in each folder contains both administrative data and content information
Name.json
{
"content": {
"!all:" {
"label_background": "gom.Color (0, 0, 0, 0)",
"label_border_mode": "'none'",
"...": "...",
"label_text": "..."
},
"...": "..."
},
"sort_index": 1,
"uuid": "4a6ef87a-5214-4089-bdc3-5a96cf8b5108"
}
Example: Scripts
Folder layout ‘scripts’
scripts/
|-- Tools/
| |-- Workspaces
| |-- create_workspace.py
| |-- create_workspace.metainfo
|-- ...
...
metainfo.json documentation
Example: AppExamples/data_interfaces/CheckResultsDataArray/metainfo.json
Mandatory elements
title:
String– App titleuuid:
String– App UUIDversion:
String– App versionauthor:
String– App authordescription:
String– App short descriptionsoftware-version:
String– ZEISS INSPECT versionsoftware-revision:
String– ZEISS INSPECT revisionlicensing:
Object– Which license is required to run the Applicenses:
[[String]]product-codes:
[[String|int, String]]
Optional elements
documentation:
String– Link (URL) to external App documentation, see Documenting Apps – Link to external documentationenvironment:
String– Shared App environment, see Using shared environmentsservices:
Object– Service definitions, see Using servicesendpoint:
Stringname:
Stringscript:
String
settings:
Object– App settings, see gom.api.settings
ZEISS Quality Software Store
technical-category:
String– One of the following optionsElement TransformationImport and ExportNorm-Based EvaluationSurface InspectionCurve InspectionAirfoil InspectionMultipartSection-Based InspectionGeometriesTestingCollectionsMeasuring AccuracyMiscellaneousApp Examples
business-category:
String– One of the following optionsmajorbasicminor
compatible-software:
[String]– Combination of the following optionsZEISS INSPECT Optical 3DZEISS INSPECT X-RayZEISS INSPECT CMMZEISS INSPECT VMMZEISS CORRELATE
Additional information
build:
String– App build numberlabels:
[String]references:
[String]– Reference links used for ZEISS INSPECT App Examples Overviewtags:
[String]– Tags used for ZEISS INSPECT App Examples Overview
FAQ
Structure
Why is there a folder for every single element?
The App Editor can handle the elements transparently in this way. Just the folder is dragged & dropped, visible etc., while the content is abstracted and can edited (e.g. in a graphical editor)
The content format specification of an element can easier be changed over time