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