SC Manual SL English PDF
SC Manual SL English PDF
SC Manual SL English PDF
Table of Contents
1 Introduction
.................................................................................................................... 13
1.1 Overview
.............................................................................................................. 13
1.2 Position within the system
.............................................................................................................. 15
1.3 Safety
.............................................................................................................. 17
2 Installation
.................................................................................................................... 17
3.1 sc_setup.exe
.............................................................................................................. 20
3.2 Scanner Settings
.............................................................................................................. 22
3.3 Card Settings
.............................................................................................................. 24
3.3.1 Pin
.......................................................................................................
Assignment 24
3.3.2 USC-1
.......................................................................................................
Settings 26
3.3.3 USC-2
.......................................................................................................
Settings 28
3.3.3.1 ................................................................................................
Correction Settings 31
3.3.3.2 ................................................................................................
Analog In 32
3.3.4 USC-3
.......................................................................................................
Settings 33
3.3.4.1 ................................................................................................
Correction Settings 36
3.3.4.2 ................................................................................................
Analog In 37
3.3.5 RTC-3
.......................................................................................................
Settings 38
3.3.6 RTC-4
.......................................................................................................
Settings 40
3.3.7 RTC-5
.......................................................................................................
Settings 43
3.3.7.1 ................................................................................................
Auto Laser Control 46
3.3.8 RTC-6
.......................................................................................................
Settings 47
3.3.8.1 ................................................................................................
Auto Laser Control 50
3.3.9 RTC
.......................................................................................................
Scanalone Settings 51
4 Motion Control Settings
.................................................................................................................... 53
5.1 ..............................................................................................................
Reset License 103
5.2 ..............................................................................................................
View 104
5.3 ..............................................................................................................
Optic 106
5.3.1.......................................................................................................
USC Cards 106
5.3.1.1................................................................................................
Edit Lens Init Job Dialog 110
5.3.2.......................................................................................................
RTC Cards 111
5.3.3.......................................................................................................
Min/Max 113
5.4 ..............................................................................................................
Laser 114
5.5 ..............................................................................................................
Shortkeys 116
5.6 ..............................................................................................................
General 117
5.6.1.......................................................................................................
Shift Map 120
5.6.2.......................................................................................................
Months Map 121
5.6.3.......................................................................................................
Day Map 122
5.6.4.......................................................................................................
Year Map 123
5.6.5.......................................................................................................
Gloabal Sequences Reset Times Dialog 123
5.6.6.......................................................................................................
Job Save/Load Dialog 124
5.7 ..............................................................................................................
Remote 125
5.8 ..............................................................................................................
IO 128
5.8.1.......................................................................................................
Message Input Combination 131
5.9 ..............................................................................................................
Extras 133
5.10 3D
.............................................................................................................. 135
5.11 User Level
.............................................................................................................. 136
5.11.1
.......................................................................................................
Access Rights 137
5.12 Card
.............................................................................................................. 138
5.13 Trigger
.............................................................................................................. 138
5.14 Report
.............................................................................................................. 139
6 ....................................................................................................................
Pen Settings 140
6.1 ..............................................................................................................
Edit Pens 143
6.1.1.......................................................................................................
Main Settings for Pens 145
6.1.2.......................................................................................................
Scanner Settings for Pens 147
6.1.2.1................................................................................................
Wobble Settings 149
6.1.3.......................................................................................................
Miscellaneous Settings for Pens 152
6.1.3.1................................................................................................
Perforation Dialog 155
6.1.4.......................................................................................................
Drill Settings for Pens 155
6.1.5.......................................................................................................
Ramping Settings for Pens 157
6.1.6.......................................................................................................
Bitmap Settings for Pens 159
6.1.7.......................................................................................................
Pen Paths 161
6.2 ..............................................................................................................
Pen Advanced 162
6.2.1.......................................................................................................
Power Map 162
6.2.2.......................................................................................................
System PixelMap 165
6.2.3.......................................................................................................
Special Laser Parameters 167
7 ....................................................................................................................
User Interface 168
7.1 ..............................................................................................................
Menu Bar 168
7.1.1.......................................................................................................
File 169
7.1.1.1................................................................................................
Job Format 170
7.1.1.2................................................................................................
Job Properties 172
7.1.2.......................................................................................................
Edit 173
7.1.2.1................................................................................................
Spacing Advanced 174
7.1.2.2................................................................................................
ArrayCopy 175
7.1.2.3................................................................................................
ArrayPolarCopy 176
7.1.3.......................................................................................................
Extras 176
7.1.3.1................................................................................................
Teach / Relocate Reference 176
7.1.3.2................................................................................................
Step / Repeat 178
7.1.3.3................................................................................................
Bitmap Marking 180
7.1.4.......................................................................................................
User 182
7.1.5.......................................................................................................
Window 182
7.1.6.......................................................................................................
Help 182
7.2 ..............................................................................................................
Toolbars 182
7.2.1.......................................................................................................
File Toolbar 183
7.2.2.......................................................................................................
Camera Toolbar 183
7.2.3.......................................................................................................
View Level Toolbar 184
7.2.4.......................................................................................................
Geometry Object Toolbar 185
7.2.5.......................................................................................................
Functionality Object Toolbar 186
7.2.5.1................................................................................................
Data Wizard 187
7.2.5.2................................................................................................
ParameterFinder 191
7.2.6.......................................................................................................
Alignment and Spacing Toolbar 196
7.2.7.......................................................................................................
Extras Toolbar 196
7.2.8.......................................................................................................
Stepper Position Toolbar 197
7.2.9.......................................................................................................
3D Surfaces Toolbar 197
7.2.10
.......................................................................................................
Special Sequences Toolbar 197
7.2.11
.......................................................................................................
Analog In Toolbar 201
7.3 ..............................................................................................................
Entity List 202
7.3.1.......................................................................................................
Entity List 202
7.3.1.1................................................................................................
Index Entities with pro-/postfix Dialogs 206
7.3.2.......................................................................................................
Point Editor 207
7.4 ..............................................................................................................
View 2D 209
7.4.1.......................................................................................................
Operations 209
7.4.1.1................................................................................................
View Properties 211
7.4.1.1.1.........................................................................................
General 212
7.4.1.1.2.........................................................................................
Colors 212
7.4.1.1.3.........................................................................................
MultiHead 214
7.4.2.......................................................................................................
Print Preview 215
7.5 ..............................................................................................................
Entity Property Sheet 216
7.6 ..............................................................................................................
Status Bar 217
8 ....................................................................................................................
Entities (Objects) 218
8.1 ..............................................................................................................
Entity Hierarchy 218
8.2 ..............................................................................................................
Geometry Objects 219
8.3 ..............................................................................................................
Barcode 221
8.3.1.......................................................................................................
Barcode Format 222
8.3.1.1................................................................................................
Code-39 Ex 223
8.3.1.2................................................................................................
GS1 Barcodes 223
8.3.1.3................................................................................................
QR Code 224
8.3.1.4................................................................................................
QR Code EX 224
8.3.1.5................................................................................................
Code 128 226
8.3.2.......................................................................................................
Scaling 226
8.3.3.......................................................................................................
Barcode Extended 226
8.3.4.......................................................................................................
Barcode Reader 230
8.3.5.......................................................................................................
Size Limits 231
8.4 ..............................................................................................................
Bitmap 231
8.4.1.......................................................................................................
Bitmap Extended 235
8.4.2.......................................................................................................
Marking Bidirectional 236
8.4.3.......................................................................................................
Black and White 238
8.4.4.......................................................................................................
Grayscale 239
8.5 ..............................................................................................................
Serial Number 239
8.5.1.......................................................................................................
Serial Number Formats 241
8.5.2.......................................................................................................
Serial Number as Barcode 241
8.5.3.......................................................................................................
Serial Number Advanced 243
8.5.4.......................................................................................................
Automate Serialization 244
8.5.4.1................................................................................................
ASCII File 244
8.5.4.2................................................................................................
Excel Table 245
8.5.4.3................................................................................................
Example 245
8.6 ..............................................................................................................
Date Time 247
8.6.1.......................................................................................................
Date Time Format 248
8.7 ..............................................................................................................
Text2D 251
8.7.1.......................................................................................................
Text2D Properties 252
8.8 ..............................................................................................................
Control objects 253
8.8.1.......................................................................................................
I/O Control Objects 254
8.8.2.......................................................................................................
Analog Output Control Object 255
8.8.3.......................................................................................................
Executable Control Object 256
8.8.4.......................................................................................................
Motion Control Object 257
8.8.5.......................................................................................................
Trigger (USC and RTC5 only) 259
8.8.6.......................................................................................................
AutoCalib (RTC only) 260
8.8.7.......................................................................................................
SetOverride Control Object 261
8.8.8.......................................................................................................
ScJump Control Object 262
9 ....................................................................................................................
Entities Properties 262
9.1 ..............................................................................................................
Transformations 262
9.1.1.......................................................................................................
2D Transformations 262
9.1.2.......................................................................................................
3D Transformations 264
9.2 ..............................................................................................................
Hatch 265
9.2.1.......................................................................................................
Hatch Style 268
9.3 ..............................................................................................................
Entity Info 269
9.4 ..............................................................................................................
Element Info 271
9.5 ..............................................................................................................
Styles 271
9.5.1.......................................................................................................
Edit Styles 274
10....................................................................................................................
Import-Export 274
10.1 Import
.............................................................................................................. 274
10.1.1
.......................................................................................................
Point Cloud Files 278
10.1.2
.......................................................................................................
Import Advanced 278
10.1.2.1
................................................................................................
Advanced for several formats 280
10.1.2.2
................................................................................................
Advanced for AI 280
10.1.2.3
................................................................................................
Advanced for CNC 281
10.1.2.4
................................................................................................
Advanced for DXF Version1 282
10.1.2.5
................................................................................................
Advanced for MCL 282
10.1.2.6
................................................................................................
Advanced for PLT 283
10.1.3
.......................................................................................................
Vector File Formats 283
10.2 Export
.............................................................................................................. 284
11....................................................................................................................
Mark 285
11.3.1.3
................................................................................................
OpticModuleProperties 293
11.4 SAMLight Job IO Selection
.............................................................................................................. 295
12....................................................................................................................
Splitting 296
14.4 System
.............................................................................................................. 345
14.5 MultiCard
.............................................................................................................. 347
15....................................................................................................................
Multiple Heads 349
17....................................................................................................................
Option Optic3D 358
17.1 Features
.............................................................................................................. 358
17.1.1
.......................................................................................................
3D Surfaces 359
17.1.1.1
................................................................................................
Cylinder 359
17.1.1.2
................................................................................................
STL Projection 361
17.1.1.3
................................................................................................
Tilted Surface 364
17.1.1.4
................................................................................................
Sphere 366
17.1.2
.......................................................................................................
Marking on curved parts 368
17.1.3
.......................................................................................................
Deep Engraving 372
17.2 Requirements & Settings
.............................................................................................................. 372
17.2.1
.......................................................................................................
SCAPS USC cards 372
17.2.2
.......................................................................................................
SCANLAB RTC cards 375
18....................................................................................................................
Option SAM3D 377
18.2.4
.......................................................................................................
Slicing 383
18.2.5
.......................................................................................................
Hatching 385
18.2.6
.......................................................................................................
Marking 386
18.2.7
.......................................................................................................
Special Sequences 386
18.2.8
.......................................................................................................
Styles for Layers 389
18.2.8.1
................................................................................................
Beam Compensation 390
18.2.8.2
................................................................................................
Handling Up and Downskin 391
18.2.8.3
................................................................................................
Using Num Loops 392
18.3 Client Control
.............................................................................................................. 393
19....................................................................................................................
Client Control Interface 400
19.5.5
.......................................................................................................
Get and set text properties 473
19.5.6
.......................................................................................................
Retrieve entities 474
19.5.7
.......................................................................................................
Motion control 475
19.5.8
.......................................................................................................
Precalculating the mark time 477
19.5.9
.......................................................................................................
Create a beam compensated copy of an entity 478
19.5.10
.......................................................................................................
Create a SAMLight View2D screenshot 478
19.5.11
.......................................................................................................
Create entity 479
19.5.12
.......................................................................................................
Save splitted job file as tiles 480
19.5.13
.......................................................................................................
Deactivating visual updates 481
19.5.14
.......................................................................................................
Mirror entity on Y axis 482
19.5.15
.......................................................................................................
Correct UCF 483
19.5.16
.......................................................................................................
Camera image as background in View 2D 483
19.6 Optimize Performance
.............................................................................................................. 483
19.6.1
.......................................................................................................
Example 1 486
19.6.2
.......................................................................................................
Example 2 487
20....................................................................................................................
How to 489
1 Introduction
1.1 Overview
Welcome to the SAMLight scanner application. This documentation describes the standard scanner
application SAMLight. SAMLight is an application to control scanheads and lasers in order to do marking on
different materials, to do 3D marking, welding, cutting and many more. The user interacts using the graphical
user interface including dialogs and editors. The options Optic3D, SAM3D, Marking On The Fly, Flash, Client
Control Interface, and Multihead marking are also explained. In more detail:
1. Standard SAMLight functionality:
Standard features are marking of objects and entities either created in the SAMLight editor or loaded /
imported using the Load or Import functionality. Standard objects and entities are:
Create / Edit language resource files to adapt the SAMLight GUI to your language
Create custom fonts with the laser font converter
2. Optic3D Marking Functionality:
Load and generate 3D data. The marking focus will be shifted in Z-direction by an additional focal lens. This
can be used for Deep Engraving and marking 3D surfaces. More details will be given in the chapter 'Option
Optic3D'.
when using the button InfoView, because it is not always clear which of the cards is used for this button.
5. Using JobIO select mode:
The JobIO select mode is a kind of half SAMLight plus a half of Remote control. The job that should be
marked is issued via the Input pins of the card. These are the Opto_In bits of the USC cards or the DigiIO
pins of the RTC card. This mode can be enabled when SAMLight is already running or it can be enabled
while in Flash mode. Detailed description will be given in chapter Mark for SAMLight and chapter Option
Flash for the Flash mode.
1.3 Safety
The goods delivered by SCAPS are designed to control a laser scanner system. Laser radiation may effect a
person's health or may otherwise cause damage. Prior to installation and operation compliance with all
relevant laser safety regulations has to be secured. The client shall solely be responsible to strictly comply
with all applicable and relevant safety regulations regarding installation and operation of the system at any
time.
The goods will be delivered without housing. The client shall be solely responsible to strictly comply with all
relevant safety regulations for integration and operation of the goods delivered.
2 Installation
This chapter describes the system requirements to run SAMLight, where to download the SCAPS installer
and how to install SAMLight.
10 - 32/64 (complete support including SecureBoot starts with SAM version 3_6_5_20161230_004 or
3_6_0_20170116_0001)
8 - 32/64
7 - 32/64
Embedded Standard 7 - 32
Vista - 32/64
XP - 32/64 (only up to SAM version 3_6_5_0124_20170907 or 3_6_0_0012_20170714, newer SAM
versions are not supported)
XP Embedded - 32 (only up to version 3_6_5_0124_20170907 or 3_6_0_0012_20170714, newer SAM
versions are not supported)
Windows2000 (only up to version 3_6_5_0124_20170907 or 3_6_0_0012_20170714, newer SAM
versions are not supported)
In order to run SAMLight correctly it is necessary that all current Windows Updates have been
installed. For example:
On Windows 7 x64, KB3033929 must be installed for it to recognize the Jungo driver signature.
On Windows Vista, 7 and 8, KB3118401 must be installed, because of a bug in the universal C
runtime.
These updates can be installed via automatic Windows updates or manually from the provided
links.
In order to avoid unwanted laser emissions or malfunctions during the operation procedure it is
necessary to deactivate the Windows hibernation or any power saving mode.
The hardware requirements are not strictly defined. Depending on the application and to get a reasonable
working speed you need much better components. Minimum requirements for SAMLight are very low:
512 MB HDD
For big job files the following is recommended:
8 GB RAM or more
CPU with high clock rate, because SAMLight only runs on a single core
64bit Windows (allows SAMLight to use up to 4 GB RAM)
SSD or fast HDD
Increased hardware requirements could be necessary for the following applications:
slicing; also more hard disc memory is recommended to buffer the slice data which have to be stored
during the use of SAMLight; faster graphic is required for View3D
recommended
Administrator rights on the PC are necessary for the software installation. If you want to change
the scaps installation path by a new installation, please uninstall the old version before completely.
If necessary, make a backup of your scaps system folder, job and correction files before. It is also
recommended to make a backup of these files after successful hard- and software setup.
The setup creates an environment variable SCAPS_SAM which is set to be the installation folder, by
default it is C:\scaps\sam2d\.
sc_*.dll and sc_*.ocx files in \WINDOWS\system32\ (for 32bit)
or \Windows\SysWOW64\ (for 64bit).
sam_light.exe in <SCAPS>\
of this file after setup. The file can be found in the folder <SCAPS>\system\.
Configuring SAMLight:
If SAMLight has been installed sucessfully on the PC the next step is to activate the software by connecting
the dongle and / or USC cards. Therefore plug in the dongle in a free USB slot of the PC and / or connect the
USC cards via USB cable. If you use RTC cards you should put them in a PCI slot of the PC ( if not already
done ).
After connecting the hardware to the PC the system may take some time to install the drivers automatically.
If you are not sure that the drivers are installed correctly you can check this with the Windows Device
Manager. If using USC cards there should be the Jungo device present as well as an USC card entry. The
USB dongle is activated if there is a CBUSB entry in the USB-Controller entry. If using a RTC card there
should e an entry RTC... in the entry SCANLAB.
Now start the tool sc_setup.exe. You will be asked to enter the password for the connected dongle.
You can also create a txt file sc_password.txt with the dongle specific password and store this within folder
C:\scaps\sam2d\system. During first start, if the software does not find the sc_#_#.scl file, where #_# is the
full dongle ID, it looks for sc_password.txt and automatically inputs the key stored here.
When using an old password, which consists only of 16 or 24 characters, please leave the text
fields at the end empty.
There is a shortcut for entering the password: First select the password and press Ctrl-C (copy).
Then click with the left mouse button on the first password entering field and press Ctrl-V (paste).
Now press ENTER two times. The password should be entered correctly now.
In the menu Resource you can specify which language you want to use.
sc_light_settings.sam
sc_motion_settings.txt
sc_motion_<MOTION TYPE>_settings.txt (depends on the motion type defined in sc_motion_settings.txt,
refer to Motion_Controller ).
sc_usc_card_ids.txt
sc_usc.cfg
hosts.allow
hosts.deny
sc_resource_sc_<LANGUAGE>.sam; Only required if the language is NOT english.
sc_resource_settings.sam
It is also necessary to copy the correction file - for example "cor_neutral.ucf" - from the old system to the
new one. The path of the correction file is defined in sc_light_settings.sam. Please refer, depending on the
scanner controller card from chapter 3.3.2 to 3.3.8.
3 Hardware Settings
This chapter describes how to set up the different scanner controller cards.
3.1 sc_setup.exe
Now that SAMLight is configured the next step is to configure the scanner controller card(s). This is done by
starting the program sc_setup.exe in <SCAPS>\tools. The window looks like:
by SAMLight.
To setup the scanner controller card(s) click on HardwareSettings. The following Dialog will appear:
Choose the settings file 'sc_light_settings.sam' in the Settings File box and click on Load.
Head Count: Leave '1' if using only one scanner controller card. If you want to use more than one card click
on the drop box button and choose the amount of scan heads you want to use. If using more than one Head
( = Scanner controller card), select the Head number for each head and then assign the proper device using
the Device drop box.
Settings:
Head: Choose the Head for which the driver settings should be edited. The drop down menu is only enabled
if the HeadCount is greater than 1.
Driver Settings: Opens the Driver Settings dialog where you can adjust hardware specific settings.
Invert: Each scanner axis can be inverted separately.
Flip: The X and the Y axis can be flipped, so that the X axis gets the Y coordinates and vice versa.
Field [mm]: The size of the field has to be typed in in mm.
Min: This value can be negative, so that the field can be set up symmetrically to the origin.
Max: This value is computed as Min + Size.
Size: The edge length is Size. The field is always a square.
Working Area [mm]: The Working Area has a rectangular shape. The area is defined by Min and Max. The
Working Area has to be within the Field. Consider rotation too.
Home Position [mm]: If HomeJump is enabled, the scanner goes back to this position after marking.
Gain: The gain values are there to slightly compensate X/Y gain errors to achieve a quadratic field.
Offset [mm]: With the offset values you can slightly compensate X/Y offset errors to achieve the theoretical
midpoint of the scanner field. Global offset errors which have the same deviation in X and Y direction should
be corrected by changing the Field parameters.
Rotation [deg]: The scanner output will be rotated counterclockwise by this angle.
Laser: Type in Type and Ver as advised by SCAPS.
Z-Axis [mm]: This option is only for Optic3D.
Z Home Position [mm]: If HomeJump is enabled, the scanner goes back to this position after marking.
Z Offset [mm]: Adds an offset to all Z values.
USC cards: XY coordinates are not compensated, like Pen Defocus.
RTC cards: XY coordinates are compensated, unlike Pen Defocus.
Analog A 37-pin connector 9-pin SUB-D laser connector (VB3) 9-pin SUB-D laser connector (VB3)
jumper is set accordingly, see RTC3 jumper is set accordingly, see RTC4
installation manual installation manual
Analog B 37-pin connector 9-pin SUB-D laser connector (VB3) 9-pin SUB-D laser connector (VB3)
jumper is set accordingly, see RTC3 jumper is set accordingly, see RTC4
installation manual installation manual
8 Bit Output 37-pin connector LASER extension connector LASER extension connector
L2 pin 5
L3 pin 7
L4 pin 9
set accordingly, see RTC3 installation accordingly, see RTC4 installation manual
manual
Q-Switch / 37-pin connector 9-pin SUB-D laser connector (VB3) 9-pin SUB-D laser connector (VB3)
Lasermodul
LaserGate 37-pin connector 9-pin SUB-D laser connector (VB3) 9-pin SUB-D laser connector (VB3)
Start
Stop
For proper I/O handling, use the For proper I/O handling, use the SCAPS Marking
SCAPS Marking Active signal Active signal instead of the RTC busyout signal.
instead of the RTC busyout
signal.
Ext. Trigger 15-pin SUB-D laser connector 9-pin SUB-D laser connector
Start
Stop
Marking in progress
CorrectionFile: Click on the Browse button to select the correct correction file for this card.
MarkingOnTheFly: Requires the MarkingOnTheFly SAMLight option. MOTF related parameters are
described in chapter Card Specific: USC-1.
Test Laserports:
DAC A/B: Here you can test the Digital Output A/B. This can be observed with a DB-37 Diagnostic
Board attached to the USC-1 card. The minimum value for the digital output is 0, the maximum is 255.
Value is also set after reboot (if stored) or with the start of SAMLight.
8 Bit LP: Example: If 5 is entered and ApplyNow is pressed, the first and the third bit of the digital port
are high.
Test IO: The IO-Port is a 6-bit port. For the USC-1 scanner card the first output bit is predefined for marking
in progress. The first input bit is predefined for external start, the second for stop.
Mode: Here you can choose the type of the laser (YAG, CO2, LEE, IPG ).
XY2: Defines that the scanner driver signals are standard XY2-100
ParaDel. [ms]: This field is only available for Lasermodes 588-1 and 588-2. The value causes the
software to wait after a pulse width change had been sent to the interface. The unit of the entered value
is [µs].
Make sure that the 'XY2' check box is checked if not mentioned differently.
Q-Switch after FPK: Sets Q-Switch after the first pulse killer.
Laserport: Defines the port that sends the power signal for the laser (8 Bit LP, DAC A, DAC B).
Invert: Here the laser power value can be inverted. Note: In case of 8 Bit LP this checkbox does not
invert the bits.
Ramp: Here you can define a velocity to increase or decrease the power of the laser port.
StandBy:
Enable: Globally enables standby mode.
Freq.: Q-Switch frequency of the laser pulses.
Length: Q-Switch length in µs.
AlwaysActive: Standby mode is also used when the laser signal is on.
The settings are done after leaving the global dialog Settings. Standby Settings for pens overwrite these
settings if enabled for a pen as soon as this pen is used.
Optimize:
PolyDelay: If this is selected the length of the polygon delay gets varied depending on the angle
between two successive vectors.
Pixel Grayscale:
PixelAM: Enables Amplitude Modulation.
PixelPWM: Enables Pulse Width Modulation. For more details see chapter Pulse Modulation.
Laserport: If checked the selected Laserport gets used for the output of PixelAM, else port DAC B is
taken.
Correction:
Settings...: Click this button to open the Correction File Dialog for the USC-2 card. See chapter USC-
2 correction settings.
Marking On The Fly (MOTF): Requires the MarkingOnTheFly SAMLight option.
Settings...: See chapter Card Specific: USC-2.
Enable: Check this to enable MOTF.
Analog In:
Settings...: There an Analog Input signal can be used that affects the scanner position. See chapter
Analog In.
Enable: Check this to enable Analog In.
Test Laserports:
DAC A/B: Here you can test the Digital Output A/B. This can be observed with a DB-37 Diagnostic
Board attached to the USC-2 card. The minimum value for the digital output is 0, the maximum is 4095.
Value is also set after reboot (if stored) or with the start of SAMLight.
8 Bit LP: Here you can test the 8 bit laserport by entering a value from 0 to 255. This can be observed
with a DB-37 Diagnostic Board connected to the USC-2 card.
Test IO:
OptoOut/In: Here you can test if the bits of OptoOut and OptoIn can be set correctly.
ExtOut/In: Here you can test the additional IO bits. These IOs can be used for JobSelection Mode or to
control external devices.
Stepper:
Out/In: If connected test the IOs of a stepper motor.
Mode: Here you can choose the type of the laser (YAG, CO2, LEE, IPG ).
Q-Switch after FPK: Sets the Q-Switch after the first pulse killer.
ParaDel. [ms]: This field is only available for Lasermodes 588-1 and 588-2. The value causes the
software to wait after a pulse width change had been sent to the interface. The unit of the entered value
is [µs].
Invert: Laser Gate, Laser A, Laser B: Here the laser signals can be set to be active low or active high.
For security reasons the USC-2 Laser signals can only be changed with <SCAPS>\tools
SAMLight.
Laserport: Defines the port that sends the power signal for the laser (8 Bit LP, DAC A, DAC B).
Invert: Shows the status of the Laserport. Just for "LEE" Laser Mode the 8 Bit LP is inverted.
Combine with LaserGate: If DAC A or DAC B is chosen under Laserport it is possible to turn off the
laser power signal with the LaserGate. If LaserGate is going down DAC A or DAC B will also go down to
0. If the checkbox Set DAC B is activated the DAC A will not go to 0 when LaserGate is going down but
it will be set to the value that is defined under .
Ramp: Defines the velocity of the increasing or decreasing of the power of the laser port.
StandBy:
Enable: Globally enables standby mode.
Freq.: Q-Switch frequency of the laser pulses.
Length: Q-Switch length in µs.
AlwaysActive: Standby mode is also used when the laser signal is on.
Optimize:
PolyDelay: If this is selected the length of the polygon delay gets varied depending on the angle
between two successive vectors.
Pixel Grayscale:
PixelAM: Enables Amplitude Modulation.
PixelPWM: Enables Pulse Width Modulation. For more details see chapter Pulse Modulation.
Laserport: If checked the selected Laserport gets used for the output of PixelAM, else port DAC B is
taken.
Save Trail File: Saves the USC-2 trail file to <SCAPS>\intermed\. The file name corresponds to
sc_usc2_trail_head_x.txt, where x stands for the head number.
Store: Stores the settings to the USC-2 EPCS (this is necessary for stand-alone operation). Make sure that
the settings fit to the laser and other machinery. The settings will be loaded during powering on the card.
Offset: Define an offset of the marking result that is calculated on the scanner card and thus a "Galvo
Coordinates out of range" errror will not be shown if the translated entity extends to the outside of the
working area.
Gain: Define a Gain for the marking result that is calculated on the scanner card and thus a "Galvo
Coordinates out of range" errror will not be shown if the scaled entity extends to the outside of the working
area.
Rotation: Enter a rotation angle here. Rotation center will be the middle point of the working area. Please
remind that this rotation is calculated in the scanner card just one step before marking output and thus a
"Galvo Coordinates out of range" errror will not be shown if the rotated entity extends to the outside of the
working area.
Z-Correction: If enabled and clicking on Settings... the Z Correction Table Dialog will be opened.
The Offset, Gain and Rotation functions could be interesting if you have several Jobs on the Flash
of the USC-2 card and then if you want to set an Offset, Gain or Rotation for all these jobs. Since
the calculation is done on the card, the parameters would be applied to all jobs. If you would use
the functions from the Optic dialog you would have to change the parameters for each job and
manually and reload them into the Flash which would be much more effort.
3.3.3.2 Analog In
This dialog offers the possibility to set an offset of scanner position in x and y direction by putting a voltage
on pin AnalogIn 0 (AI 0) - Channel 0 - and pin AnalogIn 1(AI 1) - Channel 1.
Value: Value shows the voltage value been placed on pin Analog In.
Center: In this checkbox you can define a voltage value with which the Offset is 0 mm.
Gain: In this checkbox you define the width of offset per Volt. Positive and negative values are valid.
Depending on the sign, the direction of the offset is adapted.
Example: set Center = 5 V, Gain = 2 mm/V for Offset X, when you place 6 V on pin AI 0, the scanner gets an
offset of 2 mm in x direction. For Center = 5 V, Gain = - 2 mm/V, the scanner gets an offset of - 2 mm in x
direction when you place 6 V on pin AI 0.
Correction:
Settings...: Click this button to open the Correction File Dialog for the USC-3 card. See chapter USC-
3 correction settings.
Marking On The Fly (MOTF): Requires the MarkingOnTheFly SAMLight option.
Settings...: See chapter Card Specific: USC-3.
Enable: Check this to enable MOTF.
Analog In:
Settings...: There an Analog Input signal can be used that affects the scanner position. See chapter
Analog In.
Enable: Check this to enable Analog In.
RS232:
Use as Output (disables FCI): Activates RS232 as Output for controlling laser and motion controller,
therefore Flash Control Interface (FCI) to send Flash commands by RS232 is disabled.
Test Laserports:
DAC A/B: Here you can test the Digital Output A/B. This can be observed with a DB-37 Diagnostic
Board attached to the USC-3 card. The minimum value for the digital output is 0, the maximum is 4095.
Value is also set after reboot (if stored) or with the start of SAMLight.
8 Bit LP: Here you can test the 8 bit laserport by entering a value from 0 to 255. This can be observed
with a DB-37 Diagnostic Board connected to the USC-3 card.
Test IO:
OptoOut/In: Here you can test if the bits of OptoOut and OptoIn can be set correctly.
ExtOut/In: Here you can test the additional IO bits. These IOs can be used for JobSelection Mode or to
control external devices.
Stepper:
Out/In: If connected test the IOs of a stepper motor.
Mode: Here you can choose the type of the laser (YAG, CO2, LEE, IPG ).
Q-Switch after FPK: Sets the Q-Switch after the first pulse killer.
ParaDel. [ms]: This field is only available for Lasermodes 588-1 and 588-2. The value causes the
software to wait after a pulse width change had been sent to the interface. The unit of the entered value
is [µs].
Invert: Laser Gate, Laser A, Laser B: Here the laser signals can be set to be active low or active high.
For security reasons the USC-3 Laser signals can only be changed with <SCAPS>\tools
SAMLight.
Laserport: Defines the port that sends the power signal for the laser (8 Bit LP, DAC A, DAC B).
Invert: Shows the status of the Laserport. Just for "LEE" Laser Mode the 8 Bit LP is inverted.
Combine with LaserGate: If DAC A or DAC B is chosen under Laserport it is possible to turn off the
laser power signal with the LaserGate. If LaserGate is going down DAC A or DAC B will also go down to
0. If the checkbox Set DAC B is activated the DAC A will not go to 0 when LaserGate is going down but
it will be set to the value that is defined under .
Ramp: Defines the velocity of the increasing or decreasing of the power of the laser port.
StandBy:
Enable: Globally enables standby mode.
Freq.: Q-Switch frequency of the laser pulses.
Length: Q-Switch length in µs.
AlwaysActive: Standby mode is also used when the laser signal is on.
Optimize:
PolyDelay: If this is selected the length of the polygon delay gets varied depending on the angle
between two successive vectors.
Pixel Grayscale:
PixelAM: Enables Amplitude Modulation.
PixelPWM: Enables Pulse Width Modulation. For more details see chapter Pulse Modulation.
Laserport: If checked the selected Laserport gets used for the output of PixelAM, else port DAC B is
taken.
Save Trail File: Saves the USC-3 trail file to <SCAPS>\intermed\. The file name corresponds to
sc_usc3_trail_head_x.txt, where x stands for the head number.
Store: Stores the settings to the USC-3 EPCS (this is necessary for stand-alone operation). Make sure that
the settings fit to the laser and other machinery. The settings will be loaded during powering on the card.
Offset: Define an offset of the marking result that is calculated on the scanner card and thus a "Galvo
Coordinates out of range" errror will not be shown if the translated entity extends to the outside of the
working area.
Gain: Define a Gain for the marking result that is calculated on the scanner card and thus a "Galvo
Coordinates out of range" errror will not be shown if the scaled entity extends to the outside of the working
area.
Rotation: Enter a rotation angle here. Rotation center will be the middle point of the working area. Please
remind that this rotation is calculated in the scanner card just one step before marking output and thus a
"Galvo Coordinates out of range" errror will not be shown if the rotated entity extends to the outside of the
working area.
Z-Correction: If enabled and clicking on Settings... the Z Correction Table Dialog will be opened.
The Offset, Gain and Rotation functions could be interesting if you have several Jobs on the Flash
of the USC-3 card and then if you want to set an Offset, Gain or Rotation for all these jobs. Since
the calculation is done on the card, the parameters would be applied to all jobs. If you would use
the functions from the Optic dialog you would have to change the parameters for each job and
manually and reload them into the Flash which would be much more effort.
3.3.4.2 Analog In
This dialog offers the possibility to set an offset of scanner position in x and y direction by putting a voltage
on pin AnalogIn 0 (AI 0) - Channel 0 - and pin AnalogIn 1(AI 1) - Channel 1.
Value: Value shows the voltage value been placed on pin Analog In.
Center: In this checkbox you can define a voltage value with which the Offset is 0 mm.
Gain: In this checkbox you define the width of offset per Volt. Positive and negative values are valid.
Depending on the sign, the direction of the offset is adapted.
Example: set Center = 5 V, Gain = 2 mm/V for Offset X, when you place 6 V on pin AI 0, the scanner gets an
offset of 2 mm in x direction. For Center = 5 V, Gain = - 2 mm/V, the scanner gets an offset of - 2 mm in x
direction when you place 6 V on pin AI 0.
Files:
Program: Specifies the program file. This file is delivered together with the scanner card. The standard
extension is *.hex. Click on the Browse button to make a search on the files location or type in the file
name into the edit window.
RTC DLL: Specifies the *.dll file. This file is delivered together with the scanner controller card.
Using a 64-bit operating system you should nevertheless load a 32-bit RTC DLL, not the 64-bit
one.
Correction: Specifies the location of the correction file. This file is delivered together with the scanner card.
The standard extension is *.ctb. Click on Browse button to make a search on the files location or type in the
file name into the edit window. It is possible to load two different correction files. This is mainly used in
connection with the secondary head feature of the RTC3.
Offset, Gain, Rotation: Allow a global adjustment for each correction file. These features are mainly used to
adjust the fields of both heads when a secondary head is used. See also: Chapter Optic Settings Dialog.
3D Ext: Opens a dialog, where a Z-Table can be defined. For detailed information have a look at the RTC3
manual. See chapter Optic3D for RTC cards.
Laser: Globally enables or disables laser output.
Mark on Fly: Requires the MarkingOnTheFly RTC option. MOTF related parameters are described in
chapter Card Specific: RTC cards.
Settings are done after leaving the global dialog Settings. Standby Settings for pens will overwrite
these settings if enabled for a pen as soon as this pen is used.
ScanHead cable length > 12 Meter: Put in the cable length of each head if one cable is longer than 12m.
IO:
Lamp/8-bit: Sets the 8 bit or one of the digital outputs of the RTC Card during start up (as selected
under Laserport). The 8 bit Output corresponds to the write_8bit_port command of the RTC.
16 Bit Out: Sets the 16 bit output of the RTC Card during start up.
Figure 15: If LEE Mode is selected, the eighth bit is selectable separately
Files:
Program: Specifies the program file. This file is delivered together with the scanner card. The standard
extension is *.hex. Click on the Browse button to make a search on the files location or type in the file
name into the edit window.
RTC DLL: Specifies the *.dll file. This file is delivered together with the scanner controller card.
Using a 64-bit operating system you should nevertheless load a 32-bit RTC DLL, not the 64-bit
one.
Correction: Specifies the location of the correction file. This file is delivered together with the scanner card.
The standard extension is *.ctb. Click on Browse button to make a search on the files location or type in the
file name into the edit window. It is possible to load two different correction files. This is mainly used in
connection with the secondary head feature of the RTC4.
Offset, Gain, Rotation: Allow a global adjustment for each correction file. These features are mainly used to
adjust the fields of both heads when a secondary head is used. See also: Chapter Optic Settings Dialog.
3D Ext: Opens a dialog, where a Z-Table can be defined. For detailed information have a look at the RTC4
manual. See chapter Optic3D for RTC cards.
Laser: Globally enables or disables laser output.
Mark on Fly: Requires the MarkingOnTheFly RTC option. MOTF related parameters are described in
chapter Card Specific: RTC cards.
Settings are done after leaving the global dialog Settings. Standby Settings for pens will overwrite
these settings if enabled for a pen as soon as this pen is used. Also please remind that after
marking has finished the settings from the Home Jump Style Pen are used.
EdgeLevel: The variable Polygon Delay gets very high if the angle of two successive vectors is close to 180°
. This can lead to burn in effects. To prevent this an EdgeLevel value can be defined. If the Polygon Delay
between two mark commands is greater than this value the RTC4 card switches off the laser after the first
command and after the laser-off delay is over. Then a new polygon marking with the second vector will be
started.
Var Jump Delay: Normally after a jump command a constant jump delay is inserted. But for very small
jumps it is not necessary to have such a long jump delay. The jump delay can be reduced without loosing
marking quality. The miminum delay is the delay for a jump of length 0.
IO:
Lamp/8-bit: Sets the 8 bit or one of the digital outputs of the RTC Card during start up (as selected
under Laserport). The 8 bit Output corresponds to the write_8bit_port command of the RTC.
16 BIT Out: Sets the 16 bit output of the RTC Card during start up.
Figure 17: If LEE Mode is selected, the eighth bit is selectable separately
Files:
Program: Specifies the path to the RTC5 Files folder, delivered together with the scanner controller card
driver.
RTC DLL: Specifies the path to the RTC5DLL.dll file. This file is in the RTC5 Files folder, delivered
together with the scanner controller card driver.
Using a 64 bit operating system you should nevertheless load a 32 bit RTC5DLL.dll, not the 64 bit
RTC5DLLx64.dll.
Correction: Specifies the location of the correction file. This file is delivered together with the scanner card.
The extension is *.ctb or *.ct5. Click on Browse button to make a search on the files location or type in the
file name into the edit window. It is possible to load two different correction files. This is mainly used in
connection with the secondary head feature of the RTC5.
Offset, Gain, Rotation: Allow a global adjustment for each correction file. These features are mainly used to
adjust the fields of both heads when a secondary head is used. See also: Chapter Optic Settings Dialog.
For the RTC5 card the X and Y Gain values have to be equal.
3D Ext: Opens a dialog, where a Z-Table can be defined. For detailed information have a look at the RTC5
manual. See chapter Optic3D for RTC cards.
Laser: Globally enables or disables laser output.
Mark on Fly: Requires the MarkingOnTheFly RTC option. MOTF related parameters are described in
chapter Card Specific: RTC cards.
Settings are done after leaving the global dialog Settings. Standby Settings for pens will overwrite
these settings if enabled for a pen as soon as this pen is used.
EdgeLevel: The variable Polygon Delay gets very high if the angle of two successive vectors is close to 180°
. This can lead to burn in effects. To prevent this an EdgeLevel value can be defined. If the Polygon Delay
between two mark commands is greater than this value the RTC5 card switches off the laser after the first
command and after the laser-off delay is over. Then a new polygon marking with the second vector will be
started.
Var Jump Delay: Normally after a jump command a constant jump delay is inserted. But for very small
jumps it is not necessary to have such a long jump delay. The jump delay can be reduced without loosing
marking quality. The miminum delay is the delay for a jump of length 0.
IO:
Lamp/8-bit: Sets the 8 bit or one of the digital outputs of the RTC Card during start up (as selected
under Laserport). The 8 bit Output corresponds to the write_8bit_port command of the RTC.
16 BIT Out: Sets the 16 bit output of the RTC Card during start up.
Figure 19: If LEE Mode is selected, the eighth bit is selectable separately
Position Control: Activates the position-dependent laser control, which performs an automatic position-
dependent correction. For more information please look at RTC5 manual at subsection Position-Dependent
Laser Control.
Speed Control: Activates the speed-dependent laser control, which performs an automatic speed-
dependent correction. For more information please look at RTC5 manual at subsection Speed-Dependent
Laser Control.
Files:
Program: Specifies the path to the RTC6 Files folder, delivered together with the scanner controller card
driver.
RTC DLL: Specifies the path to the RTC6DLL.dll file. This file is in the RTC6 Files folder, delivered
together with the scanner controller card driver.
Using a 64 bit operating system you should nevertheless load a 32 bit RTC6DLL.dll, not the 64 bit
RTC6DLLx64.dll.
Correction: Specifies the location of the correction file. This file is delivered together with the scanner card.
The extension is *.ctb or *.ct5. Click on Browse button to make a search on the files location or type in the
file name into the edit window. It is possible to load two different correction files. This is mainly used in
connection with the secondary head feature of the RTC6.
Offset, Gain, Rotation: Allow a global adjustment for each correction file. These features are mainly used to
adjust the fields of both heads when a secondary head is used. See also: Chapter Optic Settings Dialog.
For the RTC6 card the X and Y Gain values have to be equal.
3D Ext: Opens a dialog, where a Z-Table can be defined. For detailed information have a look at the RTC6
manual. See chapter Optic3D for RTC cards.
Laser: Globally enables or disables laser output.
Mark on Fly: Requires the MarkingOnTheFly RTC option. MOTF related parameters are described in
chapter Card Specific: RTC cards.
Settings are done after leaving the global dialog Settings. Standby Settings for pens will overwrite
these settings if enabled for a pen as soon as this pen is used.
EdgeLevel: The variable Polygon Delay gets very high if the angle of two successive vectors is close to 180°
. This can lead to burn in effects. To prevent this an EdgeLevel value can be defined. If the Polygon Delay
between two mark commands is greater than this value the RTC6 card switches off the laser after the first
command and after the laser-off delay is over. Then a new polygon marking with the second vector will be
started.
Var Jump Delay: Normally after a jump command a constant jump delay is inserted. But for very small
jumps it is not necessary to have such a long jump delay. The jump delay can be reduced without loosing
marking quality. The miminum delay is the delay for a jump of length 0.
IO:
Lamp/8-bit: Sets the 8 bit or one of the digital outputs of the RTC Card during start up (as selected
under Laserport). The 8 bit Output corresponds to the write_8bit_port command of the RTC.
16 BIT Out: Sets the 16 bit output of the RTC Card during start up.
Figure 22: If LEE Mode is selected, the eighth bit is selectable separately
VarPolyDelay: If checked the length of the polygon delay gets varied depending on the angle between
two successive vectors.
MoF: Shows whether the scanner card is able to do MarkingOnTheFly or not.
z-Axis: Indicates whether the card is able to do 3D Marking or not.
PixelDAC: Enables Amplitude Modulation.
PixelTime: Enables Pulse Width Modulation. For more details see chapter Pulse Modulation.
InvertPixel: Inverts bitmap pixels.
Pixel Mode 0: See chapter Pixelmode.
InvertLaserOn: Inverts the LaserOn status bit ( 15-pin SUB-D Laser connector ).
InvertLaser1/2: Inverts the Laser1 and Laser2 status bits ( 15-pin SUB-D Laser connector ).
AutoCal: Displays the ScAutoCalib button within the functionality object toolbar to generate AutoCalib
control objects in the entity list, see section AutoCal Control Object.
DoNotCutOffPulsesOnLaserOn: The final pulse is fully executed despite completion of the LASERON
signal. Please consult RTC5 manual for Ctrl Command set_laser_control at Bit #0 Pulse Switch Setting.
Enable Output Synchronization: Synchronize scanner signals with a freely running laser. Please read
RTC5 manual section 7.4.10 for detailed information.
Use Excelliscan ScanAhead: Activates the SCANahead control functionality of an excelliSCAN scan
head. Important: the excelliSCAN must be powered before starting SAMLight. Additional RTC6
SCANahead parameters can be set at Pen Misc Settings.
Scanahead delay shift LaserOn: Sets the time delay for the LaserOn signal in µs. Please consult
RTC6+excelliSCAN manual for Ctrl Command set_scanahead_laser_delay_shift for more information.
Scanahead delay shift LaserOff: Sets the time delay for the LaserOff signal in µs. Please consult
RTC6+excelliSCAN manual for Ctrl Command set_scanahead_laser_delay_shift for more information.
Scanahead time lag Z: Sets the time delay for the z time lag compensation in µs. Please consult
RTC6+excelliSCAN manual for Ctrl Command set_timelag_compensation for more information.
Laserport: Defines the port that sends the power signal for the laser if the laser is not a CO2 Laser. For a
CO2 Laser the power signal is done by modulating the Laser A signal.
Invert: Here the laser power value can be inverted. Note: In case of 8-bit this checkbox does not invert
the bits.
Auto Laser Control...: By clicking this button a new window opens where a position or speed control of the
laser can be defined. For more details pleas refer to the RTC5 manual. See chapter Auto Laser Control.
Position Control: Activates the position-dependent laser control, which performs an automatic position-
dependent correction. For more information please look at RTC5 manual at subsection Position-Dependent
Laser Control.
Speed Control: Activates the speed-dependent laser control, which performs an automatic speed-
dependent correction. For more information please look at RTC5 manual at subsection Speed-Dependent
Laser Control.
Files:
Program: Specifies the program file. This file is delivered together with the scanner card. The standard
extension is *.hex. Click on the Browse button to make a search on the files location or type in the file
name into the edit window.
RTC DLL: Specifies the *.dll file. This file is delivered together with the scanner controller card.
Correction: Specifies the location of the correction file. This file is delivered together with the scanner card.
The standard extension is *.ctb. Click on Browse button to make a search on the files location or type in the
file name into the edit window. It is possible to load two different correction files. This is mainly used in
connection with the secondary head feature of the RTCScanAlone.
Offset, Gain, Rotation: Allow a global adjustment for each correction file. These features are mainly used to
adjust the fields of both heads when a secondary head is used. See also: Chapter Optic Settings Dialog.
3D Ext: Opens a dialog, where a Z-Table can be defined. For detailed information have a look at the RTC
ScanAlone manual.
Laser: Globally enables or disables laser output.
Mark on Fly: Requires the MarkingOnTheFly SAMLight option.
Settings...: Opens the Marking On The Fly Dialog. For an explanation how to do settings for mark on fly
see chapter How to Mark on the Fly.
Enable: Check this to enable Marking on the fly.
Settings are done after leaving the global dialog Settings. Standby Settings for pens will overwrite
these settings if enabled for a pen as soon as this pen is used.
ScanHead cable length > 12 Meter: Put in the cable length of each head if one cable is longer than 12m.
IO: Sets the 8 Bit or one of the digital outputs of the RTC Card during start up (as selected under Laserport).
The 8 Bit Output corresponds to the write_8bit_port command of the RTC.
Lamp/8-bit: Sets the 8 bit or one of the digital outputs of the RTC Card during start up (as selected
under Laserport). The 8 bit Output corresponds to the write_8bit_port command of the RTC.
16 BIT Out: Sets the 16 bit output of the RTC Card during start up.
Figure 25: If LEE Mode is selected, the eighth bit is selectable separately
Direct Motion Control: In the following all features of the Direct Motion Control are described. Depending
on the capabilities of the used motion controller some of the functions may be not available.
Move:
Axis: Movement distance and speed
definitions for the axis. Each axis
requires one control card.
Rel: If checked a relative movement is
performed instead of an absolute
movement.
Go: Moves all axes to the defined values
above.
Stop: Stops the movement. In some
cases you can loose the current position!
Then a homing is necessary to re-
calibrate your axes.
Update: By pressing this button the
actual position is updated. This might be
necessary if manual motions are done.
The Update Button is not available for
stepper motor controllers.
Jog...: Opens the Jog Dialog.
Home / Shift: Opens direct motion control
Figure 26: Direct motion control dialog
Home / Shift dialog. Homing of a single axis
is available by right-clicking on this button
and then selecting the desired axis.
String Mode: A RS-232 string command can
be send to the motion controller directly on
Send.
Jog: Clicking on this button opens a dialog where the motor can be moved in both directions by
"Jog Stepwidth" (++) or by "Jog Stepwidth / 10" (+). The default jog stepwidth value can be set in
. If the dialog is closed and opened again, this value is restored to the value that
has been set in the menu. For each axis an independent speed can be used.
Home: When leaving the Home / Shift Dialog with OK, all axes with enabled Home checkbox will start the
homing procedure.
Shift: When the direct motion control Home / Shift dialog is opened, the current Shift values are shown.
When leaving the Home / Shift dialog with OK, the shift values will be applied. To reset the current shift of an
axis, set the shift value to 0. The Home and Shift functionality can be combined, first the homing procedure is
performed, then the shifts will be applied.
Use SAMLight Version later than May 2013 and use related firmware on the
USC-2 card
How to create the The file 'sc_motion_stepper_settings.txt' is a plain text file that contains
settings file different configuration parameters.
A line which begins with a # sign is interpreted as a comment and will be
ignored.
All parameters have to start exactly at the beginning of a line.
Global parameters have to be specified only once at the head of the settings
file.
Axis-specific parameters have to be defined for all axes separately.
The axis-specific (and the optional) parameters have to be arranged in one
block of parameters per axis. Each block begins with the parameter 'axis'.
The optional parameters do not have to be specified in the case you do not
want to use them.
A parameter is defined by typing <parameter>=<value>, parameter and values
are described below,
e.g. 'axis=0' defines the parameter 'axis' with the value '0'
To save the stepper settings on the USC-2 card (if you want to use it in Flash-
mode) you need to click the 'Store' button in the
Global parameters (type 14): These parameters have to be defined once at the head of the
settings file.
Axis parameters (type 14): All of the following parameters have to be defined for each axis after
the global parameters in the settings file. Each of these axes can be configured differently.
incperrot Converts degrees into steps for ANGLE mode. Unit: steps/360°
This value defines how many increments are needed for a whole
rotation. 'factor' has to be equal to (1/360)*'incperrot'. This
parameter is only used in ANGLE mode.
stepIO Sets output bit of the scanner controller card for the step signal.
Value: refer to Stepper I/O parameters
dirIO Sets output bit of the scanner controller card for the direction
signal.
Value: refer to Stepper I/O parameters
dirvalue Sets the polarity of the 'dirIO' signal for positive movement.
Value Function
0 low active
1 high active
refIO Sets input bit of the scanner controller card for the reference
signal.
Value: refer to Stepper I/O parameters
Since all axes move successively the 'refIO' bit can be the same
for all axes. Although the parameter 'refIO' has the same value
for multiple axes it still has to be defined for every axis.
refspeed2 Sets the speed while leaving the reference Unit: steps/s
switch.
If refspeed2 is '-1', 'refspeed/4' is used. When the reference
signal is not released the switch leaving movement is stopped
after 100 mm (or °). To get the 'refspeed2' in steps/s like it is
required here the value in mm/s (or °/s) has to be multiplied by
the 'factor'.
Optional axis parameters (type 14): All of the following optional parameters can be defined for
each axis. Each axis can be configured differently. If a parameter is not specified the corresponding
feature will not be used.
RefOnlyForHome Sets movement behavior for this axis when reference switch is
active during a normal movement.
Value Function
0 Motion stops if reference switch is active.
1 Motion does not stop if reference switch is
active (for normal movements).
The behavior of the homing process will not change due to this
parameter. The default value (if not defined) for this parameter is
'0'.
Example sc_motion_stepper_settings.txt file for 1 straight and 1 rotational axis for 'Type=14':
# Global parameters:
Debug=0
DisableHomingDuringStartUp=1
# Z-axis parameters:
axis=0
dname=Z
mode=POSITION
factor=200.0
llimit=-400000
hlimit=400000
hslimit=6000
defspeed=20.0
accel=2000
decel=2000
accStartSpeed=5.0
decStopSpeed=5.0
stepIO=216
dirIO=217
dirvalue=0
refIO=16
refvalue=1
refmode=0
refspeed=2000
refspeed2=500
refpos=0.0
RefOnlyForHome=1
# R-axis parameters:
axis=1
dname=R
mode=ANGLE
factor=10.0
incperrot=3600
llimit=-1E13
hlimit=1E13
hslimit=6000
defspeed=400.0
accel=2000
decel=2000
accStartSpeed=5.0
decStopSpeed=5.0
stepIO=218
dirIO=219
dirvalue=0
refIO=17
refvalue=1
refmode=0
refspeed=2000
refspeed2=500
refpos=0.0
RefOnlyForHome=1
(default).
GCL G91 Switch to relative mode. G1 commands are interpreted relative to previous position.
GCL G28?1 Home axis ?, where axis is X, Y, Z, A, B, C. Only one axis at a time.
GCL Q???? Get current axis position. ???? can be 7032-7037, for axis X, Y, Z, A, B, C respectively.
Table 3: Stepper GCode commands for a USC-2 in Flash mode
Necessary steps for changing from stepper type 8 to stepper type 14:
How to create the The file 'sc_motion_stepper_settings.txt' is a plain text file that contains
settings file different configuration parameters.
A line which begins with a # sign is interpreted as a comment and will be
ignored.
All parameters have to start exactly at the beginning of a line.
Global parameters have to be specified only once at the head of the settings
file.
Axis-specific parameters have to be defined for all axes separately.
The axis-specific (and the optional) parameters have to be arranged in one
block of parameters per axis. Each block begins with the parameter 'axis'.
The optional parameters do not have to be specified in the case you do not
want to use them.
A parameter gets defined by typing <parameter>=<value>, parameter and
values are described below,
e.g. 'axis=0' defines the parameter 'axis' with the value '0'
Global parameters (type 8): These parameters have to be defined once at the head of the settings
file.
Axis parameters (type 8): All of the following parameters has to be defined for each axis after the
global parameters in the settings file. Each of these axes can be configured differently.
incperrot Converts degrees into steps for ANGLE mode. Unit: steps/360°
This value defines how many increments are needed for a whole
rotation. 'factor' and 'sfactor' have to be equal to
(1/360)*'incperrot'. This parameter is only used in ANGLE mode.
accel Sets increase of speed (in steps per second) Unit: steps/s
per step. per step
A value of '-1' or '0' disables acceleration. In this case the step
frequency corresponds to the applied speed in SAMLight. This is
not recommended because of possible hardware damage and
miscalibration. Please consider the unit which leads to an
exponential acceleration.
decel Sets decrease of speed (in steps per second) Unit: steps/s
per step. per step
A value of '-1' or '0' disables deceleration. In this case the step
frequency just stops when the in SAMLight applied position has
been reached. This is not recommended because of possible
hardware damage and miscalibration. Please use only positive
values for this parameter. Please consider the unit which leads to
an exponential deceleration.
stepIO Sets output bit of the scanner controller card for the step signal.
Value: refer to Stepper I/O parameters
dirIO Sets output bit of the scanner controller card for the direction
signal.
Value: refer to Stepper I/O parameters
Since all axes move successively the 'dirIO' bit can be the same
for all axes. Although the parameter 'dirIO' has the same value
for multiple axes it still has to be defined for every axis.
dirvalue Sets the polarity of the 'dirIO' signal for positive movement.
Value Function
0 low active
1 high active
refIO Sets input bit of the scanner controller card for the reference
signal.
Value Function
Stepper Default homing, 'refmode=(1..6)': In type 8
I/O reference movements are software controlled
parameters and (due to the limitations of the pc) the
maximum speed is much lower and the signal
is noisy (jitter).
1 Fast homing (USC only): If this value is used
(ext. stop) together with 'refvalue=1' and 'refmode=(1 or
4)' the movement to the reference switch is
performed with normal speed. This value is
recommended only if you use just one axis.
20 No homing: Use this value and 'refmode=0' if
no reference switch is used.
refspeed2 Sets the speed while leaving the reference Unit: steps/s
switch.
If refspeed2 is '-1', 'refspeed'/4 is used. To get the 'refspeed2' in
steps/s like it is required here the value in mm/s (or °/s) has to be
multiplied by the 'factor'.
Optional axis parameters (type 8): All of the following optional parameters can be defined for each
axis. Each axis can be configured differently. If no parameter is specified the corresponding feature
will not be used.
SignalAxisMovingStateBitPosition Sets output bit of the scanner controller card for the
'SignalAxisMoving' signal.
Value: refer to Stepper I/O parameters
corr1 0.0 0.0 Correction table instead of parameter 'factor' for POSITION
corr2 500.0 100000.0
mode.
corr3 1000.0 200000.0
corr4 1500.0 300000.0 This parameter is defined without '=' sign in the form <corr#>
corr5 2000.0 400000.0
<mm> <steps>.
<corr#> <mm#> <steps#> This correction table can be used to compensate nonlinearities of
a straight axis. If 'factor' is defined, the correction table is ignored.
Use for corr1 the same step value as for 'llimit' and for corr5 the
same step value as for 'hlimit'.
Example sc_motion_stepper_settings.txt file for 1 straight and 1 rotational axis for 'Type=8':
# Global parameters:
Debug=0
DisableHomingDuringStartUp=1
# Z-axis parameters:
axis=0
dname=Z
mode=POSITION
factor=200.0
sfactor=200.0
llimit=-400000
hlimit=400000
hslimit=6000
defspeed=20.0
accel=50
decel=50
accStartSpeed=5.0
decStopSpeed=5.0
stepIO=1
dirIO=3
dirvalue=0
refIO=2
refvalue=1
refmode=0
refspeed=2000.0
refspeed2=500.0
refpos=0.0
# R-axis parameters:
axis=1
dname=R
mode=ANGLE
factor=10.0
incperrot=3600
sfactor=10.0
llimit=-1E13
hlimit=1E13
hslimit=6000
defspeed=400.0
accel=50
decel=50
accStartSpeed=5.0
decStopSpeed=5.0
stepIO=4
dirIO=5
dirvalue=0
refIO=3
refvalue=1
refmode=0
refspeed=2000.0
refspeed2=500.0
refpos=0.0
Here you can configure the motor like described in the file <SCAPS>\system
\sc_motion_stepper_settings.txt.
Type:
Name: Sets name of axis. Has to be an unique single capital letter for each axis.
Mode: There are two valid axis modes:
'POSITION' - straight axis in [mm]
'ANGLE' - rotational axis in [ °]
Factor:
For 'mode=POSITION': Unit: [steps/mm]
For 'mode=ANGLE' : Unit: [steps/ °], value has to be (1/360°)*'incperrot'
Converts mm (or °) used in SAMLight into steps.
Position limits: in [steps]
These two values define the lower and upper limit of the axis.
These values are read as double to increase the value range: [-1E300, 1E300]
The limits should not contain 'refpos'.
Speeds:
Default speed:
For 'mode=POSITION': Unit: [mm/sec]
For 'mode=ANGLE' : Unit: [ °/sec]
Sets default speed displayed in SAMLight user interface.
Accel. start speed / Decel. stop speed: Unit: [mm/sec]
These two values define the start and stop speed of the motor.
Accel. / Decel.:
Unit: increase of [steps/second] per step, def. value: 50. Please consider the unit which leads to an
exponentially acceleration.
A value of '0' or '-1' disables acceleration /deceleration.
I/Os:
Step output bit: The output bit for the step signal can be chosen here.
Direction output bit: The output bit for the direction signal can be chosen here.
Motion delay before move: Unit: [msec]. Use this parameter to delay the start of the motion.
Homing:
Mode: This mode defines the behavior of homing.
Input pin Stepper settings param Output pin Stepper settings param
Opto-insulated Inputs Opto-insulated Outputs
OptoIn_0 Reserved for trigger start OptoOut_0 Reserved for marking active
Input pin Stepper settings param Output pin Stepper settings param
LP_4 104
LP_5 105
LP_6 106
LP_7 107
Following pins are only available for USC-2
Digital Inputs Digital Outputs
DigiIn_0 6 DigiOut_0 206
DigiIn_1 7 DigiOut_1 207
DigiIn_2 8 DigiOut_2 208
DigiIn_3 9 DigiOut_3 209
DigiIn_4 10 DigiOut_4 210
DigiIn_5 11 DigiOut_5 211
DigiIn_6 12 DigiOut_6 212
DigiIn_7 13 DigiOut_7 213
DigiIn_8 14 DigiOut_8 214
DigiIn_9 15 DigiOut_9 215
Stepper inputs Stepper Outputs
SmIn_0 16 SmOut_0 216
SmIn_1 17 SmOut_1 217
SmIn_2 18 SmOut_2 218
SmOut_3 219
SmOut_4 220
SmOut_5 221
Table 4: Stepper I/O parameters for USC cards
RTC cards:
Input pin Stepper settings param Output pin Stepper settings param
Digital Inputs Digital Outputs
DigiIn_0 0 DigiOut_0 0
DigiIn_1 1 DigiOut_1 1
DigiIn_2 2 DigiOut_2 2
DigiIn_3 3 DigiOut_3 3
DigiIn_4 4 DigiOut_4 4
DigiIn_5 5 DigiOut_5 5
DigiIn_6 6 DigiOut_6 6
DigiIn_7 7 DigiOut_7 7
DigiIn_8 8 DigiOut_8 8
DigiIn_9 9 DigiOut_9 9
DigiIn_10 10 DigiOut_10 10
DigiIn_11 11 DigiOut_11 11
DigiIn_12 12 DigiOut_12 12
DigiIn_13 13 DigiOut_13 13
DigiIn_14 14 DigiOut_14 14
DigiIn_15 15 DigiOut_15 15
Table 5: Stepper I/O parameters for RTC cards
Pressing the Home button in the control motion property page the "G 0" command is sent to
comport.
If Auto Variable Resolution mode is used the speed will be the entered speed divided with the
resolution factor.
Required settings Before SAMLight can communicate and control the MDrive motor you need to
define some parameters directly at your MDrive motor (e.g. via IMS Terminal
or Windows HyperTerminal, refer to 'Hardware settings (type 5)' described
below).
Control all MDrives in IMS Terminal or Windows HyperTerminal before you try
to control them by SAMLight to make sure the settings of the MDrives are
correctly. Use the same settings for the HyperTerminal as for SAMLight
('PortName', 'PortParity' and 'PortBaudRate').
Set 'Type=5' in sc_motion_settings.txt in <SCAPS>\system\
Define sc_motion_mdrive_settings.txt in <SCAPS>\system\ like described
below.
How to create the The file 'sc_motion_mdrive_settings.txt' is a plain text file that contains
settings file different configuration parameters.
A line which begins with a # sign is interpreted as a comment and will be
ignored.
All parameters have to start exactly at the beginning of a line.
Use integers for every parameter value, decimal points will be ignored.
Global parameters have to be specified only once at the head of the settings
file.
Axis-specific parameters have to be defined for all axes separately.
The axis-specific and the optional parameter have to be arranged in one block
of parameters per axis. Each block begins with the parameter 'axis'.
The optional parameters do not have to be specified in the case you do not
want to use them.
A parameter gets defined by typing <parameter>=<value>, parameter and
values are described below,
e.g. 'axis=0' defines the parameter 'axis' with the value '0'
Hardware settings (type 5): These settings have to be defined directly at every MDrive motor.
Connect only one motor for the hardware settings to the COM port and repeat this steps for each
MDrive motor.
Necessary steps for every motor before SAMLight can control MDrive motors.
Before SAMLight can communicate and control the MDrive motor you need to define the following
parameters directly at your MDrive motor (e.g. via IMS Terminal or Windows HyperTerminal). The
actual MDrive commands may vary a bit compared to the commands you find here. For further
information see the MDrive manual.
Suggested MDrive command Function
PR AL Prints all MDrive values:
Echoes all motor parameters. While party mode is disabled no
prefix '?' is used.
DN=? Defines device name:
'?' has to be a single capital character. Use a unique value '?' for
each MDrive motor.
E.g. 'DN=X' (if party mode is disabled)
PY=1 Enables party mode:
Party mode is necessary to address the commands from
SAMLight to the right MDrive motor, even you want to use only
one motor.
If the MDrive is in party mode you need to specify every command with the prefix '?' which
corresponds to the device name. This is necessary to address commands to the right device
because all motors communicate through a single COM port.
?IP Initializes parameters for the '?'-axis:
Discards all temporary changes and applies the stored values of
the MDrive motor.
?EM=2 Disables Echo mode for the '?'-axis:
Suppresses echoing of almost all MDrive commands.
?DE=1 Enable the motor driver for the '?'-axis.
Global parameters (type 5): These parameters have to be defined once at the head of the settings
file.
PortName Defines the serial port used for the MDrive motors.
Value Function
COM# Uses a COM port of the PC where '#' is the
port number (e.g. 'COM1').
USC-1 Uses the RS-232 interface of the USC card at
the 37-pin connector (CH_0). For further
USC-2 information please refer to the corresponding
USC manual.
PortBaudRate Defines the data rate for the COM port. Unit: Bd (bit/s)
The default value that is used by most IMS MDrives is '9600'.
Axis parameters (type 5): All of the following parameters has to be defined for each axis after the
global parameters in the settings file. Each of these axes can be configured differently.
corr1 -1000 -20000000 Correction table converts mm into steps and defines the range of
corr2 -500 -10000000 the axis for POSITION mode.
corr3 0 0
corr4 500 10000000 These five parameters are defined without '=' sign in the form
corr5 1000 20000000 <corr#> <mm#> <steps#>
Non-linear corrections:
This table can be used to compensate non-linearities of a straight
axis by adjusting the values.
incperrot Converts degrees into steps for ANGLE mode. Unit: steps/360°
This value defines how many increments are needed for a whole
rotation.
The default value is 51200 and depends on the MDrive setup
'MS' (microsteps). It can be calculated by 200 * 'MS'.
For POSITION mode this parameter is ignored, the <corr#> table
is used instead.
llimit Sets the lower limit for the axis. Unit: steps
No movement below this limit will be possible. This value is used
for POSITION and ANGLE mode and has to be equal to the
<steps1> value of the corr table.
hlimit Sets the upper limit for the axis. Unit: steps
No movement above this limit will be possible. This value is used
for POSITION and ANGLE mode and has to be equal to the
<steps5> value of the corr table.
Optional axis parameters (type 5): All of the following optional parameters can be defined for each
axis. Each axis can be configured differently. If no parameter is specified the corresponding feature
will not be used.
ival=IP
ival=EM 2
ival=DE
hval=PG 100
hval=VM <speed>
hval=S1 1,0
hval=HM 1
hval=H
hval=P <position>
hval=E
hval=PG
hval=EX 100
Example sc_motion_mdrive_settings.txt file for 1 straight and 1 rotational axis for 'Type=5':
# Global parameters:
PortName=COM1
PortParity=0
PortBaudRate=9600
TimeOut=10
Debug=0
# X-axis parameters:
axis=0
dname=X
mode=POSITION
corr1 -1000 -20000000
corr2 -500 -10000000
corr3 0 0
corr4 500 10000000
corr5 1000 20000000
sfactor=20000
llimit=-20000000
hlimit=20000000
hslimit=500000
defspeed=25
invertDir=0
ival=IP
ival=EM 2
ival=DE 1
hval=P 0
# R-axis parameters:
axis=1
dname=R
mode=ANGLE
incperrot=51200
sfactor=142
hslimit=500000
defspeed=250
invertDir=0
ival=IP
ival=EM 2
ival=DE 1
hval=P 0
corr1 mm inc The corr commands define a conversion and correction table from metric positions to
corr2 mm inc incremental positions of the used Z-axis. This table consists of 5 entries where corr1
corr3 mm inc defines the smallest possible value and corr5 the biggest one. Here more than only a
corr4 mm inc factor is given to allow it a user to equalize non-linear variances. The syntax of the corr
corr5 mm inc table commands requires a metric value mm in millimeters and the appropriate
incremental value inc that is equal to this metric position.
The incremental value of corr1 must be smaller or equal than the parameter llimit and the
incremental value of corr5 must be equal or bigger than the value of parameter hvalue that are
described below.
llimit=yyy : This parameter defines the lower limit the motion controller can drive to with the specified axis
(in unit increments). Independent from the values that are sent from the program, the controller will never be
driven to a value that is smaller than the one set here.
hlimit=yyy : This parameter defines the higher limit the motion controller can drive to using the current axis
(in unit increments). Independent from the values that are sent from the program, the controller will never be
driven to a value that is bigger than the one set here. So with llimit and hlimit a range can be defined where
the motion controller is allowed to work within.
How to create the The file sc_motion_iselit_settings.txt' is a plain text file that contains different
settings file configuration parameters.
A line which begins with a # sign is interpreted as a comment and will be
ignored.
All parameters have to start exactly at the beginning of a line.
Global parameters have to be specified only once at the head of the settings
file.
Axis-specific parameters have to be defined for all axes separately.
The axis-specific and the optional parameters have to be arranged in one
block of parameters per axis. Each block begins with the parameter 'axis'.
The optional parameters do not have to be specified in the case you do not
want to use them.
A parameter gets defined by typing <parameter>=<value>, parameter and
values are described below,
e.g. 'axis=0' defines the parameter 'axis' with the value '0'.
Global parameters (type 7): These parameters have to be defined once at the head of the settings
file.
PortName Defines the serial port used for the isel it controller.
Value Function
COM# Defines the COM port of the PC where '#' is
the port number (e.g. 'COM1'). The USC
RS232 port cannot be used for isel it
controllers.
PortBaudRate Defines the data rate for the COM port. Unit: Bd (bit/s)
The default value that is used by most isel controllers is '9600'.
DeviceNumber Defines the serial port used for the isel it controller.
Value Function
# The device number specifies which specific
controller has to be accessed. At the controller
hardware that number can be changed with the
DNC command @<DN>G<DNnew>. The
default value is '0'.
switch1 Enables the home switch for 'axis=0' for older motion controller
Value Function
0 Disable home switch
1 Enable home switch
This parameter is only valid for older motion controller, which
support the "IE" command. Set the value to '0' for a newer
motion controller and define the homing procedure with 'hval'
commands.
switch2 Enables the home switch for 'axis=1' for older motion controller
Value Function
0 Disable home switch
1 Enable home switch
This parameter is only valid for older motion controller, which
support the "IE" command. Set the value to '0' for a newer
motion controller and define the homing procedure with 'hval'
commands.
Axis parameters (type 7): All of the following parameters have to be defined for each axis after the
global parameters in the settings file. Each of these axes can be configured differently.
incperrot Converts degrees into steps for ANGLE mode. Unit: steps/360°
This value defines how many increments are needed for a whole
rotation. Depending on the factor of the axis several parameters
has to be adjusted (sfactor, defspeed, see below).
Optional axis parameters (type 7): All of the following optional parameters can be defined for each
axis. Each axis can be configured differently. If no parameter is specified the corresponding feature
will not be used.
corr1 -8000.0 -400000.0 Correction table instead of parameter 'factor' for POSITION
corr2 -4000.0 -200000.0
mode.
corr3 0.0 0.0
corr4 4000.0 200000.0 This parameter is defined without '=' sign in the form <corr#>
corr5 8000.0 400000.0
<mm> <steps>.
<corr#> <mm#> <steps#> This correction table can be used to compensate nonlinearities of
a straight axis. If 'factor' is defined, the correction table is ignored.
Use for corr1 the same step value as for 'llimit' and for corr5 the
same step value as for 'hlimit'.
Example sc_motion_iselit_settings.txt file for 1 straight and 1 rotational axis for 'Type=7':
# Global parameters:
PortName=COM1
PortBaudRate=9600
TimeOut=30
DeviceNumber=0
Debug=0
DisableHomingDuringStartUp=1
switch1=0
switch2=0
level1=0
level2=0
# x axis parameters:
axis=0
mode=POSITION
factor=50.0
sfactor=50.0
llimit=-8388606.0
hlimit=8388607.0
hslimit=10000
defspeed=100.0
hval=n1
# y axis parameters:
axis=1
mode=ANGLE
incperrot=18000
sfactor=50.0
llimit=-8388606.0
hlimit=8388607.0
hslimit=10000
defspeed=180.0
hval=n2
There can be huge amounts of data that are logged into such a file so enable this option only if it is
necessary.
ival=sssss : The initialization of the controller can be done using every command it supports. To specify
which of these controller commands have to be used during the initialization of it, the ival parameter can be
used. Different to the preceding parameters this one can exist more than once in a configuration file. Here a
second ival will not overwrite the value of the preceding one. So for every controller command that has to be
sent one single line starting with this parameter has to be set. The controller commands are executed in the
same order as the ival parameters appear in the settings file. The commands sssss that are defined with this
parameter are used for initialization and therefore sent as very first to the drive.
There can be huge amounts of data that are logged into such a file so enable this option only if it is
necessary.
All these values are global ones and therefore they are valid for everything that is controlled by that motion
controller. This is important for the multi-axes-mode where it is possible to handle up to five axes using this
controller interface. Each of these axes can be configured in a different way. To do that, the axis statement
that defines for which axis the following parameters are valid has to be use. In the worst case when three
axes have to be used with completely different configurations all the following parameters have to exist five
times, separated by the different calls of axis:
axis=y : Specifies for which axis the following configuration parameters are valid for. If this statement is not
used somewhere in a configuration file it is assumed that the third axis is used. Else a value out of the
allowed range 0..4 can be set here. The axis number is also used as an address for the controller. It has to
be configured with the same number so that the controller is able to access it.
mode=POSITION : The SHS Star 2000 motion controller supports two operational modes for an axis:
ANGLE and POSITION that can be set using this statement. Depending on this mode values can be entered
in degrees or mm (inch/bits) only. A mixture between angular and planar movements is not possible for the
same axis. Depending on that mode some of the following settings are ignored.
corr1 mm inc The corr commands define a conversion and correction table from metric positions to
corr2 mm inc incremental positions of the currently specified (or default) axis. This table consists of 5
corr3 mm inc entries where corr1 defines the smallest possible value and corr5 the biggest one. Here
corr4 mm inc more than only a factor is given to allow it a user to equalize non-linear variances. The
corr5 mm inc syntax of the corr table commands requires a metric value in millimeters and the
appropriate incremental value that is equal to this metric position.
The incremental value of corr1 must be smaller or equal than the parameter llimit and the
incremental value of corr5 must be equal or bigger than the value of parameter hvalue that are
described below. These values are used for the mode POSITION.
llimit=yyy : This parameter defines the lower limit the motion controller can drive to with the specified axis
(in unit increments). Independent from the values that are sent from the program, the controller will never be
driven to a value that is smaller than the one set here. This value is used for the mode POSITION.
hlimit=yyy : This parameter defines the higher limit the motion controller can drive to using the current axis
(in unit increments). Independent from the values that are sent from the program, the controller will never be
driven to a value that is bigger than the one set here. So with llimit and hlimit a range can be defined where
the motion controller is allowed to work within. This value is used for the mode POSITION.
incperrot=yyy : Comparing to the correction table that defines the conversion factors from increments to
positions and back this value has to be used to define a factor that specifies the relation between the number
of increments and the appropriate angle for an axis. With incperrot it has to be specified how many
increments are equal to one complete rotation (360°). This value is used for the operation mode ANGLE.
sfactor=yyy : For the speed conversion from mm/sec to increments/sec or from degrees/sec to increments/
sec the speed factor parameter "sfactor" is used. Here it has to be specified how many increments/sec are
equal to a speed of one mm/sec or one degree/sec. The distinction between the unit mm/sec or degree/sec
is made by the current operational mode, the first one is true for mode "POSITION", the second for
"ANGLE".
hslimit=yyy : This parameter can be used to set a maximum speed in unit increments/second. If a speed
value sent from the application is larger than the value yyy after conversion using the sfactor, the speed
setting sent to the drive is limited to the value given with this parameter. The high speed limit parameter is
used for both operation modes.
defspeed=yyy : Using this parameter only the behavior of the user interface is influenced, but not the
functionality of the drive. Here a default speed value yyy can be set in unit mm/second that is displayed
within the scanner application by default.
dname=c : When the motion controller is operated in party mode, that means with more than only one SHS
at the same communication line, a single controller hardware needs to be accessed by using its device
name. The parameter dname specifies such a name for the current axis. That name has to consist of a
single char and it of course has to be configured and saved directly at the SHS motion controller hardware
itself. Setting this name is necessary when more than one axis is configured using the axis command. Here
for every axis a different name has to be specified. In case the axis command is not used and the controller
operates using the default axis number two, the party mode for the motion controller interface and the
hardware has to be set by sending the initialization command PY 1 explicitly (please see the command ival
below). Elsewhere the motion controller interfaces does not assume a party mode operation and ignores this
name.
ival=sssss : The initialization of a single axis of the controller can be done using every command the drive
supports. To specify, which of these controller commands have to be used during the initialization of it, the
ival parameter can be used. Different to the preceding parameters this one can exist more than once in a
configuration file. Here a second ival will not overwrite the value of the preceding one. So for every controller
command that has to be sent one single line starting with this parameter has to be set. The controller
commands are executed in the same order as the ival parameters appear in the settings file. The
commands sssss that are defined with this parameter are used for initialization and are therefore sent as
very first to the drive. The commands that can be set here are equal to the ones that are sent to the drive.
Since the SHS controllers work with binary data they have to be entered as single byte hexadecimal values
separated by a space without the CRC. This checksum is added to every command byte sequence
automatically. So for an example such an entry could look like this:
There can be huge amounts of data that are logged into such a file so enable this option only if it is
necessary. With (Debug=1) additional status request commands are send to the controller (and
are reported in the log).
All these values are global ones and therefore they are valid for everything that is controlled by that motion
controller. This is important for the multi-axes-mode where it is possible to handle up to five axes using this
controller interface. Each of these axes can be configured in a different way. To do that, the axis statement
that defines for which axis the following parameters are valid has to be used. In the worst case when three
axes have to be used with completely different configurations all the following parameters have to exist five
times, separated by the different calls of axis:
axis=y : Specifies for which axis the following configuration parameters are valid for. If this statement is not
used somewhere in a configuration file it is assumed that the third axis is used. Else a value out of the
allowed range 0..4 can be set here. The axis number is also used as address for the controller. It has to be
configured with the same number so that the controller is able to access it.
mode=POSITION : The ECOSTEP motion controller supports two operational modes for an axis: ANGLE
and POSITION that can be set using this statement. Depending on this mode values can be entered in
degrees or mm (inch/bits) only. A mixture between angular and planar movements is not possible for the
same axis. Depending on that mode some of the following settings are ignored.
llimit=yyy : This parameter defines the lower limit the motion controller can drive to with the specified axis
(in unit increments). Independent from the values that are sent from the program, the controller will never be
driven to a value that is smaller than the one set here. This value is used for the mode POSITION.
hlimit=yyy : This parameter defines the higher limit the motion controller can drive to using the current axis
(in unit increments). Independent from the values that are sent from the program, the controller will never be
driven to a value that is bigger than the one set here. So with llimit and hlimit a range can be defined where
the motion controller is allowed to work within. This value is used for the mode POSITION.
sfactor=yyy : For the speed conversion from mm/sec to increments/sec or from degrees/sec to increments/
sec the speed factor parameter sfactor is used. Here it has to be specified how many increments/sec are
equal to a speed of one mm/sec or one degree/sec. The distinction between the unit mm/sec or degree/sec
is made by the current operational mode, the first one is true for mode POSITION, the second for ANGLE.
hslimit=yyy : This parameter can be used to set a maximum speed in unit increments/second. If a speed
value sent from the application is larger than the value yyy after conversion using the sfactor, the speed
setting sent to the drive is limited to the value given with this parameter. The high speed limit parameter is
used for both operation modes.
defspeed=yyy : Using this parameter only the behavior of the user interface is influenced, but not the
functionality of the drive. Here a default speed value yyy can be set in unit mm/second that is displayed
within the scanner application by default.
incperrot=yyy : Comparing to the correction table that defines the conversion factors from increments to
positions and back this value has to be used to define a factor that specifies the relation between the number
of increments and the appropriate angle for an axis. With incperrot it has to be specified how many
increments are equal to one complete rotation (360°). This value is used for the operation mode ANGLE.
DevnoEcoId=c : Device No. / ECO Id. represents the device id of the ECOSTEP host base station. Allowed
values are: 1 .. 15.
dname=c : Sets the character this device has to be displayed with.
ival=sssss : These parameters can contain sequences of Jena ECOSTEP 100 commands as hex-numbers
that perform operations on the drive during initialization. For a detailed description of these parameters
please refer to the specifications of the controller.
The checksum and the deviceID do not have to be added to the command sequences. This is
done automatically. An optional command identifier text (is logged in Debug mode), separated by
a blank character, terminates the line.
E.g.:
# The following three commands enable the drive to move (may be axis specific).
# After the motion Controller default initialization no moving is possible
# due to end position monitoring.
ival=0x23 0x70 0x21 0x00 0x00 0x00 0x00 0x00 inputPolarityToDefault
ival=0x23 0x71 0x21 0x02 0x00 0x00 0x00 0x00 pLockConfiguration
ival=0x23 0x72 0x21 0x02 0x00 0x00 0x00 0x00 nLockConfiguration
hval=sssss : These parameters can contain sequences of Jena ECOSTEP 100 commands as hex-
numbers that perform operations on the drive during a homing sequence. For a detailed description of these
parameters please refer to the specifications of the controller.
The checksum and the deviceID do not have to be added to the command sequences. This is
done automatically.
E.g.:
# homing to zero position ( normal absolut positioning operation with default speed to zero position )
hval=0x23 0x81 0x60 0x00 0x00 0x7E 0x04 0x00 setSpeed
hval=0x23 0x7A 0x60 0x00 0x00 0x00 0x00 0x00 setPos
hval=0x23 0x60 0x60 0x00 0x01 0x00 0x00 0x00 modeAbsolutPositioning
hval=0x23 0x40 0x60 0x00 0x3F 0x00 0x00 0x00 executeRun
eval=sssss : These parameters can contain sequences of Jena EcoStep100 commands as hex-numbers
that perform operations on the drive during a program exit. For a detailled description of these parameters
please refer to the specifications of the controller.
The checksum and the deviceID do not have to be added to the command sequences. This is
done automatically.
E.g.:
# store all parameters permanent
eval=
0x23 - readWrite
0x10 - objLsb
0x10 - objMsb
0x01 - subIndex
0x73 - data0
0x61 - data1
0x76 - data2
0x65 - data3
storeAllParameters - (for SAMLight Debug purposes)
ECOSTEP 100 / 200 Command format
byte id;
// id of ecostep100 station [ 1 .. 15 ]
byte readWrite;
// Send from PC to ECO controller:
// - 23 hex = Send command 4 Byte data ( Byte 4..7 contain an 32Bit-value )
// - 2B hex = Send command 2 Byte data ( Byte 4, 5 contain an 16Bit-value )
// - 2F hex = Send command 1 Byte data ( Byte 4 contains an 8Bit-value )
// - 40 hex = Read data object from slave
//
// Send from ECO controller to PC:
// - 43 hex = Command 40 successfully send, Byte 4..7 contain an 32Bit-value
// - 4B hex = Command 40 successfully send, Byte 4, 5 contain an 16Bit-value
// - 4F hex = Command 40 successfully send, Byte 4 contains an 8Bit-value
// - 60 hex = Commands 23 or 2B or 2F successfully send
// - 80 hex = Commands 23 or 2B or 2F or 40 not successfully send, Byte 4..7 contain error
byte objLsb;
// obj id: last significant Byte
byte objMsb;
// obj id: most significant Byte
byte subIndex;
// obj subIndex
byte data0;
// if controlword:
// Bit0 = Switch On
// Bit1 = Disable Voltage
// Bit2 = Quick Stop
// Bit3 = Enable Operation
// Bit4 = operating specific
// Bit5 = operating specific
// Bit6 = operating specific
// Bit7 = Fault Reset
//
// if statusword:
// Bit0 = Ready to Switch on
// Bit1 = Switched On
// Bit2 = Operation Enable
// Bit3 = Fault
// Bit4 = Voltage Disabled
// Bit5 = Quick Stop
// Bit6 = Switch on Disable
// Bit7 = Warning
byte data1;
// if controlword:
// Bit0 = Halt
// Bit1 = reserved
// Bit2 = reserved
// Bit3 = manufacturer specific
// Bit4 = manufacturer specific
// Bit5 = manufacturer specific
// Bit6 = manufacturer specific
// Bit7 = manufacturer specific
//
// if statusword:
// Bit0 = manufacturer specific
// Bit1 = Reserved
// Bit2 = Setpoint reached
// Bit3 = Limit reached
// Bit4 = Setpoint confirmation / halt / found reference
// Bit5 = Contouring error / reserved / reference error
// Bit6 = Commutation found
// Bit7 = Reference found
byte data2;
// data byte 2
byte data3;
// data byte 3
byte checksum;
// inverted sum( Byte 0 .. Byte 8 )
string szPacketName;
// for debug purposes
The last method can be used only if the laser port is NOT used for controlling the laser. Else the
results can be undefined and may harm your equipment seriously.
doneInput=y : This parameter specifies which input number has to be used for the movement feedback. At
this input a signal is expected that is sent from the drive to the controller to tell that the final position was
reached. The value given for y is a zero-based number that specifies the input pin that switch is connected
with.
doneInputValue=y : The preceding parameter an this one are related to each other: doneInputValue
defines what signal at the input with number doneInput is expected to be interpreted as the information: the
movement was completed. Here for y the values 1 and 0 are possible.
dname=c : This parameter specifies a name for the current axis that is used to display the name
within the scanner software. That name has to consist of a single character.
5 Global Settings
In this chapter the global settings of SAMLight are listed. The corresponding menu in SAMLight is
System found in the Menubar of the User interface.
5.2 View
The following dialog can be reached by Menu item .
Grid:
Align To Grid: If checked each new object placed in the View 2D will be aligned to the grid.
Show: If checked the grid will be displayed in the View 2D.
X, Y: These two values define the grid size.
Remember Mark Dialog's Position: If checked, the position of the mark dialog is remembered permanently
(also after restarting SAMLight).
Background color: Clicking on this button opens a color dialog, where the background color of the View 2D
can be defined (also possible in ViewProperties).
Toolbars: Clicking on this button opens a dialog where the user can choose which of the available toolbars
is shown. See chapter Toolbars.
Pen colors: In this box, a color can be assigned to each pen (also possible inViewProperties). An object
exposured by a special pen will be displayed with the assigned color in the View 2D. To get information
about how to define pens see chapter Edit Pens.
Copy Offset:
X, Y: These two values define the copy offset in x and y direction. For example, select an object in the
View 2D and click . This creates a copy of the selected object which is placed
next to the original translated by the copy offset. If the copy offset is zero in both directions the created
copy will cover the original.
Nudge Step:
X, Y: These two values define the nudge step in x and y direction. The nudge step is used for the
operations nudge left, right, up and down described in chapter Edit. Nudge can also be used with
hotkeys while using the redpointer (see figure 33).
Scale Factor: This value is taken for the scaling of the job with hotkeys while using the red pointer in the
mark dialog (see figure 33).
Figure 33: Scale/translate job with hotkeys while using redpointer in the Mark Dialog
5.3 Optic
Head: Here the head number can be selected if more than one head is present. For this setting the software
option MultiHead is required.
Lens [mm]:
Size: Specifies the maximum scanning field. This is the maximum field the scanner system can drive. In
general it depends on the optical system (like lenses, etc.), the scanning distance and the maximum
scanning angle of the scanner system. On 16 bit scanning systems the field extent corresponds in
general to the bit values -32767 to 32767 respectively.
If the dimensions of output do not correspond to the dimensions of the drawn object, this can be
corrected by changing the field size. Thereby the new field size is being calculated out of the current field
size in the following way:
The Gain, Offset and Rotation values entered here will not affect the Optic Matrix. To change the
Home Position X, Y, Z: If this option is enabled, the home position is the position where the scanner is
located when no scanning takes place i.e. during handling activity. The home position is in normal cases
outside the working area but it must be inside the scanner field.
Save lens settings (*.lcf): A lens settings file stores all lens specific information. The file will be generated
or updated if you click this button. The name of the *.lcf file is bound to the name of the correction file you
want to use and needs to be in the same directory. If you do not want to load a *.lcf file together with your
correction file you can un-check 'Load lcf if present'. Please use the button 'Load Correction File...' to load
the correction and *.lcf file. The data stored in the lens settingsfile include the whole parameters in the Lens
field, the 4 parameters under and the Redpointer delay in Mark
.
Edit Lens Init Job (*.sjf): Opens the Edit_Lens_Init_Job_Dialog. If a job should be executed every time a
lens is chosen, a lens initiation job can be created. This job will be executed when switching to the
corresponding correction file via this dialog. A typical job could be: waiting for an input, setting an output,
executing a motion control or running an executable. The name of the lens init job (*.sjf file) must equal the
name of the selected correction file and needs to be in the same directory (automatically done when using
the button). When switching correction files, the message 'Lens Init Job found' indicates if an existing lens
init job file for this correction file has been found. To suppress the execution of this file please un-check
'Execute on OK/Apply' before clicking apply/ok. If the job should not be executed any more it can be deleted
in the corresponding directory.
Correction File Settings: Here a correction file can be specified. It is used to compensate optical distortions
(barrel / pincushion) of the scan head. Usually the scan head manufacturer can provide a correction file for
their products. For USC cards the standard extension is .ucf. By clicking on 'Load Correction File...' a
browser dialog opens. After selecting a correction file the corresponding lens settings file (*.lcf) and lens init
job (*.sjf) will be opened together with the correction file if these files are stored at the same directory. That
means using this button different lens- and correction file configurations can be managed.
Advanced...: See dialog USC-1 Card Settings or USC-2 Card Settings.
Flash JobIOSelect, Flash Job or Jobeditor active: Appears for USC-2 or USC-3 card if Flash JobIOSelect
Mode, a Flash Job or a Jobeditor license is used and deactivates the "Advanced..." button. To activate it in
case of Flash JobIOSelect Mode, please open Flash dialog at an press "STOP
IOSelect" button, which then turns to "START" button.
Min:/Max: Opens the Min/Max Dialog to define the range of the values speed, frequency and first pulse killer
length of the laser.
External Trigger:
Trigger connected: enables the external trigger and the flags described below. This checkbox activates
the "External trigger" in the Mark dialog and "Mark - Trigger".
Buffering: If in trigger mode, the job is buffered (several times) on the scanner card. This allows a faster
start of the marking in response to the external trigger signal. The buffer is refilled before it is drained. In
buffering trigger mode, the Status Outputs do not work.
TimeOut: If waiting for the trigger, the buffer on the scanner card will be cleared after there was no
external trigger signal for longer than a given time. While clearing and refilling the buffer an external
trigger signal is ignored. The time out value needs to be bigger than the time for marking.
Reset: If this option is enabled it extends the timeout operation. In this case not only the buffer of the
scanner card is cleared but the sequence is reset too. That means when a timeout occurs and this
checkbox is selected all serial numbers are reset to their defined starting values automatically.
Don't update view during mark trigger: If this option is enabled the view will not be updated when
Update during mark: If this checkbox is active, the next sequence is set within the current job before it
ends. This means that serial numbers are for example incremented or resplit.
MultiHead Independent: This allows to trigger the scan heads independently from each other when the
dialog is used. This might be useful if one of the scan heads has to mark for example 5
objects while the other scan head will only mark one object at the same time. This function will not work
together with serial number objects nor with DateTime objects.
Z Dimension: This requires the software option Optic3D.
Optic settings can be changed in the optic settings dialog which can be reached by Menu item
If the MultiHead option is used, then the Head 2 options are disabled. Instead there is an
additional option in the External Trigger options: MultiHead Independent. Therefore see
Optic Settings Dialog USC-1.
Lens Init Job found: Appears if a correction file is loaded and an appropriate Lens Init Job is available.
X, Y, Z Invert: Inverts the axis direction. Z Invert requires the SAM software options Optic3D or SAM3D.
Gain X, Y: The X and Y gain values are thought to compensate slightly X, Y gain errors to archive a
quadratic field. Values less than 1 will reduce the scanner field. Values greater than 1 will expand the
scanner field. Global gain errors which have the same deviation in X and Y directions should be corrected by
changing the size of the scanner field (see above).
5.3.3 Min/Max
By pressing Min /Max... in the Menu dialog following dialog appears. The
settings define the range of the values Speed [mm/s], Frequency [kHz] and First Pulse [µs] killer length of
the laser.
When using the USC-1 or USC-2 card additional min max values, X [mm] and Y [mm] coordinates, can be
set to define the working area inside the scanner field.
The Min and Max values of X and Y are automatically adapted to the field size values (default), if
Size / Center X / Center Y in the optic dialog are being changed.
The Min and Max value would be saved in pen settings. So, if "save pens on exit" in General is not
enabled, don't forget to click the button "Save Pens Now".
Although the Min and Max values are saved in pen settings, after loading a job file with pen
settings, the Min and Max values in system would not be overwritten.
5.4 Laser
The following dialog can be reached by using menu item , here the laser and the
shutter control can be configured.
Laser Control:
Shut down (power save mode):
Time Out: The Laser is going to power save mode after a defined time in which the laser was not
active. If a value of 0 is entered here the laser power save mode feature is disabled.
Power: Percentage of laser power for the power save mode. When the power is '0' the laser will
shut down.
Power up:
Delay: When the laser is in power save mode and is going to normal power again a delay can be
defined for the power up procedure. In this power up time the laser power will ramp from the power
save to full power. The laser gate and the marking in process signal will not be active during the
power up procedure. After the power up procedure the laser is in normal mode again and the
marking procedure will begin.
Red pointer:
Wavelength Factor: Correction for the red pointer in X and Y direction caused by different
wavelength of the laser. The factor is determined experimentally. When marking one reference point
with the red pointer and the laser, the vector length R from center to the point marked with the red
pointer and the vector length L from center to the point marked with the laser needs to be measured
in x and y direction. Wavelength Factor = Red pointer / Laser.
Offset: Static X/Y offset correction only for the red pointer caused by the different wavelengths of
the laser. The factor is determined experimentally (see Wavelength Factor).
Shutter Control:
Enable Shutter Control: If this checkbox is selected the shutter control functionality is enabled and all
following parameters are used for it.
Shutter Control Output: Here the digital output that is used to control the shutter can be defined. It
sends opening and closing signals to the shutter depending on current state of the application. If the
shutter is closed an opening signal is sent before the laser is turned on e.g. for marking operations. If
marking has finished and the enable delay (please see input field described below) has elapsed a close
signal is sent to the shutter.
Shutter Feedback Input: This combo box can be used to select a digital input that can be used for
reading back the current opening or closing state of the shutter.
Shutter Control Timeout: Here a timeout value can be configured that is related to the "Shutter
Feedback Input". If the shutter is controlled by the application to open or close an error message is
displayed and the current operation is cancelled if that operation takes longer than the timeout that is
configured here. This timeout requires an input where the current state of the shutter can be read back.
Shutter Enable Delay: With this delay the shutter can be closed automatically and without any user
interaction. If more seconds have been gone after the last time the laser was turned on, the shutter is
closed automatically. So this field defines a delay after the last marking operation after that the shutter
will be closed.
Open Signal Level: The level of the output signal (high or low) that has to be used to open the shutter.
In order to close the shutter the other signal is used. With this option the behaviour of the scanner
software can be modified in order to fit to the used shutter hardware.
IPG - EmissionEnable: This field is available only if using an USC-1 or USC-2 card and if IPG is selected
under . If an IPG laser is connected this mode allows it to
switch off Emission Enable (connected to OPTO_OUT_0) during jumps.
SwitchOffDuringJumps: If this checkbox is activated then the IPG laser will be switched off during
jumps.
Jump Length [mm]: Jumps that are longer than this value will lead to a switch off.
Delay [µs]: When switching on after a jump, this delay is executed before the scanner continues with the
next vector.
5.5 Shortkeys
The following dialog can be reached by Menu item .
Card-Input (only available for USC-1 and USC-2): To each short key a card input can be assigned. There
are six input bits available (IN1 to IN6) which corresponds to the OPTO_IN0 to OPTO_IN5 pins of the USC
card. The default assignment is None. The effect is that a special short key will be triggered if the assigned
INx is high/low if high/low was selected.
TimeFrame: Defines a repetition rate of the operation the input bit is assigned to. The operation will be
executed as long as the input bit is low (or high) with the repetition rate 'TimeFrame' in seconds. The lower
limit for this value is about 200 ms.
Short Key: For each menu item a user defined short key can be assigned: Select the requested menu item
from the list. Click the empty field New Short Key and press the corresponding short key on the keyboard (for
example F2) to assign it to the selected menu item.
Activate F1 Help: Activates the context sensitive help. Therefore the F1 key is predefined.
The default short key for the start buttons inside the mark dialog is F1. So if Activate F1 Help is
instead.
Short Key List: With Import a short key file (*.sam) can be imported. The short key list defined in the dialog
can be exported by Export. Default restores the short key list to its default values.
StopKey: The keys that stop marking can be selected within this combo box.
Disable Stop via Mouse Click: If you enable this function, marking can only stopped with the defined
StopKeys.
5.6 General
The following dialog can be reached by the Menu item .
Files:
save settings on exit: If checked, the modified settings will be saved on every program exit.
save pens on exit: If checked, the pens will be saved on every program exit and overwrite the last ones.
load pens on file new: If checked, the pens are loaded by clicking on .
Save Settings Now: Saves the modified settings now and overwrites the last ones.
Save Pens Now: Saves the pens now and overwrites the last ones.
Auto-Backup Files: Creates automatically backups with a continuous number in range 1..99 when this
box is checked. To restore such a backup, the desired *.sjb file has to be renamed into *.sjf and can be
loaded normally afterwards. The backup file names consist of the original file name plus the backup
number and the new extension .sjb.
Job Auto Load Box:
not active: No job will be loaded at program start up.
load last job: The last edited job will be loaded at start up.
load predefined job: If this is activated browse through the file tree (button browse) and choose a *.sjf
file to be your predefined job or type in the absolute path to this file in the edit line below. The chosen file
will be loaded at start up.
Load pens: If this is checked the pens of the job will be loaded as well, otherwise only the objects. This
only makes sense if pens are saved within this job. See Job Format.
Start with trigger mode: If checked the application switches into trigger mode after loading a job at
start up or after loading a job in Job Select input mode. The effect is the same as loading a job and
starting the trigger mode by clicking .
and the mark dialog: Defines if you want to start with the trigger dialog (standard) or with the mark
dialog. Indeed, in some versions of SAMLight, the trigger dialog forces the user to start marking
manually before accepting trigger signals.
Save Job:
save job after each mark: Saves the job after each mark.
auto save on exit: The job is saved automatically when closing SAMLight.
Workspace:
Unit: Here on can define the length unit of the workspace. Three settings are possible: Millimeters (mm),
Inch (inch), Bits (bits)
Use Big Icons: When this field is checked, bigger icons with double width and height are used after the
next program start for all toolbars. This feature is useful e.g. in environments with limited input
capabilities like touchscreens. Other settings like the sizes of menus and window title bars are not
subject to the application. These properties are managed by the operating system exclusively. To get
menu entries and title bars that are big enough to grip them via a touch, please change the appropriate
operation system settings.
Counter:
PartCounterMode: Enables counting number of parts per marking process. The counter will be set to the
number of marked parts while marking instead of being set to the number of marking sequences. One part is
made of the number of objects defined in the job properties. If for example NumObjectsPerPart is set to 2
and there are 10 objects in the joblist, the counter gets incremented with 5 after each marking sequence.
If quantities is defined and it is not a multiple of the number of parts in the joblist, the software
offers to delete the overlaying objects, so that they do not get marked within the last sequence. To
ensure that the original job will not be changed, the following check box can be selected.
Load counter from job: The counter information can be stored in the job. When loading the job the
counter is also set to the old value.
Serial Text File:
Pause Identifier: The string that is defined here is used as a pause identifier for serial numbers read
from an ASCII file. When the identifier is found in the current line of the assigned text file it causes a
break of the marking and a pop up window which asks for continue is opened.
For how to use ASCII for serialization see chapter How To / Automate Serialization.
Message: Last line reached: Gives a message if the current line of the serial number text file which
needs to be assigned to the serial number is empty. The user has the possibility to reset the serial
number sequence with committing the message. Instead or in addition you can also set an I/O bit if the
last line of the text file has been reached.
Miscellaneous:
Disable UNDO: If this checkbox is selected the UNDO-and REDO-functionality is disabled completely.
That means changes within a job have to be reverted manually, the automated function is disabled. It is
recommended to disable the UNDO-functionality in case of speed or memory problems on smaller
computer systems (embedded systems which are not used to create and edit jobs but to control the
marking process only). Depending on the size and complexity of a job this option is able to save
nameable amounts of memory and calculation time.
Disable Compression: If this checkbox is selected the zip compression of a saved *.sjf file is
deactivated. This can help to save big job files on computer systems with low main memory.
Don't update view: If this checkbox is selected the View2D is not updated any more. This can help to
save processing time, when entities are updates (date/time and serial number entities, reimport of
bitmaps, ...)
Next sequence (not for Splitting):
Next sequence before mark: If you start the marking from the mark dialog at first the serial numbers in
the job will be increased and then marking will start.
Months and Time mapping:
Time Shift Map: Opens a dialog where the working shift placeholder of date time can be mapped to
working shifts times, see chapter Shift Map.
Year Map, Months Map, Day Map: The naming of the years, months and days can also be fully
customized.
Combo Box: Up to 4 different maps can be defined at the same time. To address a certain shift map
with the % placeholder it is necessary to put the corresponding number before the letter. E.g if you want
to adress Time Shift Map number 2 you would have to write %2T. If no number is specified then number
1 is assumed.
In Flash jobs (USC-2/3) only the first shift/year/month/day map is available and will be used
instead of the applied map number. The map has to be stored to the USC-2 card by clicking the
STORE button in .
Global Sequence Reset Times: When activated, serial numbers which are assigned to a global sequence
can be reset. Chose the sequence in the drop down menu and set the desired reset date, time and period.
See chapter Global Sequences Reset Times Dialog.
Job Save/Load Dialog: Opens a dialog where the defaults for saving and loading of jobs can be edited. See
Set: Creates a new shift if it is not defined yet, otherwise overwrites the selected working shift. The newly
defined working shift gets numbered and sorted according to its start time.
In Flash jobs (USC-2/3) only the first shift map is available and will be used instead of the applied
map number. The map has to be stored to the USC-2 card by clicking the STORE button in Optic
.
In Flash jobs (USC-2/3) only the first month map is available and will be used instead of the
applied map number. The map has to be stored to the USC-2 card by clicking the STORE button
in .
In Flash jobs (USC-2/3) only the first day map is available and will be used instead of the applied
map number. The map has to be stored to the USC-2 card by clicking the STORE button in Optic
.
In Flash jobs (USC-2/3) only the first year map is available and will be used instead of the applied
map number. The map has to be stored to the USC-2 card by clicking the STORE button in Optic
.
In each of the 5 fields there are 2 checkboxes. The upper checkbox has 3 states: On, Off, Gray. If Gray, the
behaviour of the dialog is as usual: The last used state is used. The second checkbox Prevent Changes
makes this default setting so that it can not be changed by the user anymore.
5.7 Remote
The settings for an external control are available in :
Connection Settings: Here it is possible to define the connection method that an external CCI application
uses to access the scanner application.
Function Calls: This option is only achievable inside one PC. That option has to be chosen if the
controlled software and the application that controls it via the client control interface are running at the
same host.
TCP: If the program should be controlled over the network using the client control interface, this option
has to be selected. Normally the TCP protocol should be used. Only one TCP connection can be
established at the same time.
ASCII Communiation Mode: If checkbox is activated it is not necessary to send the initialization string
"SAM CCI Plain\n" to start SAMLight Client Control in ASCII communication mode. This is particularly
helpful if SAMLight Client Control is always used in ASCII communication mode and also for testing and
debugging your own SAMLight Client Control ASCII communication application.
Debug Output sc_cci_debug.txt: If this checkbox is active, a debug text file is written after each
ClientControlInterface command. When SAMLight starts the file <SCAPS>\system\sc_cci_debug.txt will
be deleted. The first CCI command after SAMLight start creates the text file and writes the debug
information into it and saves the file. All further CCI commands (in the same SAMLight session) will
append the file with their debug information and save the file. The timing resolution in sc_cci_debug.txt is
limited to the resolution of the system timer, which is typically in the range of 10 ms to 16 ms.
ASCII mode code page: For TCP ASCII Communication Mode normally the current used system code
page of Windows is used to send the complete command string to SAMLight. If a different code page
must be used to set or get text contents (especially relevant to set a text of a text entity in another
language) you can select and set the required code page from the drop-down list.
Bind To:
IP Address: This is the IP address of the PC on which SAMLight is running. Here following values
are possible:
· 0.0.0.0 if the software has to be accessible from everywhere
· One of the host systems IPs if it uses more than one and if the software has to be accessible
by only one specific IP (Depending on the setup of your local network, this should be
something like 192.168.1.100. Please ask your system administrator for details.)
· 127.0.0.1 if only local connections have to be accepted. This case is a more theoretical one
and normally should be used for testing purposes only because for plain local connections the
Function Calls option can be used.
Port: Number defines where the software has to be accessible. Here any value in the range of
1...65535 is possible, but it has to be noticed that a port can be used only once per IP. So for an
example if there is already a webserver running at a system, port number 80 cannot be used.
Therefore it is recommended to use port numbers >1024. They are reserved for custom usage.
On the other hand the application that controls the software using the SCAPS.ScSamlightClientCtrl client
control interface has to open its connection to the server socket configured here using
ScOpenTCPConnection(). If the plain ASCII communication has to be used, opening of a TCP/IP
connection depends on the operating system and the programming language. In C the appropriate
function calls to do that mainly are socket() and connect(), for sending data send() is used and recv() for
the reception of an answer.
The network access to the scanner application can be restricted to some specific IPs to avoid that
connection attempts are successful from hosts that are not allowed to control the application. These IPs
can be defined using the two files hosts.allow and hosts.deny that are located within <SCAPS>\system
of the installation directory of the scanner application. Both files expect IP numbers in the format
"WWWW.XXXX.YYYY.ZZZ".
Within hosts.allow all the IPs that are allowed to connect to the scanner application can be listed. If
there are some IP numbers define here, connections are allowed only from these ones exclusively. If
there are no IPs defined, connections are allowed from all IPs except the ones that are listed within
hosts.deny. The file hosts.deny can contain a list of IP numbers with the format
"WWWW.XXXX.YYYY.ZZZ" and defines which hosts are not allowed to control the application. If there a
no IPs listed within this file, no hosts are forbidden explicitly to connect to the scanner application.
Script Settings: Besides the possibility to have an external application that is under the control of the user it
is also possible to start such an application from within the scanner application. To do that the following
settings are used:
Menutitle: Specify the name which is shown in the Special entry of the Menu bar. This name is used to
address the application that has to be started out of SAMLight.
Path to Script or Executable: This script or *.exe is executed whenever the related name in the Special
entry in the menu bar is selected. The following programs are supported:
Executables (*.exe) that are started and that should access the Client Control Interface of the
application
Client Control Scripts (*.ccs) that contain ASCII-CCI-commands that are interpreted and executed.
These scripts may contain comments using # as a delimiter.
After these scripts are executed within the context of the scanner application there is no need to
perform any initialization or opening of a connection. The commands to control the application can
be used directly.
5.8 IO
The settings dialog described here can be reached by selecting the menu item .
Menu Special Outputs: It is possible to insert new menu items for switching IOs on and off. The bits of the
IO port which will be controlled from special menu points can be defined in the dialog. If one bit is selected
and the Active checkbox is enabled a string (Num Active) which indicates the current state of the bit can be
defined. Under the following menu the items for switching the IOs on and off will be inserted.
Default: Defines the default state of the special output that is shown in the menu.
High String: Defines the String that is shown when the special output is set to Low.
Low String: Defines the String that is shown when the special output is set to High.
Status Outputs: This block defines state IOs that can be switched on an off according to specific program
and usage actions. Using the combo boxes it is possible to assign a special output pin for such an action.
Using this functionality an integration of external equipment can be done.
Software started: The selected bit is set to high as long as the software is running.
Waiting for external start: Set to high if in trigger mode. This also stays high during marking.
Laser to be ready: Set to high if trigger or mark dialog is open.
Marking active: Set to high during marking of a job. Only for USC cards this signal is hardware
controlled. For RTC cards this signal is software polled with the result of jitter. For proper I/O handling,
this signal has to be used, not the RTC busyout.
Teaching / Reloacting: If an output pin is defined here it is set to high on every time the teaching or
relocating dialog is active.
Job loaded: The selected bit is set to high if a non empty job is loaded in the View.
SN reached last line: If a file is assigned to a serial id and the last line of this file has been reached this
bit is set. To change the state afterwards you have to reset the serial id or load a new job. Instead or in
addition you can pop up a message box if the last line of the file has been marked.
Red Pointer:
Use Bit 3: Bit 3 of the IO port is used to indicate that the red pointer is active.
Pointer always ON: The Red Pointer stays always on (while SAMLight is running) if this flag is
activated.
Invert: This option is only available for RTC cards and USC-1. It inverts bit 3 for controlling the red
pointer.
Quantity: Here an output can be defined that goes high when a predefined number of mark quantities has
been reached. The predefined number Set Quantities.
Special Sequences: This part of the settings panel handles the special sequences that can be executed
during program startup and exit. To avoid collisions between an job externally selected this option is
available only in I/O-Mode Standard. By default, these special jobs and together with them the Special Jobs
Toolbar are disabled.
Jobs Toolbar: Enables the Special Sequences Toolbar and the related functionality that allows it to
execute jobs at program startup and / or exit.
No Pre-/Postprocessing Warning: If this box is selected, this special security warning is disabled and
all special jobs (except the mainjob) are executed immediately and with no separate user interaction
when the program is started or exited. Please handle with care! If this option is used it has to be secured
by the user that nobody can be injured by potentially dangerous pre- or postprocessing jobs.
Message Inputs: Input bits can be used to cause a message output. The selected bit must be activated to
send the defined message by the Active check box. The message appears if the selected bit is either high
(H) or low (L) according to the selected radio button. An error or a warning message is displayed in the
message view dialog as well as in the statusbar. If Hide MsgView is activated, the message view is invisible.
RTC input bits:
0 .. 15 (Extension 1 connector, Digital_In 0 .. 15)
USC input bits:
3 .. 6 (37-pin connector, Opto_In2 .. 5)
USC-2/3 additions:
7 .. 16 (Extension connector, Digi_In0 .. 9)
Status #0 .. #19: These status bits refer to the 20-bit word of the XY2-100 feedback from the scan
head. The user may define a unique message / error for any of these bits.
Error warning info. These warnings can be reset in the status bar.
o Out of field (OF) is set when a MOTF overflow occured.
o Out of data with laser on (OD) is set when a buffer underrun occured.
Figure 50: Reset OF and OD by right-click on the warning followed by a left-click on Reset Warnings
It is recommended to connect the appropriate input pin before this option is enabled. An open
input normally is recognized as a low-signal so that leaving the IO settings dialog would put the
application in the emergency stop state immediately.
Pause: This functionality is only available with an USC-2 card. Here you can select an input bit that
pause the job. The laser is switched off after a mark command, after a PolyEnd or during a jump
command.
I/O Mode: There are three SAMLight IO modes (which differ from the Flash JobIOSelection mode) that can
be chosen:
Standard: the settings described above can be made including the freely definable Message Inputs.
SAMLight JobIOSelect: these inputs are disabled. Here, the OptoIn_2...OptoIn_5 input signals are
used to select and load jobs (up to 15) externally triggered.
SAMLight JobIOSelect Ext: the Digital Input Pins DigiIn_0...DigiIn_7 of the USC-2/-3 card to select
the jobs (up to 255).
For more information see SAMLight Job IO Selection.
Job Execution:
Delay [ms]: Defines an execution delay which is the time between a mark output signal is given and the
execution. Only for USC cards the marking active signal is hardware controlled. For RTC cards the
marking active signal is software polled with the result of jitter.
Input pin Output pin Bit value Input pin Output pin Bit value
Opto-insulated Inputs and Outputs Digital Inputs and Outputs
OptoIn_0 [a] OptoOut_0 [c] 1 DigiIn_0 DigiOut_0 1
OptoIn_1 [b] OptoOut_1 2 DigiIn_1 DigiOut_1 2
OptoIn_2 OptoOut_2 [d] 3 DigiIn_2 DigiOut_2 3
OptoIn_3 OptoOut_3 4 DigiIn_3 DigiOut_3 4
OptoIn_4 OptoOut_4 5 DigiIn_4 DigiOut_4 5
OptoIn_5 OptoOut_5 6 DigiIn_5 DigiOut_5 6
Following pins are only available DigiIn_6 DigiOut_6 7
for USC-2/3 DigiIn_7 DigiOut_7 8
Digital Inputs and Outputs DigiIn_8 DigiOut_8 9
DigiIn_0 DigiOut_0 7 DigiIn_9 DigiOut_9 10
DigiIn_1 DigiOut_1 8 DigiIn_10 DigiOut_10 11
DigiIn_2 DigiOut_2 9 DigiIn_11 DigiOut_11 12
DigiIn_3 DigiOut_3 10 DigiIn_12 DigiOut_12 13
DigiIn_4 DigiOut_4 11 DigiIn_13 DigiOut_13 14
DigiIn_5 DigiOut_5 12 DigiIn_14 DigiOut_14 15
DigiIn_6 DigiOut_6 13 DigiIn_15 DigiOut_15 16
DigiIn_7 DigiOut_7 14 Table 7: I/O bit value for RTC cards
DigiIn_8 DigiOut_8 15
DigiIn_9 DigiOut_9 16
Stepper Inputs and Outputs
SmIn_0 SmOut_0 17
SmIn_1 SmOut_1 18
SmIn_2 SmOut_2 19
SmOut_3 20
SmOut_4 21
SmOut_5 22
Table 6: I/O bit values for USC cards
The combination of two bits creates four options (HH, HL, LH, LL), the combination of three bits creates eight
options, respectively. Each bit can only be used once, either in one single combination or directly without a
combination.
Remove Combination: In order to cancel an existing combination, select the combination in the drop down
menu and click on Remove Combination. Please note that this action is irreversible!
5.9 Extras
The settings dialog described here can be reached by selecting the menu item .
Teach Mode: This block is related to the teaching / relocating mode. Using this mode it is possible to teach
reference positions for a job that are related to a specific work piece. When this work piece was exchanged
and the new one has a different position and / or rotation angle comparing to the preceding one, it is possible
to modify the job so that it fits to the new position. To do that, the relocating function can be used. The
parameters that can be defined here influence the teaching / relocation behavior in following ways.
Normal Stepwidth: Defines the normal stepwidth that is used in the teaching / relocating dialog to move
the laser pointer
Fine Stepwidth: Defines the smaller, more exact stepwidth that is used in the teaching / relocating
dialog to move the laser pointer
Use two reference points: When this box is checked, the relocation can be done using two reference
points. With one point it is possible to equalize a work pieces translation in parallel to the preceding
position only. When two reference points are used, a rotation can be calculated too. The new position of
the work piece doesn't need to be exactly parallel to the preceding one.
An output pin that is toggled every time the teaching / relocating dialog is opened and closed can
be defined in IO Settings (e.g. switch a camera on and off).
Enable Dynamic Grayscale Map: Activates a dynamic System PixelMap. Three different modes of
interpolation are available in the drop down menu: Linear, Cubic or Hermite.
Offset for Step / Repeat: Defines a global step / repeat offset.
Motion Type settings: Here you can choose the motion type which is corresponding to the value in the file
sc_motion_settings.txt. Please refer to the chapter Motion Controller for further information. The motion
settings dialog is coming soon. If you choose entry 0 here the motion control will be deactivated. For motion
type 8 = Stepper motor there is a motion settings GUI which can be accessed by the button "Motion settings
dialog".
Flash Font Codepage: Here you can choose which font codepage should be saved to the flash of a USC-2
card. This is necessary if you want to change the dynamic text of a serial number (or barcode, DateTime
etc.) on the flash.
Ring splitting tilt compensation: This feature is to be used with Ring Splitting.Here you can type in the key
value of your equipment so that SAMLight can calculate the correct compensation.
5.10 3D
This option is only available for SAM software with the SAM3D option.
The following dialog can be reached by Menu item and covers several 3D marking
functionalities like they are useful e.g. for rapid prototyping.
General:
3DView: Enables / Disables SAM3D mode. The software must be restarted for the change to take
effect.
Use Optical Z-Axis: Check this option, when you want to shift the focus optically with a 3D scan head.
Home jump between slices: Performs a home jump after each marked slice. If it is checked and
is disabled, there will not be a home jump, but the laser
power of the HomeJumpStyle is set after each marked slice.
Use Styles for Layers: Activates the Styles Property Page for SAM3D.
The following entries are possible only if the right for password assignment is given, see
Access Rights.
Ask for User Password: If checked the user is asked for the user name and the password before the
software starts. If it is not checked the software starts with full functionality.
User: Displays the selected user.
Password / Enter once again: The password needs to be entered twice.
Set Pw/Name: Applies the password that is entered in the edit field to the selected user and changes the
name of the user if wanted.
Add User: Adds a new User to the list.
Remove User: Removes User from the list.
Edit Privileges: Opens a dialog where it is possible to for define access user rights.
If a user has no password this user will be a default user. For a login with an invalid password the
default user is taken. If more than one default user exists, the first one from the list is taken.
5.12 Card
These settings for RTC cards are described in section Card Settings.
5.13 Trigger
Trigger Mode 2: Serial numbers and Date Time objects are not being update between marking by trigger.
5.14 Report
activate: Activate the report file output. If active each marking produces an output to a file named
<Date>_<JobPath>.txt or .cvs in which the marked objects are listed. The file will be located at <SCAPS>
\reportfiles.
Text, Serial Number, Barcode: Choose which entities should be included in the report file.
File Format: If checked the output file will be in csv-format if not it will be a simple txt-file.
Log entity name: If checked the entity name will be additionally included in the report file.
6 Pen Settings
Each entity is assigned to a pen. This is by default pen 1. To be visualized on the screen each pen can have
a different color. Where to set the color, see in chapter View. The mark property page seen below can be
used to assign a pen to the selected entity. The parameters are different for YAG and CO2 lasers.
There are several possibilities to save and load the pen settings:
Save pens into SAMLight settings file (*.sam) Load pens from SAMLight settings file (*.sam)
Load pens on SAMLight start.
Save Pens on exit'
if the pens should be saved when closing
SAMLight. load pens on file
new' if the current pens should be reverted.
Save pens into SAMLight job file (*.sjf) Load pens from SAMLight job file (*.sjf)
Save (as)'. Define in Load'. Define in
Job Save/Load Job Save/Load
Dialog' the default state of the 'Pens' checkbox. Dialog' the default state of the 'Pens' checkbox.
YAG laser:
CO2 laser:
Pen: The drop down menu can be used to switch between pens.
Spot size: This value is used for the display of the spots.
Distance between dots: Gives information on the distance between pixels in bitmap mode.
Protected Pen: When activated, the pen is protected. Thus, the parameters cannot be changed any more
(also not by the application of an 'All' button in any other pen). It will be possible by user level to deny editing
pens for specified user groups. This protected flag is only stored in the SAMLight settings and not in the pen
settings. That means it won't be exported via pens included in a job file. If a job with included pens is loaded,
a protected pen will be overwritten anyway. It is possible to overwrite a protected pen by CCI.
For further information on the Main tab, see Main Settings for Pens.
For CO2 lasers, the following dialog appears:
Standby:
Half-period: Half of the laser pulse period for standby mode.
Stand-by: Q-Switch length in µs for standby mode. The stand-by mode can be globally set in the card
settings.
Delays: The scanner delays influence the time of the scanning process. To optimize the delays it is
recommended to set the scanner delays on high values and define the laser delays first. Then the scanner
delays can be optimized. Some conditions should be considered:
Amp. L.: For some modes, two different amplitudes can be specified. In this case, this amplitude is the
longitudinal one. It needs to be activated with the checkbox.
Rotation: Most modes can be rotated in respect to the default direction. The range for rotation is [-180, 180]
deg.
Arc: This parameter defines the opening angle for C-Shape mode. The range for this arc is [1, 720] deg.
Along Marking Direction: Most wobble shapes can be aligned in respect to the marking direction. If
unchecked, the alignment of the wobble shape is along the X-axis.
The following modes are available for different scanner control cards:
Circle Sine Ellipse 8-Shape Double-8 Zig-Zag C-Shape
USC-1/2, RTC3/4
RTC5
USC-3
Table 11: Available wobble modes for different cards. The RTC5 wobble modes have some restrictions.
The following wobble parameters are available for different wobble modes:
Circle Sine Ellipse 8-Shape Double-8 Zig-Zag C-Shape
Frequency
Amplitude T.
Amp. L.
Rotation
Arc
Along Mark. Dir.
Table 12: Available wobble parameters for different wobble modes.
For each mode of the wobble, an example of the scanner path is given in the following.
Circle: The circle wobble can be used with all USC cards and
all RTC cards. If the circle wobble is selected, all vectors and
jumps are executed with this circular movement of the
scanner.
Frequency and Amplitude can be changed. The amplitude
defines the radius of the circle.
USC-3 Sine: The sine wobble is available for the USC-3 card
only.
Frequency, Amplitude and Rotation can be changed. The
amplitude defines the height of the sinus. The shape can be
rotated in respect to the default or marking direction
(depending on the state of the flag "Along Marking Direction").
Parameters Suggested values Effect if value is too low Effect if value is too high
StartLength = ScannerLag Laser shots are too narrow at No problem, just increasing
the start of a vector. mark time.
EndLength = ScannerLag Laser shots are too narrow at The last part of a vector is
the last part of a vector marked too long.
Jump Delay normal Oscillations could occur at No problem, just increasing
the start of a vector. mark time.
Mark Delay = 0µs No problem. No problem, just increasing
mark time.
Poly Delay normal The corners of the polyline Burn-in effects at the corners.
are rounded off.
LaserOn = StartLength + ScannerLag The first part of a vector is The first part of a vector is not
Delay marked too soon. marked.
LaserOff = 1µs First delay rule for SkyWriting The last part of a vector is
Delay must be true. marked too long.
Table 13: Suggested starting values and marking effects of SkyWriting parameters
ScannerLag is the time delay between XY2-100 signal and scan head. Depending on the scan head
acceleration, a SkyWriting StartLength value higher than 'ScannerLag' could be required.
Defocus: This activates a focus shift on the Z-Axis. The unit of pen defocus is:
The SkyWriting parameters can also be used for black and white bitmaps.
Mark Lines as Dots: If the enable checkbox is set, lines will be marked as dots that lie on the defined Grid
Raster. The Mark Lines as Dots feature does not work together with Perforation.
Ramping General:
AutoLengthenStartRamp: Add marking vectors before the beginning of the actual marking.
AutoLengthenEndRamp: Add marking vectors behind the end of the actual marking.
Power Ramping:
Start: Enable power ramping at the beginning of the marking. This smoothly increases the power of the
laser from a given start value Start power to 100 % within the Length in mm. The checkbox Activate
must be checked to enable this functionality.
End: Enable power ramping at the end of the marking. This smoothly decreases the power of the laser
from 100 % to a given End power within the Length in mm. The checkbox Activate must be checked to
enable this functionality.
Speed Ramping:
Start: Enable speed ramping at the beginning of the marking. This smoothly increases the speed of the
scanner from a given start value Start speed to 100 % within the Length in mm. The checkbox Activate
must be checked to enable this functionality.
End: Enable speed ramping at the end of the marking. This smoothly decreases the speed of the
scanner from 100 % to a given End speed within the Length in mm. The checkbox Activate must be
checked to enable this functionality.
If laser mode is IPG and the laser type 0 the power is changed by a manual latch sequence. This
takes about 4 ms for each step. For power ramping the number of steps is therefore significantly
reduced when using high marking speeds.
Enable Dynamic Grayscale Map. Up to 255 individual interpolation points can be set by clicking on the line in
the input-output view or by 'Insert Point'. Points can be changed by editing the values in the table or by
dragging the red boxes in the input-output view.
This Pen PixelMap applies a new grayscale value to grayscale bitmaps according to the linear, cubic or
hermite interpolated input-output values in the table of Points.
Enable Dynamic Grayscale Map. Up to 255 individual interpolation points can be set by clicking on the line in
the input-output view or by 'Insert Point'. Points can be changed by editing the values in the table or by
dragging the red boxes in the input-output view.
This system pixel map applies a new grayscale value to grayscale bitmaps according to the linear, cubic or
hermite interpolated input-output values in the table of Points.
7 User Interface
At start up the application displays the user interface like it is shown below.
Menu bar
Toolbars
Main Window: Entity List / View 2D / Entity Property Sheet
File
Edit
Mark
Extras
User
Settings
Window
Help
Special: The menu item Special is shown, if there are user defined Script settings.
7.1.1 File
New: Prepares for a new job and it deletes all current entities.
Load...: Opens a dialog to read jobfiles in SCAPSJobFile-Format (*.sjf) format. See chapter Job Format.
Save...: Saves the current job in sjf format.
Save as...: Opens a dialog to save the current job under a new file name (*.sjf). See chapter Job Format.
Job Properties...: See chapter Job Properties.
Import...: Import of data in format, for more details see chapter Import.
Extension Description
*.ai Adobe Illustrator (AI) is a vector graphics file format.
*.gbr Gerber Format (GBR) is a vector graphics file format for printed circuit boards.
*.gif Graphics Interchange Format (GIF) is a raster graphics file format.
*.job GSI PC-Mark job file format containing vector graphics.
*.tif Tagged Image File (TIF) is a raster graphics file format.
*.txt Point Cloud Data is a ASCII format containing 3D vertices.
*.274x RS-274X is an extended Gerber Format, see *.gbr.
*.bmp Bitmap (BMP) is a raster graphics file format.
*.cmx Corel Metafile Exchange (CMX) is a vector graphics file format.
*.cnc CNC G-Code is a language to control CNC (Computer Numerical Control) machines.
*.dst Tajima DST is an embroidery vector graphics file format.
*.dwg DraWinG (DWG) is a binary CAD file format.
*.dxf Drawing Exchange Format (DXF) is a CAD file format.
*.emf Enhanced Metafile (EMF) is a raster graphics file format.
*.jpg Joint Photographic Experts Group (JPEG) is a compressed image format.
*.mcl Marker Control Language (MCL) is a GSI PC-Mark vector graphics file format.
*.pcx Personal Computer Exchange (PCX) is a raster graphics file format.
*.plt Hewlett-Packard Graphics Language (HPGL) Plotter File (PLT) is a language format for printing
line drawings, specifically designed for 2D plotters.
*.png Portable Network Graphics (PNG) is a raster graphics file format.
*.saf SAF is a SCAPS archive.
*.svg Scalable Vector Graphics (SVG) is a 2D vector graphics file format.
*.tga TGA or TARGA is a raster graphics file format.
*.twain TWAIN is a software protocol and applications programming interface between software and
scanner.
Table 15: Available import formats
Export...: Export of selected entities in HPGL (PLT) or SCAPS Archive (SAF) format. See chapter Export.
Print...: Prints the current View2D.This function works only if a printer is installed. See chapter View 2D.
PrintPreview: Shows a print preview of the current View2D. This function works only if a printer is installed.
See chapter View 2D.
PrinterSettings: Shows the printer settings dialog.
Exit: Closes the SAMLight software.
saves the current job. If there is no job name defined it is called SaveAs. Menu bar
opens a dialog to save the current job under a new name.
Entities: If selected the entities of the selected file are loaded / saved.
Overwrite entities: This Check button is only active for dialog Load. If activated the entities of the current
job are deleted when the job is loaded. If not the job entities are added to the current job.
Pens: If selected, the pens of the job are loaded / saved.
NumObjectsPerPart: Defines the number of top level entities that are treated as one part. This affects
the Part Counter Mode. See and
7.1.2 Edit
Undo: Undo of the last operation. Not all operations support Undo. Undo is a command that erases the last
change done to the current job reverting it back to the preceding state. The opposite of undo is redo, please
see above for details.
Redo: Redo of last Undo. The operation that has been reverted by a Undo-operation is re-done.
Move: moves the position of the selected entity or entities in the entity list. The sequence in the entity list
determines the sequence of marking.
Delete: Deletes the selected entities.
Duplicate: Copies the selected entities and brings them to view level 1 of the Entity List. See also chapter
Entity List.
ArrayCopy: This creates an array of copies of the selected entities (objects). See chapter ArrayCopy.
ArrayPolarCopy: This creates the specified number of copies of the selected entities (objects) arranged in a
circular way. See chapter ArrayPolarCopy.
Select: Provides functions for selecting the enteties one by one, etc. Works in the first view level. You can
select all, first, previous, next and last entity of your entity list in the job.
Group: Groups the selected entities and puts them into an entities group. See also chapter Object
Hierarchy.
UnGroup: Ungroups the selected entities group. The view level of all entities inside the group will be
decreased by one. See also chapter Object Hierarchy.
Align...: If at least two objects are selected they can be aligned with the border or center of their outlines.
See also chapter Align and Spacing Toolbar.
Spacing...: If at least three objects are selected they can get evenly distributed inside their common outline
which is possible in horizontal or vertical direction. To do more specific spacing see dialog Spacing
Advanced.
Nudge...: Translates a selected object by a small step. The nudge step is user defined in
View. The Nudge 10 functions use 10 times of the Nudge step for the translation.
Center...: Translates a selected object so that the center of the working area becomes the center of the
object. You can center along horizontal, vertical or both axes.
Rehatch All: Rehatches all entities of the job using the hatch values that are specified for them. When an
entity is hatched and afterwards e.g. scaled the hatch lines are influenced by this scaling operation and are
no longer conform to the hatch parameters that have been set before. By calling this operation such
modifications are removed and the original hatch values are restored.
Set Pen Number: Assigns a pen (1..10) to the current job.
The view in the middle of the dialog gives an example of the selected spacing.
Left: The spaces between the left outlines of successive elements are set equidistant inside the common
outline.
Center: The spaces between the center of successive elements are set equidistant inside the common
outline.
Right: The spaces between the right outline borders of each element are set equidistant inside the common
outline.
Space: The spaces between the right outline border and the left outline border of the following object are set
equidistant inside the common outline.
Fix Space: If one of the described attributes is defined an according fix space can be defined as well.
7.1.2.2 ArrayCopy
7.1.2.3 ArrayPolarCopy
7.1.3 Extras
Topics of Extras:
Figure 105: Teach Reference dialog Figure 106: Relocate Reference dialog
For teaching and relocating reference points the related dialogs offer the following functions. These functions
can be controlled by the keys described in brackets:
ArrowKeys (cursor up, down, left, right): Move the currently selected reference point in X- and Y-axis. The
width of such a movement depends on the stepwidth.
DepthKeys (page up, down): Move the actual reference point in Z-axis (depth coordinate). The width of such
a movement depends on the stepwidth.
Fine/Normal (toggle with Shift): Switch between the normal and the fine stepwidth, these values can be
configured.
Enable: This checkbox is only available in the teach dialog. It can be used to enable or disable teaching and
relocating for a job.
Actual Position: X, Y and Z are absolute coordinates of the currently selected reference points
Reference 1 / 2 (toggle with CTRL): Check
Use two reference points' to enable a second reference position. With two reference positions it is possible
to shift and rotate the entities in the View2D.
The one that is currently selected is changed using the cursor keys. If the checkbox between these both
radio buttons is selected, the behavior is slightly different. In this case the reference point two is moved
relatively to reference point one. This can be used for a raw location of the working piece in a first step to
avoid moving wide distances for both reference points separately. If this box is unchecked, both reference
points are changed completely independent from each other.
Use Outline: Instead of a single reference point the outline of a job can also be used to select a position. If
this option is checked it behaves same as the reference position 1 and can be used to teach or relocate
position changes. Because an outline is always a rectangle with its sides parallel to X and Y axis this option
can be used only in positioning mode with one reference point.
configuration and enabling of the external motion control to perform the automatic movement of the object
that has to be marked in case an external drive has to be used
definition of the total number of repeats that have to be done for the same job during one marking cycle
definition of the speed the motion controller has to drive the external hardware with between two marking
steps in case an external drive is used
selection of a Step/Repeat mode (Angular or Planar mode) and configuration of its specific settings
Configuring the Motion Control has to be done at . Here in the
field Motion Control the checkbox Active has to be selected. Additionally the motion control configuration file
for the used controller has to be configured. Depending on the Step/Repeat mode that has to be used, the
motion controller needs to be set up for angular or planar movements. The configuration dialog will only offer
these modes and axes for configuration that are enabled using the correct Motion Control mode. If the
motion controller was configured in a way that no axes are available for rotating or that the wrong axes (not X
and Y) are configured for moving, there will be no configuration possibilities available in the Step/Repeat
settings dialog beside the planar mode that translates the whole job to simulate some kind of movement.
The following dialog can be opened via
General: At the top of the dialog window the common settings that are valid for all Step/Repeat modes can
be made. The total number of steps and the motion speed can be defined here.
Keep Marking Active Output: In normal operation mode the digital_output_0 is set to 1 every time a
split is marked and it is set back to 0 during the movement operation. This behavior can be changed by
enabling the checkbox Keep Marking Active Output. If it is active then the marking signal via
digital_output_0 would stay at 1 as long as the complete job including all splits is marked.
Workpiece Movement: If the scan head is not moving but the workpiece is moving instead, then all
relative movements have to be inverted.
Mode:
Angular Stepping: The angular mode has to be used for environments where the working pieces can
be moved by performing a rotation. Here the following has to be defined:
"step and repeat" operation. Here movements within one level and in two directions X and Y can be
defined. Accordingly the motion controller needs to be configured in a way that the two axes X and Y are
available for planar movements. Else this option can work in movement simulation mode only when the
complete job is translated instead. This option can be enabled by setting the checkbox Simulate Axes. In
this case no start position can be used. Here it is defined by the current position of the jobs entities within
the working area.
For both axes the following values can be set:
Start Position: The starting position to which the motion controller moves to at the beginning of a
full Step/Repeat marking cycle
Stepping Distance: The distance the axes have to be moved in a defined direction for every
repeated marking
Stepping Count: The stepping count defines how often the job is marked.
Additionally there are four buttons that define the order and direction of the movements that are
performed after every mark. Here the following things can be defined:
requires a connected motor, which is controlled via step and direction signals. SAMLight motion type must
be "Type 8 - Generic stepper controller" or "Type 14 - USC-2 stepper controller".
requires a bitmap, which is not rotated in SAMLight
modifies the bitmap automatically to fit to the resolution of the drive and the desired bitmap marking
parameters; here the dither step value is an important parameter
The following steps are necessary to mark a bitmap along one of its axes:
1. The motion driver has to be configured for rotary or planar marking mode
2. A bitmap has to be imported. Its scanner bitmap has to be created and configured according to the
desired results. If the option "Scan XDir" is set for that bitmap the bitmap splitting functionality will
recognize this automatically and will perform all checks and calculations using the correct bitmap direction.
3. The Continuous Bitmap Marking setup dialog that can be found in submenu "Settings" has to be called to
set up the rotation or motion axis, the diameter of the ring, the marking angle for angular marking as well
as the rotation direction and the mark width or planar marking.
4. The Continuous Bitmap Marking feature has to be enabled for the next marking process by
.
General:
Speed: The speed the connected drive has to be moved in between two lines of the bitmap
Reverse Movement Direction: Reverses the direction the drive moves e.g. to mark the inner part of a
ring
Mode:
Angular Marking:
Rotation Axis: Selects the axis of the drive that has to be used for the movement. This option is
important when there are more than one angular axes configured for a motion drive, but it does not
influence the splitting direction of the bitmap. If there is no angular axis configured the complete
angular marking mode is not available.
Total Diameter: The diameter of the ring that has to be marked. This value is used to check if the
laser is able to create a result without gaps. Is the dither step of the bitmap much smaller than the
drives resolution the operation would fail.
Mark Angle: Specifies which part of the ring has to be marked with the bitmap. Depending on this
value the size of the bitmap is modified to fit. In case the option Keep Bitmap Size is not chosen.
Keep Bitmap Size: If that option is set the bitmap is not scaled in order to get a size that results in
the specified marking angle, here the source bitmap is left untouched.
Planar Marking:
Motion Axis: Selects the axis of the drive that has to be used for the movement. If there is no planar
axis configured the complete planar marking mode is not available.
Mark Width: Indicates the width of the marking.
Keep Bitmap Size: If that option is set the bitmap is not scaled in order to get the size that is
specified by the mark width, here the source bitmap is left untouched.
7.1.4 User
You can login as a defined user at . It is enabled with user password mode, see
section User Level.
7.1.5 Window
Maximize: Maximizes the actually displayed window (Main Window or Preview Window).
Tile: Shows the Main Window and the Preview Window next to each other.
Preview: Shows the Preview Window.
Main: Shows the Main Window.
7.1.6 Help
Contents: Opens the help window.
About...: Shows an information window with the version number.
7.2 Toolbars
The following toolbars are available:
File Toolbar
Camera Toolbar
View Level Toolbar
Geometry Object Toolbar
Functionality Object Toolbar
Align and Spacing Toolbar
Extras Toolbar
Stepper Position Toolbar
3D Surfaces Toolbar
Special Sequences Toolbar
The toolbars can be activated/deactivated in View:
Clicking on the button Toolbars opens the following dialog:
Print: Prints the current View2D.This function works only if a printer is installed. See chapter View 2D.
Print preview: Shows a print preview of the current View2D. This function works only if a printer is
installed. See chapter View 2D.
ShowEntity List: Shows and hides the Entity List on the left side of the View2D. See chapter Entity List.
ShowPropSheet: Shows and hides the Entity Property Sheet on the right side of the View 2D. See
chapter Entity Property Sheet.
3D View: Select at least one entity and click this button to open the 3D view. This feature is available
only with Optic 3D.
Plan View xy: Clicking on this button changes the perspective of the View2D to plain view. This feature
is available only with Optic 3D.
Side View xz: Clicking on this button changes the perspective of the View2D to side view. This feature
is available only with Optic 3D.
Side View yz: Clicking on this button changes the perspective of the View2D to side view. This feature
is available only with Optic 3D.
Fit All: Clicking on this button fits the view to the scanner field.
Fit All Entities: Clicking on this button fits the view to all entities in the view.
Fit Selected: Clicking on this button fits the view to the current selected entities.
Zoom Window: Clicking on this button allows the user to do a user defined zoom window. To define a
zoom window follow these steps:
After clicking this button move the mouse to the first corner of the window.
Click the left mouse button and keep it pressed.
Drag the mouse to the second window corner and release the left mouse button.
Drag: With the mouse the working space of view 2D can be dragged.
Free zoom: With the mouse wheel you can zoom in or out relative to the mouse pointer.
Centered zoom: By holding CTRL and drag with the left mouse button the user can zoom in or out.
View Level Toolbar: This toolbar provides two arrow buttons for increasing or decreasing the
View Level of the Entity List. The third button of the View Level Toolbar displays the level number of the
actual View Level. For more detailed information see the chapter Entity List.
Point: Creates a point by clicking the left mouse button at the desired position in the View 2D.
Line: Creates a straight line defined by a start and end point: Click the left mouse button at the desired
start position in the View 2D. Move the mouse to the desired end position and click the left mouse button
again.
Rectangle: Creates a rectangle in two steps: Click the left mouse button at the desired position of the
left upper corner in the View 2D. Move the mouse while keeping the left mouse button pressed to the desired
position of the right lower corner and release the left mouse button. To change the geometry of the rectangle
after its creation see the chapter Rectangle. To change the position and/or the orientation of the rectangle
see the chapter .
Triangle: Creates a triangle that is defined by its three corners: Click the left mouse button at the
desired position of first corner in the View 2D. Click the left mouse button at the desired position of second
corner. Click the left mouse button at the desired position of third corner. To change the position and/or the
orientation of the triangle see the chapter .
Ellipse: Creates an ellipse: Click the left mouse button at the desired position in the View 2D. Move the
mouse while keeping the left mouse button pressed until the ellipse has the requested size. To change the
geometry of the ellipse's after its creation see the chapter Ellipse. To change the position and/or the
orientation of the ellipse see the chapter .
Circle - 3 Points: Creates a circle out of 3 Points. Click the left mouse button at three desired positions
one after another in the View 2D. Change the circle by moving those three contact points. Change the
segment count within the Geometry Property Page.
Circle - Center Radius: Creates a circle out of two Points: the center of the circle and one point which
is an element of circle. Click left mouse button at the two desired positions one after another in the View 2D.
Change the circle by moving those two contact points. Change the segment count within the
Geometry Property Page.
Arc - 3 Points: Creates an arc out of 3 Points which are elements of the arc. Click the left mouse button
at the three desired positions one after another in the View 2D. Change the arc by moving those three
contact points. Change the segment count within Geometry Property Page.
Arc - Center Angle: Creates an arc out of 3 Points: the center of the arc and two points which are
element of the arc and define the beginning and the end of the arc. Click the left mouse button at the three
desired positions one after another in the View 2D. Change the arc by moving those three contact points.
Change the segment count within Geometry Property Page.
Spiral: Creates a Spiral by clicking the left mouse button at the desired position in the View 2D.
Polyline: Creates a PolyLine defined by a sequence of points: Click successively the left mouse button
at the desired positions in the View 2D to generate a sequence of points. To finish the sequence click the
right mouse button and choose one operation of the provided two operations "Finish" or "Close&Finish". To
change the position and/or the orientation of the Polyline see the chapter .
Timer: Creates a default timer entity. Please refer to section IO Control Objects.
Wait For Input: Creates a default WaitForInput entity. Please refer to section IO Control Objects.
Set Output: Creates a default SetOutput entity. Please refer to section IO Control Objects.
Set Override: Creates a ScOverride entity. By clicking on it a ScOverride Icon is shown in the entity list.
For more information see chapter SetOverride Control Objects.
Set Executable: Creates a ScExecutable entity. By clicking on it a ScExecutable Icon is shown in the
entity list. For more information see chapter Executable Control Object.
Set Analog Output: Creates a default SetAnalogOutput entity. Sets a value in percent of the output
ports A or B.
Motion Control: Creates a default MotionControl entity. This button is only available if Motion Control is
activated in the menu . Please refer to section Motion Control.
Motion Control Go: Creates a special MotionControl entity. SAMLight will continue with the next
entities without waiting for the motion to be ended. Please remind that the motion command will continue
even if the marking in progress signal is off at the end of the entity list.
Date Time: Creates a default DateTime entity. Please refer to section Date Time.
Serial Number: Creates a default Serial Number object. Please refer to section Serial number.
Jump: Creates a default jump entity. Please refer to section ScJump Control Object.
Motf Offset: Defines an offset for a marking on-the-fly application. When this offset has elapsed a
trigger event will be released. For more details on how this feature can used to set up advanced MOTF-jobs,
please refer to the section Trigger Control Objects.
Wait For Trigger: The execution of a job is stopped until a trigger event is detected. This can be an
external hardware trigger or a trigger signal released by a preceding Motf Offset object. For more details on
how this feature can used to set up advanced MOTF-jobs, please refer to section Trigger Control Objects.
Data Wizard: Allows to do different data manipulations on the selected objects. Please refer to section
Data Wizard.
Parameter Finder: Allows to optimize pen parameters. Please refer to section Parameter Finder.
Statistic:
total: Number of all objects
outer: Objects which are orientated counterclockwise.
inner: Objects which are orientated clockwise.
Length: Total Length in mm
Sort:
Create One Group: Can be used to optimize the order of the vectors to minimize the marking-time. All
selected ScPolyLine2D objects will move into a new ScPolyLines2D folder. Then two polylines will be
closed to a new polyline if the distance between them is smaller than CloseDist (in mm). If CloseDist is
set to '0' no polylines will be closed. Afterwards all polylines will be sorted in order to minimize jumps. If
necessary and possible polylines will be flipped to optimize the marking order of the polylines and thus
the marking-time as well.
Close: Sorts and closes open polylines if the distance of open points is smaller than given CloseDist.
Subgroup Closed Lines: Groups selected Subgroups in one Layer.
Create Pen Groups: Puts and sorts all selected objects in one new main group consisting of different
subgroups - one for each pen. Depending on the laser type, this can reduce marking time when more
than one pen is used for marking because the number of switches between the different pens is
reduced.
CloseDist: Distance below open polylines are closed.
Optimize Jumps: the total jump distance between poly lines would be optimized. This feature is only
designed for vector graphics. Before clicking the button, a group of entities must be chosen first. After
clicking OK, a new group of entities with optimized distance would be created on the position of the
original entities. At the end, the original entities are to be deleted. This step is suggested to be made at
last, because the optimized group could not be edited as the original entities. The home jump distance is
not calculated in the algorithm. If the home jump is not enabled, the default start position is (-10,000, -
10,000, -10,000). That means, enabling home position or not may differ the optimized result.
JumpDistOrg: shows the total jump distance of the original group entities.
JumpDistOpt: shows the total jump distance of the optimized group entities.
Marking Order:
The field Marking Order provides the functionality for automatically arranging the marking order of a
chosen group of entities.
Click the button containing a red arrow to change the primary sorting rule.
sorts entities in ascending order according to the x-coordinate of their most left points.
sorts entities in descending order according to the x-coordinate of their most right points.
sorts entities in ascending order according to the y-coordinate of their lowest points.
sorts entities in descending order according to the y-coordinate of their highest points.
Rotate before: rotates the chosen entities counterclockwise around the source point by the number
defined in the text box in degree before sorting.
Areas: There are four boolean operations to combine two areas, for example C1 and C2:
Intersection (AND): New area where only the intersection of C1 and C2 is filled
Difference (NOT): New area where where everything that is not C2 is filled
Exclusive Or (XOR): New area where only the non-intersecting areas are filled
Simplify: Self-intersections from the supplied polygon will be removed by performing a boolean union
operation.
Fill Type: The filling rules define the handling of areas and holes. There are four filling rules for the four
boolean operations:
Even/Odd: Only odd numbered sub areas are filled.
Non Zero: All non zero sub areas are filled.
Positive: All sub areas with winding counts bigger than 0 are filled.
Negative: All sub areas with winding counts smaller than 0 are filled.
Manual Split:
Splits the selected Polyline with respect to the X,Y or Z axis at the desired co-ordinate.
Round:
Each X or Y coordinate of the selected entity will be rounded to the next full value given by the input field
in [mm].
Some of the functions change the organization of the selected object. For example: If using
"Create One Group" on a serial number this will change it into a plain text entity.
7.2.5.2 ParameterFinder
The Parameter Finder is a tool that helps to optimize pen parameters. It is structured as a wizard which
guides the user through the different steps of:
1. Define the pen which should be optimized, the grid and the entity to be used for testing
2. Choose the "X Parameter" to be varied in horizontal direction
3. Choose the "Y Parameter" to be varied in vertical direction
4. Mark, selection of the best result, fine tuning.
When clicking on the icon of the Parameter Finder, the following dialog appears:
Navigation is possible either with the buttons "Forward" and "Back" or by clicking directly on the button
Preview: A preview is shown on the left half of the dialog. Changes made in the parameter definition will be
automatically displayed in the preview.
Pen: Use the drop down menu to choose the pen which should be optimized. The parameter values set in
this pen will be taken as start values for the parameters to be chosen on the pages X Parameter and Y
Parameter of the Parameter Finder.
Grid definition: Define the total amount of entities in X and in Y direction.
Workpiece: Define the size and center of the workpiece. This is the area on which the entities of the grid will
be equally distributed automatically.
Hatch: Activate a hatch (unidirectional) in X or in Y direction. If activated the distance between individual
Preview: The color gradient indicates the variation of the parameter chosen in X direction. A label is given
on the bottom according to the parameter chosen.
X Parameter: Specify the parameter which should be varied in horizontal direction.
Category: Choose a category from the drop down menu. Parameters are categorized according to the pen
property pages.
Parameter: Choose a parameter from the drop down menu. Per default, the current value of this parameter
given in the pen is taken as start value. The start value and the delta (difference between two entities in X
direction) can be adjusted. The resulting maximal value is calculated automatically.
Preview: The color gradient indicates the variation of the parameter chosen in Y direction. A label is given
on the bottom according to the parameter chosen.
Y Parameter: Specify the parameter which should be varied in vertical direction.
Category: Choose a category from the drop down menu. Parameters are categorized according to the pen
property pages.
Parameter: Choose a parameter from the drop down menu. Per default, the current value of this parameter
given in the pen is taken as start value. The start value and the delta (difference between two entities in Y
direction) can be adjusted. The resulting maximal value is calculated automatically.
Preview: On this page, the preview is used for selection of the best result (left click, red) or selection of an
area for fine tuning (right clicking, blue).
1. Choose a log name: For each mark, a log is created which can be loaded on the Start page of the
Parameter Finder. Specify the name of this log here.
2. Mark - Emission will start immediately: When enabled, the red pointer can be used with the buttons
Start and Stop. Clicking on the mark button will start the marking.
3. Choose the best result by left clicking on the green rectangle: After having marked, the best result in
reality can be detected and chosen by left clicking on the respective rectangle in the preview (will be
highlighted in red). The exact parameter values will be given in the fields of "Selected Parameters". To save
the chosen values to the pen, click on the Save button in point 5.
4. Or select a range for: If no best result can be identified, an area can be chosen for fine tuning. The area
can either be chosen by right clicking on several rectangles or by dragging with pressed left mouse button
(area will be highlighted in blue).
5. Save values to Pen x: If a best result has been chosen, the parameter values can be stored to the pen
chosen on the Grid page.
Align Left: Active if at least two objects are selected. The objects are aligned left to the left outside
object.
Align Center: Active if at least two objects are selected. The objects are aligned horizontally to the
center of their common outline.
Align Right: Active if at least two objects are selected. The objects are aligned right to the right outside
object.
Align Top: Active if at least two objects are selected. The objects are aligned top to the top outside
object.
Align Middle: Active if at least two objects are selected. The objects are aligned vertically to the center
of their common outline.
Align Bottom: Active if at least two objects are selected. The objects are aligned bottom to the bottom
outside object.
Spacing Horizontal: Active if at least three objects are selected. The objects are distributed evenly
inside their common outline.
Spacing Vertical: Active if at least three objects are selected. The objects are distributed evenly inside
their common outline.
Spacing Advanced: Opens a dialog where more specific spacing can be done. See dialog Spacing
Advanced.
Center Both: The selected entities would be centered both horizontally and vertically.
This toolbar can be used to directly access the functions for Splitting a job and for Step/Repeat marking.
After the same functionality is available via the related Extras menu items it is disabled by default. This
toolbar can be activated within the settings before it can be used. It offers following functionalities:
Drop down menu: This menu allows you to select a certain splitting mode. Then this mode can be edited
using the button Splitting Settings.
Splitting Settings: This button offers direct access to the splitting settings dialog where several splitting
parameters can be configured.
Resplit Job: This button is enabled when the splitting mode is activated for a job. This is the case when
the check box right beside that toolbar button is selected. It can be used to re-split the current job in order to
make changes to that job become valid for the splitted data too.
Step/Repeat Settings: This button offers direct access to the settings dialog for the Step/Repeat
parameters.
Reset Position: In case the Step/Repeat mode is activated (the check box right beside that button is
selected) it can be used to reset the position of the current object. That causes - depending on the Step/
Repeat mode - either a repositioning of the used geometry to its original position or a movement of the used
drives so that the starting position is reached.
Bitmap Splitting: If a scanner bitmap is present in the entity list then this bitmap can be splitted in
order to mark on a round surface.
Here the toolbar elements that are known out of the main window can be used. Their
settings and parameters can be edited in a similar way. The following special sequences (special jobs) can
be chosen:
Startup Job / Program Start: If a job is defined here it is executed directly after program startup to e.g.
initialize special external equipment. A marking operation performed by this preprocessing job is not ranked
as a normal operation like the mainjob and therefore not counted as one quantity. Due to security reasons it
is recommended to avoid potentially dangerous operations like laser marking operations or heavy
movements within this job.
Mainjob: This job is the default job. The items defined here are processed during a marking operation and
are counted as one quantity each. This job is the same like the only one that is executed in case the special
job functionality is turned off.
Exit Job / Program End: This job is the counterpart of the Startup Job. It is executed when the program is
shutting down. Such a Postprocessing Job can be used e.g. to deinitialize external equipment. If a marking
operation is performed here it is recommended to avoid potentially dangerous operations within this job.
Mark Preprocessing: This Job is a specific one that is executed directly before the main marking job is
executed. If a Splitting or Step/Repeat operation is performed, this job is executed once before the full
operation starts. In SAM3D the mark preprocess will only be performed before the first slice of the job. If you
start the build with another slice but the first one no mark preprocessing job will be executed.
Mark Postprocessing: If the marking of the main job is finished or when the user has pressed the stop-
button during marking then the job that is defined here is executed.
Here no dangerous operations like additional marking operations should be executed. There
would be the high risk that if somebody presses stop but instead of stopping an other marking
process is started. This special sequence should be used only for deinitialization operations that
are necessary after marking, e.g. to set some outputs to defined values.
Mark single Step- / Split- Preprocessing: If Splitting or Step/Repeat is used a marking in progress
sequence can be defined which will be done e.g. after an axis movement has finished. This sequence will be
executed right before the laser starts to mark the next mark job.
Mark single Step- / Split- Postprocessing: If Splitting or Step/Repeat is used this sequence will be
executed right after the making procedure has finished and before an axis movement starts.
Slice Preprocessing: This Job is available in 3D-mode only and is executed directly before a single slice of
a 3D object is marked. Here several control elements can be added e.g. to move a Z-table that modifies the
vertical position or to set specific output pins that perform that task.
Slice Postprocessing: This Job is available in 3D-mode only and is executed directly after a single slice of
a 3D object was marked. Here several control elements can be added e.g. to move a Z-table that modifies
the vertical position or to wait for specific input pins.
Stop Processing: This task will be performed in case of external stop (via OPTO_IN_1) is recognized if the
stop button in the mark dialog is clicked or if the control command client ScStopMarking () is recognized.
Here, several control elements can be added for example to move a Z-table that changes the vertical
position or to wait for dedicated input pins.
Using the toolbar shown above it is possible to switch between these jobs and then to perform all normal
operations for the actually selected job. Because these special jobs are no common operation they are
disabled by default so that only the mainjob is visible and useable. The pre- and postprocessing jobs can be
enabled using the Special Sequences Settings.
The Special Sequence settings can be saved in each Job file with the checkbox "Save pre/ post jobs in 'sjf'
When you load a job file, you can check in the loading dialog whether there is special sequences information
already included in the job file with "SAMLightJobs".
In a version later than 3_6_5_0011, by loading a job file with special sequences, the special sequences in job
file would overwrite the special sequences in the global SAMLight settings. Please note that "Startup Job /
Program Start" and "Exit Job / Program End" are not saved in the job specific special sequences.
In a version earlier than 3_6_5_0012, by loading a job file with special sequences, this information can be
read in the loading dialog, but the special sequences would not be loaded.
If activated the Analog In toolbar displays the converted voltage according to settings of Analog In dialog in
accordance with the set names and units there.
Entity List
Point Editor
The Entity List shows all the entities in the current job and visualizes their logical structure / hierarchy in a
ListView. It provides operations for moving, copying and sorting entities as well as exploring entities that
contain sub-entities. The Point Editor is a tool to visualize and modify the point description of an entity.
Operations:
Exploring: By double clicking an entity which contains other entities (for example a Group) the ListView will
step inside and show the entities inside the selected one.
Move: This is the standard operation of a drag and drop process: It moves the selected entity or entities.
Here following possibilities are available:
NumberEntities: All Entities, regardless if they are selected or not, are being named with a number starting
from 1.
NumberEntities with pre-/postfix: Opens the corresponding dialog. All Entities are being named starting
from a freely selectable number with with a freely selectable incremental value and / or a defined pre or
postfix.
Start / Stop Indexing Entities: Opens the corresponding dialog If selecting this the first time all Entity
Names are being deleted. Now the user can choose between indexing options. If this is done the user may
index any entity by clicking on it with the left mouse button. By default the indexing starts with 1 and is
incremented by 1 after each mouse click. If the user wishes to return to normal mode again, he selects Stop
Indexing Entities.
Sort By Name: Selecting this function sorts the entities on the actual level by their name. The name
comparison is case sensitive and starts at the first letter of the name.
Remark to SortByName: The entities with the names 1, 2, 12 will be sorted to 1, 12, 2, because the first
letter of entity 12 is 1 and of entity 2 is 2. So the entity 2 gets the position after entity 12. To solve that
problem the user may name the entities like 001, 002, 012.
Remark to changing the order of the entities: The entities of a group will always be marked from the top
first to the bottom last in the ListView. So changing the order in the ListView can be used to change the order
of exposure during the mark process.
Cut: The currently selected entities are cut out of the list and they are put into the internal entity clipboard for
use in further operations.
Copy: Comparing to Cut using this operation the selected entities aren't removed from the entities list but a
copy of them it put into the internal entity clipboard too.
Paste: If there are some entities held in the internal clipboard they can be copied out of it into the entity list
using the current position.
For this operations the same restrictions are valid than described for the Drag-and-drop-copy
operation described above.
Move: moves the position of the selected entity or entities in the entity list. The sequence in the entity list
determines the sequence of marking.
Group: Groups the selected entities and puts them into an entities group. See also chapter Object
Hierarchy.
UnGroup: Ungroups the selected entities group. The view level of all entities inside the group will be
decreased by one. See also chapter Object Hierarchy.
Back-/Foreground: This option can be used to use a selected bitmap entity as background object or to use
a background object as normal entity. When a bitmap-object is put to the background, it isn't selectable in
the View 2D any longer but only within the object list. Additionally it won't be marked. Such images can be
used as a template for creating new objects, here e.g. a technical drawing can be used. After importing a
bitmap to the current job it is possible to scale and position it so that the resulting dimensions are correct and
that it fits to the desired working area. After that was done it can be put to the Background so that it doesn't
influence the current job any longer but can be used as template. If that background drawing isn't required
any longer, it can be selected within the Entity List and then put to the Foreground using this menu item
again. Now it is possible to remove it from the job. In the list entities that are used as background are marked
by a white folder symbol instead of a yellow one.
Hide-/Show in View2D: Compared to the previously described background option this one works different.
When an entity is set to mode "Hide in View2D" it is no longer visible in View 2D but it still can be marked. It
can be selected within the Entity List and it can be moved, scaled and translated when it is selected. This
function can be used to hide elements in a job that overlap each other. That is useful in cases where some
of these overlapping objects can't be seen because the other ones cover them completely. Using that Hide
option some of the covering entities can be made invisible without removing them from the marking result. In
the entity list entities that are hidden from the View2D are indicated by a dimmed folder symbol instead of a
solid yellow one.
Redpointer Entity: When an entity is marked as Redpointer Entity this entity will only shown when using the
Red Pointer if the checkbox "Redpointer Entity" is activated in the Mark Dialog.
(Non)splittable Entity: When an entity is marked as nonsplittable its appearance within the View2D doesn't
change and it is highlighted by red brackets within the Entity List. An entity that is marked in this way will
behave different for splitted jobs: Independent from their position within the original job they will be marked
before the splits are processed. If an entity state is changed to splittable or nonsplittable when the splitting
mode is active, that job has to be resplitted. So this functionality can be used to exclude some parts of the
job from being splitted. These excluded objects will be marked as one piece when a splitted job is
processed. If the splitting mode isn't active this selection doesn't influence the job.
(Non)markable Entity: This can be used to exclude the selected entities from the marking process. By
selecting again the selected entities are being included again.
(Non)editable Entity: This can be used to define an entity as non editable. But the entity is still included in
the marking process.
Context Menu: To modify the points in the list or the list itself the context menu provides five operations.
They are described next to the screenshot below. Select one or more items from the list by mouse click while
keeping the Ctrl pressed. After the selection keep the Ctrl pressed and click the right mouse button. Then the
context menu will be displayed. The points of the selected objects are marked in the View 2D by black dots.
Clicking with the right mouse button on such a black dot will display the context menu too.
The context menu provides:
Undo: Undo the last operation.
Redo: Redo the last Undo.
Point: Opens the Edit Items dialog like it is shown below.
Insert: Inserts a new point in between the two adjacent points.
Delete: Deletes the selected points.
Point Editing with the Edit Items dialog: To edit one or more points use the Edit Items dialog shown
below. One can get this dialog via the context menu (described above) or by double clicking on a point item
in the list.
X,Y,Z: Edit these values to change the coordinates of a single point. Remark: Z coordinate is only available
with Optic3D.
Radio buttons: There are two update modes for updating point coordinates which can be switched by the
radio buttons. Abs is the default mode.
Abs mode: The point coordinates are updated by a substitution of the old coordinates by the new ones.
Rel mode: The point coordinates are updated by adding the new values to the actual coordinates.
To All: These buttons are only active if more than one point is selected. To update the X coordinates of all
selected points change the value of the X field and click the To All button next to it. Updating of the Y or Z
coordinate for all points is done analogously.
Examples: To project all selected points on the plane Z = 1 select update mode Abs, change the value in
the Z field to 1 and click the ToAll - Button next to the Z field. To move all selected points in Y direction by 3
units select update mode Rel, change the value in the Y field to 3 and click the ToAll - Button next to Y input
field.
7.4 View 2D
Purpose: The View2D displays the geometry of all the entities in the current job. It provides basic operations
for the manipulation of objects.
Overview: The picture above is a screenshot of the View2D. The red bounding box marks the boundary of
the workspace/working area. The values in the lower right corner are the coordinates of the mouse pointer (if
the mouse pointer is inside the View2D). The axes of the coordinate system are marked on the left and the
upper boundary of the View2D and its origin is in the lower left corner of the workspace/working area. For
more details see chapter Operations and Print Preview.
7.4.1 Operations
Creation of objects: To create objects in the View2D use the Object Toolbar.
Selection: Before doing a selection operation switch to the select mode (use the Object Toolbar, button
Manipulation of objects: Before an object can be modified it must have been selected. To do this follow the
instructions described above (Selection). The modify box, shown after the selection, provides three operation
modes for transformations which can be switched through by the button.
Translation mode: In this mode the corners of the modify box show the symbol . To translate the
selected object click on this symbol, keep the left mouse button pressed and drag the mouse to the new
position.
Scaling mode: In this mode the corners of the modify box show the symbol and the edges show the
symbol . To scale the object in x and y direction simultaneously click on a corner symbol, keep the left
mouse button pressed and drag the mouse. To scale only in x or y direction click on an edge symbol and
do the same.
Rotating and beveling mode: In this mode the corners of the modify box show the symbol and the
edges show the symbol . To rotate the object around the rotation centre click on a corner symbol,
keep the left mouse button pressed and drag the mouse. To bevel the object click on an edge symbol
and do the same.
The manipulations described above are not object specific. To modify object specific properties use the
Entity Property Sheet.
View2D Settings: To modify the settings of the View2D use the dialog View.
Context Menu: When right click somewhere in the View2D the context menu appears:
7.4.1.1.1 General
With these check boxes in the area above, the user can decide which information should be displayed.
Grid:
Align To Grid: If checked each new object placed in the View 2D will be aligned to the grid.
Show: If checked the grid will be displayed in the View 2D.
X, Y: These two values define the grid size.
7.4.1.1.2 Colors
With these check boxes the user can define the colors of background, point of crossing lines and the
selected entities. Here, the user can also define the colors of the different pens (also possible in the
View Settings Dialog).
[a]: Colors for Outer Polylines, Inner Polylines and Other Lines are used, when Pen Color Mode is disabled.
[b]: Color for Line Points is used, when Line Points is enabled.
[c]: Selection Color is used, when both Selection Color and Pen Color Mode are enabled.
7.4.1.1.3 MultiHead
These check boxes are only available for MultiHead users, with which the colors of the different heads
marking can be defined. If Head Color mode is checked the colors of the entities will be defined here if not,
the colors of the pens are used.
Default MultiHead colors:
The print preview can be reached by the menu File or by the Camera Toolbar. This is a
standard windows print preview, for further information see the windows help.
BarCode
Bitmap
Control
DateTime
Dimension
ElementInfo
Entity Info
Geometry
Hatch
Mark
SerialNumber
Styles
Text2D
Z-Dimension
From left to right you can see the number of quantities, the process time in seconds and percentage of laser
on time, the duration of the last mark process and the duration of the whole mark process.
8 Entities (Objects)
This chapter describes the various kind of objects that can be created within SAMLight or that can be loaded
as a job file.
Rectangle:
Center, Dimension: It is possible to define the
center and the dimension of the rectangle.
Edge Radius: One can generate a rectangle with
round edges by defining an edge radius and the
EdgeSegCount (Number of edges) to generate for
each edge.
2. Ellipse:
Ellipse:
Center X, Center Y: These two values define the
center coordinates of the ellipse.
Radius X, Radius Y: With these values the
radius in horizontal and vertical direction can be
changed. If the values are equal the resulting
object is a circle.
Segment count: The ellipse consists of a number
of segments. This number is calculated to the
complete 360° ellipse.
Start Angle, Delta: With these parameters it is possible to define arcs. Here the start angle defines the
angle at which the elliptic or circular arc has to start relative to the x-axis and delta defines the angle of the
arc relative to the start angle.
3. Spiral:
Statistic:
Length: Length of the polyline.
Num Points: Number of points on the polyline.
You can change the view to Point Editing to see the order the single points will be marked.
8.3 Barcode
Generate a barcode by pressing the Barcode2D button in the object toolbar. Move the mouse to the
desired position and press the left mouse button. The barcode property page appears.
BarCode:
Text: Enter any number, a date or some text into the
text field.
Required Characters: Some barcodes require a
specific number of characters which is displayed in
this field. If 1.. is displayed no specific number of
characters is required.
Valid: This is checked when the characters in the text
field are valid for the selected barcode type.
Format: See subchapter Format.
Choose the desired BarCode type in the drop down
menu above 'Format'.
WideToNarrow: Relation between wide and narrow
barcode lines and accordingly between the wide and
narrow spaces among the barcode lines. The
selectable number ranges between 2 and 3.
BarLineReduction: Reduces the size of the single
bars.This is not available for DataMatrixEx, Dotcode,
Code39Ex, 2of5Ex and Code128(2).
VariableLength: If this is activated, the size of the
barcode changes with the length of characters
encoded. E.g. the length of a generated EAN-128
barcode changes almost linear with the length of the
text. If this is deactivated the size of the barcode
outline doesn't change with the text size.
Text:
Size: Specifies the size of the text.
Baseline: Distance between the baseline of the barcode to the baseline of the text, see example below.
Point resolution: See chapter Text Properties.
Spacing: See chapter Text Properties.
Use as default: Uses the properties of the currently selected barcode object for the generation of new
barcodes. The program saves these settings also for a new program start in case save settings on exit is
checked in the general settings.
Extended...: See subchapter Extended
Limits: Opens the 'Size Limits' dialog. Length and Height limits of the barcode can be specified here.
For 2D barcodes it is also possible to enter 4 values separated by a comma. Then the text of the barcode is
wrapped around it.
8.3.1.1 Code-39 Ex
For Code-39 Ex, the following Extended dialog is available:
Identifier Description
8.3.1.3 QR Code
The QR-Code is a special 2D barcode format. In addition to numerics, it can also contain the letters from a to
z and special characters like +, -, /, % ... . To enable this option, click on Extended... in the BarCode property
page. Then in the window that pops up select Byte in the field Barcode Mode.
BarCode Extended for QR Code:
Barcode Mode: Choose the desired mode in the
drop down menu. Options are 'Numeric', 'Alpha',
'Byte', and 'Kanji'.
Note that, depending on the selected mode, different
types of characters are allowed. You will get direct
feedback, via the 'Valid' checkbox (see Barcode).
In addition, the selected mode also changes the
number of valid characters!
8.3.1.4 QR Code EX
A special barcode type QR Code EX is available. This barcode is like a QR Code barcode with the additional
feature that an Entity can be embedded in the center of the Barcode. Therefore select QR Code EX in the
barcode drop down box and click on Extended. The following dialog will be shown:
Figure 153: QR Code EX extended dialog Figure 154: QR Code with "USC" wounding
General:
Invert: Inverts the barcode.
Generate dots: The barcode will consist of dots. If this checkbox is activated, the parameters of the
drill property page will be taken (if activated) instead of the parameters of the scanner property page.
Cellmode (required for Flash): The barcode will consist of cells. Cellmode is required for Flash
applications.
Quiet Zone [mm]: Apply a border to the barcode.
Wounding: Embed an Entity inside the QR Code.
Wound Entity Name: Name of the entity that has to be embedded inside of the QR code. If the edit
field is blank no entity will be embedded.
Padding: Define a border around the embedded entity.
QR Code mode is automatically adjusted to the type of characters in the text field (see Barcode).
(e.g. '12345' = numeric mode, '12345A' = alphanumeric mode, '12345Aa' = binary mode)
With this change of mode, the number of allowed characters often changes as well.
8.3.2 Scaling
When scaling barcodes that have the text feature enabled, the text is normally not scaled with the barcode.
DataMatrixEx or QRCodeEX can scale the text with the barcode when this checkbox is activated. Mirroring
Invert: Inverts the dark and bright parts of the barcode. The barcode must be bordered to prevent the outer
barcode lines from disappearing. Therefore a QuietZone is defined, see example below. The width of the
zone can be given absolute units or in percentage of the width. The selectable percentage ranges from 1 to
50.
Except Text: This suboption of Invert excludes inverting the text when Invert is selected and is implemented
at the moment just for the EAN-13-Barcodes.
Text XOffset: This value can be used to move the position of the text in horizontal direction that is activated
for the barcode. For positive values the offset point of the barcode text is moved to the left, for negative
values it is moved to the right.
Text YOffset: This value can be used to move the position of the text in vertical direction that is activated for
the barcode. For positive values the offset point of the barcode text is moved down, for negative values it is
moved up.
Barcode Mode / Security Level / Code Columns: These parameters are optional and depend on the
barcode type that was chosen. So the number of options, the meaning of the possibly available options and
the parameters that can be selected here are defined by the related barcode specification.
The following Barcodes have a Mode option: Aztec, Code 16k, Maxicode, MicroPDF417, PDF417, QR
Code, RSS
The following Barcodes have a Security Level: Aztec, MicroPDF, PDF417, QR Code
The following Barcodes have Columns: Composite, MicroPDF417, PDF417
Security Level:
For the QR-Code the following Security Levels for error correction are available:
Level 0: 7%
Level 1: 15%
Level 2: 25%
Level 3: 30%
A Security Level of 30% means, that the error correction can read the Barcode if up to 30% of the Barcode is
disrupted. For different Barcodes there exist a different number of Security Levels with different error
correction capabilities.
If a DataMatrixEx object is selected, the following dialog opens after pressing the Extended... button in the
barcode property page.
ASCII
Base256
C40
Text
ANSI X12
EDIFACT
GS1 - Application Identifiers must be
written with round brackets, like (01).
The FNC1 characters must not be
written, they are added automatically.
Auto: Chooses the encodation for which
the selected barcode text is being
optimally compressed.
Figure 157: Data Matrix Extended Dialog
Generate dots: If Generate dots is checked the barcode consists of single points. (For other 2D barcodes,
please refer to Generate Dots.)
Invert: If Generate dots is not selected then the barcode can be inverted. If inverted the barcode must be
bordered to prevent the outer barcode structures to disappear. Therefore a Quiet Zone is defined. The width
of the zone can be given in absolute units or in the percentage of the width. The selectable percentage
ranges between 1 and 50.
Enable~: Allows to encode 3-digit decimal values. The format is ~d followed by 3 digits. This leads to a
compression of the data because ~d will not be used and the following 3 digits as decimal number will be
encoded by the according character in the ASCII-table. For example: ~d090 will be changed into 90 of the
ASCII-table, e.g. the character Z.
Cellmode (required for Flash): If Cellmode is checked, the barcode consists of a closed polygon for each
cell. Cellmode is required for Flash applications. See below for examples.
No Finder Cells: If the barcode is generated by cells then the finder zone is drawn as one closed polygon.
Text freely editable: If checked the user may define an arbitrary text independent of the content of the
DataMatrix.
Invert Cellmode: If this checkbox is activated then the DataMatrix will be inverted. So it is possible to define
a Quiet Zone. The width of the Quiet Zone can be defined in unit Cells. This works within SAMLight and with
the USC-2 Flash but not with the FEB-1 board.
Generate Circles: If this checkbox is activated, each cell in cellmode is a circle, not a square.Generate
Circles is only available if Cellmode is activated.
Cell Size: Active if Generate Cells is checked. The size of a single cell can be defined. If it is 100% the cells
contact each other.
Quiet Zone: Generates a border of defined thickness around the barcode.
If a Code 128 (2) object is selected, the following dialog opens after pressing the Extended... button in the
barcode property page.
If a 2 of 5 EX object is selected, the following dialog opens after pressing the Extended... button in the
barcode property page.
If a Code-39 Ex object is selected, the following dialog opens after pressing the Extended... button in the
barcode property page.
Here you can enter an arbitrary number or, if a barcode reader device is connected to the PC, you can read
any barcode with this device and the value of the barcode will be assigned to the serial number in the job.
8.4 Bitmap
After importing a Windows Bitmap it will be converted and displayed as a 8bit grey image. To bring it to the
scanner output it is necessary to calculate a Scanner Bitmap. The generation can be done in the property
page of the bitmap. After selecting the bitmap the bitmap property page becomes active:
Dither Step: Defines the resolution for each pixel inside the
scanner bitmap. If for example Dither Step = 0.1, the distance
between two neighbouring pixels is 0.1, means one mm on
the scanner bitmap contains 10 pixels in x-direction * 10 pixels
in y-direction. The resolution should be in the range of the
laser focus. You can also define the Dither Step via dpi (dots
per inch).
GrayScale: If enabled the grayscale values will be kept when
transforming the bitmap to the scanner bitmap.
BlackWhite: If enabled the grayscale values will be
approximated by specific placements of black and white pixels
to give the impression of gray values. This is a similar method
as with a Black/White LaserJet. There are two different
algorithms available in Bitmap Extended for this mode:
Random Noise and Floyd Steinberg.
The grayscale mode is only available for scanner cards with an appropriate mode. To scan
bitmaps generated in grayscale mode the hardware mode has to be enabled.
For the dithered mode LaserOn delay is set to 1 µs and LaserOff delay to 10 µs by software. Jump Speed is
set to Mark Speed, except for the jump between two lines in one direction mode the Jump Speed and the
Jump Delay defined within pen settings is used. In all other cases the scanner delays are set to 0. In addition
the dithered mode uses the skywriting parameters of the pen if enabled.
Extended...: For how to set up the parameters for marking gray scaled bitmaps in bi-directional mode, see
sub-chapter Marking Bidirectional. For the other Extended... features see Bitmap Extended.
Apply: Starts the generation of the Scanner Image if the check button Scanner Bitmap is checked. Else
deletes an existing Scanner Image.
Example:
Figure 166: original picture (left) and scanner image in error diffuse mode (right)
Hardware Mode: For drawing bitmaps in grayscaled mode the hardware mode has to be set which
means that scanner movement and laser burning are done at the same time. To enable the
hardware mode it is necessary to select the pulse width modulation mode PixelPWM or the
amplitude modulation mode PixelAM inside the optic settings advanced dialog. Also the selection
of both is possible. In addition the hardware flag inside the scanner settings for pens has to be
checked.
If hardware mode is checked, it is recommended to set the LaserOn delay within this page to 1 µs
and the LaserOff delay to 2 µs.
The Following settings are valid for Reimport which is useable for a Client Interface application.
Gray Scale:
Pen Frequency: Check this box to take the pen frequency for marking bitmaps. This will adapt the
resolution of one pixel line to the speed and the frequency of pen.
Jump over Blank Pixel: To optimize marking time blank pixels will be skipped. SAMLight will skip all
first and last pixels of a bitmap line with a gray value higher or equal than the threshold value 'Blank
Threshold'. Blank pixels in between nonblank pixels will be jumped with MarkSpeed, not with
JumpSpeed.
Blank Threshold: This value has a range from 255 (white) to 0 (black). The default value is 250.
Line Index Step: This feature can be used to reduce local heating of the target material at marking gray
scale bitmaps. If ‘Line Index Step' = x > 1 the bitmap will not be marked line by line in one run but in x
runs where in each run every xth line will be marked. For example a Line Index Step of '3' results in this
marking order: 1, 4, 7, 10, .., 2, 5, 8, 11, .., 3, 6, 9, 12, ..
Black and White:
Random Noise: Creates a rougher scanner bitmap than Floyd Steinberg, but doesn't tend to produce
moiré patterns. As the name suggests, if used several times Random Noise generates different scanner
bitmap patterns for the same bitmap.
Floyd Steinberg: Creates a smoother scanner bitmap than Random Noise, but tends to produce moiré
patterns. Always generates identical scanner bitmaps for the same bitmap if applied several times.
Limits: Define Width and/or Height as a placeholder property for reimport. With keep ratio the aspect ratio is
kept.
Position: Define a position for the bitmap placeholder. The coordinates of the reference point are defined
with the X and Y edit fields. The radiobuttons define the point of attack of the bitmap.
Mark Flags:
Bidirectional: If checked the scanner does not jump to the beginning but to the end of the next line if it
reaches the end of a line. For more details please refer to Marking Bidirectional.
Begin with Last Line: If checked the scanner begins drawing from the last line instead of the first line of
the bitmap.
ScanXDir: The default scanning direction is y, so the scanner moves from bottom to top while scanning.
To choose x as scanning direction activate this checkbox.
No Line Increment: If checked the scanner draws all bitmap lines into one line. This is necessary if for
example the workpiece itself is rotated during marking.
DrillMode: The pixels of a bitmap will be handled as single points. If the drill mode in the Pen is active,
the points will be marked with the drill mode property page for pens. Each pixel will be handled if its gray
value > 0. So as default it is a black / white mode.
DrillGrayscale: Only available in combination with the DrillMode. The drill time on each pixel depends
on its gray value. If the pixel is white, the drill time that is adjusted in the pen is executed. If it is black, the
drill time is zero. In between the drill time of a pixel grows linearly with its gray value.
This picture shows the way the laser should go to mark the bitmap properly.
But this way of marking will cause picture mistakes. One reason is that a scanner needs a short startup time
to reach constant speed and a constant signal frequency. The other reason is the delay of the scanner. To
solve these problems an acceleration length was introduced:
The used jump speed is set equal to the speed of the pixelmarking. To enable the PixelShifting delays of the
scanner the settings that are defined within scanner settings page for pens are used. LaserOn and LaserOff
delays will automatically be set to 1. The parameters stored in LaserOn and LaserOff will be used for
calculating the shift of every second line: LaserOn for shifting left, LaserOff for shifting right.
Within a line:
Automatically used parameters:
o LaserOn Delay = 1 µs
o LaserOff Delay = 10 µs
o Mark Delay = 0 µs
o Poly Delay = 0 µs
o Jump Delay = 0 µs
o Jump Speed [mm/s] = Mark Speed [mm/s]
Gate Frequency [kHz] = Mark Speed [mm/s] / Dither Step [mm] * 10-3
Laser pulses / Pixel = Laser Frequency [kHz] / Gate Frequency [kHz]
Skywriting:
o StartDistance [mm] = StartLength [µs] * Mark Speed [mm/s] * 10-6
o EndDistance [mm] = EndLength [µs] * Mark Speed [mm/s] * 10-6
Between lines:
Jump Speed [mm/s] = Jump Speed [mm/s]
Jump Delay [µs] = Jump Delay [µs]
Bidirectional mode:
o Shift of odd lines [mm] = (LaserOff - LaserOn Delay [µs]) * Mark Speed [mm/s] * 10-6
o Jump Speed [mm/s] = Mark Speed [mm/s]
8.4.4 Grayscale
At the marking process the greyscale value of the scanner bitmap will correspond to the laser power. That is
why the greyscale adjusting can be used for fine-tuning your mark result and consider non linear behavior of
the laser and the material. The brightness and the intensity can be changed for the original bitmap in the
bitmap property page. After that the greyscales of the scanner bitmap can be adjusted via two different pixel
maps:
Scanner Bitmap The original scanner bitmap greyscales will be adjusted by the pen pixel map first and
(entity property) afterwards by the system pixel map again like you can see in the following flow chart:
System PixelMap Power Map is not used for gray scale marking at all.
(global setting)
Laser
(PWM or AM)
Table 20: Order of greyscale adjustment
"1 / MyInformation"
"2 / MyInformation"
"3 / MyInformation"
"4 / MyInformation"
"5 / MyInformation"
...
The Main Window will show the Entity List, the View2D and the Entity Property Sheet like in the following
pictures:
Figure 174: Entity List with Text object and Serial Number Barcode
Figure 176: View2D with Text to be included and Serial Number Barcode
Serial numbers are updated once per marking process. If such a serial number barcode
references to text entities of the job using the <$entity_name> syntax it will contain the information
of the element named "entity_name" that is visible at that specific moment when the update is
performed. If the entity with that name is changed after the serial number was updated, the
contents of the serial number barcode are not updated automatically. This means the that the
serial number barcodes will stay with the old value until the next marking cycle was finished or
until the sequence was updated from the menu. The same is true if such a serial number barcode
object is newly created: it will not show the contents of any referenced object until the
sequence was updated.
The format of each element, the Serialnumber and Date Time, can be edited afterwards.
Therefore Custom Format in the Serialnumber property page needs to be checked. A combined
Serialnumber and Date Time element can also be displayed as a barcode. However, not each
Date Time format can be converted to a adequate barcode. For example the signs ".", ":" and "/"
are not taken!
The digit definitions of Customer Format are not taken for a x-based numbering system.
One file can get assigned to more than one serial number.
Chapter Serial Number for the general properties of serial numbers which are also available when
using the ASCII Serialization.
If the excel file is being changed, the file needs to be reassigned to the serial number.
In case you have not installed Microsoft Excel 2007 or later on the PC SAMLight is running on and
you are using the file format *.xlsx, please download the 32 bit version of the patch: Microsoft
access Database Engine Redistributable
Create multiple Serial Numbers: To create additional serial numbers add the according table head strings
into the combo list below. Therefore select a column and press Add. After confirming with OK the serial
numbers is assigned to the terms of the combo list. If the combo box is empty the current selected column
item will be assigned to the serial number.
8.5.4.3 Example
The following explains how to control serialization with the help of an ASCII file.
Assumption: There are 3 pens to be marked at the time.
The names that are assigned to the pens needs to be saved in a text or excel file, for example:
Name1
Name2
Name3
Name4
Name5
Name6
Name7
Name8
Name9
Name10
...
Now 3 serial numbers need to be created and the ASCII file has to be assigned to each of them. For the
correct mapping of the serial string to the serial entity the following setup is used. See also: Chapter
Serial Number.
Result:
That means the serial number itself is used as an index into the ASCII file. SerialNUM1 starts at index 1 and
will be incremented by 3 after every mark. The corresponding settings for the another 2 serial numbers lead
to the next mark as shown next:
Code: Enter an encoded format definition for date time. The standard formats are not editable.
Convert: Pressing the arrow button converts the format definition given in Code and extends the date time
format list.
Format: List of defined date time formats.
New: Creates an empty format. It is editable in the Code field.
Delete: Deletes current format from format list. The standard formats are not deletable.
Cancel: Leaves DateTime Advanced without taking changes.
OK: Changed list is valid. It will be shown in the DateTime property page also after a new start of the
program.
Format definitions:
Format Description
%1d Day of the month as digits without leading zeros for single-digit days.
%2d Day of the month as digits with leading zeros for single-digit days.
%3d Abbreviated day of the week as specified by a LOCALE_SABBREVDAYNAME* value,
for example, "Mon" in English (United States). Windows Vista and later: If a short
version of the day of the week is required, your application should use the
LOCALE_SSHORTESTDAYNAME* constants.
%4d Day of the week as specified by a LOCALE_SDAYNAME* value.
%1M Month as digits without leading zeros for single-digit months.
%2M Month as digits with leading zeros for single-digit months.
%3M Abbreviated month as specified by a LOCALE_SABBREVMONTHNAME* value, for
example, "Nov" in English (United States).
%4M Month as specified by a LOCALE_SMONTHNAME* value, for example, "November"
for English (United States), and "Noviembre" for Spanish (Spain).
%3T
%4T
%v Hour to letter representation ( 'A' - 'Z'; 0:00 h is 'A' )´
%w Weekday as decimal number (0 – 6; Sunday is 0)
%% Percent sign
Table 21: Format definitions for Date Time objects
[a]: If If no language is selected in the drop down list "Language" of the Date Time property page, the
language of the Windows system is taken. For specifier which do not use any Windows language, this drop
down menu is not available.
Format Description
%#a, %#A, %#b, %#B, %#p, %#X, # flag is ignored.
%#z, %#Z, %#%
%#c Long date and time representation, appropriate for current
locale. For example: "Tuesday, March 14, 1995, 12:41:29".
%#x Long date representation, appropriate for current locale.
For example: "Tuesday, March 14, 1995".
%#d, %#H, %#I, %#j, %#m, %#M, Remove leading zeros (if any).
%#S, %#U, %#w, %#W, %#y, %#Y
Table 22: Special format definitions for Date Time objects
8.7 Text2D
Generate a text object by pressing the Text button in the Object-Toolbar. Then move the mouse to the
desired position and press the left mouse button. The text property page appears:
Generate single chars: When this option is selected all characters in the text string are generated
separately, which means that each character is stored in one separate ScWinText2D object. This has the
advantage that each character can be accessed and by this way each character can be hatched with a
different hatch style for example. If this is not necessary the option should be switched off to fasten
operations like transformation and rendering.
mono spaced: If selected, the distance between two characters is constant.
Point Resolution: The resolution of the lines. Not available for Simple Fonts.
30 % 100 %
Alignment: The horizontal and vertical alignment of the text can be defined in relationship to the generation
point.
Draw Radial: Activating radial mode. Radius and Start angle define the position of the characters.
CharOutline: Takes the outlines of character into account when they get disposed radial. Active if radial
mode is selected.
Center: Here the initial center coordinates of a radial text can be specified. If this option is selected the
center of the radial text is positioned once at the coordinates specified with X and Y.
Use as default: Uses the properties of the currently selected text object for the generation of new text. The
program saves these settings also for a new program start in case save settings on exit is checked in the
general settings.
Marking order: The buttons are only active if generation of single characters is checked. The state of the
buttons is changeable by clicking.
Sets the main direction of the marking order of characters. If case y is selected as main direction the
characters get sorted line by line, if case x is selected as main direction they get sorted column by
column.
Sets the orientation of the y direction.
With this state an unidirectional sort is defined. Also bidirectional is selectable, which results in a
zigzag sorting order.
ScTimer
ScWaitForInput
ScSetOutput
ScSetAnalogOutput
ScExecutable
ScMotionControl
ScMotfOffset
ScWaitForTrigger
ScAutoCalib
ScOverride
ScJump
The control objects ScTimer, ScWaitForInput and ScSetOutput can be accessed in the toolbar.
When a control object is created it appears in the entity list.
To change the properties of a control object it has to be selected by clicking on it in the entity list. Then the
Control property page can be activated and the properties can be changed:
ScTimer:
Wait: Interrupts the marking process for n ms, in this example 10
ms.
ScWaitForInput:
Wait For Input: Stops the marking process until the specified input
bit(s) of the IO port is set to high or low.
X: Do not care / Ignore input bit.
0: Wait for corresponding bit state 0.
1: Wait for corresponding bit state 1.
Combine: Allows to select multiple input bits. All need to be in
the selected state to proceed.
Bit position count starts with "1", but corresponds to bit "0"
at the hardware!
ScSetOutput:
Set Output: Sets the specified output bit of the IO port to high/low.
X: Do not care / Ignore input bit.
0: Wait for corresponding bit state 0.
1: Wait for corresponding bit state 1.
Combine: Allows to set multiple output bits at the same time.
Bit position count starts with "1", but corresponds to bit "0"
at the hardware!
Pulse: If selected the output bit gets set to its previous state again,
n ms after the bit was set.
Default name of the control is for current shown state: '0036 -
0034' (mask is hexadecimal 0036, output state for this mask is
hexadecimal 0034)
With this control object you can set the Analog Output Value of the DAC A or DAC B to the desired
value:
An executable control object can be used to start a program at a defined position within the job.
Therefore click on the icon in the toolbar. Then a new entry will be generated in the entity list. In the control
property page at the right hand several parameters can be entered.
The ScMotionControl object can be accesed in the Object Toolbar. Click on the motion control object to
modify it within the Control property page. In this page the parameters can be assigned to the object. These
can be motion control parameters as well as string parameters.
Move:
Axis: Movement distance and speed
definitions for the axis. Each axis
requires one control card.
Rel: If checked a relative movement is
performed instead of an absolute
movement.
Go Home: This checkbox must be enabled
for setting up a homing procedure in a
ScMotionControl object. In the Home / Shift
dialog the related axes must be chosen.
String Mode: A RS-232 string command can
be send to the motion controller.
The ScMotionControlGo object (not for motion type 8) has the same functionality as the MotionControl
object described above. The difference is that SAMLight will continue with the following entities immediately,
so SAMLight will not wait until the motion is finished. Please mind that the motion command will continue
even if the marking in progress signal is off at the end of the entity list.
ScWaitForTrigger control objects do not work in MOTF simulation mode for USC-1 cards.
ScMotfOffset (option MOTF required) defines a distance in the entities property page Control.
MOTF Offset:
Enable: If the check check box is enabled, a distance in mm can be
defined. This distance will be measured in MOTF encoder counts
like it is defined in the card-specific MOTF settings. After the
distance has been reached, this entity will generate an internal
trigger pulse. This internal pulse can be recognized by a
ScWaitForTrigger entity.
React to external trigger: By default a ScWaitForTrigger entity will
wait for an external or an internal trigger. That means, the pausing of
an ScWaitForTrigger entity can be interrupted by an external trigger
which will lead to a shorter distance than defined. This can be
avoided by activating this check box. In this case, the first external
trigger will start the pausing defined in the ScWatiForTrigger entity
and every other external trigger will be ignored until the internal
trigger of the ScMotfOffset entity has been sent.
Figure 195: Wait For Trigger
When the MOTF distance (calculated by encoder counts) has increased by the ScMotfOffset distance, an
internal trigger signal is generated. The internal trigger signal behaves like an external trigger, so the external
trigger signal must be low. The ScMotfOffset control object itself does not cause any delay or waiting
operation.ScMotfOffset and ScWaitForTrigger together can be used in MOTF applications to separate two
marking objects with the distance of ScMotfOffset. This allows you to set up a job where the marking result is
bigger than the working area. The order of the entities in the MOTF job should look like this:
The Func ID parameters are different from those of the RTC manuals.
The output value can be checked by the Command View command AutoCal (here it corresponds to the RTC
manuals).
Inserting a SetOverride control object into the entity list, the marking speed, the power and the
frequency of the applied pen can be changed using the Override functionality of the Mark property page. This
is useful for determining the optimal marking speed, power and frequency parameters by marking an array of
identical entities with different speed, power and frequency. The test array can be created by copying a row
of entities, in which a SetOverride control entity changes one parameter of the following array entity. The
value which is set by SetOverride will stay valid even after the marking as long as no other override value is
set.
The object SetOverride works also in Flash (it is included in the UNF file). However, the effect is different
than in SAMLight: the value does not stay after the marking. This override is not to be confused with the FCI
commands OP, OF, OS.
Inserting a ScJump control object into the entity list, creates a jump with the possibility to define specific
X, Y, and Z coordinates. Alternatively, the home position can be addressed.
9 Entities Properties
This chapter describes how to change the properties of the entities.
9.1 Transformations
Translation, scaling, rotation and slant operations can be done on all geometric objects. If the optic
dimension 3D tool is available, also 3D Transformations are possible.
9.1.1 2D Transformations
For the transformations by mouse, see chapter View2D, Manipulation of Objects.
Transformations by keyboard: The dimension property page can be used to change the dimension of the
selected entity. This page has no Apply button. The Translate, Scale, Rotate and Outline operations can be
executed separately by typing in the requested values and clicking the corresponding Go button.
center: Active if the right middle radio button is selected. Positions the middle point of outline.
Radio buttons: Shows according min/max x/y edit fields, e.g. with selecting the upper left check box
the upper left outline point can be repositioned.
Show Transformation State: When this is selected a dialog appears which shows the absolute translation,
scale and rotate values of the selected object. See image below:
9.1.2 3D Transformations
The Z-Dimension property page can be used to change the z-dimension of the selected entity. This page has
no Apply button. The Translate, Scale and Outline operations can be executed separately by typing in the
requested values and clicking the corresponding Go button.
Mirror and Rotate: With the radio button the center of mirroring
and rotation is selected.
The selectable radio buttons aside allow to enable any of the outline value fields, but disable each field which
is not editable for the same translation to avoid conflicts.
9.2 Hatch
This page can be used to generate hatching for entities which have closed PolyLines. Single objects as well
as clustered groups can be hatched. A pen for a specific hatch can be selected on the mark property page.
For a Hatch to be actually marked, the according checkboxes 'MarkFlags' have to be enabled in the Pen
Settings of the selected Pen (Mark Edit... Misc).
Pair Preset: Access up to 10 different preset
parameters.
Pair A [--]: Access up to 5 pairs of hatches (A, B, C, D
and E) totaling to 10 possible hatches. The [--]
indicates that there is no hatch enabled. A [+-] would
indicate that the Hatch1A is enabled.
Hatch1A, Hatch2A: Chose a hatch within a hatch pair.
Order of hatching: 1A, 1B, 1C, 1D, 1E, 2A, 2B, 2C, 2E
Original Values: This switch is useful if the entities
have been scaled or rotated after hatching and allows
to rehatch the entity with the original values.
KeepAngle: If checked, the angle is relative to the
entities rotation when rehatching the object. So if
rotating a hatched entity and rehatching the entity with
this flag set, the hatch lines are relative to the entity
rotation angle.
Enable: If this option is being chosen the current hatch
definition is activated.
All Lines: If this is not checked, ScPolyLine2D
structures are used for calculating hatches. If checked,
also ScLineArray2D objects are taken into account.
Sort: Changes the order of the hatch lines to decrease the total jump length. It also can flip hatch lines
(change the marking direction). Below you can find an example, the marking order of the hatch is 1, 2, 3, 4,
5. If Sort is not enabled the hatch order is simple from bottom to top. At the crossing points the sort can
cause problems depending on the material / application.
Minimal Jump: For continuous hatch styles and a minimal jump distance can be set. If the minimal
jump distance is smaller than the distance between the end and beginning of two hatch lines, then the hatch
lines are not connected. See the example below.
Start Offset: Defines the start distance between the outer line of the object and the first hatch line. The
default value is 0 which means that the value entered at "Distance" is taken as Start Offset.
End Offset: Defines the end distance between the outer line of the object and the last hatch line.
This distance gets approximated from the hatcher as the conditions Start Offset and Distance do
not allow an exact definition of End Offset (for an exact definition of End Offset see:
Equalize Distance).
Beamcompensation: Allows the reduction for the hatches to avoid overburning. See also the example
picture below.
NumLoops: The number of inner loops can be defined. See the example of blue concentric circles below
which was created by a circle with NumLoops. By clicking on the button, the inner loops are activated. Then,
you can choose between marking order from outside to inside or from inside to outside . The
Equalize Distance: Changes Distance so that Start Offset and End Offset can exactly be set by the hatcher.
Don't fill rest: If checked only NumLoops gets hatched. The object gets not hatched inside the loops.
Show Advanced: Opens a dialog where additional hatch properties can be activated.
Store Pair to Preset: This button stores the pair which is actually selected in the drop down menu (A, B, C,
D, or E) to the Pair Preset selected in the drop down menu (Hatch style 1, Hatch style 2, ...,or Hatch style 9).
Note that the Pair Preset has to be selected first, then the pair can be chosen, can be adjusted, and can be
stored.
Store all Pairs as Default: Uses the actual hatch style of the currently selected object as default for new
entities. Thus, the settings of all 5 pairs of the drop down menu (A, B, C, D, or E) are stored directly and can
be applied to a new entity. Note that the program saves these settings also for a new program start in case
save settings on exit is checked in the general settings.
Apply: After defining the distance the angle and the style clicking on button Apply will generate the hatch
lines.
The marking direction is alternating. Jumps are executed between the hatch lines.
The marking direction is conserved from left to right. Jumps are executed between the hatch lines.
The marking direction is conserved from right to left. Jumps are executed between the hatch lines.
Hatch lines are closed and follow the outline of the entity. Jumps are executed between the hatch
lines.
For this continuous hatch style, the marking direction is alternating. Hatch lines are connected
(laser remains on) if the distance between end and start point of lines is smaller than the minimal
jump distance.
For this continuous hatch style, the marking direction is alternating. Hatch lines are connected
(laser remains on) if the distance between end and start point of lines is smaller than the minimal
jump distance.
Please note: this style leads to non-parallel hatch lines.
Switching between the different hatch styles is done by clicking on the hatch style icon. The blue lines on the
bitmap show mark lines and their direction. The red lines show the scanner jumps.
Array: The array functionality allows to create reference copies of the selected entity in X and Y dimension.
Reference copies in Z dimension can be found in the Z-Dimension property page.
Count: Define the number of copies in X and Y dimension.
Inc.: Define the distance between the copies in X and Y dimension.
Group:
Cluster: If the entity is a group, it can be clustered. A clustered group will be hatched as one single
object while in a unclustered group each entity of groups is hatched separately.
PenPaths: Groups have an assigned pen as well. The pen path of the group is executed when the
following two points are true:
When the group-pen-path is enabled (Group > EntityInfo > PenPaths).
And when the pen-pen-path is enabled (Group assigned pen number > Paths > Activate) as well.
If the pen path of the group is executed all pens within this group will be ignored! This includes pen paths
of sublevel objects as well.
Output As Bitmap: If an entity is selected then by activating this checkbox the entity is transformed to a
Bitmap. After that the Bitmap property page becomes available and the bitmap can be modified like a normal
bitmap.
Marking examples:
Entity Mark Loop Count Mark Beat Count Mark Beat Offset
1 1 1 0
2 10 2 0
3 5 3 1
Table 23: Example for three entities with different mark loop count, mark beat count and mark beat offset
Figure 208: Example for marking order with mark loop count, mark beat count and mark beat offset
9.5 Styles
The style property page has to be enabled in the Extra dialog.
A style consists of several properties and can be assigned to an entity or a group. It is possible to store
these information from a single entity to a style as well. You can create a style library for different scenarios,
for example different materials, deep engrave or cleaning. The styles will be stored in your SAMLight settings
file (default: <SCAPS>\system\sc_light_settings.sam).
Here is a list of the properties a style can handle:
Coloring the style list: A style assigned to a selected entity can be seen in the color of the current row in
the style property page. If the color is blue [1] the selected entity has not been assigned to any style. If the
color of the current style is green [2] the entity has been assigned to the highlighted style and the style has
not been changed since the assignment. If the color is brown [3] the selected entity has been assigned to
the highlighted style but the style has been changed afterwards. If you want to update the parameters of the
selected entity corresponding to the changes of the assigned style you have to reapply the style.
Figure 211: Applying a style to a selected entity: 1) blue row: no style assigned, 2) green row: style assigned, 3) brown row:
style has been assigned but after that the style has been changed
There are two different ways to activate/deactivate the marking behavior of the contour and the
hatch. The first one is in EntityInfo and the second possibility is in the pen-settings. The style
property page shows only the information of the EntityInfo. If you have deactivated mark contour
or mark hatch in the pen-settings you cannot see it in the style property page but the deactivation
will be recognized in the marking process.
Edit Style Dialog: The tabs of the Edit Style Dialog corresponds to the known property pages Mark, Hatch
and EntityInfo.
10 Import-Export
This chapter describes how to import and export different file formats into SAMLight.
10.1 Import
opens a Dialog Box to import Graphic files and puts them into a new layer.
Available import formats are:
Extension Description
*.ai Adobe Illustrator (AI) is a vector graphics file format.
*.gbr Gerber Format (GBR) is a vector graphics file format for printed circuit boards.
*.gif Graphics Interchange Format (GIF) is a raster graphics file format.
*.job GSI PC-Mark job file format containing vector graphics.
*.tif Tagged Image File (TIF) is a raster graphics file format.
*.txt Point Cloud Data is a ASCII format containing 3D vertices.
[a]: Please note that not all available G-Code commands are interpreted into entities by SAMLight.
Resolution: Defines how to transform the vectors from the file in case no units are given. The resulting unit
is millimeter.
Keep Order: If this is selected all data is written in LineArrays to make sure that the exposure order is the
same as the order inside the file. Less memory is needed for loading and saving a file. The disadvantage is
that closed PolyLines can not be hatched after the import. The example below shows this behavior.
Read Pen Info: Enables the interpretation of the Pen information given in the File.
Advanced...: Allows to influence the import of the drawing more detailed, see chapter Import Advanced.
BMP
PCX
TXT
TWAIN
JPG
GIF
PNG
TGA
TIF
Table 216: X: available, 0: not available
For Import of a SVG file, the Pen Colors are mapped as follows:
Each RGB channel value of the import file and of each SAMLight pen is divided by 64 and truncated.
Thus, all values are mapped into one of the following blocks (0-63, 64-127, 128-191, 192-255).
Then, the first SAMLight pen which matches the SVG color blocks in R, G and B channel, is taken. If no
corresponding pen is found, the next undefined pen is taken, starting with 21.
AI
CMX
CNC
DWG
DXF Version1
DXF Version2
EMF
GBR
MCL
PLT
SVG
274x
Load pen parameters: the values of the following G-Code commands can be loaded to the pen
parameters:
$SC_LASERPOWER
$SC_FREQUENCY
$SC_JUMPSPEED
$SC_MARKSPEED
$SC_JUMPDELAY
$SC_MARKDELAY
$SC_POLYDELAY
$SC_LASERONDELAY
$SC_LASEROFFDELAY
$SC_STDBYPERIODE
$SC_STDBYPULSEWIDTH
Spline Resolution [%]: Sets the resolution of splines, if imported. If the resolution is low, imported splines
will look angular.
Import circle as point if radius < ...: A limit can be given up to which size a circle should be imported as a
point.
No Text import. (To activate text import, use "read text entities".)
Supports versions 10,12,13 and 14.
DXF Files Version 2:
Supports all current variations of the DXF format (versions 2.6, 6, 9, 10, 11, 12, 13, 14, 15(2000),
18(2004)).
Imports: Layer, line, arc, circle, ellipse, PolyLine, text (no reliable text position), vertex
DWG Files:
10.2 Export
Menu bar File Export opens a Dialog Box to export selected entities into graphic files.
Available export formats are:
Extension Description
*.saf SAF is a SCAPS archive.
*.plt Hewlett-Packard Graphics Language (HPGL) Plotter File (PLT) is a language format for printing
line drawings, specifically designed for 2D plotters.
*.cnc CNC G-Code is a language to control CNC (Computer Numerical Control) machines. Option
Flash license is required for cnc export.
Table 25: Available export formats
11 Mark
Start: Opens the Mark Dialog to control the mark process.
MarkHatchesFirst: If this item is checked the hatches will be marked first.
MarkOnlySelected: If this item is checked, a mark process started by will only
mark the selected entities.
Reset...:
ResetSequence: Resets/Restarts a mark sequence. Please refer to section Entity Info to get details on
how one can define a mark sequence.
ResetSerialNumber: Resets all Serial Numbers of the job to their defined start values.
ResetCounter: Resets all Mark Statusbar information.
Sequence/SerialNumber: Executes ResetSequence and ResetSerialNumber.
Counter: The Counter menu handles all counter related functionality:
SetQuantities...: Opens a dialog where the quantities can be defined that is how many times a mark
process is repeated.
Edit Counter...: Here a starting value for the counter can be set.
Increment:
Sequence: Increments the current sequence of the job. Please refer to section Entity Info to get details
on how one can define a mark sequence.
SerialNumber: Increments all SerialNumbers of the job.
SerialNumber by...: Increments all SerialNumbers of the job by an arbitrary number.
Sequence/SerialNumber: Increments the sequence and serial numbers of the current job. Please refer
to section Entity Info to get details on how one can define a mark sequence.
Decrement:
Sequence: Decrements the current sequence of the job. Please refer to section Entity Info to get details
on how one can define a mark sequence.
SerialNumber: Decrements all SerialNumbers of the job.
SerialNumber by...: Decrements all SerialNumbers of the job by an arbitrary number.
Sequence/SerialNumber: Decrements the sequence and serial numbers of the current job. Please
refer to section Entity Info to get details on how one can define a mark sequence.
Sequence/SerialNumber: Updates the sequence and serial numbers of the current job. Please refer to
section Entity Info to get details on how one can define a mark sequence.
Expected: Calculates the expected duration of the mark process in seconds depending on the job and
settings information.
Measured: Displays the measured duration of the last mark process.
Preview: See chapter Mark Preview.
Head: This field is active if there is more than one scan head. In this case one of the available heads can be
chosen to be used for the marking operation.
Start Mark (the yellow laser warning sign): Starts the mark process.
Stop (the red stop sign): Stops the mark process.
Each time a mark process is triggered (by clicking on Start Mark, by pressing F1 or by external trigger) all
objects that have to be marked are sent down to the optic device and are exposured.
External Trigger: If checked the mark process can be started by an external trigger signal received by the
optic device.
Repeat Mark: If checked the mark process will be repeated.
Selected: If checked only selected entities are considered in the mark process.
Redpointer: See chapter Redpointer.
11.1.1 Redpointer
Start Pointer: Starts the red pointer. This button is active only if the red pointer is enabled. For the red
pointer pen #255 is used (see chapter Mark Settings). While the redpointer is outlining, scale and nudge can
be done with the short keys listed below.
Ctrl-ArrowKey: Nudge
Shift-ArrowKey: 5 * Nudge
Alt-ArrowUp/Down: Scale
Shift-Alt-ArrowUp/Down: 5 * Scale
Figure 227: Green for flag disabled, blue for flag activated.
Splitted Red Pointer repetitions: Can be checked only if entity is a split entity. You can set for first, middle
and last split parts in between a red pointer repetition count. If unchecked (default), the red pointer runs
endless on first split part. If the entity is not a split entity, this option is deactivated.
Toolbars: The Preview Window has its own toolbar, because the standard toolbars belong to the Main
Window and are not active while the Preview Window is in the foreground. The Camera Toolbar is just the
light version of the Main Window's Camera Toolbar. So refer to chapter Camera Toolbar.
Views: Command View and Line Info View
OpticModule Properties: When clicking with the right mouse button in the Preview Window, the
OpticModuleProperties will appear.
The Command View displays the first 1000 commands that are
being sent to the preview window in a list box.
The displayed commands are compatible to the commands sent
to the controller card in hardware mode.
If the button CopyToClipBoard is pressed, the content of the list
box is copied to the clip board. This makes it easier to search for
special commands.
11.3.1.3 OpticModuleProperties
If Multihead License is active: By Clicking with the right mouse button in the Preview window the following
dialogs are being opened:
Dimension Check: With these options, the user can check whether all the entities are inside of the Field or
Working area before marking is started. If No Check is chosen, the marking will be executed until it gets out
of the boundary.
Simulation Mode: This function is only designed for a user who has his own simulation application.
Simulation Mode means there is no hardware output. The whole marking process will be simulated by
software only, for example the time of Mark could be evaluated.
The Simulation Mode will be automatically switched off by clicking on Mark in mark-dialogue of
SAMLight.
Output Window: This is also only designed for a user who has his own Start-Mark-Application. The output
window refers to the Mark trigger window. In SAMLight, it is default that the mark trigger window is being
hidden. But in the user's own application, he could set it up here and decide if he wants a beep when he
clicks stop.
With these check boxes, the user can activate or deactivate some toolbars or windows in the Preview
Window.
Input Function
OptoIn_0 Start Mark (Trigger)
OptoIn_1 Stop Mark (external stop)
Input selection pins see table 27
The job files that have to be loaded depending on the input signals need to be saved in the folder <SCAPS>
\jobfiles of the installation directory and they must have the following name structure:
jobname_nnnn.sjf
Here jobname stands for any freely definable characters and nnnn stands for the job number that is related
to the input pin pattern (see table 29).
loadjob_0002.sjf
0 1 0 0
loadjob_0003.sjf
1 1 0 0
loadjob_0004.sjf
0 0 1 0
loadjob_0005.sjf
1 0 1 0
loadjob_0006.sjf
0 1 1 0
loadjob_0007.sjf
1 1 1 0
loadjob_0008.sjf
0 0 0 1
1 0 0 1 loadjob_0009.sjf
loadjob_0010.sjf
0 1 0 1
loadjob_0011.sjf
1 1 0 1
loadjob_0012.sjf
0 0 1 1
loadjob_0013.sjf
1 0 1 1
loadjob_0014.sjf
0 1 1 1
loadjob_0015.sjf
1 1 1 1
Job number 0 is defined as an empty job. Job files with this number will be ignored.
To control the process the outputs are defined as follows (for USC cards):
Output Function
OptoOut_0 MarkingActive
OptoOut_3 Software (Trigger) ready
StartMark can be set
OptoOut_4 New job was loaded
successfully, signal will be
reset with next external
start (StartMark)
Table 30: Output bits used to control the process.
12 Splitting
This option allows you to split a job into pieces and then mark them part by part. That automatic split marking
is useful e.g. for marking round objects or objects that are bigger than the working area. Jobs are always
split completely as long as there are no entities marked as nonsplittable.
The Splitting Dialogs can be reached via the Extras Toolbar or by selecting the appropriate menu item.
For rotational marking (Angular Splitting mode) can be done by performing the following steps:
Enable external motion control to perform the automatic rotation of the round object that has to be marked.
Define the diameter of the object.
Define a rotational angle that describes the segment that should be marked at the same time.
Define the motion controllers axis that has to be used for the rotation movements, that axis only defines
the drive that has to be used for the motion, it does not influence the axis the job is split for.
Turn on the splitting mode to enable the current job for rotational marking.
For planar marking (Planar Splitting modes) the following steps are necessary:
Enable external motion control to perform the automatic movement of the flat object that has to be
marked.
Define the size of a split part that has to be marked at the same time.
Define the motion controllers axis that has to be used for the planar movements. This axis only defines the
drive that has to be used for the motion. It does not influence the axis the job is split for.
Turn on the splitting mode to enable the current job for marking it part by part.
For Mark on the Fly of split parts following steps are necessary:
You need a Marking on The Fly featured license of the SAM software.
Define the size of one split part that has to be marked on the fly.
Turn on the splitting mode to enable the current job for marking it part by part.
The Motion Control for the first two modes can be activated at
Motion Control. Additionally the motion control configuration file has to be configured for the used controller
as described in motion control .
If all of the Rotation Axis or Motion Axis radio buttons are disabled there is a misconfiguration with
the motion controller and the application will be unable to perform the correct rotational or planar
movements.
When the splitting of a job was successful, its appearance in the View 2D is changed. Now there are several
additional lines. They are the cutting edges that have been created conformly to the values Total Diameter
and Splitting Angle (in angular mode) or Splitting Size (in planar mode). These splitting lines can be changed
to optimize the result. Click on such a line and enter the object level 2 using the level toolbar. Now you can
select a single splitting line. To move such a line click on the small blue box and then drag it in the desired
direction.
When such a line is moved beyond one of the neighbour cutting lines it is automatically forced to a
position back within its two neighbors. Interleaving the cuts that are represented by these lines is
an invalid operation. If there are parts of the job that are located outside of the outer cutting lines
after editing, they will not be marked.
After dragging a cutting line to a new position the split job is recalculated automatically. This operation may
require some seconds depending on the complexity of the job. Marking such a job can be done like before.
Here all the split parts are marked one by one until the complete job is done. Editing the cutting lines resets
the current marking position so that the next marking operation starts with the first segment of that job.
To get the correct marking result it is very important that the axes of the motors correspond to the
axes of the split job. Normally they should both form a right handed coordinate system.
General:
Speed: This is a general parameter of planar and angular operation modes. It defines the speed used
for the connected drive. The speed defined here overrides the speed defined in the Control submenu of
the entity property page.
Mark Loop Count: Since the individual Mark Loop Count values of the entities are ignored in splitting
mode, it is possible to define a job-global loop count here. The Mark Loop Count defines how often the
marking of each split part is repeated before the motion device moves to the next split part.
Split overlap: With this option you can increase the area of a single split part.
Allow pre- sort of line arrays: The split algorithm converts all line objects into Line Arrays. By grouping
them together the positioning of the splits is optimized and the process of the cutting is accelerated. An
exampe is a DXF import which contains letters that are stored as simple polylines. But this can change
the order of the split marking process.
Split Axis: The axis that defines the splitting direction for the geometry can be set here.
Total Repeat: After marking the last split part the scanner repeats marking all parts depending on this
value.
Combo Box: Possible split options are:
Vector Marking - Fixed Split Size: Regardless on the positions of the entities the split size is
always the same. Some entities may be cut.
Vector Marking - Entity Based Splitting: This Split algorithm avoids cutting polylines and
group single entities. If the total size of two or more entities does not exceed the set entities
width (see above) the entities will be centered and marked together. The dashed lines in the
View2D represents the center lines of the grouped entities, the external motion controller will
stop at this positions for marking. With you can preview the
grouped entities.
Grouped entities width: With this value it is possible to group entities to decrease the
marking time. The Rotation Axis dimension of the group outlines will not exceed this value.
Entities with a greater Rotation Axis dimension than the grouped entities width will not be
grouped with other entities.
Vector Marking - Character Based Splitting: If a job consists of exactly one text object that
consists of one single line this option causes the splitting algorithm to place the splits between
the single characters of that text object to avoid that geometry is cut. If you want to split several
text objects (maybe even of different font size), use entity based splitting with the value of the
widest character as "grouped entities width".
Reverse Movement Direction: If the workpiece is being moved instead of the scan head, all
movements go in the opposite direction.
Move back to start position: If this option is checked the scan head returns to the starting position after
each marking. If unchecked, the scan head stops at the position where the marking finished and the next
marking will start from there.
Keep Marking Active Output: In normal operation mode the digital_output_0 is set to 1 every time a
split is marked and it is set back to 0 during the movement operation. This behavior can be changed by
enabling the check box Keep Marking Active Output. If it is active then the marking signal via
digital_output_0 would stay at 1 as long as the complete job including all splits is marked.
Cog overlapped lines: If the entity contains a hatch with many parallel lines the quality of the marking
could be enhanced, if those lines are split on a cogged edge than a uniform one. If all lines are split on a
uniform edge heating issues can occur and the marking quality may suffer.
Iterate only top level: Top level entities will not be split into smaller parts but marked as a whole.
Start Values for Splitting: Enable the Activate checkbox to define start values for the splitting. Define
the starting position of the splitting routine with the numbers in axis. The values are absolute values.
With the button Get Current Motion Position it is possible to set the values of the current motion
controller as start values.
Mode: The Angular Splitting mode for marking on round objects. The object is rotated between two marking
cycles to mark the whole circumference of the object. To use this mode at least one axis of the connected
motion controller has to be configured for angular operation.
Rotation Axis: The axis of the connected drive that has to be used for rotating the workpiece. This
option only chooses the axis and has no influence on the splitting direction.
Total Diameter: The diameter of the object that has to be marked. In case of a cylindrical object this
would be the diameter of the base surface.
The circumference that results from the diameter of the base surface cannot be smaller than the
total width of all job entities.
Splitting Angle: This angle in degrees describes the size of one split part.
Parts ... Spread over 360°: If the total diameter and the resulting surface of the cylinder is big enough,
more than one copy of the job can be marked on this surface. The different markings are distributed
homogeneously over the total generated surface of the cylinder.
Allow more than 360°: This allows a continuous rotation with an angle greater than 360°.
General:
Speed: This is a general parameter of planar and angular operation modes. It defines the speed used
for the connected drive. The speed defined here overrides the speed defined in the Control submenu of
the entity property page.
Mark Loop Count: Since the individual Mark Loop Count values of the entities are ignored in splitting
mode, it is possible to define a job-global loop count here. The Mark Loop Count defines how often the
marking of each split part is repeated before the motion device moves to the next split part.
Split overlap: With this option you can increase the area of a single split part.
Allow pre- sort of line arrays: The split algorithm converts all line objects into Line Arrays. By grouping
them together the positioning of the splits is optimized and the process of the cutting is accelerated. An
exampe is a DXF import which contains letters that are stored as simple polylines. But this can change
the order of the split marking process.
Split Axis: The axis that defines the splitting direction can be set here.
Total Repeat: After marking the last split part the scanner repeats marking all parts depending on this
value.
Combo Box: Possible split options are:
Vector Marking - Fixed Split Size: Regardless of the positions of the entities, the split size is
always the same. Some entities may be cut.
Vector Marking - Entity Based Splitting: This Split algorithm avoids cutting polylines and group
single entities. If the total size of two or more entities does not exceed the set entities width (see
above) the entities will be centered and marked together. The dashed lines in the View2D
represents the center lines of the grouped entities, the external motion controller will stop at this
positions for marking. With you can preview the grouped
entities.
o Grouped entities width: With this value it is possible to group entites to decrease the
marking time. The Rotation Axis dimension of the group outlines will not exceed this value.
Entities with a greater Rotation Axis dimension than the grouped entites width will not be
grouped with other entities.
Vector Marking - Character Based Splitting: If a job consists of exactly one text object that
consists of one single line this option causes the splitting algorithm to place the splits between the
single characters of that text object to avoid that geometry is cut. If you want to split several text
objects (maybe even of different font size), use entity based splitting with the value of the widest
character as "grouped entities width".
Reverse Movement Direction: If the workpiece is being moved instead of the scan head, all
movements go in the opposite direction.
Move back to start position: If this option is checked the scan head returns to the starting position after
each marking. If unchecked, the scan head stops at the position where the marking finished and the next
marking will start from there.
Keep Marking Active Output: In normal operation mode the digital_output_0 is set to 1 every time a
split is marked and it is set back to 0 during the movement operation. This behavior can be changed by
enabling the checkbox Keep Marking Active Output. If it is active then the marking signal via
digital_output_0 would stay at 1 as long as the complete job including all splits is marked.
Cog overlapped lines: If the entity contains a hatch with many parallel lines the quality of the marking
could be enhanced, if those lines are split on a cogged edge than a uniform one. If all lines are split on a
uniform edge heating issues can occur and the marking quality may suffer.
Iterate only top level: Top level entities will not be split into smaller parts but marked as a whole.
Do not recalculate split lines: Available only for Fixed Split Size.
Start Values for Splitting: Enable the Activate checkbox to define start values for the splitting. Define
the starting position of the splitting routine with the numbers in axis. The values are absolute values.
With the button Get Current Motion Position it is possible to set the values of the current motion
controller as start values.
Mode: The 1D Planar Splitting mode is for splitting the current job in one direction, either X or Y, related to
the contents displayed in the View 2D. To use this mode at least one axis of the connected motion controller
has to be configured for planar operation.
Motion Axis: Independent from the split axis this option can be used to choose a drive to perform the
movement for the split parts.
Splitting Size: The size of one single split can be defined here. This size needs to be smaller than the
working area in the same direction.
General:
Speed: This is a general parameter of planar and angular operation modes. It defines the speed used
for the connected drive. The speed defined here overrides the speed defined in the Control submenu of
the entity property page.
Mark Loop Count: Since the individual Mark Loop Count values of the entities are ignored in splitting
mode, it is possible to define a job-global loop count here. The Mark Loop Count defines how often the
marking of each split part is repeated before the motion device moves to the next split part.
Split overlap: With this option you can increase the area of a single split part.
Allow pre- sort of line arrays: The split algorithm converts all line objects into Line Arrays. By grouping
them together the positioning of the splits is optimized and the process of the cutting is accelerated. An
exampe is a DXF import which contains letters that are stored as simple polylines. But this can change
the order of the split marking process.
Total Repeat: After marking the last split part the scanner repeats marking all parts depending on this
value.
Combo Box: Possible split options are:
Vector Marking - Fixed Split Size: Regardless of the positions of the entities, the split size is
always the same. Some entities may be cut.
Vector Marking - Entity Based Splitting: This Split algorithm does not cut single entities as it is
available for top level entities only. Each top level entity will be marked entirely without being cut
meaning that the top level entity itself needs to fit into the working area.
Workpiece Movement (2D only): If the workpiece is moving instead of the scanhead, then all relative
movements can be inverted here.
Move back to start position: If this option is checked, the scan head returns to the starting position
after each marking. If unchecked, the scan head stops at the position where the marking finished and
the next marking will start from there.
Keep Marking Active Output: In normal operation mode the digital_output_0 is set to 1 every time a
split is marked and it is set back to 0 during the movement operation. This behavior can be changed by
enabling the checkbox Keep Marking Active Output. If it is active then the marking signal via
digital_output_0 would stay at 1 as long as the complete job including all splits is marked.
Cog overlapped lines: If the entity contains a hatch with many parallel lines the quality of the marking
could be enhanced, if those lines are split on a cogged edge than a uniform one. If all lines are split on a
uniform edge heating issues can occur and the marking quality may suffer.
Do not execute empty splits (2D only): If this option is enabled then the scanner will not move to
empty split parts.
Automatic move to first part (2D only): Provided that the split is centered on the working area and that
the motion axes are on position 0,0 then the user does not have to specify where the split should begin.
The motion device moves automatically to the start position of the split.
Start Values for Splitting: Enable the Activate checkbox to define start values for the splitting. Define
the starting position of the splitting routine with the numbers in axis X and axis Y. The values are
absolute values. With the button Get Current Motion Position it is possible to set the values of the current
motion controller as start values.
Mode: The 2D mode is for splitting the current job in two directions. Therefore no split axis definition is
necessary here. Using this splitting mode a XY-table should be used to place the working piece at the correct
position. To use this mode at least two axes of the connected motion controller have to be configured for
planar operation.
Horizontal Motion Axis: The motion axis that performs the horizontal movements can be defined here.
You cannot use the same axis as Vertical Axis.
Vertical Motion Axis: The motion axis that performs the vertical movements can be defined here. You
cannot use the same axis as Horizontal Axis.
Split width: You can define the horizontal split width here. The split width needs to be smaller than the
working area in the horizontal direction and defines the resulting horizontal part size.
Split height: You can define the vertical split height here. The split height needs to be smaller than the
working area in the vertical direction and defines the resulting vertical part size.
Tile Alignment: Here you can define where the marking on the scanner field is performed. For example:
If Center is selected, the split parts will be marked on the center of the scanner field.
If the split parts are positioned at a border of the working area you can not use a gain factor
greater than 1 in that borders direction, because this results in a "galvo coordinates out of range
error" during marking.
Below of these options there are buttons that can be used to define the splitting and marking order for
the split parts. A preview displays what order is currently chosen. The marking order is equal to the
numbers in the preview area.
General:
Speed: This is a general parameter of planar and angular operation modes. It defines the speed used
for the connected drive. The speed defined here overrides the speed defined in the Control submenu of
the entity property page. This option is ignored for the 1D Mark on the Fly mode, because here the
application does not control the movement speed but reacts on it.
Mark Loop Count: Since the individual Mark Loop Count values of the entities are ignored in splitting
mode, it is possible to define a job-global loop count here. The Mark Loop Count defines how often the
marking of each split part is repeated before the motion device moves to the next split part.
Split overlap: With this option you can increase the area of a single split part.
Allow pre- sort of line arrays: The split algorithm converts all line objects into Line Arrays. By grouping
them together the positioning of the splits is optimized and the process of the cutting is accelerated. An
exampe is a DXF import which contains letters that are stored as simple polylines. But this can change
the order of the split marking process.
Combo Box: Possible split options are:
Vector Marking - Fixed Split Size: Regardless on the positions of the entities the split size is
always the same. Some entities may be cut.
Vector Marking - Entity Based Splitting: This Split algorithm avoids cutting polylines and
group single entities. If the total size of two or more entities does not exceed the set entities
width (see above) the entities will be centered and marked together. The dashed lines in the
View2D represents the center lines of the grouped entities, the external motion controller will
stop at this positions for marking. With you can preview the
grouped entities. Now bitmaps are supported in 'Entity based splitting'. Older 1D Marking On
The Fly Splitting Dialog entry 'Character based splitting' is now included in the new option 'Entity
based splitting'. 'Entity based splitting' allows use of more than one character string, but e.g.
character rotation is not supported in case 'Entity based splitting'.
Bitmap Marking: It is possible to mark a bitmap on the fly. The bitmap dimension may exceed
the working area in the direction the belt is moving but not in the other direction.
Grouped entity width: The width of one splitting part. Not visible if Iterate only top level is checked.
Keep Marking Active Output: In normal operation mode the digital_output_0 is set to 1 every time a
split is marked and it is set back to 0 during the movement operation. This behavior can be changed by
enabling the checkbox Keep Marking Active Output. If it is active then the marking signal via
digital_output_0 would stay at 1 as long as the complete job including all splits is marked.
Cog overlapped lines: If the entity contains a hatch with many parallel lines the quality of the marking
could be enhanced, if those lines are split on a cogged edge than a uniform one. If all lines are split on a
uniform edge heating issues can occur and the marking quality may suffer.
Iterate only top level: Top level entities will not be split into smaller parts but marked as a whole.
Endless Repeat: With this checkbox all split parts will be repeated endlessly.
Gap between splits: Here you can define a gap between two repetitions.
Mode: This field is only available for USC cards and only editable if Marking on the Fly is enabled within the
settings. The 1D Mark on the Fly mode is similar to the preceding one except the fact that the motion is not
controlled by a connected motion controller. Here the object is moved continuously by an external drive like it
is known for "on the fly" applications in general.
Split Axis: The axis that defines the splitting direction can be set here.
Splitting Size: The size of one single split can be defined here. This size needs to be smaller than the
working area in the same direction.
Center resulting splits: This option allows you to center all split parts.
mark via the Mark Dialog would have a delay of about 200 ms and this would affect the MOTF
marking result because marking would start to late. However the Redpointer can be activated to
mark", in this way, a split job file with motions is generated automatically and can be saved in *.sjf
file, which could be converted to *.unf file.
General:
Speed: This is a general parameter of planar and angular operation modes. It defines the speed used
for the connected drive. The speed defined here overrides the speed defined in the Control submenu of
the entity property page.
Mark Loop Count: Since the individual Mark Loop Count values of the entities are ignored in splitting
mode, it is possible to define a job-global loop count here. The Mark Loop Count defines how often the
marking of each split part is repeated before the motion device moves to the next split part.
Split overlap: With this option you can increase the area of a single split part.
Allow pre- sort of line arrays: The split algorithm converts all line objects into Line Arrays. By grouping
them together the positioning of the splits is optimized and the process of the cutting is accelerated. An
exampe is a DXF import which contains letters that are stored as simple polylines. But this can change
the order of the split marking process.
Split Axis: The axis that defines the splitting direction can be set here.
Total Repeat: After marking the last split part the scanner repeats marking all parts depending on this
value.
Combo Box: Possible split options are:
Vector Marking - Fixed Split Size: Regardless on the positions of the entities the split size is
always the same. Some entities may be cut.
Vector Marking - Entity Based Splitting: This Split algorithm avoids cutting polylines and
group single entities. If the total size of two or more entities does not exceed the set entities
width (see above) the entities will be centered and marked together. The dashed lines in the
View2D represents the center lines of the grouped entities, the external motion controller will
stop at this positions for marking. With you can preview the
grouped entities.
Grouped entities width: With this value it is possible to group entites to decrease the
marking time. The Rotation Axis dimension of the group outlines will not exceed this value.
Entities with a greater Rotation Axis dimension than the grouped entites width will not be
grouped with other entities.
Vector Marking - Character Based Splitting: If a job consists of exactly one text object that
consists of one single line this option causes the splitting algorithm to place the splits between
the single characters of that text object to avoid that geometry is cut. If you want to split several
text objects (maybe even of different font size), use entity based splitting with the value of the
widest character as "grouped entities width".
Bitmap Marking: This option allows to mark a bitmap without the need to split the bitmap in
parts manually. Between every line of the bitmap the motor moves.
Keep Bitmap Size: If that option is set the bitmap is not scaled in order to get a size that
results in the specified marking angle, here the source bitmap is left untouched.
Reverse Movement Direction: If the workpiece is being moved instead of the scan head, all
movements go in the opposite direction.
Move back to start position: If this option is checked the scan head returns to the starting position after
each marking. If unchecked, the scan head stops at the position where the marking finished and the next
marking will start from there.
Keep Marking Active Output: In normal operation mode the digital_output_0 is set to 1 every time a
split is marked and it is set back to 0 during the movement operation. This behavior can be changed by
enabling the checkbox Keep Marking Active Output. If it is active then the marking signal via
digital_output_0 would stay at 1 as long as the complete job including all splits is marked.
Cog overlapped lines: If the entity contains a hatch with many parallel lines the quality of the marking
could be enhanced, if those lines are split on a cogged edge than a uniform one. If all lines are split on a
uniform edge heating issues can occur and the marking quality may suffer.
Iterate only top level: Top level entities will not be split into smaller parts but marked as a whole.
Origin ring working area x: Define a starting offset in X-direction.
Origin ring working area y: Define a starting offset in Y-direction.
Mode: The Ring Splitting mode is for splitting the current job on a ring.
Rotation Axis: Independent from the split axis this option can be used to choose a drive to perform the
rotation for the split parts.
Diameter: Diameter of the ring.
Height: Transversal dimension of the ring.
Margin: Shows an optical helping line that reduces the height. No influence on marking output.
Splitting Angle: This angle in degrees describes the size of one split part.
Parts...Spread over 360°: The whole splitting job is repeated on the whole object in equidistant pieces
so that the marking result is homogeneously distributed on the whole object.
Z tilt compensation angle: This feature is to be used with Ring splitting tilt compensation in Global
Extras.
Move forward to start position: When finished with marking and moving to start position this defines
how the start position is reached again.
Allow more than 360°: This allows a continuous rotation with an angle greater than 360°.
Engrave inside: Engrave on the inside of the ring.
13 Option MOTF
This feature "Marking On The Fly" (MOTF) is for marking moving targets on a product line. General
information on a (MOTF) setup is given here.
In sub-chapters, further detail is given on how to work with encoder signals or without them in simulation
mode, on the card-specific hardware setup, on how to calibrate a MOTF system and on the possibility of
doing endless MOTF or rotational MOTF. Finally, some examples can be found at the end.
The target piece which has to be marked is placed on a moving conveyor belt that surpasses the scan head
at a specific position. The scanner has to know when to start marking and how fast the target is moving.
Latter is done by the encoder: The movement of the target is converted by the encoder. For a specific
distance of the target (in the above example along the X-axis), the encoder gives a specific amount of
counts. The information of this conversion is given by the multiplier. Movement is possible in different
directions. The distance information from the encoder is sent to the scanner card which appropriately
corrects the marking vector such that it fits to the moving target. The starting signal is sent by the trigger
sensor: The sensor converts a specific optical label on the conveyor belt into an electrical trigger signal.
The MOTF_CH0 (on the 37-pin connector) and MOTF_CH1 (on the 40-pin connector) signals are filtered by
a digital filter unit. For information on the cut-off frequency, see the corresponding hardware manual. After
the decoding, a counter counts the incoming count pulses and is incremented or decremented according to
signal (see encoder signals for further details). In some application the belt movement direction and speed
remains constant. In this case the counts can be generated by an internal simulation generator eliminating
the need for an encoder.
In order to calibrate the counter according to the scanner field units [typically in bits, mm or inch], the counter
value is multiplied by a user definable signed constant. The resulting MOTF compensation is added to the
marking information to form the final signals for scan head control.
Verify the GND connection between the USC/RTC card and the encoder to adjust the level. To
avoid noisy signals use short cables and check the power supply of the encoder.
The USC cards are designed to handle two 90° shifted encoder signals (track A and track B) delivered by
standard commercial encoders. The USC decoder interprets each transition, whether the count impulse is on
track A or track B of the respective channel. The interpreted belt direction depends on the phase shift
between both tracks (see figure 254).
Phase shift B after A:
If the phase shift between track A and track B is + 90° (refer to figure 254, upper part), the belt is interpreted
as moving in the default direction (let's call it forward). In this case, the encoder counts positive which is
necessary for advanced MOTF features (like ScMotfOffset). Each falling or rising edge of track A or track B
will increment the encoder counter by + 1. That means each track period T will lead to 4 encoder counts in
total.
Phase shift B before A:
If the phase shift between track A and track B is - 90° (refer to figure 254, lower part), the belt is interpreted
as moving in the non-default direction (let's call it backward). In this case, the encoder counts negative. Each
falling or rising edge of track A or track B will increment the encoder counter by - 1. That means each track
period T will lead to - 4 encoder counts in total. Please note that for the encoder counting negative, the
ScMotfOffset entity will not work properly.
To change the counting direction, the signals of track A and track B can be swapped either by changing the
wiring of the tracks or by using Swap A/B in the software. The direction of MOTF compensation may need to
be adjusted as well after changing the direction of the encoder counter. Please refer to the corresponding
hardware specific sub-chapters for further information.
Figure 254: Encoder signals (single ended). Note that each period T consists of 4 encoder counts.
Using encoder signals, it is necessary to specify the conversion between the counts of the encoder and the
corresponding distance on the work piece. This conversion is given by the MOTF multiplier in combination
with the optic settings.
The amplitude of the encoder signals should be in the range of 2.5 V to 5.0 V. The signals should
be as low-noisy as possible, since noise could be interpreted as additional pulses. Possibly, you
can use a differential encoder and MOTF_CH1 (40-pin connector).
In case of problems, verify the switching threshold levels (cut-off frequency see USC-1, USC-2,
USC-3) of the encoder signals with an oscilloscope and/or use differential signals.
The circumference of the wheel that is attached to the encoder is known as "U". The unit is mm/360°.
Then, the multiplier F is calculated as the ratio of (4 times I) and U. Please find an example for I =
2000 counts/360° and U = 50 mm/360° below:
Card specific calculations can be found in the following chapters (Hardware setup).
A possible slack between the wheel and the conveyor is not considered. However the calculation
gives a good approximation.
The factor I must be multiplied by 4 because each rising and falling edge of both tracks counts.
Please have a look at figure 254 for further details on the MOTF signals.
2. By experiment:
See USC-1 Specific Calibration
See USC-2/3 Specific Calibration
ScMotfOffset control objects do not work in MOTF simulation mode for USC-1 cards.
USC-1
single ended tracks: Channel 0
37-pin connector: MOTF_CH_0_A
37-pin connector: MOTF_CH_0_B
Table 31: Required MOTF connection for USC-1
Here, the individual options for a USC-1 card are described. To get to the dialog window below (figure 255),
select
X/Y: Choose the direction in which the target is moving during Marking On The Fly (for neutral optic
settings).
inv. Offset: ScMotfOffset control objects can only be positive. It is possible that the MOTF
compensation is set up correctly but the MOTF counter value is decreasing (counting negative). In this
case, you have to enable this checkbox to be able to use ScMotfOffset control objects.
ScMotfOffset control objects do not work in MOTF simulation mode for USC-1 cards.
Only the following configurations allow correct compensation and advanced MOTF features (like
ScMotfOffset):
The orientation of the coordinate system of the UCF correction file has no influence on the MOTF
settings.
The rotation rotates the entity, but not the MOTF direction.
If a rotation is required, implement the rotation directly in the UCF correction file.
If the marking is started with an external trigger (sensor), it is recommended to start the marking in
trigger mode (Mark Trigger) to avoid jitter of the position.
USC-2/3
single ended tracks: Channel 0
37-pin connector: MOTF_CH_0_A
37-pin connector: MOTF_CH_0_B
differential tracks: Channel 1
40-pin connector: MOTF_CH_1_A+
40-pin connector: MOTF_CH_1_A-
40-pin connector: MOTF_CH_1_B+
40-pin connector: MOTF_CH_1_B-
Table 33: Possible MOTF connections for USC-2/3
Here, the individual options for a USC-2/3 card are described. To get to the dialog window below (figure
256), select Enable Marking On The Fly and then go
to Settings.
Channel 0/1: There are two separate channels for MOTF on USC-2/3, Channel 0 and Channel 1.
Enable: Activate this checkbox to enable the desired channel for Marking On The Fly. It is possible to
use both (see example rotated scan head).
Multiplier: Unit in [Counts/mm]. When using Simulation mode, choose [mm/s] or [m/min] as unit. Using
a negative value inverts the direction of the MOTF compensation.
Example of a USC-2/3 MOTF-Multiplier calculation. In this calculation the radius of the encoder wheel is
50 mm and the encoder is generating 2000 pulses per track (A and B) and full rotation:
Distance: If an encoder is used or if simulation is enabled, the distance of the Marking On The Fly
movement is shown here. Normally, this number starts to increment as soon as the encoder or
simulation mode is activated and when the belt is moving.
Reset: This button resets the distance counter to 0.
X/Y: Choose the axis in which the scanner is moving during Marking On The Fly (for neutral optic
settings).
Rotation: A special feature which is only available for a USC-2/3 card is the rotational Marking On The
Fly. Therefore activate the radio button Rotation. Then, choose the appropriate units - either Counts/deg
or Deg/sec (Deg = Degrees). Finally choose the center of the rotation in Rotation Point. You might want
to first center the job in the View2D before setting the center X and Y values.
Swap A/B: If activated, the direction of encoder counting will be inverted. The effect of this checkbox is
identical to changing the hardware wiring between track A and track B.
Simulation: Activate this checkbox to enable the Simulation Mode.
Input from CH1/0: When activated, the encoder signals of the other MOTF channel are used for MOTF
correction. The state of Swap A/B is also taken form the source channel. See Rotated scan head for an
example of application.
Time Lag Correction: To compensate the delay of the scan head, a 'Time Lag [µs]' can be defined.
Depending on the current MOTF speed this result in an offset. 'Vmax [m/min] / Time Lag [µs]' is the
maximum of this offset. The 'X' and 'Y' radio buttons define the direction of the Time Lag Correction. This
feature only works when the encoder pulses result in a positive increase of the distance value. After any
clicked.
Calc Max MOTF Speed: In standalone (flash) mode, it is possible to check the maximal possible MOTF
speed of the current job. Steps to use this feature:
Enable Calc Max MOTF Speed. Only the checkbox must be enabled, the other settings are taken from the
MOTF settings above. If both MOTF channels are in use, the CH1 settings are taken.
Stop the MOTF belt movement such that there are no more encoder pulses. If the calculation is done while
the belt is moving, the result will be less accurate.
Mark a job in flash mode. Please note that the calculation is only working for jobs without any control
objects.
Start the server in visible mode (<SCAPS>\system\sc_usc_server /v). Select the USC-2/3 card and click
on the InfoView button and scroll down to 'MaxMOTFSpeed [m/min]'.
The 'MaxMOTFSpeed [m/min]' value should be a close approximation of the maximum possible MOTF
speed for the current job.
Trigger Start Delay: When a value for the delay is entered, a ScMotfOffset and a ScWaitForTrigger object
will be added to the top of the job list. These control objects will delay the job execution until the
distance[mm] is reached after the external trigger signal. There must be only one trigger pulse and this pulse
must be shorter than the "Distance[mm] / MOTF-Speed[mm/s]". This feature is only implemented for
standalone mode (flash mode).
Only the following configurations allow correct compensation and advanced MOTF features (like
ScMotfOffset or endless loop applications):
The orientation of the coordinate system of the UCF correction file has no influence on the MOTF
settings.
The rotation rotates the entity, but not the MOTF direction.
If a rotation is required, implement the rotation directly in the UCF correction file.
Do not forget to press the 'Store' button and save the settings.
In 's
MotfCNT counts positive when 'sign of MOTF multiplier' is positive. MotfCNT counts negative when 'sign of
MOTF multiplier' is negative.
MotfCNTS counts always positive.
MotfSpeed is always positive.
If the marking is started with an external trigger (sensor), it is recommended to start the marking in
trigger mode (Mark Trigger) to avoid jitter of the position.
RTC3/4/5/6
differential tracks:
16-pin connector: Encoder X1+
16-pin connector: Encoder X1-
16-pin connector: Encoder X2+
RTC3/4/5/6
16-pin connector: Encoder X2-
16-pin connector: Encoder Y1+
16-pin connector: Encoder Y1-
16-pin connector: Encoder Y2+
16-pin connector: Encoder Y2-
Table 35: Possible MOTF connection for RTC cards
Encoder Kx/Ky: Distance in x/y direction per encoder count. Example of a RTC MOTF-Kx/Ky calculation. In
this calculation the radius of the encoder wheel is 50 mm and the encoder is generating 2000 pulses per
track (A and B) and full rotation:
External Trigger: Allows to define an offset between external trigger pulse and the start of the job process.
The offset is defined by Delay and the unit is encoder steps.
RTC3/4: Simulation must be Off. The Delay value is internally multiplied by 16 counts.
RTC5: The unit of Delay is encoder counts.
Simulate Ext Start: Allows to repeat the job automatically. The gap between the jobs is defined by Delay
and the unit is encoder steps.
RTC3/4: Simulation must be Off. The Delay value is internally multiplied by 16 counts.
RTC5: The unit of Delay is encoder counts.
The initial job must be started with an external trigger signal on /START.
Depending on the direction of the belt, a positive or negative number must be entered.
Simulation: Encoder pulses will be simulated with a constant pulse frequency of 1 MHz.
Off: No simulation
Encoder X: Simulation in X-direction
Encoder Y: Simulation in Y-direction
If the marking is started with an external trigger (sensor), it is recommended to start the marking in
trigger mode (Mark Trigger) to avoid jitter of the position.
13.5 Calibration
In the following, a general calibration routine is described.
This consists of:
calibration of the optic system in the static situation, meaning without any movement of the belt
calibration of the (well-calibrated static system) in the dynamic situation for the USC-1 card
calibration of the (well-calibrated static system) in the dynamic situation for the USC-2/3 card
The following jobs are useful for calibration: a simple text object like "ABC" to check the orientation, a circle
for easy observation of the compensation and a grid to check the accuracy.
ABC-circle.sjf consists of the letters A, B and C in a Grid.sjf consists of grid vectors (e.g. hatch a square)
single laser font and a circle. to check the X and Y aspect ratio. If calibrating the
static system, the grid may cover the whole field size.
Mark a job like Grid.sjf: Are the X and Y aspect ratios correct? In other words: is 1 mm in the drawing very
precisely 1 mm on the target in vertical and horizontal direction throughout the whole working area (not
only in the middle of the field)? This is very important for 1D MarkOnTheFly split applications, because the
start point and the end point have a quite big distance within the scanner field in such an application. This
is even more critical with increasing speed of the line and with increasing size of the closed shapes.
o If not, adapt the field size until the dimension in the direction which you want to use as MOTF axis is
correct. Mark again: are the X and Y aspect ratios correct?
If not, adapt the gain value of the axis, which is not used as MOTF axis. Mark again: are the X and Y
aspect ratios correct?
If not, improve the correction file with sc_corr_table. Please find further information on how to work
1. Check the proper alignment of the scanning field and the scanning direction?
This can be tested e.g. with marking one line in the moving direction without moving the belt and
marking a single point (with a mark loop count of -1) with the slowly moving belt on top of the last
marking.
If the alignment is not good, this can be solved by adjusting the hardware setup or within the correction
file.
Figure 260: Different cases of MOTF compensation. For a moving belt to the right, an example of a marking result of
ABC-circle.sjf without MOTF compensation is shown in 1). When the MOTF compensation is activated in SAMLight,
the marking result depends on the precise value of the MOTF multiplier. Three different marking results for three
different MOTF multiplier values are shown in 2).
5. Mark with MOTF settings a job containing 2 entities separated by a ScMotfOffset entity.
Create a job containing 2 entities, e.g. two vertical lines and center both entities in x and y. Add a
ScMotfOffset entity at the beginning and specify a certain distance, e.g. 10mm. Add a
ScWaitForTrigger entity after the first line entity, see figure 261 a).
Start the marking. Are both entities marked?
o If you are just seeing the first entity, change the checkbox invert Offset in SAMLight. See table
"USC-1 MOTF settings for different setups" for more details. "
Is the distance between the entities as specified within the ScMotfOffset entity (see figure 261 b) for
visualization)?
o If not, it could be that the marking time of the first entity was too long for the offset. Try with a
larger offset or faster marking speed or smaller entity. Alternatively, the initial external trigger was
applied longer than the corresponding offset time. Another possibility is that the 2D calibration of
the static setup or the MOTF multiplier is not yet optimal.
Figure 261: a) Example job containing 2 lines, ScMotfOffset and ScWaitForTrigger. b) Visualization of the marking of a)
where the distance between the entities (lines) is defined by the value of the ScMotfOffset entity.
The flow chart in figure 262 shows an overview of the general steps of the MOTF software setup calibration.
Please proceed with the steps below.
1. Check the proper alignment of the scanning field and the scanning direction?
This can be tested e.g. with marking one line in the moving direction without moving the belt and
marking a single point (with a mark loop count of -1) with the slowly moving belt on top of the last
marking.
If the alignment is not good, this can be solved by adjusting the hardware setup or within the correction
file.
on the 40 pin extension connector (according to the electrical connection of the encoder).
Select X-Channel or Y-Channel (or Rotation) according to the movement direction of the belt. Note:
due to a flip in the optic settings the correct channel might be not obvious.
Select the multiplier unit: counts/mm. The units m/min or mm/s are also available (for Simulation Mode
with a reference of 100 kHz).
As a starting value, set the multiplier to the value which can be calculated following the formula here.
changes.
counting positive?
o If not, change the wiring of the MOTF tracks (A and B) or use the checkbox "Swap A/B" in
o Make sure that when driving in the default direction, the distance counter will move in positive
direction. Otherwise, the ScMotfOffset control object for example will not work properly.
Move the MOTF belt for different defined distances. Is the distance value displayed in the software
correctly?
o If not, adjust the MOTF multiplier value.
Figure 263: Different cases of MOTF compensation. For a moving belt to the left, an example of a marking result of
ABC-circle.sjf without MOTF compensation is shown in a. When the MOTF compensation is activated in SAMLight,
the marking result depends on the precise value of the MOTF multiplier. Three different marking results for three
different MOTF multiplier values are shown in b.
6. Mark with MOTF settings a job containing 2 entities separated by a ScMotfOffset entity.
Create a job containing 2 entities, e.g. two vertical lines and center both entities in x and y. Add a
ScMotfOffset entity at the beginning and specify a certain distance, e.g. 10mm. Add a
ScWaitForTrigger entity after the first line entity, see figure 264 a).
Start the marking. Are both entities marked?
o If you are just seeing the first entity, change the checkbox invert Offset in SAMLight. See table
"USC-2 MOTF settings for different setups" for more details. "
Is the distance between the entities as specified within the ScMotfOffset entity (see figure 264 b) for
visualization)?
o If not, it could be that the marking time of the first entity was too long for the offset. Try with a
larger offset or faster marking speed or smaller entity. Alternatively, the initial external trigger was
applied longer than the corresponding offset time. Another possibility is that the 2D calibration of
the static setup or the MOTF multiplier is not yet optimal.
Figure 264: a) Example job containing 2 lines, ScMotfOffset and ScWaitForTrigger. b) Visualization of the marking of a)
where the distance between the entities (lines) is defined by the value of the ScMotfOffset entity.
The amplitude of the encoder signals should be in the range of 2.5 V to 5.0 V. The signals should
be as low-noisy as possible, since noise could be interpreted as additional pulses. Possibly, you
can use a differential encoder and MOTF_CH1 (40-pin connector).
Figure 265: For moving direction of the belt from left to right, place the marking object on the left side of the working area.
Optic settings: Enable HomeJump and set the position to the start point of the job file to decrease the start
jump.
Figure 266: Set the home position to the first point of the spiral, labeled with a black circle.
Pen settings: Decrease scanner delays and increase scanner speeds, do not forget the HomeJumpStyle
(pen 256).
Use standalone mode (flash mode) to get less MOTF dead time.
In Endless Cut and in Endless Loop modes, the target speed should be close to a nominal MOTF speed
V(MOTF). For MOTF speed variances, a look-up-table for the scanner speed and for the laser power is
provided for up to 16 controller cards. Please note that the outline of the polyline can be larger than the field
size of your scanner along the MOTF direction before the convolution has been executed. If you want to
save the values of the CNC export in your jobfile, check
Job / Load from Job. To save the setting for the look-up-table (see illustration in figure 269) for scanner
speed and laser power, you have to select the polyline you want to mark. Then, go to , choose
GCode Files (*.cnc) as file type and open the Advanced... dialog.
Figure 267: Illustration of Endless Loop: a) A sine curve with an outline larger than the field size,
b) after CNC export the sine curve is folded to a closed form which fits into the field size and can be marked endlessly.
In this feature the vector compensation is not based on MOTF encoder values. Instead the vector
calculation is pre-calculated by folding the polylines. This is done by generating the *.UNF job for a
nominal speed and will be adjusted by internal override parameter which can be defined in lookup
tables for speed and laser power. However, the internal override procedure is not done in real time
but at the beginning at each job. If the belt speed is not constant this functionality will lead into
small distortions of the vectors.
The following endless MOTF dialog (figure 268) can be reached via , activation of the
checkbox and opening of the Settings dialog on the right.
Head Number: Chooses the card number. For single card applications, choose '0'.
Enable Endless Cut: Folds the polyline(s) by the nominal MOTF speed V(MOTF).
Requirements of the polyline(s): The entity must be a single polyline or series of polines (no jumps
between vectors are allowed).
V(MOTF) in m/min: Sets the nominal MOTF speed. This speed is used for the folding of the vectors.
Enable Endless Loop: Folds the polyline into a closed form. Laser will be left on all the time during marking.
Requirements of the polyline: The entity must be a single polyline (no jumps between vectors are
allowed), the Y-coordinate of the first and the last point of the polyline have to be the same whereas the
X-coordinates of these two points must be different.
V(MOTF) in m/min: Sets the nominal MOTF speed. This is used for calculating the scanner speed if
override speed is disabled.
Keep polylines start position: When disabled, the folded polyline will be centered. When activated, the
start position of the polyline will not be changed. In this case, the start point of the polyline needs to be within
the valid field.
External Trigger each loop: The USC card waits for external trigger via OPTO_IN_0. This can be used in
combination with endless cut.
Loop Count: Define the number of loops the polyline will be marked, type -1 for endless marking.
Loops in Buffer: Buffered jobs are used to avoid gaps in the marking result, but buffered jobs will not be
updated by OP / OS values.
Job start offset: A single MOTF offset is added at the beginning of the job. It is not included in the loop and
only included if not in trigger mode.
Enable OP, Enable OS: For MOTF speed variances a look-up-table for scanner speed and laser power can
be defined. This can be done by defining an lower and upper limit of the MOTF speed. In the range between
Vmin and Vmax three nodes are set equidistantly, refer to the picture below. If Override Laser Power (OP) /
Override Scanner Speed (OS) is enabled the laser power / scanner speed will be overwritten at the
beginning of each job.
linear OS: Uses the nodes of OP for OS as well.
MOTF Channel: Defines the source of the MOTF encoder signal: 0 = MOTF-Channel 0 at the 37 pin
connector, 1 = MOTF-Channel 1 at the 40 pin extension connector.
V < Vmin: Defines a constant scanner speed / laser power if MOTF speed is below the range of the
look-up-table. If disabled, Vmin is used instead. The internal minimum override value is 20%, so do not
use smaller values.
Vmin, Vmid, Vmax: Nodes of the look-up-table. Speed values in [m/min], override value in [%].
V > Vmax: Defines a constant scanner speed / laser power if MOTF speed is above the range of the
look-up-table. If disabled, Vmax is used instead.
Gain: All nodes values of the look-up-table will be multiplied by this gain.
Offset: An additionally offset value can be applied to all node values.
The following figure illustrates the look-up-table of speed and power values for endless MOTF.
These setting for the look-up-table for scanner speed and laser power can be saved after selection of the
polyline you want to mark via , choose GCode Files (*.cnc) as file type and open the
Advanced... dialog.
13.7 Examples
Here, some examples for MOTF jobs are given.
Figure 270: Assembly line with Marking On The Fly: the trigger sensor gives a start signal for each print mark to mark the
target. Print mark is located distance A apart from the target.
The job for such a setup can look like in figure 271:
Figure 271: Job for Trigger based offset with Marking On The Fly
Please note that the distance which needs to be specified in the ScMotfOffset entity of the job depends on
the positioning of the entity within the scan field (working area in SAMLight) as well as by the positioning of
the trigger sensor in respect to the scan field (Offset T in figure 270).
Figure 272: Example for MOTF Job for an Assembly Line: Target 1, 2 and 3 are repeated with the distances A, B and C in
between.
For RTC-3/-4, the trigger control objects are not available. Looping is possible with the Simulate Ext Start
feature.
For RTC-5 cards, the looping can alternatively be done with the Simulate Ext Start feature.
You need an encoder for the RTC cards as well as for the USC-1 card. The simulation mode can
not be used for this. Only the USC-2 and USC-3 card can handle the simulation mode together
with the ScWaitForTrigger and ScMotfOffset objects.
Figure 274 shows a rotary disk (light blue) which is rotating clockwise. Bottles (dark blue) are rotated by this
disk and thereby pass by the scan field (red) with the origin of the coordinate system (0|0). The center of the
rotary disk (x|y) is given in respect to the origin within the scan field.
Please follow the following steps to set up such a system.
1. Step one:
a. Make sure that the proper correction file is applied (in the global settings).
b. Make sure that the optic is calibrated in the static situation, i.e. 1 mm in the software equals 1 mm at
the scanner output. Use the field size value for calibration.
c. In figure 274, we use a 100 mm scan field, from -50 mm to 50 mm, so that the origin has the
coordinates (0|0).
d. Setup a job that contains a dot with the coordinates of your origin (in our example (0|0), figure 274).
e. Go to the pen settings and enable the drill mode.
f. The drill time, i.e. "Duration", depends on the disk speed.
2. Step two:
a.
Advanced).
b. Rotary disk: runs with a defined speed (deg / s)
c. Start marking
d. The marking result should be a segment of a circle where the distance from the rotary disk center to the
origin of the scanfield equals the radius.
e. The length of the segment depends on the drill duration and the disk speed.
3. Step three:
a.
b. Rotary disk: stands still
c. Enable MOTF, simulation and choose "Rotation". See figure 274 to determine the correct coordinates
of the Rotation Point (the point is (-x|-y) in this example).
Figure 276: The scan head's coordinate system is rotated in respect to the belt's coordinate system.
DataMatrixEx
QR Code EX,
Dotcode
PostNet-A/-C/-Cp
Code-128 (2)
EAN-8
2 of 5 EX
Code-39 EX
For DataMatrixEx, QR Code EX and Code-128 (2) it is necessary to activate the checkbox 'generate cells' in
the barcode extended dialog. The feature 'enable text' does not work in flash.
[b]: When JobIOSelectMode is used, make sure I/O bits are not in conflict with the JobIOSelectMode sync
bits.
On the flash, the field correction and laser source (CO2, YAG, LEE, IPG, ...) information are
global. Mixing up jobs generated with different settings can lead to unpredictable results.
The global settings must be saved to the USC-2 card by clicking the 'STORE' button in
Flash Jobs and
Settings.
The handling of jobs and settings for the USC standalone mode (Flash) as seen in figure 278 is explained in
the following:
1: Store settings: For standalone mode, the USC settings are used. Therefore, it is necessary to store
the SAMLight settings on the USC card via the Store button. Please refer to figure 279 and figure 280.
2: Generate UNF: For standalone mode, the Flash job (UNF) is created from the SAMLight job (SJF)
together with a subset of the SAMLight settings and is saved on the USC card and in <SCAPS>\jobfiles\.
Different SAMLight settings in combination with the same SJF will lead to different UNFs. Furthermore, a
copy of the SJF is also stored on the USC card as part of the UNF file. This SJF file cannot be addressed
individually.
3: Load SJF: The copy of the SJF on the USC card can be loaded to SAMLight. However, the USC
settings and the UNF cannot be loaded to SAMLight.
Different SAMLight settings in combination with the same SJF will lead to different UNFs.
in the SJF format, objects are stored with the information of all position coordinates in mm and thus can be
freely edited each time, the job is loaded. When you change the settings of a pen, the change will be valid
for all objects which have this pen applied.
in the UNF format, the information of coordinates of objects is no longer stored in mm. Instead, the
position information is converted into bit values. The same is true for pen settings, which means, that the
information of pen settings is already converted to direct commands. Thus, you don’t have real pen
settings anymore to change.
A Flash job can be created / loaded via one of the following ways:
Figure 279: Correct handling: SAMLight and USC settings with proper storing
The current USC settings on the USC card change with different events, see figure 279:
At boot of the USC card, the current USC settings are loaded from the stored USC settings.
At SAMLight start, the settings of SAMLight overwrite the current USC settings.
To avoid loss of these current USC settings after reboot of the USC card (see Fig.280), the current
settings need to be stored. Storing the settings on the USC card can be done via the Store.
The SAMLight settings remain as current USC settings even after SAMLight has been closed.
The storing ensures that the SAMLight settings and the current USC settings are identical even after a
reboot of the USC card.
Figure 280: Common mistake: SAMLight and USC settings without storing leading to change of settings after reboot
The current USC settings on the USC card change with different events, see figure 280:
At boot of the USC card, the current USC settings are loaded from the stored USC settings.
At SAMLight start, the settings of SAMLight overwrite the current USC settings.
These SAMLight settings remain as current USC settings even after SAMLight has been closed.
But, when the USC card is re-powered, the current USC settings are loaded from the stored USC
settings. Then, if the current USC settings do not match the SAMLight settings, the behavior of the
USC card could be different than before.
14.3.1 Up/Download
14.3.2 Execution
The INIT button is only used by USC-1 + FEB-1, it is not used by USC-2 cards so it is grayed out.
14.4 System
The system property page is used to initialize the flash memory, update the system section and to define the
boot configuration in stand alone mode. It also shows some status flags for diagnostics purpose.
Status:
Flash Card: Shows that a flash card hardware is detected.
Flash detected: The flash software runs and has returned the flash type.
Flash Ident: The flash was successfully initialized and has valid information stored.
Boot Configuration:
InitFlash: Flash card starts and makes an auto initialization. Asks if you want to keep your jobfiles (by
using SaveJobs and LoadJobs). All other settings on the USC-2 card will be restored to default values.
Please save your settings to USC-2 again by clicking
.
Click Update and repower the USC-2 card for changes to take effect.
Init:
InitFlash: Erases the complete flash. All data is lost.
UpdateSystem: Updates the flash system block only. Job information is preserved.
SaveJobs: Saves the jobs stored on the flash to <SCAPS>\jobfiles\save_jobs_head_X_YYMMDD\,
while X is the head number and YYMMDD the date.
LoadJobs: Loads the jobs saved by SaveJobs to the flash.
14.5 MultiCard
The feature 'MultiCard' is included in the license 'Flash' and is not compatible with MultiHead. The most
common application is to run up to six USC-2 cards in standalone mode (flash mode) and use one SAMLight
license to prepare job files and do the flash job management of all cards.
1. Close SAMLight and start the server in visible mode (<SCAPS>\system\sc_usc_server /v).
2. Connect only one USC-2 card at a time via both USB and Ethernet.
3. Select the USC-2 card in the server and click on the USC2-LAN button and define the Ethernet settings.
Leave the dialog with the Connect button. After that you can check the '+' sign in the LAN column of the
usc server.
4. Repeat steps 2 and 3 for each USC-2 card.
5. Unplug all USC-2 cards.
6. Define the order of the USC-2 cards in '<SCAPS>\system\sc_usc_card_ids.txt'. The order of the dongle
IDs in this file corresponds to the head (card) number as you can find it in the mark- and flash-dialog.
7. The IP addresses of every USC-2 card should now appear as a connect number in '<SCAPS>\system
\sc_usc.cfg'. The server attempts to connect only to these IP addresses. The order of the IP addresses in
this list does not matter.
8. Enable the checkbox 'MultiCard' in sc_usc_server (<SCAPS>\system\sc_usc_server /v).
9. Connect all USC-2 cards via Ethernet, double check the order of the cards in the visible server.
10.
save the changes to the settings file.
11.Do not forget to click on the Store button in the Driver Settings for each card to save the settings to the
USC-2 cards as well.
12.Finally the setup is done. Any card connected to the sc_usc_server can be controlled in different ways:
a. SAMLight: Marking directly in SAMLight (not in flash mode)
b.
c. SAMLight: Flash job management with Client Control Interface calls
d. Telnet: Use the FTP server to add jobs, use Flash Control Interface calls to manage flash joblist
e. sc_usc_server: Flash job management with the Save, Load and Delete buttons in '<SCAPS>\system
Figure 288: Connect strings in sc_usc.cfg Figure 289: Head (card) assignment in sc_usc_cards_ids.txt
Card Settings:
Here you can set the IP address,
subnetmask and gateway of the USC-2
card.
ConnectString:
The IP adress that is defined here will be
listed in the file 'sc_usc.cfg'. The server
will try to connect to those IP adresses
only which are listed in this file.
Connect:
By clicking 'Connect' the sc_usc_server will
write the card settings to the connected
USC-2 card.
15 Multiple Heads
The Option MultiHead allows to control up to six scan heads simultaneously. There are two different modes:
The "MultiHead with multiple cards" mode requires more than one scanner controller card, each card
controlling a scan head and a separate laser. This mode allows the marking of different data on the two or
more heads. To use this feature, the optional SAM software license MultiHead is required. All heads are
sharing one job file which is split on the several scan heads.
The "Two heads with one card" mode allows to use two heads connected on one scanner card (if the
scanner card is able to do this). Both heads are marking the same data from the same job file at the same
time. This mode is included in the SAMLight or the SAM Standard Components, no extra software option
is required but for the USC-2 card the hardware option Head 2 is needed.
For this simultaneous output and the installation of more than one (up to 6) scanner driver cards,
the MultiHeadOpticModule license is required. If the license for the MultiHeadView is present, the
View2D shows all installed working areas with the overlapping region. The data is edited as there
would be one big output. The MultiHeadView provides automatic splitting functionality to see on
which head the vectors belong.
Figure 291: Job with two different working fields for two different scan heads
Motion Control: the step and direction signals for motion control devices (stepper type 8 and 14)
are only provided at the first card (Head0). The necessary settings are defined in the chapter
Motion Control Settings.
Marking on the fly (MOTF): the encoder signal for the MOTF compensation has to be provided to
each card. The corresponding MOTF settings has to be defined for each card as well. For more
information please also refer to your scanner controller card manual.
15.1.1 Installation
There are four steps to getting started to use multiple heads with multiple cards:
1) Activating software with a password containing the MultiHead license
2) Definition of the hardware settings in the Setup Tool
3) Definition of optic settings
4) Definition of automatic vector splitting in the View2D
15.1.1.1 Password
The software is delivered together with a dongle and a password. To use the multi head components, the
password has to include these components. If there is a previous installation on the PC, the following steps
are necessary:
1) Install the new software under the same installation folder as the old one. Default folder is C:\scaps\sam2d
\.
2) Delete or rename the file sc_##_"dongle_number".scl.
3) During the first start of the SCAPS software there appears a dialog for typing in the new password.
Select the head with the box at the top. Then define the field and the working area for this head. The values
shown in the dialog above define a field with 100 mm size for each head. The total center in the middle of the
two fields and an overlapping area of 10 mm in x direction.
The corresponding values for head 1 are shown below:
When the field and the working area have been defined, the driver specific settings have to be defined for
each head. Select Head 0 and press button Driver Settings. Here define the specific settings as correction
file location, the DLL files etc. for the scanner card. Repeat this step for all installed heads/cards. The optic
specific setting can also be changed within the software by selecting
Optic.
In the View2D for MultiHeads you will see the resulting working area for both heads.
15.1.1.4 View2D
If there are more than one head installed, the View2D provides some additional functionality. The most
important is the split function for precalculation of the vectors and defining a head for each vector. When the
software starts, the View2D shows the working areas for all installed heads and the overlapping region. See
the screenshot in the chapter Multiple Cards.
The split function can be called directly from the context menu (click right mouse button in the View2D)
MultiHeadSplit. There is also an AutoSplit function available. It can be activated within the ViewProperties
dialog. This dialog can be reached by the context menu (right click of your mouse) and selecting
ViewProperties or by a direct call to the ViewProperties:
Figure 295: Context menu (left) and properties (right) of View2D for MultiHead
Checking the AutoSplitMode recalculates and splits the vectors after each change of the job. For not too
complex jobs this option is very helpful. The head color mode shows the drawings in head specific colors.
Once the Head Color Mode checkbox is activated, the colors in the view2D for MultiHeads do not tell which
pen is used but instead the colors mean which head is used for marking the entity.
In case of an error message "Galvos out of range" when the marking should start, the Splitting has
not been activated. To solve the problem, right click in the View2D and either do a MultiHeadsplit
Example:
Figure 296: Example for Head2, both scan heads are marking the same vectors
15.2.1 Installation
Here the Settings for the two heads with one card for an USC-2 card are described. The following dialog is
achievable via .
Step 1: Click on for the correction file dialog. From the drop down box
select 2 and activate the Enable checkbox right from it. Now click on Browse and select the appropriate
correction file for the second scan head. After doing this the second scan head is activated.
Step 2: This step is not necessary. In the lower right corner find the field Head 2 [mm]. Here enter the offset
values for the second head in X and Y-direction. Finally enable the checkbox Enable to activate a X and Y
Offset of the second scan head which will only affect the View but not the scanner output.
The objects are on the same relative position within the two heads as the Job Offset is the same as the
Head Offset. If we change the JobOffset to x = 100, y = 20, we get the following:
Click on the button in the functionality object toolbar and a ScSetSecondaryHeadOffset entity is inserted
in the entity list on the left. Select this new entity in the entity list and the property page Control on the right
side becomes active. Click on it. To define an offset, the Enable checkbox has to be selected and the
relative X and Y offsets have to be entered. Press the Apply button. Now a new entity, e.g. a copy of the
entity before, is inserted in the entity list behind the ScSetSecondaryHeadOffset entity. When marking the
entity list, the copy is marked now with the specified offset. A new subsequent ScSetSecondaryHeadOffset
entity inserted into the entity list overwrites the specified offsets of the ScSetSecondaryHeadOffset entity
before. Remember that the X and Y offsets of the ScSetSecondaryHeadOffset entity are always defined
relative to the offset with job properties and that the total offset of ScSetSecondaryHeadOffset entity plus the
offset with job properties has to be 45% of the working area.
Flat surface marking without F-Theta lense: If the 3 axis scan head is used for marking on flat parts, the
third scanner axis is used instead of a F-Theta objective to keep the laser focus constant on a plane surface,
the option FlatLense is required and a 3D correction file has to be used which also contains Z bit values for
every correction point.
Defocus: If you have a USC card with the option FlatLense (3D UCF correction file, no Optic3D) the
software has no factor to calculate mm to bit. That is why the unit of pen defocus is [216 bit / FieldSize]
instead of defined unit in SAMLight.
Real 3D vectors marking: If the 3 axis scan head is used for marking on curved parts (real 3D vectors),
both options FlatLense and Optic3D are required.
If a RTC card is installed Real 3D vectors marking is being enabled with the 3D option on the card
and the Optic3D option.
17 Option Optic3D
This chapter describes the 3D marking functionality. For example how to set up marking on a curved
surface.
17.1 Features
The following features are implemented:
17.1.1 3D Surfaces
Toolbar: Enable the 3D surface toolbar in . The toolbar is showing
mode drop-down list settings button and enable the checkbox at the right from the cog wheel.
Mode: Here the 3D Surface mode can be chosen. At the moment Cylinder, STL file, Tilted Surface and
Sphere is available.
1. Cylinder
2. STL Projection
3. Tilted Surface
4. Sphere
17.1.1.1 Cylinder
Cylinder: Select Cylinder in the mode drop-down list and enable it. Click on to open the settings
dialog.
Cylinder properties: Defines the diameter and position of the cylinder.
Diameter: Defines the diameter of the tube. Negative values are also allowed to mark inside a
cylinder.
X, Y Position: Defines the X, Y position of the tube.
Angle in XY Plane: Defines the tube angle in the XY plane.
Z Offset: Defines the Z position of top of the tube. If the Diameter is negative this value defines
the Z position of bottom of the tube.
Z Tilt Angle: Defines the Z slanting angle.
Advanced: Extended settings of tube marking.
Line Splitting Length: Every vector on the tube will be split into small sub vectors, to bend it on
the tube.
Tube Angle: Defines the maximal angle of the tube for the vector bending. This parameter
affects the distance of the blue dashed lines in the View2D.
View2D: Four blue dashed lines indicates the location and size of the cylinder in the View2D. The
View2D shows the vectors not bent around the tube.
Outer blue dashed lines: Defines the unwrapped size of the Tube Angle. Only vectors between
these lines will be bend.
Inner blue dashed lines: Defines the wrapped size of the Tube Angle.
3D preview: The bending of the vectors can be seen in the 3D view. Select at least one entity and click the
3D View button .
Click on "Load STL" to load a STL file. This file will be used as the surface on which the 2D vector job should
be projected.
Enable the checkbox right to the cog wheel. Now the STL surface appears in the View 2D.
Below see an example where the 3D surface is a sphere and the 2D job is a simple square:
When clicking on the Optic3D View icon you can see how the square is projected on the sphere:
Enable the checkbox right from the cog wheel to see the tilted surface in the View2D.
The dashed line in the middle of the square indicates the projection of the end of the surface on the XY
plane.
The result is shown in the 3D View:
17.1.1.4 Sphere
Enable the checkbox right from the cog wheel to see the sphere in the View2D.
In the 3D View (cube button) you can have a closer look at your 3D object by rotating the point of view.
3D view buttons: With these buttons you can view the 3D object in different planes.
In the Z-Dimension property page you can translate and scale objects in the z direction and perform mirror
and rotation operations.
Status:
Offset Z: Difference of Z value between the original object and the object that has evolved due to
transformations.
Scale Z: Difference of Z scaling between the original object and the object that has evolved due to
transformations.
Translate:
Z: Translate whole object in Z-direction.
Scale:
Z: Scale whole object in Z-direction.
Mirror and Rotate: Here you can choose the center of rotation.
Mirroring: Mirrors the object on the X, Y or Z plane.
Rotate around X, Y or Z axis: Rotate a specific angle around the X, Y or Z axis.
Outline:
max: Maximum z-Coordinate of the object.
dim: Z-dimension of the object.
Settings: For USC-1 and USC-2 cards enter the following Dialogs Settings System Optic:
In this dialogue the XY-fieldsize and the correction file can be defined.
Fieldsize:
Distance Mirrors: Distance between the mirrors in mm.
Distance second mirror to focus: Distance between the second mirror to the center of the field in the focus
plane.
F-Theta lense: Should be checked if in addition to the 3rd scanner axis, a F-Theta lense is mounted.
Z Jump Delay [µs]: Due to the fundamental difference of the Z axis it could be necessary to increase the
jump delay after a big change in the Z value. The 'Z Jump Delay' is added to the normal jump delay when a
jump has a Z dimension greater than 'Z Jump Delay Threshold [mm]'. A value of '0' disables this feature.
Z Jump Delay Threshold [mm]: If a jump has a Z dimension greater than this threshold the 'Z Jump Delay
[µs]' is added to the normal jump delay.
Change count of Z corr lookup control points and lookup table: For compensating the nonlinearity of
the relation z axis position to focus distance, a lookup table can be defined. The number of control points can
be between 2 and 32. The lookup table contains the DAC value plus the distance from second mirror to
focus when adjusting this DAC value. The points must be ordered ascending by the 'Focus Distance [mm]'
value.
XYZ Move: A helper function for finding the proper lookup table values.
High / Normal / Fine: Define Step Width for XYZ Move.
Recommended calibration procedure:
Get the correction file from Scanhead manufacturer and send it to SCAPS ([email protected]) for being
converted into a UCF file format containing no z values
Settings: For 3D marking with RTC boards, a 3D program file and 3D correction file has to be set. In the 3D
Ext dialog the values A,B,C for the Z-table can be defined. You can find this dialog at
18 Option SAM3D
This chapter describes the 3D functionality of SAMLight. Before working in the 3D mode
must be checked. Then click on OK and restart the software.
General:
3DView: Enables / Disables SAM3D mode. The software must be restarted for the change to take
effect.
Use Optical Z-Axis: Check this option, when you want to shift the focus optically with a 3D scan head.
Please note: you need a license for Optic3D to use this option.
Home jump between slices: Depending on the settings of the home jump in
there are two different options available:
· If the home jump is enabled a home jump will be performed after each marked slice.
· If the home jump is disabled there will not be a home jump, but the laser power of the HomeJumpStyle
is set after each marked slice.
Use Styles for Layers: Enables the Styles property page to assign different pens and hatches to the
sliced layers of the 3D object. See chapter "Styles for Layers".
It is very similar to the main window of SAMLight. It consists of the Menu Bar, the Toolbar, the Entity List, the
View 3D and the Entity Property Sheet. The Menu Bar contains only the open and save file functions. The
Toolbar consists of functions to change the view. The Entity List, the View 3D and the Entity Property Sheet
are similar to the items in the SAMLight 2D application. The rotation in SAM 3D is around a vector, which can
and Y directions.
On the left side the entity list shows the name and the type of the 3D object. Now the following actions to
modify the view are possible:
18.2.1 Toolbar
Camera Mode: If this is activated you can turn around the 3D object by clicking on the View 3D and
moving the mouse while the left mouse button is being pressed.
Fit View To Working Area: The view is zoomed so that the whole working area is visible.
Fit To Entities: The view is zoomed so that the entities are visible with maximum dimension.
Fit To Selected: The view is zoomed so that the selected entities are visible with maximum dimension.
Custom Zoom: You can choose a region in the view that will be enlarged. Therefore click with the left
mouse button on one corner of the desired region. While the mouse button is pressed move the mouse to
the other corner and release the mouse button.
View Along Axis: Watch the object along the X,Y or Z axis.
Camera Transform: Activate Camera Transform by clicking on the Camera symbol in the toolbar. Now
the following actions are possible (LMB = Left Mouse Button):
Entity Transform: Activate Entity Transform by clicking the Selection symbol in the toolbar. Now the
following actions are possible:
Here, choose the background color, activate or deactivate the options and define a work room.
18.2.4 Slicing
Before you can mark a 3D object it has to be sliced. This means it has to be decomposed in many 2D layers
which then can be marked as normal 2D objects. After marking a layer a motor has to move the target object
to the next z-position or the z-focus of the scan head has to be set to the next z-position. You can choose
between these two options by checking or unchecking
Z-Axis. To slice the object choose . The following dialog appears:
Thickness:
From File: The slicing information can be read from a file too. This file is a plain *.txt file with the
following structure:
2
number of slices
[R]
target_dist;stepwidth pen_number [hatch_number]
target_dist pen_number [hatch_number]
Here the 2 is a version number that corresponds to the internal structure of the file. This field is
mandatory. The next line contains a number that is equal to the number of slices that have to be created
for that file. This number is used for internal calculations and to provide an expressive progress bar. The
third line specifies if all following target_dist parameters are relative to the base of the mesh (R set) or if
the target_dist specifies absolute values in the used coordinate system (empty line without R). Now all
following lines describe the slices itself. Here two methods are possible. The first one describes a
target_dist and a stepwidth. Here the stepwidth is used for the thickness of all slices until the specified
target distance is reached. Using this syntax it is possible to define a range of slices just by using one
single line. The second syntax provides the possibility to define one single slice. Here the target_dist
specifies where this single slice has to end. Both methods of defining slices use the preceding slice
position as starting point. The thickness of a slice results out of the difference between both values.
Additionally a pen number is specified in both cases. This one-based pen number is assigned to the
related slices. And as a third, optional parameter the number of the hatch can specified that has to be
applied to that slice. It corresponds to the default hatch styles of the hatch property pane. To use such a
predefined hatch, here the required parameters have to be stored and the related hatch 1 and/or 2 has
to be enabled.
As an example such a slice definition file can look like this:
2
13
R
0.10;0.01 1
0.11 2
0.15 1
0.17 3
Here the file version number is 2 to exactly specify this format is used. The number of sliced defined
within that file is 13 and all given distances are relative to the starting coordinate of the 3D mesh. First
there is a range of slices defined. Here ten slices have to be created from position 0.00 to position 0.10
with a thickness of 0.01. The pen 1 is assigned to all these ten slices. Following these three slices are
created:
a single slice from 0.10 to 0.11 (= thickness of 0.01) where pen 2 is assigned to
a single slice from 0.11 to 0.15 (= thickness of 0.04) where pen 1 is assigned to
a single slice from 0.15 to 0.17 (= thickness of 0.02) where pen 3 is assigned to
Reverse Slicing direction: If you want to reverse the direction of the slicing from bottom to top to top to
bottom write R;S in the second line of the file. The Slice Reverse checkbox must NOT be activated.
Constant: Choose the distance between two successive layers in [mm].
CloseDist: If the distance between two Polylines is smaller than this value they are closed automatically.
If a 0 is entered here this functionality is disabled.
Only Selected: Only those objects that were selected are being sliced.
Slice Reverse: Normally the order of the slicing is from bottom to top moving along the z-axis in positive
direction. This affects the order of the marking too. A possible application is deep engraving.
Start: Start slicing and create a new entity which holds the sliced layers.
Once the object has been sliced, a new entity is shown in the entity list and on the right hand of the main
window a slice control becomes active:
The entity which holds the sliced layers is of the type ScLayerSolid. The entity which holds the original
information of the 3D object is of the type ScTrialMesh3D.
The Slice Control allows to access the slices and get information about it.
TotNum: The total number of the slices.
ActNum: The number of the actually selected slice.
ActDist: The z-distance from the ground of the actually selected slice.
Scroll bar: Click on the bar and move the mouse up or down to select a slice. The
actually selected slice will also be shown in the View 3D as a green contour which
indicates the layer.
To slice an entity more than once will lead to a corresponding number of set of layers
(ScLayerSolid entities). The slice distances may vary. For every set of layers you can define a
different hatch, pen etc. If you have more than one set of layers the total number of slices
corresponds to the number of slices with different z-value. If slices from different set of layers have
the same z-value they will be merged in the same layer to avoid motor activities.
18.2.5 Hatching
After slicing select the ScLayerSolid in the entity list and go to the hatch property page to create hatches for
the slices. The SAM3D hatch property page shows one additional value compared to the
2D hatch property page:
Var. Angle: A variable angle from -360° to +360° can be defined to rotate the hatch angle between the
slices.
In the mark property page different pens can be chosen for the outline (PolyLines), Hatch1 and Hatch2.
18.2.6 Marking
In the window that opens create a Motion Control by clicking on the Motion Control Icon .
In this case the motor will move to its start position at X=Y=Z=0 before the marking is started. Now select
Slice Postprocessing from the Jobs toolbar.
In this example a motion control is inserted after every mark of a slice which will move the Z-axis 0.1 mm
and leave the actual X and Y position. Now the job is ready to be marked as a whole 3D Object.
Job Properties: It is possible to store the jobs in the Jobs Toolbar when saving the 3D job in a *.s3d file.
Then The Styles property page will be visible. This feature lets you define Pen, Hatch, Mark Loop Count,
Mark Contour and Mark Hatch for each Styles as well as enables you to use the Upskin and Downskin
features.
In the picture above a 3D contour is hatched and at the borders of the object are Upskin ( blue lines ) and
Downskin ( green lines ) areas. To discard these areas one can define a Min. Upskin or Min. Downskin area.
See the following pictures:
In the picture above it is shown how the blue lines = Upskin are erased by setting Min. Upskin Area = 0.1
mm².
In the picture above it is shown how the green lines = Downskin are erased by setting Min. Downskin Area =
0.1 mm².
In the picture above it is shown how the green lines = Downskin and the blue lines = Upskin are erased by
setting Up/Down reduction = 0.1 mm.
Function: long ScScaleEntity(BSTR EntityName, double ScaleX, double ScaleY, double ScaleZ)
Scales the entity specified by EntityName using the scaling factors ScaleX, ScaleY and
ScaleZ for the three possible scaling directions. If EntityName is set to an empty string
the complete job is scaled.
Function: long ScRotateEntity3D(BSTR EntityName, double px, double py, double pz, double vx,
double vy, double vz, double Angle)
Rotates the 3D volume entity specified by EntityName. The vector V (0, 0, 0, vx, vy, vz)
starting at point P (px, py, pz) defines the rotation axis. The rotation Angle is specified in
degrees (°). The rotation is counterclockwise for positive values. Splitted entities can be
rotated if vector V (vx, vy, vz) is of the form (0, 0, vz).
scComSAMLightClientCtrlLongValueTypeJobExecutionDelay = 12
Set the Job Execution Delay to Value. The unit is [ms].
scComSAMLightClientCtrlLongValueTypeSliceFrom = 45
scComSAMLightClientCtrlLongValueTypeSliceTo = 46
If you do not want to mark all slices, you can choose the first
and last slice, which should be marked.
scComSAMLightClientCtrlLongValueTypeCurrentSliceNum = 47
Sets the current selected slice.
scComSAMLightClientCtrlOutlineSliceIndexMinZ =8
Returns the minimum position in Z direction.
scComSAMLightClientCtrlOutlineSliceIndexMaxX =9
Returns the maximum position in X direction.
scComSAMLightClientCtrlOutlineSliceIndexMaxY = 10
Returns the maximum position in Y direction.
scComSAMLightClientCtrlOutlineSliceIndexMaxZ = 11
Returns the maximum position in Z direction.
Creates a bitmap of the working area and saves the bitmap file into given path. The
resolution is set with ScSetDoubleValue() with type
scComSAMLightClientCtrlDoubleValueTypeSaveView2DBitmapDPI.
scComSAMLightClientCtrlStringValueTypeSaveView3DVariableSiz = 25
e
scComSAMLightClientCtrlStringValueTypeSaveView3DFull = 26
These types can be used to create a screenshot from the main view and all contained
entities. The file name where to save the captured bitmap file is given as a string
parameter. The several command types differ only in the maximum picture size (width or
height) of the bitmap file: 160 pixels, 320 pixels, custom defined size or full size. This
function only works if the main window of the controlled scanner application is visible and
not hidden by something else. So the window cannot be minimized and no sscreensaver
should be active.
and starts from the top level going through the tree on the base of the first object,
going on with the siblings.
scComSAMLightClientCtrlStringDataIdGetEntityType = 22
This is used to retrieve the type of an entity by its index. The index is zero based and
starts from the top level going through the tree on the base of the first object, going
on with the siblings.
or:
or:
19.2 Implementations
The following implementations of the SAMLight Client Control programming interface are available, which
are compatible regarding function calls and constants but different regarding the error handling return values:
1. SAMLight Client Control (sc_samlight_client_ctrl.ocx, since installer 3.3.5 Build 232 to 3.4.5 Build 148 also
a 64 bit version is available: sc_samlight_client_ctrl_x64.ocx. Because of a 8.3 filename convention
problem with sc_samlight_client_ctrl.ocx the name of the 64 bit version was changed to
sc_x64_samlight_client_ctrl.ocx with installer 3.4.5 Build 149.)
This SAMLight Client Control implementation is normally linked via drag and drop of the SAMLight Client
Control ocx onto the form of the SAMLight Client Control application.
The possible return values of the SAMLight Client Control function calls are normally just 0 or 1, but can also
be a long, double or string value.
With the CCI command scComSAMLightClientCtrlLongValueTypeNewCciErrorReturn, more error return
values are activated. The possible function error return values for more detailed error analysis are:
The possible HRESULT function error return values for more detailed error analysis are:
SAMLight Client Control Ex cannot be used in combination with TCP ASCII Communication Mode.
behavior this value tells if the function could be sent to the controlled application successfully or not.
Beside of that the description of the plain ASCII commands that are sent via a TCP/IP protocol stack can be
found here too. They work using a handshake: Every command sent will be acknowledged by an answer that
is at least a single line feed. Normally operations return a 1 in case of success and 0 else. Please note that
all commands are single lines of text. So depending on the used programming language numbers have to be
converted. Every command line that has to be sent consists of a unique name and a list of parameters
encapsulated in brackets. After that such a line has to be finished using a line feed / new line (\r\n or \n) as
delimiter. The answer that is sent after the operation contains the same delimiter.
Directly after a connection to the scanner application was opened, an initialization string "SAM CCIPlain\n"
has to be sent if ASCII Communiation Mode checkbox is not activated to set up the communication interface
for the ASCII communication mode. Without that initialization ASCII based communication is only possible
with ASCII Communiation Mode checkbox activated. All command texts are available as C-defines within a
header file ScCciCommands.h. These defines can be used to construct a full command line containing all
required parameters. All these names are described in the following order: The name of the function call and
the name of the ASCII command. For the ASCII commands there are three data types available: string
(some text that has to be quoted fully), long and double.
19.3.1 Application
Function: -
ASCII: long ScCciTest(string Test)
This function can be used to test the connection to the scanner application. In case of success, the
returned value is 1 and the string Test that was sent is displayed by the scanner application within a
message box that has to be closed manually.
Allows to switch the scanner application into one of the common show states of Windows. That function
is useful to e.g. hide the controlled applications main window completely when a user has to access a
custom graphical user interface only that communicates with the main application via this Client Control
Interface.
SW_HIDE =0
Hides the window and passes activation to another window.
SW_SHOWMINIMIZED =2
Activates the window and displays it as an icon.
SW_SHOWMAXIMIZED =3
Activates the window and displays it as a maximized window.
SW_SHOW =5
Activates the window and displays it in its current size and position.
SW_RESTORE =9
Activates the window and displays it. When the window is minimized or maximized is,
it is reset to the original size and position.
19.3.2 Remote
The following functions have to be used only in case a remote connection via network and the Client Control
ActiveX is used instead of direct function calls. There are no ASCII-commands. The functionality provided by
these functions has to be implemented by the application itself as described above:
scComSAMLightClientCtrlMarkFlagWaitForTrigger = 1
The Mark function starts only after an external start. The WaitForMarkEnd parameter
value of ScMarkEntityByName() flag has no effect.
scComSAMLightClientCtrlMarkFlagHideOutput =4
Does not show the output window of the controlled scanner application during
marking.
scComSAMLightClientCtrlMarkFlagDisableHomeJump =8
Switch off the home jump after the mark.
scComSAMLightClientCtrlMarkFlagPreview = 16
Execute marking in preview mode. For an example see also:
How to precalculate time.
scComSAMLightClientCtrlMarkFlagSelected = 32
Mark only selected entities and ignore all other ones.
scComSAMLightClientCtrlMarkFlagDisablePreProcessing = 64
Disable the pre-processing phase.
scComSAMLightClientCtrlMarkFlagDisablePost = 128
Processing
Disable the post-processing phase.
scComSAMLightClientCtrlMarkFlagControlLoopByEntity = 1024
Normally if the Mark Loop Count of an Entity is greater than 1, for example 10, then if
marking is active 10 copies of this entity are created internally during download to the
card. If this flag is set, only 1 copy is created but looping 10 times on a lower software
level. This saves time and memory. Only helpful for very complex jobs with very high
loop count and for very high speed marking applications with minimum dead time
between two marks. This flag only works for basic vector objects without advanced
features as for example pen paths or event objects.
scComSAMLightClientCtrlMarkFlagCloseTriggerWindow = 2048
AtStop
Close trigger window, if e.g. a ScStopExecution() is called.
scComSAMLightClientCtrlMarkFlagDontSwitchToNextLaye = 32768
r
This flag prevents the switching to the next layer after the current layer's marking has
been finished. Without this flag, switching to the next layer is done which results in
several (sometimes time-consuming) calculations. This means that using this flag,
SAMLight is ready for the next task faster.
scComSAMLightClientCtrlMarkFlagUseAlreadyOpenedMar = 0x4000
kDialog
For this flag, the mark dialog in SAMLight needs to be open.
Then, this flag ensures that the next ScMarkEntityByName()
command will start the marking or the red pointer according
to the current settings in the mark dialog. The mark dialog
can be opened with ExecCommandOpenMarkDialog.
Function: -
ASCII: long ScCciResetSequence()
The current sequence is reset.
Function: -
ASCII: long ScCciResetCounter()
The quantity counter will be reset.
Function: -
ASCII: long ScCciResetSerialNumbers()
This call resets all serial number entities to their start values.
Function: -
ASCII: long ScCciIncSerialNumbers()
This call increments all serial number entities.
Function: -
ASCII: long ScCciDecSerialNumbers()
This call decrement all serial number entities.
Function: -
ASCII: long ScCciResplitJob()
Resplit a job that is in splitting mode and was modified so that the split data have to be updated by this
option.
using a pen specific pixel map, you are able to select different maps (by using different pens) in one job.
The pen index is 0 .. maxPen-1. It is possible to change the global Pixel-Map. Therefore use the pen
number 1111.
scComSAMLightClientCtrlOutlineIndexMinZ =2
Returns the minimum position in Z direction
scComSAMLightClientCtrlOutlineIndexMaxX =3
Returns the maximum position in X direction
scComSAMLightClientCtrlOutlineIndexMaxY =4
Returns the maximum position in Y direction
scComSAMLightClientCtrlOutlineIndexMaxZ =5
Returns the maximum position in Z direction
Function: long ScScaleEntity(BSTR EntityName, double ScaleX, double ScaleY, double ScaleZ)
ASCII: long ScCciScaleEntity(string EntityName, double ScaleX,
double ScaleY, double ScaleZ)
Scales the entity specified by EntityName using the scaling factors ScaleX, ScaleY and ScaleZ for the
three possible scaling directions. If EntityName is set to an empty string the complete job is scaled.
Function: long ScRotateEntity3D(BSTR EntityName, double px, double py, double pz, double vx,
double vy, double vz, double Angle)
ASCII: long ScCciRotateEntity3D(string EntityName, double px, double py, double pz, double
vx, double vy, double vz, double Angle)
Rotates the entity specified by EntityName. The vector V (0, 0, 0, vx, vy, vz) starting at point P (px, py,
pz) defines the rotation axis. The rotation Angle is specified in degrees (°). The rotation is
counterclockwise for positive values.
Sets specific data of entity EntityName depending on the DataId. For a list of the valid DataIds and the
corresponding Data see String Data Ids.
Function: long ScCreateEntity(BSTR EntityName, BSTR father, int pen, double posXCenter,
double posYCenter, double posZCenter, double dim_x, double dim_y, int flags, string
option1)
ASCII:
Entities of the type ScBarCode12Chars2D, ScWinTextChars2D or ScSerialNumber can be created. To
do so, define the type of the desired entity (scComSAMLightClientCtrlStringValueTypeCreateEntity), then
set the content of the entity (ScChangeTextByName) and finally create the entity with ScCreateEntity.
Specify the name of the entity as it should appear in the entity list with EntityName, specify the pen to be
applied with pen, specify the coordinates of the center of the entity with posXCenter, posYCenter,
posZCenter and the dimension of the entity with dim_x and dim_y.
If father is the empty string "", the new entity will be put at the end of the entity list. If father is not empty
but the entity name of any "ScEntities2D" entity in the entity list (created by grouping of an entity), the
new entity will be created inside this ScEntities2D father entity at the end of all existing entities. If there
are several entities with identical name, the first one will be taken as father. If the father string does not
exist in the entity list, no entity will be created and the function returns 0.
Set option1 to "", flags should be 0.
ASCII: -
Use this function to get the pen path for the selected pen. The only parameter to specify is pen. The
others will be read out of the pen. The return value will be 0 if there was an error
ASCII: -
Use this function to set the pen path for the selected pen. You have to define all parameters. The return
value will be 0 if there was an error
Example: Here you can read a programming example in C#. The code will go through pen 1 to 254 and will
change the enable flag either from enabled to disabled or in the opposite direction.
int res = 0;
if( penPath.enable == 1 )
{
penPath.enable = 0;
}
else
{
penPath.enable = 1;
res = axScSamlightClientCtrl1.
ScSetPenPathForPen( ref penPath.pen,
ref penPath.enable,
ref penPath.penToUse[ 0 ],
ref penPath.loopOfPenToUse[ 0 ],
ref penPath.penToUse[ 1 ],
ref penPath.loopOfPenToUse[ 1 ],
ref penPath.penToUse[ 2 ],
ref penPath.loopOfPenToUse[ 2 ],
ref penPath.penToUse[ 3 ],
ref penPath.loopOfPenToUse[ 3 ],
ref penPath.penToUse[ 4 ],
ref penPath.loopOfPenToUse[ 4 ] );
Debug.Assert( res == 1 );
}
saves a preview bitmap image of a *.sjf job file to the local hard disc.. JobFileName and BmpFileName
includes the complete paths. The size of the resulting bitmap is 100 x 100 pixel. The job will not be load into
SAMLight during the generation of the bmp.
scComSAMLightClientCtrlImportFlagCenterToField = 268435456
Center the import in the View2D.
scComSAMLightClientCtrlImportFlagImportToPenGroups = 536870912
Function: long ScExport(BSTR EntityName, BSTR FileName, BSTR Type, double Resolution, long
Flags)
ASCII: -
Exports the job file or the specified entity to FileName. If EntityName is "" then the whole job is exported.
Type can be "saf", "plt" or "cnc". Resolution should be set to 0.001 to keep the original size of the job. Flags
can be the following values, which can be OR operated if several of them are needed:
scComLayerFile2DStyleExportPolyLines = 16
scComLayerFile2DStyleExportLineArrays = 32
scComLayerFile2DStyleCheckOrientation = 64
scComLayerFile2DStyleWritePens = 256
scComLayerFile2DStyleExportOnlySelected = 1024
scComLayerFile2DStyleWritePreview = 8192
Function: -
Function: -
ASCII: long ScCciFitViewToWorkingArea()
Change the view within the scanner application to view the full working area.
Function: -
ASCII: long ScCciFitViewToEntities()
Change the view within the scanner application to view all available entities.
Function: -
ASCII: long ScCciFitViewToSelectedEntities()
Change the view within the scanner application to view all selected entities.
Function: long ScProcessFlashJob (string FileName, long JobNum, long Mode, long Flags)
ASCII: long ScCciProcessFlashJob(string FileName, long JobNum, long Mode, long Flags)
This command allows you to access the flash jobs, see Flash Jobs and Settings. Flags must be 0. The
Mode can have the following values:
scComSAMLightClientCtrlProcessFlashJobMode =1
StoreCurrentToFlash
For standalone mode, the Flash job (UNF) is created from the SAMLight job (SJF)
together with a subset of the SAMLight settings and is saved on the USC card and in
<SCAPS>\jobfiles. This means, the creation of the identical UNF from the SJF always
requires identical SAMLight settings. Furthermore, a copy of the SJF is also stored on
the USC card. This mode of ScProcessFlashJob is only possible if the SJF already
exists.
JobNum defines the flash job number. FileName and Flags are not used.
scComSAMLightClientCtrlProcessFlashJobMode =2
LoadFromFlash
Loads the copy of the SJF job (which is stored on the USC) to SAMLight. JobNum
defines the flash job number. However, the USC settings and the UNF cannot be
loaded to SAMLight.
Please note: Different SAMLight settings in combination with the same SJF will lead to
different UNFs.
FileName and Flags are not used.
scComSAMLightClientCtrlProcessFlashJobMode =3
StoreFromDiskToFlash
Saves a job (*.unf or *.cnc) from hard disc (PC) to the USC flash.
JobNum defines the flash job number. FileName defines the complete path to the UNF
file. Flags are not used.
ASCII: -
Executes a command in the flash mode. The string Command is the flash command as you would type it
in inside the flash dialog window and it has to be terminated by the ASCII characters 13 and 10 (Return
and LineFeed). For the flash commands see the corresponding hardware manual. Return is an empty
string variable that you have to declare in advance. Flags can be 0 or 2147483648. If 0, the client control
waits until a carriage return from the Flash. If 2147483648 is set the client control will wait a certain time
and then end the command.
Example for starting a marking:
String a = "";
axScSamlightClientCtrl1.ScFlashCommand( "M 1\r\n", 0, ref a );
MessageBox.Show( a );
Function: -
ASCII: ScCciMotionGo
Activates the motion that was previously defined with the motion drive related constants.
Returns the different string values used for some functions. The available types are defined in
String Value Types. If the operation fails for the ASCII-command interface, the returned value is an
empty string ("").
Function: -
ASCII: long ScCciAutoCompensateOff()
Scanner auto-calibration functionality (works only with hardware that supports it): turn auto calibration
mode off.
Function: -
ASCII: long ScCciAutoCompensateRef()
Scanner auto-calibration functionality (works only with hardware that supports it): turn auto calibration
mode on.
Function: -
ASCII: long ScCciAutoCompensateCal()
Scanner auto-calibration functionality (works only with hardware that supports it): recalibrate the scan
head.
scComSAMLightClientCtrlModeFlagDontUpdateView =2
Suppress drawing of entities in the view or in the entity list. This can be helpful to
increase the performance.
scComSAMLightClientCtrlModeFlagEntityNames = 32
SeparatedBySemicolon
The parameter EntityName in ScMarkEntityByName() and others can include more
than one entity name. They have to be separated by a semicolon. If the client control
is used via a TCP connection then the maximum length of the parameter EntityName
is 512 characters ( 511 + an ending zero).
This command generates a new thread in which the following program is executed. So it runs parallel with all
the other tasks of the system.
long res = axScSamlightClientCtrl1.ScLoadJob(
"C:\\scaps\\sam2d\\jobfiles\\barcode.sjf", 1, 1, 1 );
Debug.Assert( res == 1 );
// If not 1, SAMLight is not started or this application is not running as administrator under
Windows Vista/7/8 or former command already running
while(axScSamlightClientCtrl1.ScGetLongValue((int)
ScComSAMLightClientCtrlValueTypes.
scComSAMLightClientCtrlLongValueTypeClientCtrlAsyncModeIsRunning )
!= 0 )
{
Application.DoEvents();
}
res=axScSamlightClientCtrl1.ScGetLongValue((int)
ScComSAMLightClientCtrlValueTypes.
scComSAMLightClientCtrlLongValueTypeClientCtrlAsyncModeResult );
Debug.Assert( res == 1 );
MessageBox.Show( "Ready" );
.ScLoadJob
.ScMarkEntityByName
.ScGetStringValue
.ScExecCommand
.ScImport
.ScGetEntityOutline
.ScTranslateEntity
.ScRotateEntity
.ScScaleEntity
When using a double return value like with ScGetOutline() one has to use
ScGetDoubleValue(scComSAMLightClientCtrlDoubleValueTypeAsyncModeResult) in order to get the return
value. A value of HUGE_VAL (+Infinity) indicates an error.
When using a string return value,
ScGetStringValue(scComSAMLightClientCtrlStringValueTypeAsyncModeResult) can be used.
If you want to use a ClientCtrl command normally again you have to call the following function before:
axScSamlightClientCtrl1.ScSetLongValue((int)
ScComSAMLightClientCtrlValueTypes.
scComSAMLightClientCtrlLongValueTypeClientCtrlAsyncMode, 0 );
19.4 Constants
Constant Types Related CCI Functions
Long Value Types ScSetLongValue() ScGetLongValue()
Double Value Types ScSetDoubleValue() ScGetDoubleValue()
String Value Types ScSetStringValue() ScGetStringValue()
Long Data Ids ScSetEntityLongData() ScGetEntityLongData()
Double Data Ids ScSetEntityDoubleData() ScGetEntityDoubleData()
String Data Ids ScSetEntityStringData() ScGetEntityStringData()
Long CmdIDs ScExecCommand()
Table 37: Client Control Interface Constant Types
scComSAMLightClientCtrlLongValueTypeNumMarksCompleted =1
Returns the number of marks. This is helpful in Mark Trigger mode.
scComSAMLightClientCtrlLongValueTypeHeadStatus =2
Returns the status of the Scanhead. The following values can be returned, also a combination of them:
Temperature OK =1
Power OK =2
Position OK =4
scComSAMLightClientCtrlLongValueTypeOptoIO =4
This value is used to set the outputs or get the current input states. The pin to bit mapping of the inputs
and outputs can be found in the IO chapter. An example can be found in the Get and
set outputs and inputs chapter.
OPTO_OUT 0 is not influenced by this command since it is reserved for the mark in progress flag.
scComSAMLightClientCtrlLongValueTypeDA1 =6
This value can be used to set the analog output 1 of the scanner controller card (DAC_A or DA1). The
command will just set the output and will not change the pen power.
scComSAMLightClientCtrlLongValueTypeDA2 =7
This value can be used to set the analog output 2 of the scanner controller card (DAC_B or DA2). The
command will just set the output and will not change the pen power.
scComSAMLightClientCtrlLongValueTypeDeviceEnableFlagsSet =8
The flag is related to the currently used pen. By default the FlagsSet is 0, following values can be set:
scComStandardDeviceEnableFlagGroupStyle =0
scComStandardDeviceEnableFlagGroupOptoOut =1
scComSAMLightClientCtrlLongValueTypeDeviceEnableFlagsValue =9
The flag is related to the currently used pen, ScSetPen(). It is used to specify a constant of type
scComStandardDeviceEnableFlagConstants that has to be set or get for the previously defined
FlagsSet.
scComSAMLightClientCtrlLongValueTypeTotalEntityNum = 10
By using this type parameter it is possible to count the total number of available entities including the
ones that are nested in groups.
scComSAMLightClientCtrlLongValueTypeToplevelEntityNum = 11
This parameter can be used together with ScGetLongValue() to evaluate the top level entities. Using this
value the number of entities is returned which is visible on the highest level, excluding the contents of
groups.
scComSAMLightClientCtrlLongValueTypeJobExecutionDelay = 12
This type can be used to get/set the global parameter job execution delay, adjustable within the IO
settings page. The unit is [ms].
scComSAMLightClientCtrlLongValueTypeBufferQueueLength = 14
This value can be used to get and set the command queue that can be accessed using the command
ScSetEntityLongData() together with the flag
scComSAMLightClientCtrlStringDataIdFlagEnqueueCtrlCmd and
scComSAMLightClientCtrlStringDataIdFlagEnqueueLastCtrlCmd (please see below). If it is used it
returns the current fill state of the internal command queue. By using the set command together with this
option and together with the value 0 the internal command queue for buffered trigger mode job
modifications is flushed completely and all enqueued commands are removed. Other values than 0 are
invalid for the set operation. For more information about the queue functionality please refer to the
Examples section.
scComSAMLightClientCtrlLongValueTypeQuantity =5
Gets or sets the current quantity if the quantity counter is enabled.
scComSAMLightClientCtrlLongValueTypeMaxQuantity = 15
Gets or sets the current maximum quantity, after that a message is shown. When a value of -1 is set, the
quantity counter functionality is disabled.
scComSAMLightClientCtrlLongValueTypeOverridePen = 16
This constant defines the pen number that is used to mark all entities in the job. The pen numbers that
are assigned to these entities in the View2D will be override. If a value of 0 is set then this functionality is
disabled.
scComSAMLightClientCtrlLongValueTypeMotionAxis = 17
Axis value: 0 to 6, or -1 for all axis.
scComSAMLightClientCtrlLongValueTypeMotionWaitForEnd = 18
Value: 0 or 1. 1 defines that the application waits until the motion has finished. With 0 the application
comes back immediately. The default value is 1. Note: the value 0 is not possible for homing.
scComSAMLightClientCtrlLongValueTypeMotionMoving = 19
Returns the state of motion defined with scComSAMLightClientCtrlLongValueTypeMotionAxis.
scComSAMLightClientCtrlLongValueTypeSpiG3Waveform = 20
Set or get Waveform for Spi G3 Laser.
scComSAMLightClientCtrlLongValueTypeSpiG3Cw = 21
Set or get CW mode for Spi G3 Laser. 0 = off, 1 = on.
scComSAMLightClientCtrlLongValueTypeLineRampingPowerStartRampAct = 22
ive
scComSAMLightClientCtrlLongValueTypeLineRampingPowerEndRampActi = 23
ve
scComSAMLightClientCtrlLongValueTypeLineRampingSpeedStartRampAct = 24
ive
scComSAMLightClientCtrlLongValueTypeLineRampingSpeedEndRampActi = 25
ve
These constants return and set the ramping flags of the current selected pen. See also ScSetPen() and
ScGetPen().
scComSAMLightClientCtrlLongValueTypeGetOptoOut = 31
This value is used to get the output states. The pin to bit mapping of the outputs can be found in the
IO chapter. An example can be found in the Get and set outputs and inputs chapter.
scComSAMLightClientCtrlLongValueTypeAngularSplittingParts = 33
Especially for Rotary Splitting you can define here how often the object should be marked distributed
homogeneously on the surface.
scComSAMLightClientCtrlLongValueTypeLastAutoCompensateResult = 38
Returns the error code of the scanner auto-calibration functionality.
scComSAMLightClientCtrlLongValueTypeDongleUserNumber = 39
Gets the Customer ID (User ID).
scComSAMLightClientCtrlLongValueTypeDongleSystemNumber = 40
Gets the Dongle ID (System ID, Card ID).
scComSAMLightClientCtrlLongValueTypeSizePixelMap = 42
Returns the size of the Pixel Map, means the number of the available Grey value partitions.
scComSAMLightClientCtrlLongValueTypeSwitchToPane = 43
If the additional parameter is 0 then the Mark Preview window is shown. If the parameter is 1 the Main
Window is shown.
scComSAMLightClientCtrlLongValueTypeGetTotalSlices = 44
Gets the total number if slices of a sliced job file in SAM 3D mode.
scComSAMLightClientCtrlLongValueTypeBmpAlphaBlendSourceConstant = 50
Alpha
This constant is used to specify the blend value of the bitmap that is blended in the SAMLight view with
the constant scComSAMLightClientCtrlStringValueTypeBmpAlphaBlendPathBmp. The data parameter
defines the opaqueness of the bitmap that is shown. The data parameter can be in the range from 0 to
255. 0 is fully invisible, 255 is fully opaque.
scComSAMLightClientCtrlLongValueTypeBmpAlphaBlendCenterPointX = 51
This constant is used to specify the X position of the bitmap that is blended into the view with the
corresponding String Value Type constant
scComSAMLightClientCtrlStringValueTypeBmpAlphaBlendPathBmp.
scComSAMLightClientCtrlLongValueTypeBmpAlphaBlendCenterPointY = 52
This constant is used to specify the Y position of the bitmap that is blended into the view with the
corresponding String Value Type constant
scComSAMLightClientCtrlStringValueTypeBmpAlphaBlendPathBmp.
scComSAMLightClientCtrlLongValueTypeBmpAlphaBlendBmpDimX = 53
This constant is used to specify the X dimension of the bitmap that is blended into the view with the
corresponding String Value Type constant
scComSAMLightClientCtrlStringValueTypeBmpAlphaBlendPathBmp.
scComSAMLightClientCtrlLongValueTypeBmpAlphaBlendBmpDimY = 54
This constant is used to specify the Y dimension of the bitmap that is blended into the view with the
corresponding String Value Type constant
scComSAMLightClientCtrlStringValueTypeBmpAlphaBlendPathBmp.
scComSAMLightClientCtrlLongValueTypeDrillEnable = 55
If this is used with ScGetLongValue() this will return 1 if Drill is active and 0 if not. If used together with
ScSetLongValue() set the Value parameter to 1 to enable Drill and 0 to disable Drill mode.
scComSAMLightClientCtrlLongValueTypeDrillEnableCo2Power = 56
If enabled Frequency, Laser1 and Laser2 are disabled, the values of these parameters are taken from
the main page of pen settings instead.
scComSAMLightClientCtrlLongValueTypeSelectRedpointerForMoveAbs = 57
With this flag the behaviour of the ScMoveAbs command is complete different. The ScMoveAbs
commands will be executed as a list. The red pointer move list is
started and cleared by setting SelectRedpointerForMoveAbs to '1'.
filled by one or multiple ScMoveAbs commands.
executed by setting SelectRedpointerForMoveAbs to '0'. After the execution the list is cleared.
scComSAMLightClientCtrlLongValueTypeEntityArrayCountX = 58
scComSAMLightClientCtrlLongValueTypeEntityArrayCountY = 59
Gets or sets the X/Y 'Count' value used by scComSAMLightClientCtrlStringDataIdArrayCopyHard.
scComSAMLightClientCtrlLongValueTypeEntityArrayOrderFlags = 60
Set the order flags for hard array copies (hard: with created entities in entity list).
scComSAMLightClientCtrlEntityArrayOrderFlagMainDirX = 1024
Use X as the main direction for array copying, the entities will be marked column by column.
scComSAMLightClientCtrlEntityArrayOrderFlagNegX = 256
Go from right to left in horizontal direction if this flag is set, else go from left to right.
scComSAMLightClientCtrlEntityArrayOrderFlagNegY = 512
Go from top to bottom in vertical direction, else go from bottom to top.
scComSAMLightClientCtrlEntityArrayOrderFlagBiDir = 2048
Use bidirectional mode (horizontal), that means array copy is done into one direction and back
instead of using only one direction, jump back and start from the beginning using the same direction
again.
scComSAMLightClientCtrlLongValueTypeGetHeadCount = 61
Get the total number of heads (cards).
scComSAMLightClientCtrlLongValueTypeSaveView2DBitmapMode = 63
The drawing of bitmaps of the SAMLight View2D generated by ScSetStringValue() with type
scComSAMLightClientCtrlStringValueTypeSaveView2DAdjustableDPI can be adjusted:
0: lines and pixels are drawn normal
1: lines and pixels are drawn thicker
scComSAMLightClientCtrlLongValueTypeSelectHatchPair = 64
Get or selects a number for the Hatch Pair.0 corresponds to Pair A and 4 corresponds to Pair E. This
command will not update the GUI. Instead this will only affect the other Client Control commands.
scComSAMLightClientCtrlLongValueTypeRedpointerMode = 65
scComSAMLightClientCtrlLongValueTypeSetLockSjfToDongleFlags = 66
This flag allows you to lock a SJF job file to specific dongles.
scComSAMLightClientCtrlLockToDongleFlagLockLoadToSystemId =1
Locks the SJF job file to the Dongle ID (System ID, Card ID).
scComSAMLightClientCtrlLockToDongleFlagLockLoadToUserId =2
Locks the SJF job file to the Customer ID (User ID).
scComSAMLightClientCtrlLockToDongleFlagLockExport =4
Locks the export function of the SJF job file.
scComSAMLightClientCtrlLongValueTypeServerStatus = 67
With this constant the current state of the USC server connection can be read. The return value is a
combination of the following flags:
SC_USC1_SERVER_STATUS_DEVICE_CONNECTED =1
SC_USC1_SERVER_STATUS_DEVICE_OK =2
SC_USC1_SERVER_STATUS_DEVICE_MISSING =8
SC_USC1_SERVER_STATUS_DEVICE_USC_1 = 65536
SC_USC1_SERVER_STATUS_DEVICE_USC_2 = 131072
scComSAMLightClientCtrlLongValueTypeXYStatus = 68
Returns the status of the scanner (head 0) based on the status signal of the XY2-100 interface of the
selected USC-2 card. If you use more than one USC-2 card you have to select the card with ScSetHead
first. The status will be updated every 100 ms (approximately). For the interpretation of this signal please
refer to your scanner manual.
scComSAMLightClientCtrlLongValueTypeXYStatus1 = 69
Returns the status of the scanner (head 1) based on the status signal of the XY2-100 interface of the
selected USC-2 card. If you use more than one USC-2 card you have to select the card with ScSetHead
first. The status will be updated every 100 ms (approximately). For the interpretation of this signal please
refer to your scanner manual.
scComSAMLightClientCtrlLongValueTypeSimulationMode = 70
SAMLight is able to release the scanner controller card (simualtion mode) to use the card with an other
program without closing SAMLight.
0: Simulation mode enabled
1: Simulation mode disabled
scComSAMLightClientCtrlLongValueType3D = 71
This command can be used to check if SAMLight is started in the 3D mode. It returns '1' for SAM3D and
'0' for SAMLight 2D.
scComSAMLightClientCtrlLongValueTypeCorrectionMode = 81
Specifies the correction mode of scComSAMLightClientCtrlExecCommandCorrectSamLight:
scComSAMLightClientCtrlCorrectionModeOld =0
Old algorithm: The grid points of the UCF file will be mapped through a linear interpolation of the
4 enclosing measure points. Finding the enclosing points could fail and lead to single grid point
distortions. Postfix: _YYYYMMDDOld.ucf
scComSAMLightClientCtrlCorrectionModeRTS =1
Rotation, Translation, Scale: Rotation, translation and scaling operations are used to minimizes
the sum of squared residuals of all calib points. Postfix: _YYYYMMDDRts.ucf
scComSAMLightClientCtrlCorrectionModeIDW =2
Inverse Distance Weighting: The position of each grid point is influenced by the closest x calib
points weighted by their inverse distance. The number of influence points can be chosen with
scComSAMLightClientCtrlLongValueTypeCorrectionPoints. This algorithm tends to cause
unwanted oscillations. Postfix: _YYYYMMDDIdw#.ucf
scComSAMLightClientCtrlCorrectionMode2dFit =4
2D Fit: Minimizes the sum of squared residuals (distance between the fit and the calibration
points). The more points in sc_calib_points.txt, the better is the compensation of measuring
errors.
It is possible to try different fit modes and to compare the results in *_fit_log.txt. The fit order can
be selected by scComSAMLightClientCtrlLongValueType2dFitType. Postfix:
_YYYYMMDDFit2D#.ucf
scComSAMLightClientCtrlLongValueTypeCorrectionPoints = 82
Specifies the number of influence points for each grid point for inverse distance weighting (IDW) mode.
A value of '4' seems to lead to good results. IDW mode must be enabled with
scComSAMLightClientCtrlCorrectionModeIDW.
scComSAMLightClientCtrlLongValueType3DSurfaceSetType = 86
Changes the 3DSurface mode:
0: Cylinder
1: STL projection
2: Tilted surface
3: Sphere
scComSAMLightClientCtrlLongValueTypeEnable3DSurface = 87
Allows to control the 3DSurface feature via CCI. The mode can be set with ScSetLongValue() with type
scComSAMLightClientCtrlLongValueType3DSurfaceSetType.
The parameters can be set with ScSetDoubleValue() with types from
scComSAMLightClientCtrlDoubleValueType3DSurfaceValue1 to 11. For the projection feature the STL
file can be loaded by ScSetStringValue() with type scComSAMLightClientCtrlStringValueTypeLoadStl.
The possible parameters are:
0: Disable 3DSurface feature
1: Enable 3DSurface feature
scComSAMLightClientCtrlLongValueTypeEnableJobToolbar = 88
Allows you to enable or disable the Jobs Toolbar under I/O via CCI. The mode can be set with
ScSetLongValue().
scComSAMLightClientCtrlLongValueTypeBitmapPixelHardwareMode = 89
scComSAMLightClientCtrlLongValueTypeBitmapPenPowerAsMaxPower = 90
scComSAMLightClientCtrlLongValueTypeEnableUsc2Motf = 91
Allows you to enable or disable the checkbox for marking on the fly settings in Settings/Optic/Advanced.
This works not only for USC-2, but also for USC-1. This mod can be set with ScSetLongValue().
scComSAMLightClientCtrlLongValueType2dFitType = 92
Selects the 2D fit order to adjust a correction file (*.ucf) by <SCAPS>\system\sc_calib_points.txt. 2D fit
algorithm must be enabled with scComSAMLightClientCtrlCorrectionMode2dFit. Postfix:
_YYYYMMDDFit2D#.ucf. Available 2D fit orders are 1, 2, 3, 4, 5 and 6:
1 and 2: 2D Fit Basic: Recommended for measurements with big errors. Improved compensation of
measurement errors. 1_Basic can only compensate linear (trapezoid) distortions and should
not be used for the neutral correction file (cor_neutral.ucf).
3 and 4: 2D Fit Advanced: Recommended for most scenarios. 3_Advanced is the default mode.
5 and 6: 2D Fit Expert: Only recommended for precise measurements which means the measurement
error is really small.
scComSAMLightClientCtrlLongValueTypeEnableBmpSplitting = 93
Allows you to enable or disable the checkbox for Bitmap Splitting (= Bitmap (Rotary) Marking) in the
Extras Toolbar. This works only if a scanner bitmap is present in the entity list. This mod can be set with
ScSetLongValue() and get with ScGetLongValue() .
scComSAMLightClientCtrlLongValueTypeAngularSplittingSplitAxis = 94
scComSAMLightClientCtrlLongValueTypeEnableAllSerialNumbersInJob = 95
0: disables the check box "enable" under "All Serial Numbers in Job" on entity property page.
1: enables the check box "enable" under "All Serial Numbers in Job" on entity property page.
scComSAMLightClientCtrlLongValueTypeRingSplittingEnableZTiltCompens = 96
ation
scComSAMLightClientCtrlLongValueTypeRingSplittingZMotionAxis = 97
scComSAMLightClientCtrlLongValueTypePauseBuild = 98
With the function - ScGetlongValue 0: Mark is not paused. 1: Mark is pausing (The current layer is to
be finished).
2: Mark is paused.
scComSAMLightClientCtrlLongValueTypeShowEntityList = 99
With the function - ScSetLongValue 0: to hide the entity list. 1: to show the entity list.
scComSAMLightClientCtrlLongValueTypeShowPropSheet = 100
With the function - ScSetLongValue 0: to hide the property sheet. 1: to show the property sheet.
scComSAMLightClientCtrlLongValueTypeDrillMarkLineAsDotsActive = 101
scComSAMLightClientCtrlLongValueTypeProtectedPen = 102
scComSAMLightClientCtrlLongValueTypeShowToolBars = 103
With this constant the current view of toolbars can be set or read. The return value is a combination of
the following flags:
SC_SHOW_TOOLBAR_MAIN =1
SC_SHOW_TOOLBAR_CAMERA =2
SC_SHOW_TOOLBAR_VIEW_LEVEL =4
SC_SHOW_TOOLBAR_FUNC_OBJECTS =8
SC_SHOW_TOOLBAR_ALIGN = 16
SC_SHOW_TOOLBAR_GEOM_OBJECTS = 32
SC_SHOW_TOOLBAR_EXTRAS = 64
SC_SHOW_TOOLBAR_STEPPER = 128
SC_SHOW_TOOLBAR_SURFACE = 256
SC_SHOW_TOOLBAR_ANALOG_IN = 512
scComSAMLightClientCtrlLongValueType1dMotfReverse = 104
Enable MOTF first, with this function you can change the marking direction to plus/ minus with 1/0 for X
or Y in 1D Mark on the Fly Dialog.
scComSAMLightClientCtrlLongValueTypeNewCciErrorReturn = 105
This flag activates extended error codes. Use with the function - ScSetLongValue 0: disable extended
error codes, thus the return is 0 (error) or 1 (ok). 1: enable extended error codes.
scComSAMLightClientCtrlLongValueTypeAfterDefocusDelay = 106
Defines a delay after a pen defocus for RTC5 and RTC6 cards. The unit is us. The value will be divided
by 10 us internally which why values below 10 us will result in 0 us.
scComSAMLightClientCtrlLongValueTypeStepAndRepeatTotalSteps = 114
scComSAMLightClientCtrlLongValueTypeStepAndRepeatPlanarMode = 115
scComSAMLightClientCtrlLongValueTypeStepAndRepeatPlanarModeSimula = 116
tion
scComSAMLightClientCtrlLongValueTypeStepAndRepeatFirstMoveAxis = 117
sets planar axis in 1(X), please refer to motion settings dialog for the axis index (zero based).
None is not allowed to be set.
scComSAMLightClientCtrlLongValueTypeStepAndRepeatSecondMoveAxis = 118
sets planar axis in 2(Y), please refer to motion settings dialog for the axis index (zero based).
Index of "none" is -1.
scComSAMLightClientCtrlLongValueTypeStepAndRepeatPlanarStepCountX = 119
scComSAMLightClientCtrlLongValueTypeStepAndRepeatPlanarStepCountY = 120
scComSAMLightClientCtrlLongValueTypeEnableStepAndRepeat = 121
scComSAMLightClientCtrlDoubleValueTypeOverrideSpeed =1
This command sets the global override speed (on the mark property page in
SAMLight). The global override speed is given in percent and acts on all pens.
scComSAMLightClientCtrlDoubleValueTypeOverridePower =2
scComSAMLightClientCtrlDoubleValueTypeOverrideFrequ =3
scComSAMLightClientCtrlDoubleValueTypeOverridePower2 = 22
These four constants can be used to define override values for marking speed, power and frequency.
scComSAMLightClientCtrlDoubleValueTypeMarkSpeed =4
This command sets the pen-specific mark speed (on the mark property page in
SAMLight). The mark speed is given as absolute value in mm/s and acts on the
pen specified with ScSetPen or on the pen which was set last.
scComSAMLightClientCtrlDoubleValueTypeJumpSpeed =5
scComSAMLightClientCtrlDoubleValueTypeFrequency =6
Set or get Frequency in Hz.
scComSAMLightClientCtrlDoubleValueTypeJumpDelay =7
scComSAMLightClientCtrlDoubleValueTypeMarkDelay =8
scComSAMLightClientCtrlDoubleValueTypePolyDelay =9
scComSAMLightClientCtrlDoubleValueTypeLaserOnDelay = 10
scComSAMLightClientCtrlDoubleValueTypeLaserOffDelay = 11
scComSAMLightClientCtrlDoubleValueTypeScannerXPos = 12
scComSAMLightClientCtrlDoubleValueTypeScannerYPos = 13
scComSAMLightClientCtrlDoubleValueTypeScannerZPos = 14
Before requesting the scanner positions with these three constants they must be updated with
ScExecCommand(9)
(9 = scComSAMLightClientCtrlExecCommandUpdateScannerPos)
scComSAMLightClientCtrlDoubleValueTypePulseLength = 15
scComSAMLightClientCtrlDoubleValueTypeFirstPulseLength = 16
scComSAMLightClientCtrlDoubleValueTypeLaserPower = 17
scComSAMLightClientCtrlDoubleValueTypeSizePowerMap = 18
scComSAMLightClientCtrlDoubleValueTypePowerMapStartId = 19
ScGetDoubleValue(19) returns the double value X which can be used with ScSetDoubleValue((int)X)
and ScGetDoubleValue((int)X) to get or set the first bit value of the PowerMap. All PowerMap bit values
are accessible with the integer values from X to X+15. In case of CO2 laser [%] is used instead of [bit].
scComSAMLightClientCtrlDoubleValueTypeMaxPower = 20
scComSAMLightClientCtrlDoubleValueTypeLineRamping = 26
PowerStartRampValue
scComSAMLightClientCtrlDoubleValueTypeLineRamping = 27
PowerStartRampLength
scComSAMLightClientCtrlDoubleValueTypeLineRamping = 28
PowerEndRampValue
scComSAMLightClientCtrlDoubleValueTypeLineRamping = 29
PowerEndRampLength
scComSAMLightClientCtrlDoubleValueTypeLineRamping = 30
SpeedStartRampValue
scComSAMLightClientCtrlDoubleValueTypeLineRamping = 31
SpeedStartRampLength
scComSAMLightClientCtrlDoubleValueTypeLineRamping = 32
SpeedEndRampValue
scComSAMLightClientCtrlDoubleValueTypeLineRamping = 33
SpeedEndRampLength
scComSAMLightClientCtrlDoubleValueTypeLineRampingLengthenStart = 60
scComSAMLightClientCtrlDoubleValueTypeLineRampingLengthenEnd = 61
scComSAMLightClientCtrlDoubleValueTypeSkyWritingStartLength = 35
scComSAMLightClientCtrlDoubleValueTypeSkyWritingEndLength = 36
scComSAMLightClientCtrlDoubleValueTypeSkyWritingBreakAngle = 37
The unit for the BreakAngle is Radians.
scComSAMLightClientCtrlDoubleValueTypeDefocus = 62
scComSAMLightClientCtrlDoubleValueTypeHalfPeriod = 43
scComSAMLightClientCtrlDoubleValueTypeSpiLaserSimmer = 45
Set or get Simmer value for Spi Laser.
scComSAMLightClientCtrlDoubleValueTypeLaserCo2Power1 = 48
scComSAMLightClientCtrlDoubleValueTypeLaserCo2Power2 = 49
Angle in rad. These constants return and set the corresponding values of the currently selected pen. See
also ScSetPen() and ScGetPen().
scComSAMLightClientCtrlDoubleValueTypeLastExpectedMarkTime = 34
required.
scComSAMLightClientCtrlDoubleValueTypeLastMarkTime = 21
This value is not pen specific. It can be used to evaluate the time that was needed for the last marking
operation. The unit is in [s].
scComSAMLightClientCtrlDoubleValueTypeHomePosX = 23
scComSAMLightClientCtrlDoubleValueTypeHomePosY = 24
scComSAMLightClientCtrlDoubleValueTypeHomePosZ = 25
Gets or sets the home position.
scComSAMLightClientCtrlDoubleValueTypeMotionAxisPosition = 38
The position is always given in mm.
scComSAMLightClientCtrlDoubleValueTypeMotionAxisAngle = 39
scComSAMLightClientCtrlDoubleValueTypeMotionAxisPositionRelative = 40
scComSAMLightClientCtrlDoubleValueTypeMotionAxisAngleRelative = 41
scComSAMLightClientCtrlDoubleValueTypeMotionAxisSpeed = 42
These constants are motion drive related values.
scComSAMLightClientCtrlDoubleValueTypeSaveView2DBitmapDPI = 44
Sets the resolution for a bitmap to be taken from view.
scComSAMLightClientCtrlDoubleValueTypeGainX = 46
scComSAMLightClientCtrlDoubleValueTypeGainY = 47
Using these constants the gain X and gain Y correction factor of the optic can be set or get.
scComSAMLightClientCtrlDoubleValueTypeAngularSplittingTotalDiameter = 50
scComSAMLightClientCtrlDoubleValueTypeAngularSplittingAngle = 51
Using these constants the diameter and angle for the Splitting Mode can be set or get.
scComSAMLightClientCtrlDoubleValueTypeHorizontalSplittingValue = 52
scComSAMLightClientCtrlDoubleValueTypeVerticalSplittingValue = 53
Using these constants the horizontal and vertical split size for the Splitting Mode can be set or get.
scComSAMLightClientCtrlDoubleValueTypeWobbleFrequency = 54
scComSAMLightClientCtrlDoubleValueTypeWobbleAmplitude = 55
Using these constants the frequency and amplitude for the Wobble Mode can be set or get.
scComSAMLightClientCtrlDoubleValueTypeStartSplittingPosX = 56
scComSAMLightClientCtrlDoubleValueTypeStartSplittingPosY = 57
Using these constants a start value for the first (PosX, not necessarily the X axis) and second (PosY, not
necessarily the Y axis) axis in Splitting Mode can be set or get.
For example, when using Angular Splitting, the start value can be set with StartSplittingPosX. When
using 2D planar splitting, the start value of the first axis is set with StartSplittingPosX, the start value of
the second axis is set with StartSplittingPosY.
scComSAMLightClientCtrlDoubleValueTypeOffsetX = 58
scComSAMLightClientCtrlDoubleValueTypeOffsetY = 59
Using these constants the offset X and offset Y correction factor of the optic can be set or get.
scComSAMLightClientCtrlDoubleValueTypeMOFExtStartDelay = 65
Using these constants the MOTF trigger delay for RTC cards can be set or get.
scComSAMLightClientCtrlDoubleValueTypeDoublePara1 = 66
This value has multiple purposes:
0: left to right
1: top to bottom
2: right to left
3: bottom to top
scComSAMLightClientCtrlDoubleValueTypeDoublePara2 = 67
Activate or deactivate the Checkbox „Sort Equal Coordinates By Size“ for the Data Wizard. 1 = activate,
0 = deactivate.
scComSAMLightClientCtrlDoubleValueTypeWorkingAreaMinX = 68
scComSAMLightClientCtrlDoubleValueTypeWorkingAreaMinY = 69
scComSAMLightClientCtrlDoubleValueTypeWorkingAreaMaxX = 70
scComSAMLightClientCtrlDoubleValueTypeWorkingAreaMaxY = 71
By using these constants the working area can be set or get.
scComSAMLightClientCtrlDoubleValueTypeDrillPeriod = 72
With the DrillPeriod you can change the frequency of the laser pulses (f = 1/T). T in [µs]. For CO2
Lasers this flag is associated with the value of Laser1 in the Drill Dialog.
scComSAMLightClientCtrlDoubleValueTypeDrillDuration = 73
Time for scanning one point. [µs]
scComSAMLightClientCtrlDoubleValueTypeDrillLength = 74
The drill length is the pulse width or the Q-switch length. [µs]. For CO2 Lasers this flag is associated with
the value of Laser2 in the Drill Dialog.
scComSAMLightClientCtrlDoubleValueTypeDrillJumpSpeed = 75
Speed to jump to a point. [mm/s]
scComSAMLightClientCtrlDoubleValueTypeDrillJumpDelay = 76
Delay between the jump to the point and start marking this point. [µs]
scComSAMLightClientCtrlDoubleValueTypeDrillCo2HalfPeriod = 79
If EnableCO2Power is used you need to change the DrillCo2HalfPeriod to adjust the frequency of the
laser pulses (f = 1 / (2*HalfPeriod)). HalfPeriod in [µs]
scComSAMLightClientCtrlDoubleValueTypeSaveView2DBitmapVariableSize = 81
Sets the width of Bitmap that is created with
scComSAMLightClientCtrlStringValueTypeSaveView2DVariableSize.
scComSAMLightClientCtrlDoubleValueTypeSaveView2DBitmapX = 82
scComSAMLightClientCtrlDoubleValueTypeSaveView2DBitmapY = 83
scComSAMLightClientCtrlDoubleValueTypeSaveView2DBitmapXW = 84
scComSAMLightClientCtrlDoubleValueTypeSaveView2DBitmapYW = 85
Determines the behaviour of scComSAMLightClientCtrlStringValueTypeSaveView2DAdjustableDPI. X
and Y defines the center of the screenshot in the coordinate system of the SAMLight View2D. XW and
YW are the width and height of the screenshot in mm. The resulting bitmap will have the size in mm as
XW and YW. The resolution of the bitmap can be set with
scComSAMLightClientCtrlDoubleValueTypeSaveView2DBitmapDPI.
scComSAMLightClientCtrlDoubleValueTypeSelPointXPos = 86
scComSAMLightClientCtrlDoubleValueTypeSelPointYPos = 87
scComSAMLightClientCtrlDoubleValueTypeSelPointZPos = 88
Returns the x, y and z coordinate of a point which is selected in SAMLight. If more than one point is
selected the command returns the coordinate of the first selected point. If no point is selected the return
value is '0'.
scComSAMLightClientCtrlDoubleValueTypeLongDelay = 89
Gets or sets the long delay of the current pen which can be set with ScSetPen(). Unit is [µs].
scComSAMLightClientCtrlDoubleValueTypeOffsetZ = 90
Gets or sets the Z offset of RTC cards. This value is related to the value in
<SCAPS>\tools\ .
Requires Optic3D license.
USC cards: XY coordinates are not compensated, like Pen Defocus.
RTC cards: XY coordinates are compensated, unlike Pen Defocus.
scComSAMLightClientCtrlDoubleValueTypeSpeedMotfEntityBasedSplitting = 91
Gets or sets the 'use speed' value in the MOTF entity based splitting dialog.
scComSAMLightClientCtrlDoubleValueTypeEntityArrayStepX = 92
scComSAMLightClientCtrlDoubleValueTypeEntityArrayStepY = 93
Gets or sets the X/Y 'inc.' value used by scComSAMLightClientCtrlStringDataIdArrayCopyHard.
scComSAMLightClientCtrlDoubleValueTypeEntityBasedSplittingGroupedEntity = 94
Width
Gets or sets the 'grouped entity width' value in the MOTF entity based splitting dialog.
scComSAMLightClientCtrlDoubleValueTypeDoublePara3 = 95
Activate or deactivate the Checkbox „Sort Equal by other Coordinate" for the Data Wizard.
0: disable
1: enable
scComSAMLightClientCtrlDoubleValueType3DSurfaceValue1 = 96
Cylinder X position
Sphere X position
Tilted surface X position
STL projection Center in field ('0.0' for disabled, '1.0' for enabled)
scComSAMLightClientCtrlDoubleValueType3DSurfaceValue2 = 97
Cylinder Y position
Sphere Y position
Tilted surface Y position
STL projection X offset
scComSAMLightClientCtrlDoubleValueType3DSurfaceValue3 = 98
Cylinder Z offset
Sphere Z offset
Tilted surface Z offset
STL projection Y offset
scComSAMLightClientCtrlDoubleValueType3DSurfaceValue4 = 99
Cylinder XY angle
Sphere Line splitting length
Tilted surface XY angle
STL projection Z offset
scComSAMLightClientCtrlDoubleValueType3DSurfaceValue5 = 100
Cylinder Diameter / 2
Sphere Sphere angle
Tilted surface Z tilt angle
STL projection XY rotation
scComSAMLightClientCtrlDoubleValueType3DSurfaceValue6 = 101
Cylinder Line splitting length
Sphere Diameter
Tilted surface Width ('-1.0' for an infinite surface)
STL projection Line splitting length
scComSAMLightClientCtrlDoubleValueType3DSurfaceValue7 = 102
Cylinder Tube angle
Sphere -
Tilted surface Height ('-1.0' for an infinite surface)
STL projection X scale
scComSAMLightClientCtrlDoubleValueType3DSurfaceValue8 = 103
Cylinder Z tilt angle
STL projection Y scale
scComSAMLightClientCtrlDoubleValueType3DSurfaceValue9 = 104
STL projection Z scale
scComSAMLightClientCtrlDoubleValueType3DSurfaceValue10 = 105
STL projection XZ rotaion
scComSAMLightClientCtrlDoubleValueType3DSurfaceValue11 = 106
STL projection YZ rotation
scComSAMLightClientCtrlDoubleValueTypeOpticRotation = 111
scComSAMLightClientCtrlDoubleValueTypeFieldMaxY = 122
scComSAMLightClientCtrlDoubleValueTypeIPGPulseLength = 123
scComSAMLightClientCtrlDoubleValueTypeMinFrequency = 124
scComSAMLightClientCtrlDoubleValueTypeMaxFrequency = 125
scComSAMLightClientCtrlDoubleValueTypeDrillMarkLineAsDotsGridX = 126
scComSAMLightClientCtrlDoubleValueTypeDrillMarkLineAsDotsGridY = 127
scComSAMLightClientCtrlDoubleValueTypeStepAndRepeatPlanarStartX = 132
scComSAMLightClientCtrlDoubleValueTypeStepAndRepeatPlanarStartY = 133
scComSAMLightClientCtrlDoubleValueTypeStepAndRepeatPlanarStepX = 134
scComSAMLightClientCtrlDoubleValueTypeStepAndRepeatPlanarStepY = 135
scComSAMLightClientCtrlDoubleValueTypeStepAndRepeatSpeed = 136
scComSAMLightClientCtrlDoubleValueTypeStyleIdPixelMapZone = 4096
This constant is used to set or get the values for the Pixel Map. The first Pixel Map entry has the index
4096, the second 4097 and so on ... . At the moment the Pixel Map consists of 6 entries.
scComSAMLightClientCtrlDoubleValueTypeUserValue = 20000
This value can be used to store or receive a double value into an unused and hidden entity in the job.
This entity will be generated automatically unless it is already existing. The values from 20001 to 20015
can be used with the same functionality.
scComSAMLightClientCtrlDoubleValueTypeUsc1MotfCh0Multiplier = 65539
This constant is used to set or get the multiplier value for X-Channel.
scComSAMLightClientCtrlDoubleValueTypeUsc1MotfCh1Multiplier = 65540
This constant is used to set or get the multiplier value for Y-Channel.
scComSAMLightClientCtrlDoubleValueTypePrimaryHeadOffsetX = 65546
scComSAMLightClientCtrlDoubleValueTypePrimaryHeadOffsetY = 65547
Using these constants the offset X and offset Y correction factor of the primary head can be set or get.
scComSAMLightClientCtrlDoubleValueTypePrimaryHeadGainX = 65548
scComSAMLightClientCtrlDoubleValueTypePrimaryHeadGainY = 65549
Using these constants the gain X and gain Y correction factor of the primary head can be set or get.
scComSAMLightClientCtrlDoubleValueTypePrimaryHeadRotate = 65550
Using this constant the rotational angle of the primary head can be set or get.
scComSAMLightClientCtrlDoubleValueTypePrimaryHeadEnable = 65551
Using this constant the primary head can be activated or deactivated.
scComSAMLightClientCtrlDoubleValueTypeSecondaryHeadOffsetX = 65552
scComSAMLightClientCtrlDoubleValueTypeSecondaryHeadOffsetY = 65553
Using these constants the offset X (Y) correction factor of the secondary head can be set or get.
scComSAMLightClientCtrlDoubleValueTypeSecondaryHeadGainX = 65556
scComSAMLightClientCtrlDoubleValueTypeSecondaryHeadGainY = 65557
Using these constants the gain X (Y) correction factor of the secondary head can be set or get.
scComSAMLightClientCtrlDoubleValueTypeSecondaryHeadRotate = 65558
Using this constant the rotational angle of the secondary head can be set or get.
scComSAMLightClientCtrlDoubleValueTypeSecondaryHeadEnable = 65559
Using this constant the secondary head can be activated or deactivated.
scComSAMLightClientCtrlDoubleValueTypeUsc1MotfSimulate = 65638
scComSAMLightClientCtrlDoubleValueTypeUsc1MotfUseYChannel = 65640
scComSAMLightClientCtrlDoubleValueTypeUsc1MotfInvertOffset = 65661
scComSAMLightClientCtrlDoubleValueTypeUsc2MotfCh0Enable = 65662
scComSAMLightClientCtrlDoubleValueTypeUsc2MotfCh1Enable = 65663
scComSAMLightClientCtrlDoubleValueTypeUsc2MotfCh0Simulate = 65664
scComSAMLightClientCtrlDoubleValueTypeUsc2MotfCh1Simulate = 65665
scComSAMLightClientCtrlDoubleValueTypeUsc2MotfCh0Multiplier = 65670
scComSAMLightClientCtrlDoubleValueTypeUsc2MotfCh1Multiplier = 65671
Get or Set the MOTF multiplier for USC-2 or RTC-5 cards.
scComSAMLightClientCtrlDoubleValueTypeUsc2MotfCh0Counter = 65718
scComSAMLightClientCtrlDoubleValueTypeUsc2MotfCh1Counter = 65719
scComSAMLightClientCtrlStringValueTypeRs232BaudRate =1
Sets the Baud rate of the RS232 output. This String Value Type is only valid for USC cards. The RS232
interface supports the following Baud rates: 2400, 4800, 9600, 19200, 28800, 38400 and 57600.
scComSAMLightClientCtrlStringValueTypeRs232OutputString =2
Sets the RS232 Output string. This Sting Value Type is only valid for USC cards.
scComSAMLightClientCtrlStringValueTypeRs232Mode =3
Sets the RS232 Mode. This String Value Type is only valid for USC cards. The following modes are
available:
scComSAMLightClientCtrlStringValueTypeJobFileName =4
Returns the name of the current job file with its complete path.
scComSAMLightClientCtrlStringValueTypeSaveView2D160 =6
scComSAMLightClientCtrlStringValueTypeSaveView2D320 =7
scComSAMLightClientCtrlStringValueTypeSaveView2DVariableSize =8
scComSAMLightClientCtrlStringValueTypeSaveView2DFull =9
These types can be used to create a screenshot from the current main view and all contained entities.
The file name where to save the captured bitmap file is given as a string parameter. The several
command types differ only in the maximum picture size (width or height) of the bitmap file: 160 pixels,
320 pixels, custom defined size or full size. This function only works if the main window of the controlled
scanner application is visible and not hidden by something else. So the window cannot be minimized
and no screensaver should be active. The current main view might be adjusted to the complete working
area, selected entities or all existing entities by using ScExecCommand() and the corresponding
CmdID.
scComSAMLightClientCtrlStringValueTypeControlCmdCW300 = 50
The constant above has to be used to access a separate laser controller using an additional command
string. For a detailed description on how to use these commands and how to access the specific
controller, please refer to the specification that should be delivered together with the control
(sc_ht_use_the_CW300_rs232.pdf). This constant is only valid for the functions ScSetStringValue(),
scComSAMLightClientCtrlStringValueTypeMotionString = 11
Defines a string for send as RS232 string to the port defined in the motion settings.
scComSAMLightClientCtrlStringValueTypeSaveView2DAdjustableDPI = 12
Creates a bitmap holding the working area and saves the bitmap file into given path (including the name
of the resulting bitmap). The resolution is set with ScSetDoubleValue() with value type
scComSAMLightClientCtrlDoubleValueTypeSaveView2DBitmapDPI. The line and pixel thickness can
be adjusted by ScSetLongValue() with value type
scComSAMLightClientCtrlLongValueTypeSaveView2DBitmapMode. The center and the size of the
area of the View2D of SAMLight can be set with ScSetDoubleValue() with the value types
scComSAMLightClientCtrlDoubleValueTypeSaveView2DBitmapX,
scComSAMLightClientCtrlDoubleValueTypeSaveView2DBitmapY,
scComSAMLightClientCtrlDoubleValueTypeSaveView2DBitmapXW and
scComSAMLightClientCtrlDoubleValueTypeSaveView2DBitmapYW.
Refer to our sample codes as well.
scComSAMLightClientCtrlStringValueTypeCorrectionFile = 13
Using this constant a new correction file can be set or the current path of the
correction file can be get.
scComSAMLightClientCtrlStringValueTypeSaveSplitsJobFileName = 21
Using this constant can be used to set the path and file name for to save a spitted job file as an entity
list of split tiles. This constant has to be executed before ScExecCommand
scComSAMLightClientCtrlExecCommandSaveSplitsAsEntities, see example "Save split job file as
tiles".
scComSAMLightClientCtrlStringValueTypeCurrentPenName = 22
Using this constant the name of a pen can be set or get together with ScSetPen().
scComSAMLightClientCtrlStringValueTypeCorrectionFileHead2 = 23
Using this constant a new correction file name for the secondary scanhead can be set or get.
scComSAMLightClientCtrlStringValueTypeGetLastErrorMessageInput = 14
scComSAMLightClientCtrlStringValueTypeGetLastInfoMessageInput = 15
Using these constants it is possible to get the last error or info message that can be set via
for the input bits of the used scanner card.
scComSAMLightClientCtrlStringValueTypeSetToTopLevelEntity = 17
Sets the entity inside the job with the name that is specified by the other parameter to the top level
entity.
scComSAMLightClientCtrlStringValueTypeStringPara1 = 19
This parameter is used to define the source entity, which will be used for the beam comped copy
function.
scComSAMLightClientCtrlStringValueTypeStringPara2 = 20
This parameter is used to define the copied entity, which will be used for the beam comped copy
function.
scComSAMLightClientCtrlStringValueTypeBmpAlphaBlendPathBmp = 27
This constant loads an .bmp image to the background of the SAMLight View. The filename is specified
by the string parameter. No entity will be created in the SAMLight editor. Related constants are
scComSAMLightClientCtrlLongValueTypeBmpAlphaBlendBmpDimX and ...DimY which you can find
under Long Value Types and are used to specify the dimension of the bitmap as well as
scComSAMLightClientCtrlLongValueTypeBmpAlphaBlendCenterPointX and ...PointY which are also
located at Long Value Types and are used to specify the position of the bitmap.
scComSAMLightClientCtrlStringValueTypePenPixelMap = 28
Loads a bitmap to the Point Power Map of the currently used pen, ScSetPen(). The Point Power Map
scComStandardDeviceStyleFlagEnablePointUsePowerMap
scComSAMLightClientCtrlStringValueTypeCorrectionFileLcf = 29
Using this constant a new correction file can be set or the current path of the correction file can be get.
If a *.lcf file exists with the same name and in the same folder as the *.ucf file the lens parameters will
be applied as well. If more than one scanhead is to be operated, the head number has to be specified
with ScSetHead() first. It is not possible to call this constant during marking.
scComSAMLightClientCtrlStringValueTypeCorrectionFileLcfLensInit = 30
Using this constant a new correction file can be set or the current path of the correction file can be get.
If a *.lcf file exists with the same name and in the same folder as the *.ucf file the lens parameters will
be applied as well. If a *.sjf file exists with the same name and in the same folder as the *.ucf file the
Lens Init Job will be executed as well. If more than one scanhead is to be operated, the head number
has to be specified with ScSetHead() first. It is not possible to call this constant during marking.
scComSAMLightClientCtrlStringValueTypeLoadStl = 32
scComSAMLightClientCtrlStringValueTypeCreateEntity = 36
scComSAMLightClientCtrlStringValueTypeUserValue = 20000
This value can be used to store or receive a string value into an unused and
hidden entity in the job. This entity will be generated automatically unless it is
already existing. The values from 20001 to 20009 can be used with the same
functionality.
scComSAMLightClientCtrlLongDataIdFlagDontUpdateView = 65536
If this bit is set, the view will not be refreshed. This can be helpful for increasing performance.
scComSAMLightClientCtrlLongDataIdFlagDontUpdateEntity = 131072
If this bit is set, the entity will not be regenerated and updated. This can be helpful for increasing
performance.
scComSAMLightClientCtrlStringDataIdFlagEnqueueCtrlCmd = 524288
scComSAMLightClientCtrlStringDataIdFlagEnqueueLastCtrlCmd = 1048576
These flags can be used only when marking in triggered mode and if USC-1 internal buffering is
enabled. They cause the application not to execute the related command immediately but to put them
into a queue. This queue of commands then is executed without any feedback after one entity was
marked due to an external trigger signal. Here all commands sent with
scComSAMLightClientCtrlStringDataIdFlagEnqueueCtrlCmd are executed for the same trigger signal as
long as the flag scComSAMLightClientCtrlStringDataIdFlagEnqueueLastCtrlCmd is used. That means
every sequence of calls to ScSetEntityLongData() finished with
scComSAMLightClientCtrlStringDataIdFlagEnqueueLastCtrlCmd using these flags causes modifications
of the job per trigger signal. This flag is useful for very fast modifications of a job in triggered/buffered
operation mode. For more information about the queue functionality please refer to the Examples
section.
scComSAMLightClientCtrlLongDataIdFlagToplevelOnly = 2097152
If this bit is set, it will only be searched for entities in first level of the job. This can be helpful to
increase the performance.
scComSAMLightClientCtrlLongDataIdUserData =1
Then the parameter Data contains a long value with the data to store inside the entity.
scComSAMLightClientCtrlLongDataIdTextAlignment =2
Then the parameter Data contains a long value with the alignment flag fields with the following possible
values:
scComSAMLightClientCtrlTextAlignmentCenter =1
scComSAMLightClientCtrlTextAlignmentLeft =2
scComSAMLightClientCtrlTextAlignmentRight =4
scComSAMLightClientCtrlTextAlignmentTop =8
scComSAMLightClientCtrlTextAlignmentBottom = 16
scComSAMLightClientCtrlTextAlignmentMiddle = 32
scComSAMLightClientCtrlTextAlignmentRadialCenter = 64
scComSAMLightClientCtrlTextAlignmentRadialEnd = 128
scComSAMLightClientCtrlTextAlignmentLineLeft = 256
scComSAMLightClientCtrlTextAlignmentLineRight = 512
scComSAMLightClientCtrlTextAlignmentLineCenter = 1024
scComSAMLightClientCtrlLongDataIdEntitySelected =3
This function can be used to change the selection state of entities or to get information whether the entity
is selected. The parameter Data has to be 0 or 1.
scComSAMLightClientCtrlLongDataIdEntityArrayCountX =4
This function can be used to change the array x count value of the entity.
scComSAMLightClientCtrlLongDataIdEntityArrayCountY =5
This function can be used to change the array y count value of the entity.
scComSAMLightClientCtrlLongDataIdEntityArrayStepX =6
This function can be used to change the array x step value of the entity. The unit factor of the long value
is 0.001.
scComSAMLightClientCtrlLongDataIdEntityArrayStepY =7
This function can be used to change the array y step value of the entity. The unit factor of the long value
is 0.001.
scComSAMLightClientCtrlLongDataIdEntityArrayOrderFlags =8
This function can be used to change the output order of the virtual array (virtual: corresponding set up in
EntityInfo in Entity property page. The entity list would not be added with array copy). Then the
parameter Data contains a flag field with a combination out of the following values:
scComSAMLightClientCtrlEntityArrayOrderFlagMainDirX = 1024
Use X as the main direction for array copying, array copies would be marked column by column.
scComSAMLightClientCtrlEntityArrayOrderFlagNegX = 256
Go from right to left in horizontal direction if this flag is set, else go from left to right.
scComSAMLightClientCtrlEntityArrayOrderFlagNegY = 512
Go from top to bottom in vertical direction is this flag is set, else go from bottom to top.
scComSAMLightClientCtrlEntityArrayOrderFlagBiDir = 2048
Use bidirectional mode (horizontal), that means array copy is done into one direction and back
instead of using only one direction, jump back and start from the beginning using the same direction
again.
scComSAMLightClientCtrlLongDataIdTextCharFlags =9
Then the parameter Data contains a long value with the char flag fields with the following possible values
(can be combined logically):
ScComSAMLightClientCtrlLongDataIdTextCharFlagMonoSpaced =3
scComSAMLightClientCtrlLongDataIdTextCharFlagItalic = 65536
scComSAMLightClientCtrlLongDataIdTextCharFlagRadial = 131072
scComSAMLightClientCtrlLongDataIdTextCharFlagRadialAlignToCha= 262144
rOutline
scComSAMLightClientCtrlLongDataIdTextCharFlagReverseOrder = 524288
scComSAMLightClientCtrlLongDataIdTextCharFlagMirrorCharOnXAx = 1048576
is
scComSAMLightClientCtrlLongDataIdTextCharFlagMirrorCharOnYAx = 2097152
is
scComSAMLightClientCtrlLongDataIdTextCharFlagSwapLines = 4194304
scComSAMLightClientCtrlLongDataIdTextCharFlagSetToLimitLength= 8388608
scComSAMLightClientCtrlLongDataIdTextCharFlagSetToLimitHeight = 16777216
scComSAMLightClientCtrlLongDataIdTextCharFlagSetToLimitKeepA = 33554432
spect
scComSAMLightClientCtrlLongDataIdTextCharFlagOrderXDown = 67108864
sets/gets the third Marking order symbol in Text Properties dialog-window.
scComSAMLightClientCtrlLongDataIdTextCharFlagOrderYUp = 134217728
sets/gets the second Marking order symbol in Text Properties dialog-window.
scComSAMLightClientCtrlLongDataIdTextCharFlagOrderYMainUp = 268435456
sets/gets the first Marking order symbol in Text Properties dialog-window.
scComSAMLightClientCtrlLongDataIdTextCharFlagOrderBiDir = 536870912
sets/gets the fourth Marking order symbol in Text Properties dialog-window.
scComSAMLightClientCtrlLongDataIdTextCharFlagRadialCenterMod = 1073741824
e
Sets the 'center' checkbox for text in radial mode with the corresponding ScSetEntityDoubleData():
scComSAMLightClientCtrlDoubleDataIdTextRadialCenterX
scComSAMLightClientCtrlDoubleDataIdTextRadialCenterY
scComSAMLightClientCtrlLongDataIdTextFontAvailable = 10
This constant will examine if for the given Entityname the specified font is available on the PC on which
SAMLight is currently running. The return value will be 1 if the fonts is available 0 if it is not.
scComSAMLightClientCtrlLongDataIdBitmapMode = 49
This DataId is used to manipulate a named bitmap. Please note that the scanner bitmap is created after
every call to ScSetEntityLongData() as long as the flag
scComSAMLightClientCtrlDoubleDataIdFlagDontUpdateEntity is not set. On the other hand the scanner
bitmap is not created if brightness, ditherstep or intensity are modified. Here in every case it is required
to set the flags. The data that can be set with this DataId correspond to the functionality of the Bitmap
property page:
scComSAMLightClientCtrlLongDataIdBitmapModeInvert =1
scComSAMLightClientCtrlLongDataIdBitmapModeGreyscale =2
scComSAMLightClientCtrlLongDataIdBitmapModeDrillmode =4
scComSAMLightClientCtrlLongDataIdBitmapModeBidirectional =8
scComSAMLightClientCtrlLongDataIdBitmapModeStartlastline = 16
scComSAMLightClientCtrlLongDataIdBitmapModeNolineincr = 32
No increment of line position.
scComSAMLightClientCtrlLongDataIdBitmapModeShowBitmap = 256
scComSAMLightClientCtrlLongDataIdBitmapModeShowScanner = 512
The last two data flags define what bitmap has to be displayed into the view. If none of them is set,
nothing is shown and the imported bitmap disappears.
scComSAMLightClientCtrlLongDataIdBitmapModeScanXDir = 1024
scComSAMLightClientCtrlLongDataIdBitmapModePenFrequency = 2048
scComSAMLightClientCtrlLongDataIdBitmapModeJumpOverBlankPi = 4096
xels
scComSAMLightClientCtrlLongDataIdBitmapModeDrillGreyscale = 8192
scComSAMLightClientCtrlLongDataIdTextWeight = 50
By using this DataId the style of a text can be modified. For the weight following Data constants are
defined:
scComCharWeightThin = 100
scComCharWeightExtraLight = 200
scComCharWeightLight = 300
scComCharWeightNormal = 400
scComCharWeightMedium = 500
scComCharWeightSemiBold = 600
scComCharWeightBold = 700
scComCharWeightExtraBold = 800
scComCharWeightHeavy = 900
scComSAMLightClientCtrlLongDataIdEnableHatching1 = 51
scComSAMLightClientCtrlLongDataIdEnableHatching2 = 52
Using these DataIds the both hatchers can be enabled, disabled or the actual state can be retrieved.
Disabling is done by setting the appropriate data field to 0. A value not equal 0 defines the hatching
mode. Here the following values are possible:
1) Wavy line without marking the jumps
2) Horizontal left to right without marking the jumps
3) Horizontal right to left without marking the jumps
4) Rotational, applies only to rectangle, ellipse and triangle structures in the current version
5) Wavy line including the jumps
6) Zigzag
scComSAMLightClientCtrlLongDataIdEntityMarkLoopCount = 55
This function can be used to change the mark loop count value of the
entity.
scComSAMLightClientCtrlLongDataIdEntityMarkBeatCount = 56
This function can be used to change the mark beat count value of the
entity.
scComSAMLightClientCtrlLongDataIdEntityMarkStartCount = 57
This function can be used to change the mark beat offset value of the
entity.
scComSAMLightClientCtrlLongDataIdEntityMarkFlags = 58
This function can be used to change the mark flags (mark contour and mark hatch) of the entity. The
possible values of the flags are:
scComSAMLightClientCtrlLongDataIdEntityMarkFlagMarkContour =1
scComSAMLightClientCtrlLongDataIdEntityMarkFlagMarkHatch =2
scComSAMLightClientCtrlLongDataIdEntitySetPen = 60
The adjusted pen number of an entity can be changed.
scComSAMLightClientCtrlLongDataIdEntitySetTimerValue = 61
By using this constant the time value of a ScTimer object can be changed. The unit for the related long
value is in [ms].
scComSAMLightClientCtrlLongDataIdEntitySetInOutValue = 62
Here a new bit can be set for a ScSetOutput entity to set an output or for a ScWaitForInput entity to wait
for a signal on the related input.
The long value that is handed over together with this constant cannot be a combination of several
bits. Here exactly one bit has to be defined. Values with more than one bit or with no bit set are
not allowed and may lead to undefined results.
scComSAMLightClientCtrlLongDataIdEntitySetOutputPulse = 64
Using this parameter a time for a ScSetOutput entitiy output pulse can be defined. A long value that is
greater than 0 enables the output pulse functionality and sets this value in [µs] units. If a value of -1 is
handed over the output pulse is disabled and the value specified using
scComSAMLightClientCtrlLongDataIdEntitySetInOutValue and
scComSAMLightClientCtrlLongDataIdEntitySetInOutLevel is set as long as it is not replaced by an other
one.
scComSAMLightClientCtrlLongDataIdEntitySetInOutLevel = 65
The entities ScSetOutput and ScWaitForInput may act on different signal levels. Using this constant that
level can be defined: Setting it to 0 means a low signal is set to the output pin or a low level will be
expected at the input defined with scComSAMLightClientCtrlLongDataIdEntitySetInOutValue. If a 1 is set
as long value a high signal is set or expected. Other values than 0 for low and 1 for high are not allowed
here.
scComSAMLightClientCtrlLongDataIdEntityGetTimerValue = 66
Here the current delay time of the ScTimer entity is read.
scComSAMLightClientCtrlLongDataIdEntityGetInOutValue = 67
Using this constant the bit can be read that will be set by the related ScSetOutput entity or the related
ScWaitForInput will wait for.
scComSAMLightClientCtrlLongDataIdEntityGetOutputPulse = 69
If there is an output pulse value defined for a ScSetOutput entity using this constant its long value can be
read. If the output pulse feature is disabled for this entity, -1 is returned.
scComSAMLightClientCtrlLongDataIdEntityGetInOutLevel = 70
The ScSetOutput and ScWaitForInput entities can act or react on a definable level low or high. Using
this constant the current configuration of the entity can be evaluated. If a 1 is returned the entity uses a
high signal, in case of a 0, the low signal is used.
scComSAMLightClientCtrlLongDataIdEntitySerialStartValue = 71
Get or set the start value of a serial number. This value is used after a serial number is reset.
scComSAMLightClientCtrlLongDataIdEntitySerialIncrValue = 72
Get or set the increment value for a serial number object.
scComSAMLightClientCtrlLongDataIdEntitySerialCurrValue = 73
Get the current value of a serial number.
scComSAMLightClientCtrlLongDataIdEntityGetPen = 74
The pen number of the specified entity can be retrieved.
scComSAMLightClientCtrlLongDataIdEntityOpticFlags = 75
This function can be used for changing the Mark Contour and the Mark Hatch flags of an object. The
parameter is a bit field defining which flags have to be set:
scComSAMLightClientCtrlLongDataIdEntityOpticFlagContour =1
scComSAMLightClientCtrlLongDataIdEntityOpticFlagHatch =2
scComSAMLightClientCtrlLongDataIdEntitySetAsBackgroundEntity = 78
Set the entity specified by EntityName to the background or foreground. To set it to the background use
1 as data index. To set it into the foreground use 0 as data index. The data index is the third and last
parameter of the corresponding ScSetEntityLongData command.
scComSAMLightClientCtrlLongDataIdEntitySerialBeatCount = 79
Get or set the beat count of the serial number.
scComSAMLightClientCtrlLongDataIdEntitySerialResetCount = 80
Get or set the reset count of the serial number.
scComSAMLightClientCtrlLongDataIdSetHatchFlags1 = 81
This works not only for 2D but also in SAM3D situation.
scComSAMLightClientCtrlLongDataIdClearHatchFlags1 = 91
scComSAMLightClientCtrlLongDataIdSetHatchFlags2 = 82
scComSAMLightClientCtrlLongDataIdClearHatchFlags2 = 92
Get or set the hatch flags for the given entity. Use SetHatchFlags to check the flag and ClearHatchFlags
to uncheck the flag. In the following the possible parameters are described:
scComSAMLightClientCtrlLongDataIdHatchFlagAllLines = 1024
scComSAMLightClientCtrlLongDataIdHatchFlagNoSort = 256
scComSAMLightClientCtrlLongDataIdHatchFlagKeepAngle = 524288
scComSAMLightClientCtrlLongDataIdHatchFlagEqualizeDistance = 16777216
scComSAMLightClientCtrlLongDataIdHatchFlagDontFillRest = 16384
scComSAMLightClientCtrlLongDataIdHatchFlagPolyLineBeamComp = 8192
This flag activates the NumLoops feature of the hatch. It will create a
beam compensation from outside to inside of the object. This works not
only for 2D but also in SAM3D situation.
scComSAMLightClientCtrlLongDataIdHatchFlagBeamComp = 33554432
LoopReverseOrder
This flag has to be used together with the hatch flag PolyLineBeamComp
and will generate NumLoops from inside to outside of the object.
scComSAMLightClientCtrlLongDataIdBarcodeSetFlags = 101
scComSAMLightClientCtrlLongDataIdBarcodeClearFlags = 102
Different parameters are available:
scComSAMLightClientCtrlLongDataIdBarcodeFlagVariableLength =1
scComSAMLightClientCtrlLongDataIdBarcodeFlagInvert =2
scComSAMLightClientCtrlLongDataIdBarcodeFlagDisableAutoQuiet = 4
Zone
scComSAMLightClientCtrlLongDataIdBarcodeFlagQuietZoneAbsolut = 8
e
scComSAMLightClientCtrlLongDataIdBarcodeFlagGenerateCheckCo = 16
de
is only available for Code-93, I-2/5 and Ex Code93
scComSAMLightClientCtrlLongDataIdBarcodeFlagInvertExceptText = 32
scComSAMLightClientCtrlLongDataIdBarcodeFlagInvertCellMode = 64
scComSAMLightClientCtrlLongDataIdBarcodeFlagCompactMode = 128
Compact is only available for PDF417
scComSAMLightClientCtrlLongDataIdDataMatrixSymbolSize = 105
Parameter corresponds to the sizes in combo box, starting with 1.
scComSAMLightClientCtrlLongDataIdDataMatrixSetSymbolMode = 103
scComSAMLightClientCtrlLongDataIdDataMatrixClearSymbolMode = 104
Different parameters are available:
scComSAMLightClientCtrlLongDataIdDataMatrixExSymbolMode =1
Rectangle
scComSAMLightClientCtrlLongDataIdDataMatrixExSymbolMode = 65536
AutoSize
scComSAMLightClientCtrlLongDataIdDataMatrixExSymbolMode = 131072
AutoEncodation
scComSAMLightClientCtrlLongDataIdDataMatrixExSymbolModeDots = 262144
scComSAMLightClientCtrlLongDataIdDataMatrixExSymbolModeTilde= 524288
scComSAMLightClientCtrlLongDataIdDataMatrixExSymbolModeCells= 1048576
scComSAMLightClientCtrlLongDataIdDataMatrixExSymbolMode = 2097152
NoFinderCells
scComSAMLightClientCtrlLongDataIdDataMatrixExSymbolModeEllip = 4194304
se
If Generate Cells is activated the cells are now small circles.
scComSAMLightClientCtrlLongDataIdDataMatrixExSymbolMode = 8388608
TextFreelyEditable
scComSAMLightClientCtrlLongDataIdDataMatrixEncoding = 106
Set or get the Encoding of the Data Matrix
Different parameters are available:
scComSAMLightClientCtrlLongDataIdDataMatrixExEncodationAscii = 1
scComSAMLightClientCtrlLongDataIdDataMatrixExEncodationBase2 = 2
56
scComSAMLightClientCtrlLongDataIdDataMatrixExEncodationC40 =3
scComSAMLightClientCtrlLongDataIdDataMatrixExEncodationText =4
scComSAMLightClientCtrlLongDataIdDataMatrixExEncodationAnsiX = 5
12
scComSAMLightClientCtrlLongDataIdDataMatrixExEncodationEdifac = 6
t
scComSAMLightClientCtrlLongDataIdBitmapBlankThreshold = 122
make sure the flag for mode grayscale, show bitmap and show scanner are set so that the checkbox is
to activate.
scComSAMLightClientCtrlLongDataIdDataMatrixNumberOfDots = 124
Set or get the number of points per cell for DataMatrixEx. Valid values to set are 1, 4, 9, 16, otherwise
returns error.
scComSAMLightClientCtrlLongDataIdDataBarcodeTextEnable = 107
For barcodes: If the additional parameter is 0 then text is disabled, if it is 1 text is enabled.
scComSAMLightClientCtrlLongDataIdDataBarcodeLevel = 108
For barcodes: If available, the level can be chosen [0, ..., n] as can be done in the Extended dialog.
scComSAMLightClientCtrlLongDataIdDataBarcodeMode = 109
For barcodes: If available, the mode can be chosen [0, ..., n] as can be done in the Extended dialog.
scComSAMLightClientCtrlLongDataIdEntitySetAsHiddenEntity = 112
Hides or shows the entity in View2D specified by the EntityName. To hide it in View2D use 1 as data
index. To show it in View2D use 0 as data index. The data index is the third and last parameter of the
corresponding ScSetEntityLongData command.
scComSAMLightClientCtrlLongDataIdSpiralNumInnerRotations = 113
scComSAMLightClientCtrlLongDataIdSpiralNumOuterRotations = 114
scComSAMLightClientCtrlLongDataIdSpiralNumOuterSegments = 115
scComSAMLightClientCtrlLongDataIdSpiralFlags = 116
The Flag can be one of the following values or the logical OR combination of them:
1 = Clockwise
2 = Start from Outer
4 = Set Return Path
scComSAMLightClientCtrlLongDataIdEntityGroupPenPaths = 118
scComSAMLightClientCtrlLongDataIdEntityGroupCluster = 119
scComSAMLightClientCtrlLongDataIdEntityMirrorOnPlane = 120
scComSAMLightClientCtrlDoubleDataIdFlagDontUpdateView = 65536
If this bit is set, the view will not be refreshed. This can be helpful to increase the performance.
scComSAMLightClientCtrlDoubleDataIdFlagDontUpdateEntity = 131072
If this bit is set, the entity will not be regenerated and updated. This can be helpful to increase the
performance.
scComSAMLightClientCtrlDoubleDataIdFlagToplevelOnly = 262144
If this bit is set, it will be only searched for entities in the first level of the job. This can be helpful to
increase the performance.
scComSAMLightClientCtrlDoubleDataIdTextSize =1
The parameter data contains the size of the text.
scComSAMLightClientCtrlDoubleDataIdTextCharSpacing =2
Change the character spacing of the string. 1 equals 100%.
scComSAMLightClientCtrlDoubleDataIdTextLengthLimit =3
Change the length limit of the text object.
scComSAMLightClientCtrlDoubleDataIdTextHeightLimit =4
Change the height limit of the text object.
scComSAMLightClientCtrlDoubleDataIdTextRadius =5
Change the radius of a radial text.
scComSAMLightClientCtrlDoubleDataIdTextStartAngle =6
Change the start angle of a radial text. Units are in [rad].
scComSAMLightClientCtrlDoubleDataIdTextRadialCenterX =9
scComSAMLightClientCtrlDoubleDataIdTextRadialCenterY = 10
Sets the center of a radial text. The 'center' checkbox can be enabled with ScSetEntityLongData() with
the IdTextCharFlag 'RadialCenterMode'.
scComSAMLightClientCtrlDoubleDataIdBitmapIntensity = 33
Changes the intensity of the related bitmap but does not recreate the appropriate scanner bitmap.
Please refer to the bitmap mode flags for more information.
scComSAMLightClientCtrlDoubleDataIdBitmapBrightness = 34
Changes the brightness of the related bitmap but does not recreate the appropriate scanner bitmap.
Please refer to the bitmap mode flags for more information.
scComSAMLightClientCtrlDoubleDataIdBitmapDitherstep = 35
Changes the rasterization size of the scanner bitmap but does not recreate it immediately. The
recreation is done by setting the required bitmap mode flags.
scComSAMLightClientCtrlDoubleDataIdTextOrientation = 36
Changes the orientation of a text. With a parameter of 0 for the data field of ScSetEntityDoubleData() the
text is oriented in horizontal direction. If the parameter is pi/2 then the text is displayed vertically. The
following constants define hatching related values.
scComSAMLightClientCtrlDoubleDataIdHatchDistance1 = 37
scComSAMLightClientCtrlDoubleDataIdHatchDistance2 = 45
Modifies or retrieves the hatch distance for the hatch number one or two.
scComSAMLightClientCtrlDoubleDataIdHatchAngle1 = 38
scComSAMLightClientCtrlDoubleDataIdHatchAngle2 = 46
Using this DataId the hatch angle for the first or second hatch can be get or set. The angle has to be
specified in [rad].
These four constants for Hatch distance and Hatch angle can be used for drill geometry entity as well. If
it is desired to get and set the values of entities in the Drill Geometry, "drill_geom_" should be added at
the beginning of the entity name. For example, if the entity name is "Test", in the CCI call the entity name
should be modified to "drill_geom_Test". Please note that the unit of angle in CCI project is [rad],
whereas the unit in SAMLight is [deg].
scComSAMLightClientCtrlDoubleDataIdHatchMinjump1 = 39
scComSAMLightClientCtrlDoubleDataIdHatchMinjump2 = 47
Hatch minimal jump value for hatch one or two
scComSAMLightClientCtrlDoubleDataIdHatchStartoffset1 = 40
scComSAMLightClientCtrlDoubleDataIdHatchStartoffset2 = 48
The start offset value for the first or second hatch
scComSAMLightClientCtrlDoubleDataIdHatchLinereduct1 = 41
scComSAMLightClientCtrlDoubleDataIdHatchLinereduct2 = 49
Specifies the amount of line reduction for the first or second hatch
scComSAMLightClientCtrlDoubleDataIdHatchEndoffset1 = 42
scComSAMLightClientCtrlDoubleDataIdHatchEndoffset2 = 50
The end offset value for the first or second hatch
scComSAMLightClientCtrlDoubleDataIdHatchBeamcompensation1 = 43
scComSAMLightClientCtrlDoubleDataIdHatchBeamcompensation2 = 51
scComSAMLightClientCtrlDoubleDataIdSpiral2DInnerRadius = 74
scComSAMLightClientCtrlDoubleDataIdSpiral2DOuterRadius = 75
scComSAMLightClientCtrlDoubleDataIdSpiral2DRise = 76
Adjust Inner and Outer Radius as well a the Rise Parameter of the Spiral.
scComSAMLightClientCtrlDoubleDataIdEllipse2DRadiusX = 77
scComSAMLightClientCtrlDoubleDataIdEllipse2DRadiusY = 78
scComSAMLightClientCtrlDoubleDataIdEllipse2DCenterX = 79
scComSAMLightClientCtrlDoubleDataIdEllipse2DCenterY = 80
These constants change the radius or center position of the ellipse.
scComSAMLightClientCtrlDoubleDataIdDataMatrixQuietZoneX = 81
Set or get the X Quiet Zone of a DataMatrixEx. If the checkbox "Absolute" is activated the Quiet Zone is
given in mm. If you need to set different paramters for X and Y you have to clear the flag
scComBarFlagDisableAutoQuietZone with scComSAMLightClientCtrlLongDataIdBarcodeClearFlags. If
not, the Quiet Zone is given as a scale factor ( 1 = 100 % ).
scComSAMLightClientCtrlDoubleDataIdDataMatrixQuietZoneY = 82
Set or get the Y Quiet Zone of a DataMatrixEx.If the checkbox "Absolute" is activated the Quiet Zone is
given in mm If you need to set different paramters for X and Y you have to clear the flag
scComBarFlagDisableAutoQuietZone with scComSAMLightClientCtrlLongDataIdBarcodeClearFlags. If
not, the Quiet Zone is given as a scale factor ( 1 = 100 % ).
scComSAMLightClientCtrlDoubleDataIdHatchPointOffset1 = 83
scComSAMLightClientCtrlDoubleDataIdHatchMinLength1 = 84
scComSAMLightClientCtrlDoubleDataIdHatchPointOffset2 = 85
scComSAMLightClientCtrlDoubleDataIdHatchMinLength2 = 86
ScComSAMLightClientCtrlDoubleDataIdDataMatrixDistanceBetweenDots = 87
Get the distance between two points of DataMatrixEx.
ScComSAMLightClientCtrlDoubleDataIdSecondaryHeadTransformationOffsetX= 88
ScComSAMLightClientCtrlDoubleDataIdSecondaryHeadTransformationOffsetY= 89
ScComSAMLightClientCtrlDoubleDataIdSecondaryHeadTransformationScaleX = 90
ScComSAMLightClientCtrlDoubleDataIdSecondaryHeadTransformationScaleY = 91
ScComSAMLightClientCtrlDoubleDataIdSecondaryHeadTransformationRotatio = 92
n
These SecondaryHeadTransformation commands are only available for USC-2/3
with license for Head2 and activated Head2. The values are corresponding to the
parameter of a ScSetSecondaryHeadTransformation entity.
scComSAMLightClientCtrlStringDataIdFlagDontUpdateView = 65536
If this bit is set in the upper 16 bit of the parameter DataId, the view will not be refreshed. This can
be helpful to increase the performance.
scComSAMLightClientCtrlStringDataIdFlagDontUpdateEntity = 131072
If this bit is set in the upper 16 bit of the parameter DataId, the entity will not be regenerated and
updated. This can be helpful to increase the performance.
scComSAMLightClientCtrlStringDataIdFlagToplevelOnly = 2097152
If this bit is set, it will only be searched for entities in the first level of the job. This can be helpful to
increase the performance.
scComSAMLightClientCtrlStringDataIdFlagSelected = 4194304
Can be used together with the types scComSAMLightClientCtrlStringDataIdGetToplevelEntity or
scComSAMLightClientCtrlStringDataIdSetToplevelEntity to get or set the name of top level entity
which is selected in SAMLight.
scComSAMLightClientCtrlStringDataIdTextFontName =1
The parameter data contains the font name.
scComSAMLightClientCtrlStringDataIdTextText =2
The parameter data contains the string of the text object.
scComSAMLightClientCtrlStringDataIdGetToplevelEntity = 17
This value can be used together with the function SCGetIdStringData() to get the name of an entity that
is specified by a zero based index number. Use scComSAMLightClientCtrlStringDataIdGetEntityName
when you want to iterate trough all levels.
scComSAMLightClientCtrlStringDataIdSetBarcodeType = 19
Using this value a barcode object of type ScBarCode12Chars2D can be modified. Together with a call
to ScSetEntityStringData()) a new barcode type can be specified and set for that object. The string
parameter the function expects is the name of the barcode type. There for an example EAN or I-2/5 can
be used. This value can be combined with the flags for the upper 16 bit like described above.
scComSAMLightClientCtrlStringDataIdGetBarcodeType = 20
This value can be used to retrieve the type name of a ScBarCode12Chars2D. Since this does not modify
the displayed barcode the upper 16 bits are ignored. So the view flags do not have any influence on an
appropriate call to ScGetEntityStringData().
scComSAMLightClientCtrlStringDataIdGetEntityName = 21
This is used to retrieve the name of an entity by its index. The index is zero based and starts from the
top level going through the tree on the base of the first object, going on with the siblings. Use
scComSAMLightClientCtrlStringDataIdGetToplevelEntity when you want to iterate only through top level.
scComSAMLightClientCtrlStringDataIdGetEntityType = 22
This is used to retrieve the type of an entity by its index. The index is zero based and starts from the top
level going through the tree on the base of the first object, going on with the siblings.
scComSAMLightClientCtrlStringDataIdSetEntityName = 23
This is used to set the name of an entity by its index. The index is zero based and starts from the top
level going through the tree on the base of the first object, going on with the siblings. If not deactivated
with a mode flag this will set the names of sub-entities also (groups, etc.).
scComSAMLightClientCtrlStringDataIdEntitySerialASCIIFileName = 24
This is used to change the file name of a serial number list in txt format. This is recommended to use
with scComSAMLightClientCtrlExecCommandResetSerialNumber together.
scComSAMLightClientCtrlStringDataIdSetToplevelEntity = 25
This is used to set the name of an entity by its index. The index is zero based and starts from the top
level going through the tree on the base of the first object, going on with the siblings. This will set the
names of top-level-entities exclusively.
scComSAMLightClientCtrlStringDataIdSetMotionCtrls = 26
This allows to store motion data into a motion control object that is inside the currently loaded job. The
format for the Data parameter is:
1) For one axis, parameters are separated by semicolon:
< axis Index: 0..6 or -1 for all axes > (can not be empty)
< position as float value > (can be an empty string (""))
< speed as float value > (can be an empty string)
< relative movement 0 or 1 > (can be an empty string)
2) For all axes:
Up to 7 one axis strings, separated by one "blank" (" ").
3) For more than one motion entity - with one single function call:
As standard for this case there are multiple all axes strings separated by a vertical tab ("\v").
To activate this mode call:
ScSetMode (ScGetMode() Or
'scComSAMLightClientCtrlModeFlagEntityNamesSeparatedBySemicolon')
Multiple entity names must be separated by a semicolon.
scComSAMLightClientCtrlStringDataIdSerialNumberFormatString = 27
This allows to get or set the format string of a Date Time Object.
scComSAMLightClientCtrlStringDataIdArrayCopyHard = 28
Performs an Array Copy where the copies are unique entities with unique names. The array copy
parameters are specified with these Long and Double values:
scComSAMLightClientCtrlLongValueTypeEntityArrayCountX
scComSAMLightClientCtrlLongValueTypeEntityArrayCountY
scComSAMLightClientCtrlDoubleValueTypeEntityArrayStepX
scComSAMLightClientCtrlDoubleValueTypeEntityArrayStepY
scComSAMLightClientCtrlStringDataIdTranslate = 29
This allows to translate the entity or entities defined by EntityName. If used for multiple entities the Flag
scComSAMLightClientCtrlModeFlagEntityNamesSeparatedBySemicolon with ScSetMode(...) has to be
set. In this case the parameter Data holds for each single entity the translation vector as "X;Y" separated
by a vertical Tab.
scComSAMLightClientCtrlStringDataIdRotate = 30
This allows to rotate the entity or entities defined by EntityName. If used for multiple entities the Flag
scComSAMLightClientCtrlModeFlagEntityNamesSeparatedBySemicolon with ScSetMode(...) has to be
set. In this case the parameter Data holds for each single entity the rotation vector as
"CenterX;CenterY;Angle" separated by a vertical Tab.
scComSAMLightClientCtrlStringDataIdOutlineAndRotate = 31
This allows to get the Outline and the Rotation Angle of the Entities defined by EntityName. If used for
multiple entities the Flag scComSAMLightClientCtrlModeFlagEntityNamesSeparatedBySemicolon with
ScSetMode(...) has to be set. The parameter Data will hold the Outlines and Rotation Angle in a list in
the format "MinX;MinY;MaxX;MaxY;Angle".
scComSAMLightClientCtrlStringDataIdBarCodeFormatString = 32
This allows to set the Format String of a Barcode ( if supported)
scComSAMLightClientCtrlStringDataIdSetMotionCtrlsString = 33
This allows to store a new string into a string motion control object that is inside the currently loaded job.
scComSAMLightClientCtrlStringDataIdSpecialPenAndMore = 34
This allows to pass on or several pens separated by semicolon as 'entity name', e.g. "1" or "1;2;3" and to
get the following 7 pen main parameters as return string separated by semicolon in the following order:
marking speed [mm/s], power [Watt], frequency [Hz], CO2 power1 [pulse length of laser signal1 in %],
CO2 power2 [pulse length of laser signal2 in %], pulse length [µs], first pulse [µs]. The values for another
pen are separated by a 'vertical tab' '\v'. If the return string is send via network, it's maximum length
could be 512 characters. Every value of the return string is a double value with 6 decimal places.
scComSAMLightClientCtrlStringDataIdGetEntityTypeAsInSAMLight = 35
scComSAMLightClientCtrlExecCommandTest =1
Pops up a message box within SAMLight. This can be used to check the communication between the
applications.
scComSAMLightClientCtrlExecCommandResetSequence =2
This resets the marking sequence to its initial state. This is important for jobs using the beat count and
beat offset parameters.
scComSAMLightClientCtrlExecCommandNewJob =3
Deletes the current job.
scComSAMLightClientCtrlExecCommandFitViewToWorkingArea =4
Fits the view to the working area.
scComSAMLightClientCtrlExecCommandFitViewToAllEntities =5
Fits the view to all entities in the job.
scComSAMLightClientCtrlExecCommandFitViewToSelectedEntities =6
Fits the view to the selected entities in the job.
scComSAMLightClientCtrlExecCommandResetCounter =7
Resets the mark quantity counter. See chapter Mark Status Bar.
scComSAMLightClientCtrlExecCommandResetSerialNumber =8
Resets the serial number.
scComSAMLightClientCtrlExecCommandUpdateScannerPos =9
Update the position information of the scanner.
scComSAMLightClientCtrlExecCommandAutoCompensateOff = 10
Scanner auto-calibration functionality (works only with hardware that supports it): Turns auto calibration
mode off
scComSAMLightClientCtrlExecCommandAutoCompensateRef = 11
Scanner auto-calibration functionality (works only with hardware that supports it): Turns auto calibration
mode on and go to reference position for initial calibration
scComSAMLightClientCtrlExecCommandAutoCompensateCal = 12
Scanner auto-calibration functionality (works only with hardware that supports it): Recalibrates
scComSAMLightClientCtrlExecCommandResplitJob = 13
Resplit a job that is in Splitting Mode and was modified so that the split data have to be updated by this
option.
scComSAMLightClientCtrlExecCommandMotionStopMove = 14
Stops motions which are defined with scComSAMLightClientCtrlLongValueTypeMotionAxis
scComSAMLightClientCtrlExecCommandMotionHome = 15
Calls the homing function for motions which are defined with
scComSAMLightClientCtrlLongValueTypeMotionAxis
scComSAMLightClientCtrlExecCommandMotionGo = 16
Executes the movement for motions which are defined with
scComSAMLightClientCtrlLongValueTypeMotionAxis. Thereby the value
scComSAMLightClientCtrlLongValueTypeMotionWaitForEnd is taken into account. The position is
defined with scComSAMLightClientCtrlDoubleValueTypeMotionAxisPosition or rather
scComSAMLightClientCtrlDoubleValueTypeMotionAxisAngle according to the motion settings. Before
sending a new scComSAMLightClientCtrlExecCommandMotionGo command it is important to wait until
the last drive has stopped. See example Motion Control in the Examples section.
scComSAMLightClientCtrlExecCommandMotionSendString = 17
Sends a RS232 string to the port defined within the motion settings. The string is empty by default and
can be defined with scComSAMLightClientCtrlStringValueTypeMotionString.
scComSAMLightClientCtrlExecCommandMotionUpdatePos = 18
Asks the motion drive for the currently stored position. The motion number is defined with
scComSAMLightClientCtrlLongValueTypeMotionAxis.
scComSAMLightClientCtrlExecCommandStopExecution = 19
Stops the execution: If scComSAMLightClientCtrlMarkFlagWaitForTrigger is set with ScSetMarkFlags
and mark is called with ScMarkEntityByName, the trigger mark dialog opens. The command closes the
trigger mark dialog and disables trigger mode. This is necessary for example if a job is edited and new
data need to be given to the scanner card. Then the trigger mode needs to be stopped and the marking
has to be started again
scComSAMLightClientCtrlExecCommandRedPointerStart = 20
Starts the red pointer with the settings set at Redpointer in the mark dialog and opens the mark dialog if
its closed.
scComSAMLightClientCtrlExecCommandRedPointerStop = 21
Stops the red pointer. The Mark dialog must be open.
scComSAMLightClientCtrlExecCommandUpdateViewNow = 22
Refreshes the view. Redraws all entities even if flag mode
scComSAMLightClientCtrlModeFlagDontUpdateView is set.
scComSAMLightClientCtrlExecCommandIncSerialNumber = 23
Increment all serial numbers in the job.
scComSAMLightClientCtrlExecCommandDecSerialNumber = 24
Decrement all serial numbers in the job.
scComSAMLightClientCtrlExecCommandView3DViewIso = 26
switch a 3D View into ISO mode.
scComSAMLightClientCtrlExecCommandRehatchAll = 28
Updates the hatch of all entities in the current job.
scComSAMLightClientCtrlExecCommandCreateBeamCompedCopy = 37
scComSAMLightClientCtrlExecCommandOpenMarkDialog = 48
Opens the Mark dialog.
scComSAMLightClientCtrlExecCommandCloseMarkDialog = 49
Closes the Mark dialog.
scComSAMLightClientCtrlExecCommandCorrectSamLight = 50
Executes the correction of the currently used correction file with <SCAPS>\system\sc_calib_points.txt.
The new correction file is applied in SAMLight and it is saved in the same folder as the previous used
one. The correction mode can be chosen with
scComSAMLightClientCtrlLongValueTypeCorrectionMode. An example can be found in the chapter
Correct UCF. In sc_corr_table, this function is called 'Correct UCF by calibration points'.
scComSAMLightClientCtrlExecCommandSaveSettingsNow = 51
Saves the current settings to the settings file.
scComSAMLightClientCtrlExecCommandSortJobByName = 52
Sorts objects inside a group by their name if the name of the group is specified with
scComSAMLightClientCtrlStringValueTypeSetToTopLevelEntity. If no group name is specified this sorts
the top level entities of the job.
scComSAMLightClientCtrlExecCommandUndo = 54
Executes the UNDO command.
scComSAMLightClientCtrlExecCommandWizardOrder = 55
Executes the Data Wizard command "Set Order". There can be set 3 parameters with Client Control.
See Double Value Types scComSAMLightClientCtrlDoubleValueTypeDoublePara1/2 and 3. This will
affect all entities in the job.
scComSAMLightClientCtrlExecCommandWizardCreateOneGroup = 57
Executes the Data Wizard command "Create One Group".
scComSAMLightClientCtrlExecCommandStoreFlashSettings = 58
Stores the settings to the USC-2 EPCS (this is necessary for stand-alone operation). Make sure that the
settings fit to the laser and other machinery. The settings will be loaded during powering on the card.
scComSAMLightClientCtrlExecCommandGroupEntities = 59
Groups the manually or by Long Data Ids scComSAMLightClientCtrlLongDataIdEntitySelected selected
entities and puts them into an entities group.
scComSAMLightClientCtrlExecCommandUngroupEntities = 60
Ungroups the manually or by Long Data Ids scComSAMLightClientCtrlLongDataIdEntitySelected
selected entities group. The view level of all entities inside the group will be decreased by one.
scComSAMLightClientCtrlExecCommandWizardClosePolylines = 61
it is necessary to use scComSAMLightClientCtrlDoubleValueTypeDoublePara1 to set the CloseDis(in
mm) and then use this command to close the lines.
scComSAMLightClientCtrlExecCommandWizardOptimizeJumps = 62
19.5 Examples
Demo program: A demo application sc_client_control_interface_csharp shows the integration of the Client
Control Interface. It is a Micrsoft Visual Studio C# project which is available for free at
http://www.download.scaps.com/index.php?c=1&f=/downloads/client_control_interface/
sc_client_control_interface_csharp.zip .
if( m_samlight.ScIsRunning() == 0 )
{
MessageBox.Show( "SAMLight not found", "Warning" );
return;
}
...
using SAMLIGHT_CLIENT_CTRL_OCXLib;
...
// unselect all
axScSamlightClientCtrl1.ScSetEntityLongData( "",
( int ) ScComSAMLightClientCtrlFlags.scComSAMLightClientCtrlLongDataIdEntitySelected |
( int ) ScComSAMLightClientCtrlFlags.scComSAMLightClientCtrlLongDataIdFlagDontUpdateView, 0 );
// select
axScSamlightClientCtrl1.ScSetEntityLongData( EntityName,
( int ) ScComSAMLightClientCtrlFlags.scComSAMLightClientCtrlLongDataIdEntitySelected, 1 );
axScSamlightClientCtrl1.ScExecCommand(
( int )
ScComSAMLightClientCtrlExecCommandConstants.scComSAMLightClientCtrlExecCommandFitViewToSelectedEnti
ties );
...
using SAMLIGHT_CLIENT_CTRL_OCXLib;
...
axScSamlightClientCtrl1.ScSetEntityLongData( EntityName,
( int ) ScComSAMLightClientCtrlFlags.scComSAMLightClientCtrlLongDataIdEntityArrayCountX |
( int ) ScComSAMLightClientCtrlFlags.scComSAMLightClientCtrlLongDataIdFlagDontUpdateView, 3 );
axScSamlightClientCtrl1.ScSetEntityLongData( EntityName,
( int ) ScComSAMLightClientCtrlFlags.scComSAMLightClientCtrlLongDataIdEntityArrayCountY |
( int ) ScComSAMLightClientCtrlFlags.scComSAMLightClientCtrlLongDataIdFlagDontUpdateView, 4 );
axScSamlightClientCtrl1.ScSetEntityLongData( EntityName,
( int ) ScComSAMLightClientCtrlFlags.scComSAMLightClientCtrlLongDataIdEntityArrayStepX |
( int ) ScComSAMLightClientCtrlFlags.scComSAMLightClientCtrlLongDataIdFlagDontUpdateView,
3300 );
axScSamlightClientCtrl1.ScSetEntityLongData( EntityName,
( int ) ScComSAMLightClientCtrlFlags.scComSAMLightClientCtrlLongDataIdEntityArrayStepY |
( int ) ScComSAMLightClientCtrlFlags.scComSAMLightClientCtrlLongDataIdFlagDontUpdateView,
4500 );
axScSamlightClientCtrl1.ScSetEntityLongData( EntityName,
( int ) ScComSAMLightClientCtrlFlags.scComSAMLightClientCtrlLongDataIdEntityArrayOrderFlags |
( int ) ScComSAMLightClientCtrlFlags.scComSAMLightClientCtrlLongDataIdFlagDontUpdateView,
( int ) ScComSAMLightClientCtrlFlags.scComSAMLightClientCtrlEntityArrayOrderFlagNegX );
axScSamlightClientCtrl1.ScExecCommand(
( int )
ScComSAMLightClientCtrlExecCommandConstants.scComSAMLightClientCtrlExecCommandFitViewToAllEntities
);
There are two different array copies in SAMLight, the virtual and the hard, which have their corresponding
CCI commands.
You can find Hard Array Copy with right mouse click:
With Hard Array Copy, the new generated copies are added in entity list. Examples below in C#:
axScSamlightClientCtrl1.ScSetLongValue((int)
ScComSAMLightClientCtrlValueTypes.scComSAMLightClientCtrlLongValueTypeEntityArrayOrder
Flags, 256+512+1024);
axScSamlightClientCtrl1.ScSetLongValue((int)
ScComSAMLightClientCtrlValueTypes.scComSAMLightClientCtrlLongValueTypeEntityArrayCount
X, 2);
axScSamlightClientCtrl1.ScSetLongValue((int)
ScComSAMLightClientCtrlValueTypes.scComSAMLightClientCtrlLongValueTypeEntityArrayCount
Y, 2);
axScSamlightClientCtrl1.ScSetDoubleValue((int)
ScComSAMLightClientCtrlValueTypes.scComSAMLightClientCtrlDoubleValueTypeEntityArraySte
pX, 9);
axScSamlightClientCtrl1.ScSetDoubleValue((int)
ScComSAMLightClientCtrlValueTypes.scComSAMLightClientCtrlDoubleValueTypeEntityArraySte
pY, 9);
axScSamlightClientCtrl1.ScSetEntityStringData("imported.dxf", 28,
"Clone"); // scComSAMLightClientCtrlStringDataIdArrayCopyHard = 28
With virtual array copy, the generated copies are not added in entity list, but still will be marked in sequence.
Please pay attention that the unit of the commands for step is [um]. Examples below in C#:
axScSamlightClientCtrl1.ScSetEntityLongData("imported.dxf", (int)
ScComSAMLightClientCtrlFlags.scComSAMLightClientCtrlLongDataIdEntityArrayCountX, 2);
axScSamlightClientCtrl1.ScSetEntityLongData("imported.dxf", (int)
ScComSAMLightClientCtrlFlags.scComSAMLightClientCtrlLongDataIdEntityArrayCountY, 2);
axScSamlightClientCtrl1.ScSetEntityLongData("imported.dxf", (int)
ScComSAMLightClientCtrlFlags.scComSAMLightClientCtrlLongDataIdEntityArrayStepX, 9000);
axScSamlightClientCtrl1.ScSetEntityLongData("imported.dxf", (int)
ScComSAMLightClientCtrlFlags.scComSAMLightClientCtrlLongDataIdEntityArrayStepY, 9000);
axScSamlightClientCtrl1.ScSetEntityLongData("imported.dxf", 8, 256
+1024); //output order of the virtual array:
scComSAMLightClientCtrlLongDataIdEntityArrayOrderFlags = 8;
...
using SAMLIGHT_CLIENT_CTRL_OCXLib;
...
string name = "", type = ""; // important: the BSTR-pointer has to be initialized, otherwise the
COM-interface may crash!
int i, count;
}
}
else MessageBox.Show( "No entities found", "total number of entities: 0" );
axScSamlightClientCtrl1.ScSetLongValue( ( int )
ScComSAMLightClientCtrlValueTypes.scComSAMLightClientCtrlLongValueTypeMotionAxis, 1 );
axScSamlightClientCtrl1.ScSetDoubleValue( ( int )
ScComSAMLightClientCtrlValueTypes.scComSAMLightClientCtrlDoubleValueTypeMotionAxisAngl
eRelative, 720 );
axScSamlightClientCtrl1.ScSetDoubleValue( ( int )
ScComSAMLightClientCtrlValueTypes.scComSAMLightClientCtrlDoubleValueTypeMotionAxisSpee
d, 1 );
axScSamlightClientCtrl1.ScExecCommand( ( int )
ScComSAMLightClientCtrlExecCommandConstants.scComSAMLightClientCtrlExecCommandMotionGo
);
axScSamlightClientCtrl1.ScSetLongValue( ( int )
ScComSAMLightClientCtrlValueTypes.scComSAMLightClientCtrlLongValueTypeMotionAxis, 0 );
axScSamlightClientCtrl1.ScSetDoubleValue( ( int )
ScComSAMLightClientCtrlValueTypes.scComSAMLightClientCtrlDoubleValueTypeMotionAxisPosi
tionRelative, 100 );
axScSamlightClientCtrl1.ScSetLongValue( ( int )
ScComSAMLightClientCtrlValueTypes.scComSAMLightClientCtrlLongValueTypeMotionAxis, 1 );
axScSamlightClientCtrl1.ScSetDoubleValue( ( int )
ScComSAMLightClientCtrlValueTypes.scComSAMLightClientCtrlDoubleValueTypeMotionAxisAngl
e, 720 );
axScSamlightClientCtrl1.ScExecCommand( ( int )
ScComSAMLightClientCtrlExecCommandConstants.scComSAMLightClientCtrlExecCommandMotionGo
);
int axis0 = 1;
int axis1 = 1;
do
{
if( axis0 == 1 )
{
axScSamlightClientCtrl1.ScSetLongValue( ( int )
ScComSAMLightClientCtrlValueTypes.scComSAMLightClientCtrlLongValueTypeMotionAxis, 0 );
if( axScSamlightClientCtrl1.ScGetLongValue( ( int )
ScComSAMLightClientCtrlValueTypes.scComSAMLightClientCtrlLongValueTypeMotionMoving )
== 0 )
{
MessageBox.Show( "Motor with axis 0 has stopped." );
axis0 = 0;
}
}
if( axis1 == 1 )
{
axScSamlightClientCtrl1.ScSetLongValue( ( int )
ScComSAMLightClientCtrlValueTypes.scComSAMLightClientCtrlLongValueTypeMotionAxis, 1 );
if( axScSamlightClientCtrl1.ScGetLongValue( ( int )
ScComSAMLightClientCtrlValueTypes.scComSAMLightClientCtrlLongValueTypeMotionMoving )
== 0 )
{
MessageBox.Show( "Motor with axis 1 has stopped." );
axis1 = 0;
}
}
} while ( ( axis0 == 1 ) || ( axis1 == 1 ) ) ;
// Enable ModeFlagEntityNamesSeparatedBySemicolon
int ModeFlags = 0;
int CciReturn2 = axScSamlightClientCtrl1.ScGetMode( ref ModeFlags );
ModeFlags = MarkFlags | ( int )
SAMLIGHT_CLIENT_CTRL_OCXLib.ScComSAMLightClientCtrlFlags.scComSAMLightClientCtrlModeFlagEntityNames
SeparatedBySemicolon;
int CciReturn3 = axScSamlightClientCtrl1.ScSetMode( ModeFlags );
axScSamlightClientCtrl1.ScSetStringValue( ( int )
ScComSAMLightClientCtrlValueTypes.scComSAMLightClientCtrlStringValueTypeStringPara1,
"Entity" );
axScSamlightClientCtrl1.ScSetStringValue( ( int )
ScComSAMLightClientCtrlValueTypes.scComSAMLightClientCtrlStringValueTypeStringPara2,
"BeamCompedEntity" );
axScSamlightClientCtrl1.ScSetDoubleValue( ( int )
ScComSAMLightClientCtrlValueTypes.scComSAMLightClientCtrlDoubleValueTypeDoublePara1,
0.1 );
axScSamlightClientCtrl1.ScExecCommand( ( int )
ScComSAMLightClientCtrlExecCommandConstants.scComSAMLightClientCtrlExecCommandCreateBe
amCompedCopy );
// generating fixed size colored View2D screenshots with SAMLight Windows opened in background
axScSamlightClientCtrl1.ScSetStringValue( ( int )
ScComSAMLightClientCtrlValueTypes.scComSAMLightClientCtrlStringValueTypeSaveView2D160, path + "\
\ScreenshotView2D160.bmp" );
axScSamlightClientCtrl1.ScSetStringValue( ( int )
ScComSAMLightClientCtrlValueTypes.scComSAMLightClientCtrlStringValueTypeSaveView2D320, path + "\
\ScreenshotView2D320.bmp" );
axScSamlightClientCtrl1.ScSetStringValue( ( int )
ScComSAMLightClientCtrlValueTypes.scComSAMLightClientCtrlStringValueTypeSaveView2DFull, path + "\
\ScreenshotView2DFull.bmp" );
// generating variable size colored View2D screenshot with SAMLight Windows opened in background
axScSamlightClientCtrl1.ScSetDoubleValue( ( int )
ScComSAMLightClientCtrlValueTypes.scComSAMLightClientCtrlDoubleValueTypeSaveView2DBitmapVariableSiz
e, 640 ); // set bitmap size in pixel
axScSamlightClientCtrl1.ScSetStringValue( ( int )
ScComSAMLightClientCtrlValueTypes.scComSAMLightClientCtrlStringValueTypeSaveView2DVariableSize,
path + "\\ScreenshotView2DVariableSiz.bmp" );
// generating black and white View2D screenshot with just SAMLight running background
axScSamlightClientCtrl1.ScSetDoubleValue( ( int )
ScComSAMLightClientCtrlValueTypes.scComSAMLightClientCtrlDoubleValueTypeSaveView2DBitmapX, 0 ); //
set center in X (like View2D coordinate system)
axScSamlightClientCtrl1.ScSetDoubleValue( ( int )
ScComSAMLightClientCtrlValueTypes.scComSAMLightClientCtrlDoubleValueTypeSaveView2DBitmapY, 0 ); //
set center in Y (like View2D coordinate system)
axScSamlightClientCtrl1.ScSetDoubleValue( ( int )
ScComSAMLightClientCtrlValueTypes.scComSAMLightClientCtrlDoubleValueTypeSaveView2DBitmapXW,
10 ); // set size in X in mm (like View2D coordinate system)
axScSamlightClientCtrl1.ScSetDoubleValue( ( int )
ScComSAMLightClientCtrlValueTypes.scComSAMLightClientCtrlDoubleValueTypeSaveView2DBitmapYW,
10 ); // set size in Y in mm (like View2D coordinate system)
axScSamlightClientCtrl1.ScSetDoubleValue( ( int )
ScComSAMLightClientCtrlValueTypes.scComSAMLightClientCtrlDoubleValueTypeSaveView2DBitmapDPI,
200 ); // set bitmap resolution in DPI
axScSamlightClientCtrl1.ScSetLongValue( ( int )
ScComSAMLightClientCtrlValueTypes.scComSAMLightClientCtrlLongValueTypeSaveView2DBitmapMode, 0 ); //
0: lines and pixels are drawn normal
axScSamlightClientCtrl1.ScSetStringValue( ( int )
ScComSAMLightClientCtrlValueTypes.scComSAMLightClientCtrlStringValueTypeSaveView2DAdjustableDPI,
path + "\\ScreenshotView2DAdjustableDPI_DrawnNormal.bmp" );
axScSamlightClientCtrl1.ScSetLongValue( ( int )
ScComSAMLightClientCtrlValueTypes.scComSAMLightClientCtrlLongValueTypeSaveView2DBitmapMode, 1 ); //
1: lines and pixels are drawn thicker
axScSamlightClientCtrl1.ScSetStringValue( ( int )
ScComSAMLightClientCtrlValueTypes.scComSAMLightClientCtrlStringValueTypeSaveView2DAdjustableDPI,
path + "\\ScreenshotView2DAdjustableDPI_DrawnThicker.bmp" );
axScSamlightClientCtrl1.ScExecCommand( ( int)
ScComSAMLightClientCtrlExecCommandConstants.scComSAMLightClientCtrlExecCommandNewJob );
axScSamlightClientCtrl1.ScLoadJob( Environment.ExpandEnvironmentVariables( @"%SCAPS_SAM%" ) + "\
\jobfiles\\demo.sjf", 1, 1, 0 );
ScCenterEntityByEntityName( "" );
axScSamlightClientCtrl1.ScExecCommand( ( int )
ScComSAMLightClientCtrlExecCommandConstants.scComSAMLightClientCtrlExecCommandResplitJob ); //
scComSAMLightClientCtrlExecCommandResplitJob = 13
axScSamlightClientCtrl1.ScSetStringValue( ( int )
ScComSAMLightClientCtrlValueTypes.scComSAMLightClientCtrlStringValueTypeSaveSplitsJobFileName,
Environment.ExpandEnvironmentVariables( @"%SCAPS_SAM%" ) + "\\jobfiles\
\demo_splitted_as_tiles.sjf" );
axScSamlightClientCtrl1.ScExecCommand( ( int )
ScComSAMLightClientCtrlExecCommandConstants.scComSAMLightClientCtrlExecCommandSaveSplitsAsEntities
); // scComSAMLightClientCtrlExecCommandSaveSplitsAsEntities = 38
axScSamlightClientCtrl1.ScLoadJob( Environment.ExpandEnvironmentVariables( @"%SCAPS_SAM%" ) + "\
\jobfiles\\demo_splitted_as_tiles.sjf", 1, 1, 0 );
ScCenterEntityByEntityName( "" );
}
// Insert here your Client Control commands with visual effects like
ScTranslateEntity, ScScaleEntity, ScRotateEntity, ScChangeTextByName, ...
// Mirror Entity
axScSamlightClientCtrl1.ScScaleEntity( EntityName, -1, 1, 1 );
...
using SAMLIGHT_CLIENT_CTRL_OCXLib;
...
Execute SAMLight Client Control command only for the top level entities of a job file:
If it is not necessary to execute a SAMLight Client Control command for all subentities of a top level entity
then the iteration through all subentities can be globally suppressed and the SAMLight Client Control
command is executed for the top level entity only:
ScSetMode () with flag scComSAMLightClientCtrlModeFlagTopLevelOnly
Execute SAMLight Client Control command for several entities by only one function call with Entity
Names Separated By Semicolon:
The time consuming part of a client control application can be the COM call itself. The processing time for
the client interface application can be reduced if you want to use the same CI call for several entities. An
example is changing the text of several entities with just one COM call. This can be done by using semicolon
separated entity names which has to be activated by:
ScSetMode() with flag scComSAMLightClientCtrlModeFlagEntityNamesSeparatedBySemicolon
To find more information about which client control calls are possible and how to use it please refer to the
corresponding documentation or see the example below.
Disable View2D entity update if you change more than one property of the same entity at once:
Like mentioned above every entity change will be shown in View2D after any change of its properties. If you
want to change more than one property of the same entity you can suppress View2D update of the entity so
the change of the entity will not be shown after after every call.
ScSetEntityLongData() with flag scComSAMLightClientCtrlLongDataIdFlagDontUpdateView
ScSetEntityDoubleData() with flag scComSAMLightClientCtrlDoubleDataIdFlagDontUpdateView
ScSetEntityStringData() with flag scComSAMLightClientCtrlStringDataIdFlagDontUpdateView
Supress entity update if you change more than one property of the same entity at once:
Like mentioned above every entity will be regenerated and updated after any change of its properties. If you
want to change more than one property of the same entity you can suppress this behavior so that the entity
will not be regenerated and updated after after every call.
ScSetEntityLongData() with flag scComSAMLightClientCtrlLongDataIdFlagDontUpdateEntity
ScSetEntityDoubleData() with flag scComSAMLightClientCtrlDoubleDataIdFlagDontUpdateEntity
ScSetEntityStringData() with flag scComSAMLightClientCtrlStringDataIdFlagDontUpdateEntity
Please make sure that you are not using this flag at the last change of an entity. Otherwise this entity will not
be regenerated and updated at all.
been sent. As soon as the external trigger is recognized by the controller card the marking process will start.
If this mode is not enabled the job will be prepared and sent to the controller card after the external trigger
was recognized.
ScSetMarkFlags() with flag scComSAMLightClientCtrlMarkFlagWaitForTrigger
19.6.1 Example 1
To demonstrate how to use the CI calls properly we want to give an example code. Consider you have 20
barcode entities in SAMLight with the entity names barcode1, barcode2, ..., barcode20. We want to change
for each barcode
The text
Enable Hatch1 with style 'wavy line without marking the jumps'
//enable Hatching1
m_samlight.ScSetEntityLongData( entity_name, ( int )
ScComSAMLightClientCtrlFlags.scComSAMLightClientCtrlLongDataIdEnableHatching1, 1 );
//enable Hatching2
m_samlight.ScSetEntityLongData( entity_name, ( int )
ScComSAMLightClientCtrlFlags.scComSAMLightClientCtrlLongDataIdEnableHatching2, 6 );
}
This way will work properly but after every of the 60 CI calls the corresponding entity will get regenerated and
the View2D of SAMLight will be updated. This needs a lot of time.
We will now demonstrate how the same goal can be reached by using 3 CI calls instead of 60. Furthermore
every entity will be regenerated only once and the View2D of SAMLight will only be updated after the last
entity change was completed:
//Generate one string 'all_entity_names' with all entity names separated by ";"
//and generate one string 'all_entity_texts' with all entity textes separated by "\v"
//enable Hatching1 and Hatching2 for all entities, suppress entity update after enabling Hatching
1
//so the entities will be updated after the enabling of Hatching 2 (second call)
m_samlight.ScSetEntityLongData( all_entity_names,
( int )
ScComSAMLightClientCtrlFlags.scComSAMLightClientCtrlLongDataIdEnableHatching1 |
( int )
ScComSAMLightClientCtrlFlags.scComSAMLightClientCtrlDoubleDataIdFlagDontUpdateEntity , 1 );
m_samlight.ScSetEntityLongData( all_entity_names,
( int )
ScComSAMLightClientCtrlFlags.scComSAMLightClientCtrlLongDataIdEnableHatching2, 6 );
//reset ScSetMode
m_samlight.ScSetMode( 0 );
19.6.2 Example 2
The following C# example shows and measures how much SAMLight Client Control performance constants
can accelerate the executed SAMLight Client Control commands .
In this case the cursive font, text size, font type and the text content of a Text2D entity with entity name "text
entity" are set 100 times as substitute for 100 different text entities to show how SAMLight Client Control
performance constants can be used.
...
using System.Diagnostics;
using SAMLIGHT_CLIENT_CTRL_OCXLib;
...
stopWatch.Stop();
TimeSpan mt = stopWatch.Elapsed;
string MeasuredTime = String.Format("{0:00}.{1:00}", mt.Seconds, mt.Milliseconds);
stopWatch.Reset();
axScSamlightClientCtrl1.ScSetMode((int)
ScComSAMLightClientCtrlFlags.scComSAMLightClientCtrlModeFlagTopLevelOnly |
(int)
ScComSAMLightClientCtrlFlags.scComSAMLightClientCtrlModeFlagDontUpdateView);
stopWatch.Start();
axScSamlightClientCtrl1.ScSetMode(0);
axScSamlightClientCtrl1.ScExecCommand(
(int)
ScComSAMLightClientCtrlExecCommandConstants.scComSAMLightClientCtrlExecCommandUpdateViewNow);
stopWatch.Stop();
mt = stopWatch.Elapsed;
MeasuredTime = String.Format("{0:00}.{1:00}", mt.Seconds, mt.Milliseconds);
stopWatch.Reset();
stopWatch.Start();
stopWatch.Stop();
mt = stopWatch.Elapsed;
MeasuredTime = String.Format("{0:00}.{1:00}", mt.Seconds, mt.Milliseconds);
stopWatch.Reset();
20 How to
This chapter contains tutorials for special topics.
The baseline defines the line between the ascent and descent parameters of the font.
The sum of Ascent and Descent plus an additional line spacing is the height of the font. BaseLine, Height,
Ascent and Descent are global parameters of a specific font design.
SI1280,640;SP1;PU;PA4000,7040;PD;PA4000,5360;PU;
Each character begins with // CHAR #, where # is the ANSI code of the character. The command SI
specifies the AW and LSB values as described above. The command SP is optional and will be ignored. In
the following line up to the next character description there is the geometrical information of the lines. The
point information is stored in HPGL format by using the commands PU, PD and PA.
Header: The header is necessary for the font converter.
// SCAPS FONT FILE
// VERSION 2.0
Baseline: Y Distance from (0,0)
// BASELINE 2000
Examples:
// CHAR 0
SI8000,0;SP1;PU;PA0,0;PA4720,3440,4480,2960,4480,2480,4960,2000,5440,
2000,5920,2240,6160,2720,6160,3200,5680,3680,5200,3680;PU;PD;PA8000,
0,8000,8000,0,8000,0,0;PU;
// CHAR 33
SI1760,640;SP1;PU;PA4000,7040;PD;PA4000,3680;PU;SP1;PU;PA4000,2480;
PD;PA3760,2240,4000,2000,4240,2240,4000,2480;PU;
// CHAR 34
SI1760,640;SP1;PU;PA4240,7040;PD;PA4000,6800,3760,6320,3760,5840,
4000,5600,4240,5840,4000,6080;PU;
// CHAR 35
SI4880,640;SP1;PU;PA4120,8000;PD;PA2440,320;PU;PA5560,8000;PD;PA3880,
320;PU;PA2440,4880;PD;PA5800,4880;PU;PA2200,3440;PD;PA5560,3440;PU;
// CHAR 36
SI4640,640;SP1;PU;PA3520,8000;PD;PA3520,1040;PU;PA4480,8000;PD;
PA4480,1040;PU;SP1;PU;PA5680,6320;PD;PA5200,6800,4480,7040,3520,
7040,2800,6800,2320,6320,2320,5840,2560,5360,2800,5120,3280,4880,
4720,4400,5200,4160,5440,3920,5680,3440,5680,2720,5200,2240,4480,
2000,3520,2000,2800,2240,2320,2720;PU;
// CHAR 37
SI5600,640;SP1;PU;PA6160,7040;PD;PA1840,2000;PU;SP1;PU;PA3040,7040;
PD;PA3520,6560,3520,6080,3280,5600,2800,5360,2320,5360,1840,5840,
1840,6320,2080,6800,2560,7040,3040,7040,3520,6800,4240,6560,4960,
6560,5680,6800,6160,7040;PU;SP1;PU;PA5200,3680;PD;
// CHAR 38
SI6080,640;SP1;PU;PA6400,4880;PD;PA6400,5120,6160,5360,5920,5360,
5680,5120,5440,4640,4960,3440,4480,2720,4000,2240,3520,2000,2560,
2000,2080,2240,1840,2480,1600,2960,1600,3440,1840,3920,2080,4160,
3760,5120,4000,5360,4240,5840,4240,6320,4000,6800,3520,7040,3040,
6800,2800,6320,2800,5840,3040,5120,3520,4400,4720,2720,5200,2240,
5680,2000,6160,2000,6400,2240,6400,2480;PU;
// CHAR 39
SI1280,640;SP1;PU;PA4000,7040;PD;PA4000,5360;PU;
File: The commands New, Load ; Save and Save As are handling *.sff files. Character 0 will always have a
what is stored in the *.sff file. Clicking on the glyph cells highlights the corresponding cell. Double Clicking on
the cell activates the Edit View. The command Convert opens the Convert Dialog.
Transform: The dialog scale allows a global uniform character scale. Baseline, AW and LSB parameters will
be scaled also. The scale origin is (0,0). Character 0 (the reference character) will not be scaled.
For version 1.0 Fonts a scaling factor of 10 leads to comparable results with version 2.0. The outline fields
show the maximal and minimal values of the font in both directions. The outlines should not exceed 10 mm
in both directions. Otherwise you can not calculate with a 10 mm font height.
Spacing: The dialog spacing allows the definition of global calculation parameters for AW and LSB. See
also the chapter "Generate Fonts".
UseAW: The AW parameter will be kept constantly. LSB and RSB will calculated to be equal.
AW = LSB + RSB +(XMAX-XMIN) (LSB==RSB==SB)
SB=(AW-(XMAX-XMIN))/2
This setting leads to monospaced fonts.
Use LSB: The LSB parameter will be kept constantly. LSB and RSB will calculated to be equally.
AW = LSB + RSB +(XMAX-XMIN) (LSB==RSB==SB)
AW=2*SB+(XMAX-XMIN)
This setting leads to variable spaced fonts. The FontExtend X field shows the X-Dimension (XMAX-
XMIN) of the largest character in x-direction inside the font.
Baseline:
With this dialog the user may define the base line of the font. The default value is 2.5 mm.
Edit View: The EditView allows the editing of the glyph polygons and the AW and LSB parameters for this
glyph. You can reach this dialog by double-clicking the corresponding character cell. You can also import a
HPGL,SAF or DXF file and attach it to the character. The outline of the character, the AW and LSB should
not exceed the 10 mm outline box. The base line cannot be changed because this is a global parameter and
applies to all characters in a font. Look to the ScView2DCtrl documentation for more details for the editing
functionality.
Convert:
Parameters:
SCAPS Font File (sff) File that has to be converted into the True Type Format
True Type file Name (ttf) True Type Font file that has to be generated
ClosedToPolyLines The True Type font has closed PolyLines. The WinText2D
entity generation process creates closed PolyLines out of the
character outlines whenever it is possible.
Closed PolyLines will be checked regarding their orientation before they are stored to the True Type Font
file.
Outer PolyLines are oriented counterclockwise, inner PolyLines in the opposite. This is necessary to
allow the Hatch beam compensation algorithm to determine the direction of the compensation as shown
above for the letter '0'.
After filling in the parameters and clicking "Create True Type" button the font has to be installed by
copying the file into the directory WINDOWS\FONTS. Now the font can be used in SAM2D for the
generation of Single Line Characters. You may also have a preview of the font by double clicking on the
*.ttf file inside Windows Explorer. Please make sure that a font with the same name is not already
installed. In this case Windows will always take the installed font for displaying and you can not see the
selected *.ttf file.
The program does not save the current loaded sff file. If you want to convert the current file you have to
save it first.
Adding own property pages:
The font converter allows to add own property pages to the Edit View. The ASCII file sc_font_convert.prp
located inside the SAM system folder can be manipulated. This works in the similar way as adding a property
page by calling of the ScEntityPropertySheet.ScAddPage(Name) command. By default the following pages
are added:
SCAPS.ScEntity InfoPropertyCtrl
SCAPS.ScDimensionPropertyCtrl
SCAPS.ScGeometryPropertyCtrl
SCAPS.ScText2DPropertyCtrl
To add a user property page the following line may be added:
SCAPS.ScUserPropertyCtrl.UserPropertyPageName
where UserPropertyPageName stands for a valid property page registered on the system.
Usage Example: This example describes how to create two icons on the Windows desktop, one starting the
scanner application using card number 0 in YAG mode, the other starting it using card number 1 in CO2
mode.
Install the two cards: First the two cards with the drivers have to be installed properly.
Create two settings files: Within windows explorer, go into folder <SCAPS>\system\ and make two
copies of the existing file sc_light_settings.sam. Rename them to sc_light_settings_yag.sam and
sc_light_settings_co2.sam.
Setup: Start <SCAPS>\tools\sc_setup.exe, go to menu HardwareSettings, select the file
sc_light_settings_yag.sam, press "Load" and set up the card for YAG mode. Save the settings and
repeat this step for the CO2 file.
Create Windows shortcuts: Create two shortcuts of sam_light.exe. Change the name of the shortcuts
to "sam_light YAG" and "sam_light CO2". Right click a shortcut and go to Properties.
Set the command line paramters: Inside the property page of the shortcut, define the program
arguments. In this example we add the following command line parameters:
/ActiveCard=0 /Settingsfile=sc_light_settings_yag.sam
Other settings file: Apply for the "sam_light CO2" shortcut the following command line parameters:
/ActiveCard=1 /Settingsfile=sc_light_settings_co2.sam
The entire string in "Target" should be: C:\scaps\sam2d\samlight\sam_light.exe /ActiveCard=1 /
Settingsfile=sc_light_settings_co2.sam
sc_light_icon.ico
sc_light_logo.bmp
sc_light_name.txt
sc_light_settings.samsc_settings.sam
sc_help_sl_english.chm
sc_resource_settings.sam
Correction files: These are all *.ucf files with corresponding descriptions as *.txt files. A description file
called filename.txt will be installed only if there exists a correction file called filename.ucf, unless the text
file is sc_light_name.txt.
Resource files: These are *.sam files, the names of which are beginning with sc_resource, e.g.
sc_resource_sc_german.sam. Files in the data directory with other names are not valid and will not be
installed.
Controlling the installation of user data: To control the installation of these files, create a text file called
sc_data_info.txt in the data directory. This file contains a line for each file with the following information :
filename=flag : Filename can be one of the names in (*) and where flag can be one of the following
values:
ow : Overwrite, the file on the target system will be overwritten with the corresponding file from the data
directory
au : Ask user, if the file actually exists on the target system the installer will ask the user to overwrite or
not, if the file does not exist on the target system the corresponding file from the data directory will be
copied.
no : No overwrite, if the file actually exists on the target system it will not be overwritten, if the file does
not exist on the target system the corresponding file from the data directory will be copied.
Files in the data directory which are not listed in sc_data_info.txt will be treated as if the no-flag was set.
If sc_data_info.txt is empty or does not exist then all files in the data directory will be treated as if the no-
flag was set.
Example for sc_data_info.txt:
sc_light_icon.ico=au
sc_help_sl_english.chm=ow
Do not type white spaces in front of the filename or in between filename and "=" or in between "="
and the flag.
sc_resource_sc_chinese.sam
sc_resource_settings.sam (referring to sc_resource_sc_chinese.sam)
sc_data_info.txt
When the SAM based application runs and the SAMResourceEditMode is enabled, some EditResource
buttons in the property page of the ScView2DCtrl and in the dialogs of the OpticModul and the
ScOpticModuleCtrl appear. These buttons are the entry to the ResourceEditor. The string in Language is
used to generate the corresponding resource file. The file containing all user defined resources is located
in<SCAPS>\system\ and it is named sc_resource_YOURLANGUAGE.sam. To put your resources from one
PC to another you just need to copy this file and to define the language string within sc_setup.exe.
List view: On the list view the user can select the string that will be edited by clicking on it. The list also
shows strings of the contents of text boxes. These values do not have to be changed.
Text: The text selected in the view list appears in the Text window and can be changed there.
Font: With the button Font it is possible to define a font for the window string. Please make sure that the
selected font is also available on the end user system.
Position: The size and the position of the selected window can be changed.
Status: If Visible is chosen the selected string will be visible for this language. The status is displayed in the
list view.
Edit Strings: This button is the entry to the String Editor for all SAM modules on this PC. Some dialogs have
dynamic string setting. For example the GeometryPropertyPage strings are set depending on the type of the
selected entity. In these cases the strings have to be defined in the string editor. For example the Rectangle
string is defined in string module StandardProp, String ID 11.
Reset All: Imports the default English resources. The current window texts are reset to default English after
pressing the OK button.
ShiftAll: After pressing Apply all strings of the current window are shifted by the values given in X and Y.
Modules: On the left side there is a list with all activated SAM modules. Every module contains specific
strings. To modify the strings it is necessary to select the module, then select the string and then change the
text.
Set: Clicking Set modifies the corresponding string.
The most important strings are inside the Kernel, StandardProp, Optic, OpticCtrl and View2DCtrl
modules. It is not possible to modify the menu for the Standard2D application, because this
application is delivered with the source code and changes have to be done there. The SAMLight
menu can be changed by selecting SAMLight and defining the desired strings. Also for SAMLight it
is necessary to modify the LightCtrls string module. The changes of the String Editor are only
visible after a restart of SAMLight.
1st option:
1. Save the camera image as a bitmap (*.bmp) somewhere on the harddisk.
2. Use the following excerpt of C# source code to blend in a bitmap as View 2D background without creating
an entity in SAMLight:
...
using SAMLIGHT_CLIENT_CTRL_OCXLib;
...
axScSamlightClientCtrl1.ScSetLongValue( ( int )
ScComSAMLightClientCtrlValueTypes.scComSAMLightClientCtrlLongValueTypeBmpAlphaBlendCenterPointX,
0 );
axScSamlightClientCtrl1.ScSetLongValue( ( int )
ScComSAMLightClientCtrlValueTypes.scComSAMLightClientCtrlLongValueTypeBmpAlphaBlendCenterPointY,
0 );
axScSamlightClientCtrl1.ScSetLongValue( ( int )
ScComSAMLightClientCtrlValueTypes.scComSAMLightClientCtrlLongValueTypeBmpAlphaBlendBmpDimX, 300 );
axScSamlightClientCtrl1.ScSetLongValue( ( int )
ScComSAMLightClientCtrlValueTypes.scComSAMLightClientCtrlLongValueTypeBmpAlphaBlendBmpDimY, 300 );
axScSamlightClientCtrl1.ScSetStringValue( ( int )
ScComSAMLightClientCtrlValueTypes.scComSAMLightClientCtrlStringValueTypeBmpAlphaBlendPathBmp, "C:\
\TestBitmap.bmp" );
axScSamlightClientCtrl1.ScSetLongValue( ( int )
ScComSAMLightClientCtrlValueTypes.scComSAMLightClientCtrlLongValueTypeBmpAlphaBlendSourceConstantAl
pha, 128 );
This code sample assumes that the path of the bitmap file is C:\TestBitmap.bmp and assumes an X and Y
dimension of 300 pixels each. For the other parameters please refer to the manual chapter
Client_Control_Interface. There you will find the explanation for the used Client Control calls.
3. Once a bitmap has been loaded into the View2D it can always be updated by the single command:
axScSamlightClientCtrl1.ScSetStringValue( ( int )
ScComSAMLightClientCtrlValueTypes.scComSAMLightClientCtrlStringValueTypeBmpAlphaBlendPathBmp, "C:\
\TestBitmap.bmp" );
2nd option:
1. Save the camera image as a bitmap (*.bmp) somewhere on the harddisk (for example C:
\TestBitmap.bmp). If the X, Y dimension or position of this bitmap does not fit it can be adjusted in
Extended dialog of the background image. This sample bitmap has to have an unique entity name. For
example "BackgroundImage" which can be set in the Entity Info property page.
2. The camera should now update the bitmap (for example C:\TestBitmap.bmp).
3. Use the following excerpt of C# source code to automate the re-import of the bitmap.
axScSamlightClientCtrl1.ScImport( "BackgroundImage", "C:\\TestBitmap.bmp", "bmp", 1, ( int )
ScComSAMLightClientCtrlFlags.scComSAMLightClientCtrlImportFlagBitmapReimport );
axScSamlightClientCtrl1.ScSetEntityLongData( "BackgroundImage", ( int )
ScComSAMLightClientCtrlFlags.scComSAMLightClientCtrlLongDataIdEntitySetAsBackgroundEntity, 1 );
For further details please refer to the SAMLight manual chapter Client_Control_Interface.
2nd option: In case the used job file contains text entities like Text2D, serial number, date/time or bar code
Extended settings should be
deactivated.
Generate single characters: deactivating this check box can accelerate the generation or all kind of
text entities, especially if many text entities are used in a job file.
Figure 362: check boxes at Text2D property page Extended settings for accelerating text generation of SAMLight
3rd option: In case SAMLight Client Control programming is used for automating and remote controlling of
SAMLight, the SAMLight Client Control commands and constants described at Optimize Performance can
be used.
21 Backgrounds
In this chapter miscellaneous theoretical explanations are given for scanner card and program specific
functioning.
In the following only the X-Mirror is covered, the Y-Mirror is completely analogue.
The move command for the X-Mirror looks as follows:
Since the controller card is not able to output values in an arbitrary short time period it has to approximate
the desired curve in so called 'microsteps' with a time length of StepPeriod – typically 10 to 50 µs and a
position change of StepSize. The requested speed v is the quotient from StepSize/StepPeriod.
Since the X-Scanner with attached mirror is an inert system it can not follow the controller commands in
short time but has some time lag.
Due to this fact a command input like shown below would lead to the result that the X-Mirror would never
reach position P2.
For this reason the controller card inserts a user definable delay between the end of the last vector and the
start of the new vector.
Since the X-Mirror can not accelerate in an arbitrary short time to the requested speed or deaccelerate to
zero speed, two additional delays are used to control the delayed switch on and off of the laser gate signal.
These are the laser on and the laser off delay.
LaserON delay: Time beginning from the output of the first microstep the controller card waits before it
switches on the laser.
LaserOFF delay: Time beginning from the output of the last microstep the controller card waits before it
switches off the laser.
Example for laser delays:
3D Surface
3D surface toolbar
P mapping
C
Optic. Order: - XY field center, XY gain,
SAMLight
rotation, XY offset (with gain), XY invert, XY flip
lens settings
z-Offset
PC Z bit Z
value Correction
calculation Defocus [mm]
[O3]
XY head Correction
specific Flash: Available Flash Control Interface commands: TRH
optic matrix (InfoView)
Z head Correction
specific Flash: Available Flash Control Interface commands: TRH
optic matrix (InfoView)
U
S MOTF [OM] Marking on the Fly
C AnalogIn [AI] Analog In
Wobble Wobble
USC Z bit Z
value Correction
calculation Defocus [mm]
[O3]
correction file
Correction
(*.ucf)
Z value of *.ucf: please refer to [ZV]
mapping
21.3 Pixelmode
This chapter describes how the scanning of bitmaps works with the USC-1 and the RTC3 scanner card. The
USC-1and RTC3 card provide a special mode for raster images (Bitmaps).
Each pixel inside a bitmap has the same X and Y dimension dx,dy. dx and dy itself may be different. The
bitmap consists of Nx pixels in X direction and Ny pixels in Y direction. Each pixel has a Grayvalue G (x,y)
from 0 to 1 which is typically transformed to a Grayvalue range from 0 to 255.
The USC-1 and RTC3 raster modes allow to move the scanner across the bitmap by simultaneously
modulating the laser control signal. Within this chapter it is assumed that the scanner movement is
performed like shown below.
The scanner starts at the lower left corner, moves over the first line (X-direction) with a defined speed, jumps
back to the start of the second line and so on.
Special mode for RTC3 and RTC4 card: If the hardware mode is selected the RTC3 provides two different
modes for the movement of the scanner itself. In Mode 0 (shown below for the first line) every pixel position
is reached within one scanner step command.
Then the scanner stays at the pixel a certain time before it jumps to the next location. In Mode 1 the scanner
moves over the pixels with a constant speed applying many microsteps between the single pixels. In the
following scanner mode 1 (constant speed over the pixel line) is assumed.
For the scanner card, Tp are multiples of 10 µs. For PWM the pulse with PW inside Tp is calculated
according the following formula:
LON has the special effect that it offsets the start of the pulse within Tp.
Amplitude Modulation (AM)
For AM the GrayScaleValue will be transformed linearly to the analog output value.
Analogoutput = GrayScaleValue * MaxOutput
MaxOutput corresponds to maximal achievable Output voltage of the Digital to Analog Converter Output.
The apple.bmp consists of a gray scale bitmap with 255 different possible gray scale values G (x,y). After
loading the bitmap the user may scale it according to his needs. Depending on the X and Y dimension and
Nx, Ny the bitmap will have a specific dx,dy value for each pixel. To prepare the bitmap for the scanner
output the user has to generate a so called scanner bitmap out of the original bitmap. This is done with the
help of the Bitmap property page.
For an original Gray Scale bitmap there are two possibilities to generate a scanner bitmap:
With this method the gray scale values will be approximated by specific placements of black and white
pixels to give the impression of gray values. This is a similar method as with a Black/White LaserJet.
b) GrayScale method:
With this method the gray scale values will be kept when transforming them to the scanner bitmap.
Dither step: For both methods a so called Dither step parameter can be selected which defines the dx and
dy value (which are both equal to Dither step) for each pixel inside the scanner bitmap. The original pixel
number Nx,Ny will be changed to new ones Nx=DX/DitherStep with DX as the X Dimension of the bitmap,
and Ny=DY/Ditherstep respectively. With this a gray scale bitmap can be transformed into larger pixel size,
for example:
Delays 507
Index -E-
Edit Pens 143
-2- Drill Settings 155
Main 145
2D Transformations Miscellaneous Settings 152
By keyboard 262 Scanner Settings 147
Edit Resource
-3- Dialog 502
String Editor 503
3D Transformations 264 Element Info 271
Entity List 202
-A- Overview 202
Point Editor 207
Access Rights 137 Entity Offset 357
Alignment 196 Entity Property Sheet 216
Text2D 252 Executable 256
Array Copy 173 Export 284
Assembly Line 333 External Trigger 287
AutoCal 260 Extras 176
-B- -F-
Barcode 221 F1 Help 116
Data Matrix 226 Flash 337
Beam Compensation 187 Fonts
Bitmap 180, 231 Converter 491
Extended 235 Generate 489
Marking Bidirectional 236 Scaps Font Format 490
Break Angle 152
-G-
-C-
Geometry Objects 219
Camera 183 Grid 104
Code Format
Barcode 222 -H-
Date Time 248
Enable~ 226 Home Jump Style 162
Serial Number 241
Command Line Parameters 498 -I-
Control
Objects 254 Import 274
RS232 257 Advanced 278
String Mode 257 File Formats 283
Indexing 202
-D- Installation 350, 355
User Data 500
Data Wizard 187 IO Job Selection 295
-T-
Teach Reference 176
Text2D
Properties 252
Timeinfo 285
Timer 254
Toolbars 104
Camera Toolbar 183
Extras 196
File Toolbar 183
Geometry Object 185
Object Toolbar 186
Overview 182
Special Sequences 197
View Level Toolbar 184
Trigger 259
-U-
Use ASCII for Serialization 244
Use Pen Colors 280
Use Simple Fonts 489
User Interface 168
User Level 136
User Login 182
-V-
View 2D
Operations 209
Overview 209
Print Preview 215