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 } } } }