激光打标中,我们经常会遇到一些打多个图形(在Samlight中我们通常叫做实体Entity),并且每次打标都有可能要修改每一个图形的内容,典型案例,如打IC芯片或者其他类似整列图形的二维码,如下图所示,每次打标之前,都要修改每一个二维码的码值。
编程中我们要注意以下几点,才能提高刷新速度
1. 首先请保证Samlight升级到
或者更新版本。
2. 注意刷新的时候,务必关闭掉刷新Samlight的UI显示和实体更新功能。
另外,ScSetEntityStringData函数的第一个Flag参数支持或运算,那么将多个Flag合成执行,大大降低了函数调用次数,执行效率得到大幅提高。
如下面这段代码:
AxScSamlightClientCtrl m_samlight = axScSamlightClientCtrl1;
for( int i = 1; i < 55; i++ )
{
string index = Convert.ToString( i );
string m_num2_cs_name = index + ”b”;
string m_num3_cs_name = index + ”c”;
string m_num4_cs_name = index + ”d”;
string m_num5_cs_name = index + ”e”;
string m_num2_cs = ”bbb”;
string m_num3_cs = ”ccc”;
string m_num4_cs = ”ddd”;
string m_num5_cs = m_num2_cs + m_num3_cs + m_num4_cs;
m_samlight.ScSetEntityStringData( m_num2_cs_name, ( int)ScComSAMLightClientCtrlFlags.scComSAMLightClientCtrlStringDataIdFlagDontUpdateView |
(int)ScComSAMLightClientCtrlFlags.scComSAMLightClientCtrlStringDataIdFlagToplevelOnly |
( int)ScComSAMLightClientCtrlFlags.scComSAMLightClientCtrlStringDataIdTextText,
m_num2_cs );
m_samlight.ScSetEntityStringData( m_num3_cs_name, ( int)ScComSAMLightClientCtrlFlags.scComSAMLightClientCtrlStringDataIdFlagDontUpdateView |
( int)ScComSAMLightClientCtrlFlags.scComSAMLightClientCtrlStringDataIdFlagToplevelOnly |
( int)ScComSAMLightClientCtrlFlags.scComSAMLightClientCtrlStringDataIdTextText,
m_num3_cs );
m_samlight.ScSetEntityStringData( m_num4_cs_name, ( int)ScComSAMLightClientCtrlFlags.scComSAMLightClientCtrlStringDataIdFlagDontUpdateView |
( int)ScComSAMLightClientCtrlFlags.scComSAMLightClientCtrlStringDataIdFlagToplevelOnly |
( int)ScComSAMLightClientCtrlFlags.scComSAMLightClientCtrlStringDataIdTextText,
m_num4_cs );
m_samlight.ScSetEntityStringData( m_num5_cs_name, ( int)ScComSAMLightClientCtrlFlags.scComSAMLightClientCtrlStringDataIdFlagDontUpdateView |
( int)ScComSAMLightClientCtrlFlags.scComSAMLightClientCtrlStringDataIdFlagToplevelOnly |
( int)ScComSAMLightClientCtrlFlags.scComSAMLightClientCtrlStringDataIdTextText,
m_num5_cs );
}
m_samlight.ScExecCommand( (int) ScComSAMLightExecCommandConstants.scComSAMLightClientCtrlExecCommandUpdateViewNow );
m_samlight.ScExecCommand( (int) ScComSAMLightExecCommandConstants.scComSAMLightClientCtrlExecCommandFitViewToAllEntities );
}