9.5.1 Skywriting |
The very fact that scanners exhibit inertia can be a problem for some applications.
Inertia causes the scanner to deviate, to a greater or lesser extent, from the ideal path of our designed vectors;
it also makes the effective marking density (i.e. the exposure time of the target to the laser beam, at any given point along the path) vary along those vectors.
In some applications, we wish to have the vertices of our paths marked with the highest possible precision: crisp, sharp corners, without rounding due to the scanner's inertial resistance to the change of direction.
For others, it is important to maintain, as nearly as possible, constant exposure (i.e. power density) over the entire length of any given MARK vector, without variations due to the scanner's acceleration and deceleration at the beginning and end, respectively, of the vector.
If we extend a MARK vector linearly by a suitable amount before its original start point and after its original end point, the scanner can use these extensions to accelerate and decelerate while still outside the limits of the original vector.
The scanner then moves between the original start point and the original end point of each vector at constant velocity.
This is the fundamental concept behind Sky Writing as implemented on the SP-ICE-3 Card.
In the general case of multiple successive MARK vectors, where the end of a given vector and the start of the subsequent vector are both extended, it may be necessary to introduce an additional JUMP vector between the extended end point of the preceding vector and the extended start point of the succeeding vector.
The Sky Writing algorithm implemented on the SP-ICE-3 Card inserts this JUMP automatically as necessary.
The currently defined SKYWRITING_DECELERATION_DELAY will take effect before the additional JUMP vector. The current MARK_DELAY is ignored.
The currently defined SKYWRITING_ACCELERATION_DELAY will take effect after the additional JUMP vector. The current JUMP_DELAY is ignored.
It may be appropriate to use application-specific values for either or both of these delays while performing Sky Writing.
If the calculated Extension Distance is enough to allow the scanners to settle completely after the change of heading, the delays may be reduced to 0.
On the other hand, if the scanners cannot settle sufficiently within the available Extension Distance, the delays can be increased to allow more settling time.
In the interest of marking efficiency, and taking into consideration the level of marking quality deemed acceptable, it may be desirable to suppress the generation of extensions and jump vectors over part(s) of a vector sequence where the vectors are co-linear, or where the Change of Heading between successive mark vectors does not exceed a user-definable upper limit.
Mode | Description |
---|---|
Extensions are always generated for the start of the very first and the end of the very last vector of a sequence. Extensions are generated between vectors within the sequence, subject to the change of heading criterion described above. Note that the diagram above only illustrates what happens at the start of the sequence: the end of the sequence is handled in an equivalent manner. | |
Extensions are generated between vectors in the sequence, and for the first and last vectors of the sequence, strictly in accordance with the change of heading criterion described above. Note that the diagram above only illustrates what happens at the start of the sequence: the end of the sequence is handled in an equivalent manner. |
All settings affecting the operation of Sky Writing can be found in ProcessVariables.
The values can be set via the APIs and by appropriate List Commands.
Description | API | List Command |
---|---|---|
Selects the generating mode for Sky Writing extensions and jump vectors. If SkyWritingModeDisabled is selected, no sky-writing vectors will be generated. | ||
If the change of heading between successive mark vectors is less than this value, the extensions and the jump vector will be suppressed. | ||
Delay that is applied after the jump to the extended start position, before acceleration. | ||
Delay that is applied after deceleration at the end of a mark vector. | ||
The Extension Distance is calculated as: ExtensionTime * MarkSpeed | ||
LaserOn Delay that is used for sky writing. This will be used instead of ProcessVariablesLaserOnDelay for all marking vectors that use sky writing. | ||
LaserOff Delay that is used for sky writing. This will be used instead of ProcessVariablesLaserOffDelay for all marking vectors that use sky writing. |