LissajousWobblePattern

In this mode, the wobble motion is defined using a more descriptive equation-based declaration, which generates a Lissajous wobble motion. The path's X and Y components are defined as sinusoidal waveforms with independent frequencies and amplitudes.

The wobble motion is defined by

Gx(t) = A sin(ωt + φ)     - (1)

Gy(t) = B sin(ωt)         - (2)

where,

A is X the Galvo wobble amplitude in job units.

B is Y the Galvo wobble amplitude in job units.

ω is the frequency in kHz converted to radians/sec i.e. (0.1 to 10 kHz).

t is the instantaneous time in seconds.

φ is the phase relationship in degrees of the X axis with respect to the Y axis at the start of the waveform generation. (-180 to +180 degrees)

Equations (1) and (2) define the output Lissajous wobble pattern. Users can fine-tune the parameters now to unlock a range of Lissajous wobble patterns, enabling them to influence their processes and achieve the best results for their scanning needs.

 

Syntax

public LissajousWobblePattern(float xWidth, float yWidth, float xFrequency, float yFrequency, float xPhase);

 

Parameters

float xWidth width of the wobble pattern in X direction
float yWidth width of the wobble pattern in Y direction
float xFrequency Frequency of the sinusoidal waveform in X direction
float yFrequency Frequency of the sinusoidal waveform in X direction
float xPhase phase angle of the X axis with respect to the Y axis in degrees

 

Methods

Clone Create a clone of this object
Copy Copy parameters from another ConstantFluenceCircularWobblePattern
Deserialize De-serialize from a saved object
Serialize Serialize this object

 

Copy
Example
scanDocument = scanDeviceManager.CreateScanDocument(GetselectedDeviceUniqueName(), DistanceUnit.Millimeters, false);

if (scanDocument != null)
{
    VectorImage vectorImage = scanDocument.CreateVectorImage("image1", DistanceUnit.Millimeters);

    vectorImage.SetMarkSpeed(1000);
    vectorImage.SetJumpSpeed(2000);
    vectorImage.SetJumpDelay(100);
    vectorImage.SetMarkDelay(100);

    //Set Laser Delays
    vectorImage.SetLaserOnDelay(10);
    vectorImage.SetLaserOffDelay(10);

    float xWidth = 0.5f;
    float yWidth = 0.5f;
    float xFrequency = 1f;
    float yFrequency = 2f;
    float xPhase = 0;

    LissajousWobblePattern wobbleData = new LissajousWobblePattern(xWidth, yWidth, xFrequency, yFrequency, xPhase);
    vectorImage.EnableWobble(wobbleData);

   
    float centerX = 0;
    float centerY = 0;
    float centerZ = 0;
    float radius = 10;
    vectorImage.AddCircle(centerX, centerY, centerZ, radius);
    
    vectorImage.DisableWobble();

    scanDocument.Scripts.Add(new ScanningScriptChunk("defaultScript", "ScanAll()"));

    try
    {
        scanDocument.StartScanning();
    }
    catch
    {

    }
}