Relative Alignment¶
Learning targets
- Align object relatively to another object
In this example we construct the following geometry by a relative alignment of the geometrical objects:
In the parent section 2D Concepts we already encountered the ports of a geometrical object. There we only made use of the ports’ positions within the local coordinate system of the geometrical object. We know show how we use the local coordinate system to glue geometrical objects together.
The ports of a parallelogram (and accordingly for a trapezoid) are shown in the following figure:
To glue another geometrical to this parallelogram, we select a port for the first domain and a port for the second domain. The second domain is then translated and rotated so that the local coordinates systems of both ports match. This is shown for a second parallelogram in the next figure where we used port Point3
for the first object and Point1
for the second parallelogram:
The syntax for this reads as
Parallelogram {
Name = "P1"
...
}
Parallelogram {
Name = "P2"
Port = Point1
Alignment {
Parent {
Domain = "P1"
Port = Point3
}
Orientation = Parallel
}
}
Within the section for the second parallelogram we address port Point1
. The Alignment
section causes a relative placement to the parent domain P1
and it’s port Point3
.
With the flag Orientation
we can declare if the ports’ local coordinate axes are parallel (Parallel
) or are opposite to each other. To demonstrate this we add a third object (a trapezoid),
by the following declarations:
Parallelogram {
Name = "P2"
...
}
Trapezoid {
Name = "T1"
Port = West
Alignment {
Parent {
Domain = "P2"
Port = East
}
Orientation = AntiParallel
}
}
To generate the final geometry as shown at the beginning of this section, we rotate the first parallelogram by . Due to the relative alignment of the second parallelogram and the trapezoid, these objects are rotated accordingly.