ConstantOverlapCircularWobblePattern
In Constant Overlap mode, the vector speed is set to the marking speed while the circular motion is specified by the wobbleOverlap and wobbleThickness. The wobblePeriod is recalculated to maintain the requested overlap for the specified linear speed.
wobbleOverlapDistance = (1 – (wobbleOverlapPercentage / 100)) * wobbleThickness
wobbleAmplitude = wobbleThickness / 2
linearMarkingSpeed = jobMarkingSpeed
wobblePeriod = wobbleOverlapDistance / jobMarkingSpeed
This mode of operation can lead to very short wobble periods that may exceed the capability of the galvos and may result in reduced wobble width and a distorted wobble pattern giving variable process results.
The ability of the scanning system to reproduce the wobble pattern is a function of the servo bandwidth of the galvo control system. This varies between small aperture size scan heads that in general have higher bandwidth, and larger aperture scan heads which use larger mirrors with higher inertia and consequently, lower bandwidth. As a rule of thumb, the wobble frequency should be chosen to be no more than ½ the bandwidth of the galvo servo system if that bandwidth is known. For small galvo heads, 2KHz wobble patterns may be achievable, where as 500Hz may be the limit for larger galvo heads. The use of wobble inherently involves process evaluation to discover the proper wobble pattern and parameters for the process result desired. The use of higher frequencies will result in inaccurate rendering of the wobble pattern which may give inconsistent process results.
Syntax
| public ConstantOverlapCircularWobblePattern(float thickness, float overlapPercentage) |
Parameters
| float | thickness | Thickness of the wobble pattern |
| float | overlapPercentage | Overlap percentage of the wobble pattern |
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 thickness = 2.2f;
float overlapPercentage = 55f;
CircularWobblePattern wobbleData = new ConstantOverlapCircularWobblePattern(thickness, overlapPercentage);
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
{
}
}