Updating to new syntax
Since  JCMsuite Version 4, JCMgeo relies on a more capable syntax to define geometries. While the previous syntax is still recognized by JCMgeo, the current syntax allows for a simpler layout definition with more and improved features. Using the syntax highlighting, autocomplete and indentation features in JCMcontrol is the easiest way to create new and to update existing setups to the newest syntax. In the following, we highlight the major differences between JCMgeo Version 4 and the previous syntax:
- Layoutsections are now referenced by the dimension of the grid the generate, i.e.- Layout2Dand- Layout3Dfor 2D and 3D geometries.
- All geometrical primitives are collected in an Objectssection.
- To convert a layout in 2D:
- Rename LayouttoLayout2D
- Create a section Objectsenclosing all geometrical primitives
 
- For an extruded layout in 3D :
- Rename LayouttoLayout3D
- Rename the Extrusionsection enclosing theLayerandLayerInterfacestoMultiLayer
- Create a new Extrusionsection to open before the first 2D geometrical primitive and close after the freshly renamedMultiLayersection
- In this new Extrusionsection, create a sectionObjectsenclosing all 2D geometrical primitives
 
Below is a side-by-side comparison of the old and new syntax
| Old | New | 
|---|
| |  1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 | Layout {
  # 2D definitions (x-y-coordinates)
  Parallelogram {...}
  Circle {...}
  ...
  # extrusion to 3D (z-direction)
  Extrusion {
    LayerInterface { ...}
    Layer { ... }
    ...
    LayerInterface { ... }
  }
}
 | 
 | |  1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 | Layout3D {
  Extrusion {
    Objects {
      # 2D definitions (x-y-coordinates)
      Parallelogram {...}
      Circle {...}
      ...      
    }
    # extrusion to 3D (z-direction)
    MultiLayer {
      LayerInterface { ...}
      Layer { ... }
      ...
      LayerInterface { ... }
    }
  }
  Objects {
    Box { ... }
    Sphere { ... }
    Helix { ... }
    Cylinder { ... }
    ...
  }
}
 | 
 |