<< Click to Display Table of Contents > 

Client Control Interface Manual > Programming Examples > Save Splitted Job as Tiles

Save Splitted Job as Tiles
Previous pageReturn to chapter overviewNext page

The following examples shows how to split a job file and save it as an entity list of single split tiles with full access, which can be used as a basis to manually setup a split job file according to own needs (motion entities have to be added manually). To use this example a splitting mode with reasonable splitting parameters and motion axes has to be defined in SAMLight before.

 

Save Splitted Job as Tiles

 

cci.ScExecCommand( ( intScComSAMLightClientCtrlExecCommandConstants.scComSAMLightClientCtrlExecCommandNewJob );

 

cci.ScLoadJob( Environment.ExpandEnvironmentVariables( @"%SCAPS_SAM%" ) + "\\jobfiles\\demo.sjf", 1, 1, 0 );

ScCenterEntityByEntityName( "" );

 

cci.ScExecCommand( ( int ) ScComSAMLightClientCtrlExecCommandConstants.scComSAMLightClientCtrlExecCommandResplitJob ); // scComSAMLightClientCtrlExecCommandResplitJob = 13

 

cci.ScSetStringValue( ( int ) ScComSAMLightClientCtrlValueTypes.scComSAMLightClientCtrlStringValueTypeSaveSplitsJobFileName, Environment.ExpandEnvironmentVariables( @"%SCAPS_SAM%" ) + "\\jobfiles\\demo_splitted_as_tiles.sjf" );

 

cci.ScExecCommand( ( int )ScComSAMLightClientCtrlExecCommandConstants.scComSAMLightClientCtrlExecCommandSaveSplitsAsEntities ); // scComSAMLightClientCtrlExecCommandSaveSplitsAsEntities = 38

 

cci.ScLoadJob( Environment.ExpandEnvironmentVariables( @"%SCAPS_SAM%" ) + "\\jobfiles\\demo_splitted_as_tiles.sjf", 1, 1, 0 );

ScCenterEntityByEntityName( "" );

}

 

private long ScCenterEntityByEntityName( string entityname )

{

    double MIN_X = cci.ScGetWorkingArea( 0 ); // SC_SAMLIGHT_OUTLINE_INDEX_MIN_X = 0

    double MIN_Y = cci.ScGetWorkingArea( 1 ); // SC_SAMLIGHT_OUTLINE_INDEX_MIN_Y = 1

    double MAX_X = cci.ScGetWorkingArea( 3 ); // SC_SAMLIGHT_OUTLINE_INDEX_MAX_X = 3

    double MAX_Y = cci.ScGetWorkingArea( 4 ); // SC_SAMLIGHT_OUTLINE_INDEX_MAX_Y = 4

 

    double CENTER_WORKING_AREA_X = ( MAX_X + MIN_X ) / 2;

    double CENTER_WORKING_AREA_Y = ( MAX_Y + MIN_Y ) / 2;

 

    double min_x = cci.ScGetEntityOutline( entityname, 0 ); // scComSAMLightClientCtrlOutlineIndexMinX = 0

    double min_y = cci.ScGetEntityOutline( entityname, 1 ); // scComSAMLightClientCtrlOutlineIndexMinY = 1

    double max_x = cci.ScGetEntityOutline( entityname, 3 ); // scComSAMLightClientCtrlOutlineIndexMaxX = 3

    double max_y = cci.ScGetEntityOutline( entityname, 4 ); // scComSAMLightClientCtrlOutlineIndexMaxY = 4

 

    double center_entity_outline_x = ( max_x + min_x ) / 2;

    double center_entity_outline_y = ( max_y + min_y ) / 2;

 

    return cci.ScTranslateEntity( entityname, CENTER_WORKING_AREA_X - center_entity_outline_x, CENTER_WORKING_AREA_Y - center_entity_outline_y, 0 );

}

Table 419: Save Splitted Job as Tiles