Click or drag to resize

9.5.1 Sky Writing

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.

SkywritingEffectOfScannerInertia.svg not found.
Effect of scanner's inertia

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.

Sky Writing: Fundamental Concept

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.

SkywritingExtendedVector.svg not found.
Extended Vectors
Successive MARK vectors

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.

SkywritingSuccessiveMarks.svg not found.
Successive Marks
Delays between successive MARK vectors

The currently defined SKYWRITING_DECELERATION_DELAY will take effect after the additional Sky Writing deceleration vector. The current MARK_DELAY is ignored.

The currently defined SKYWRITING_ACCELERATION_DELAY will take effect before the additional Sky Writing acceleration 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.

Change of Heading and Marking Efficiency

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.

SkywritingChangeOfHeadingIllustrated.svg not found.
Change Of Heading
Extension Generating Modes

Mode

Description

ForceAtStartFinish

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.

SkywritingForceStartEndMode.svg not found.
ForceAtStartFinish Mode

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.

MinimumCoH

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.

SkywritingChangeOfHeadingMode.svg not found.
MinimumCoH Mode

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.

Merged Extensions

The Sky Writing mode ForceAtStartFinish can be configured to selectively merge extension vectors when a direct path doesn't cause a huge change of heading.

To enable this feature the parameter MergedExtensionsMaxCoH must be set to a value between 0 and π. The parameter can be set using the AppendSkyWritingMergedExtensionsMaxCoH method.

Normally, when there is a JUMP between two MARK vectors the Sky Writing mode ForceAtStartFinish creates extension vectors that the scan head must follow along. In some cases this causes a very inefficient and jittery path.

Mergedextensions1.svg not found.
Parallel marking vectors (red) with Sky Writing extensions causing an inefficient path

Setting MergedExtensionsMaxCoH tells the Sky Writing algorithm to replace this inefficient path with a single extension vector whenever the changes of heading are smaller than MergedExtensionsMaxCoH. The changes of heading refer to the angles between first MARK vector and JUMP as well as JUMP and second MARK vector.

Mergedextensions2.svg not found.
Merged extension vector executed at MarkSpeed without mark or jump delay

The merged extension vector should not be confused with the original JUMP that would be executed with Sky Writing off. The extension vector is performed at MarkSpeed and without applying any mark delay or jump delay. This allows the scan head to move at a constant speed between the two MARK vectors without the need for acceleration or deceleration.

Due to this design a merged extension vector aside from reducing the path length also fulfills the purpose of the original extension vectors which is ensuring a constant speed and thus a consistent marking quality at the adjacent ends of the neighboring MARK vectors.

Note that a merged extension vector is only considered if the JUMP vector between the two MARK vectors is shorter than double the length of the first MARK's extension vector.

LengthJUMP < 2 · ExtensionTime1 · MarkSpeed1

Especially when marking collinear lines this feature can significantly speed up the marking process and also improve the marking quality.

Sky Writing Settings

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.

SkyWritingSettingsMode

SKYWRITING_MODE

If the change of heading between successive mark vectors is less than this value, the extensions and the jump vector will be suppressed.

SkyWritingSettingsMinCoH

SKYWRITING_MIN_COH

If this value is set merged extensions are enabled and will be applied whenever the change of heading from MARK to JUMP and JUMP to MARK is less than this value.

SkyWritingSettingsMergedExtensionsMaxCoH

SKYWRITING_MERGED_EXTENSIONS_MAX_COH

Delay that is applied after the jump to the extended start position, before acceleration.

SkyWritingSettingsAccelerationDelay

SKYWRITING_ACCELERATION_DELAY

Delay that is applied after deceleration at the end of a mark vector.

SkyWritingSettingsDecelerationDelay

SKYWRITING_DECELERATION_DELAY

The Extension Distance is calculated as:

ExtensionTime * MarkSpeed

SkyWritingSettingsExtensionTime

ProcessVariablesMarkSpeed

SKYWRITING_EXTENSION_TIME

MARK_SPEED

LaserOn Delay that is used for Sky Writing.

This will be used instead of ProcessVariablesLaserOnDelay for all marking vectors that use Sky Writing.

SkyWritingSettingsLaserOnDelay

SKYWRITING_LASERON_DELAY

LaserOff Delay that is used for Sky Writing.

This will be used instead of ProcessVariablesLaserOffDelay for all marking vectors that use Sky Writing.

SkyWritingSettingsLaserOffDelay

SKYWRITING_LASEROFF_DELAY