# Cones and CylindersΒΆ

Learning targets

• Construct Cones and Cylinders as 3D Primitives

This example constructs a cone, a truncated cone and a cylinder. All three are shown in the following figure. On the left the truncated cone is determined by its `BottomRadius`, `TopRadius` and `Height`. The cone in the middle has an apex, i.e. zero `TopRadius` which is simply omitted. The `Cylinder` on the right is defined by its `Radius` and `Height`.

`.jcm` Input File

The `layout.jcm` file contains a Layout3D section indicating the use of 3D primitives. The substrate and background is defined first, then the object section with the three objects follows. The `Cone` is determined by its `BottomRadius`, `TopRadius` and `Height`. Omitting `TopRadius` or setting it to zero defines a cone instead of a truncated one. The primitives `GlobalPosition` and `Rotation` are shared with all 3D primitives.

Note

The `GlobalPosition` refers to the center of the base.

• layout.jcm [ASCII]

 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71``` ```Layout3D { UnitOfLength = 1.0 BoundaryConditions { Boundary { Direction = All Class = Transparent } } Extrusion { Objects { Parallelogram { Priority = -1 DomainId = 101 Height = 5.0 Width = 10.0 MeshOptions { MaximumSideLength = 2.0 } } } MultiLayer { Layer { Name = "Substrate" Thickness = .5 DomainIdMapping = [101 1] } Layer { Thickness = 4.5 DomainIdMapping = [101 101] } } } Objects { Cone { Name = "Cone1" DomainId = 4 Priority = 1 BottomRadius = 1.0 Height = 3.0 GlobalPosition = [0, 0, .5] MeshOptions { MaximumSideLength = .2 } } Cone { Name = "Cone2" DomainId = 3 Priority = 1 BottomRadius = 1.0 TopRadius = 0.5 Height = 3.0 GlobalPosition = [-3.3, 0, .5] MeshOptions { MaximumSideLength = .2 } } Cylinder { Name = "Cylinder" DomainId = 5 Priority = 1 Radius = 1.0 Height = 3.0 GlobalPosition = [3.3, 0, .5] MeshOptions { MaximumSideLength = .2 } } } } ```