<< Click to Display Table of Contents > 

Client Control Interface Manual > Option SAM3D > Specific Commands

Specific Commands
Previous pageReturn to chapter overviewNext page

Change View3D

Check 2D/3D

Entity Outline SAM3D

Hatch Layer Solid Parameters

Hatch Layer Solid Global Parameters

Hatch Var Angle

Layer

Layer Count

Outline 3D

Pause Marking

Prepare Layer

Rotate Entity (3D)

Screenshot of current 2D layer

Screenshot of current View3D

Slice

Slice from text file

 

Change View3D

Set

Get

DLL Function

int CCI_Return = ScExecCommand(int Cmd_ID)

ASCII Function

int CCI_Return = ScCciExecCommand(int Cmd_ID)

Description

Set View3D to Standard 3D View.

Cmd_ID

Type: int

ID:

Location: ScComSAMLightClientCtrlExecCommandConstants

scComSAMLightClientCtrlExecCommandView3DViewIso

26

CCI_Return

Type: int

CCI return number, see error list.

Notes

The current View3D can also be changed via FitViewToAllEntities and FitViewToSelectedEntities.

C# Example: Set View3D to standard 3DView:

 

int CCI_Return = cci.ScExecCommand((int)ScComSAMLightClientCtrlExecCommandConstants.scComSAMLightClientCtrlExecCommandView3DViewIso);

Table 310: Change View3D

Check 2D/3D
 

Set

Get

DLL Function

int SAM3D_Mode = ScGetLongValue(int Value_Type)

ASCII Function

int SAM3D_Mode = ScCciGetLongValue(int Value_Type)

Description

Check if SAMLight is running in SAM3D mode.

Value_Type

Type: int

ID:

Location: ScComSAMLightClientCtrlValueTypes

scComSAMLightClientCtrlLongValueType3D

71

SAM3D_Mode

Type: int

Unit: none

0: SAMLight runs in 2D Mode.

1: SAMLight runs in SAM3D mode.

Notes

-

C# Example: Check if SAMLight is running in SAM3D mode:

 

int SAM3D_Mode = cci.ScGetLongValue( ( int )ScComSAMLightClientCtrlValueTypes.scComSAMLightClientCtrlLongValueType3D );

Table 311: Check 2D/3D

Entity Outline SAM3D

☐  Set

☒  Get

DLL Function

double Value = ScGetEntityOutline(string Entity_Name, int Index)

ASCII Function

double Value = ScCciGetEntityOutline(string Entity_Name, int Index)

Description

Returns the outline of the current slice of the ScLayerSolid specified by Entity_Name. The following constants can be set for Index to specify which outline value has to be returned.

Entity_Name

Type: string

Unit: none

If Entity_Name is an empty string, the function returns the job outline.

Index

Type: int

ID:

Location: ScComSAMLightClientCtrlExecCommandConstants

scComSAMLightClientCtrlOutlineSliceIndexMinX

6

The smallest x coordinate.

scComSAMLightClientCtrlOutlineSliceIndexMinY

7

The smallest y coordinate.

scComSAMLightClientCtrlOutlineSliceIndexMinZ

8

The smallest z coordinate.

scComSAMLightClientCtrlOutlineSliceIndexMaxX

9

The biggest x coordinate.

scComSAMLightClientCtrlOutlineSliceIndexMaxY

10

The biggest y coordinate.

scComSAMLightClientCtrlOutlineSliceIndexMaxZ

11

The biggest z coordinate.

Value

Type: double

Unit: [mm]*

The corresponding value.

Notes

The default unit is mm, but the user can select a different unit.

C# Example: Get the biggest x coordinate of the whole job:

 

double Max_X = cci.ScGetEntityOutline( "", 9 );

Table 312: Entity Outline SAM3D

Hatch Layer Solid Parameters
 

Set

Get

DLL Function

int CCI_Return = ScSetEntityDoubleData(string Entity_Name, int Data_ID, double Parameter)

int CCI_Return = ScGetEntityDoubleData(string Entity_Name, int Data_ID, ref double Parameter)

ASCII Function

int CCI_Return = ScCciSetEntityDoubleData(string Entity_Name, int Data_ID, double Parameter)

double Parameter = ScCciGetEntityDoubleData(string Entity_Name, int Data_ID)

Description

Set or get various values for the hatch solid layer.

Entity_Name

Type: string

Unit: none

Specify the entity based on the name.

Data_ID

Type: int

Location: ScComSAMLightClientCtrlFlags

scComSAMLightClientCtrlDoubleDataIdHatchLayerSolidUpDownSkinBeamComp

101

Set the beam compensation value [mm].

scComSAMLightClientCtrlDoubleDataIdHatchLayerSolidMinUpSkinArea

102

Set the minimum upskin area [mm²].

scComSAMLightClientCtrlDoubleDataIdHatchLayerSolidMinDownSkinArea

103

Set the minimum downskin area [mm²].

scComSAMLightClientCtrlDoubleDataIdHatchLayerSolidReduceUp

104

Set the reduce up [mm].

scComSAMLightClientCtrlDoubleDataIdHatchLayerSolidReduceDown

105

Set the reduce down [mm].

Parameter

Type: double

Unit: depends on constant

Set the required value.

CCI_Return

Type: int

CCI return number, see error list.

Notes

Styles have to be enabled first.

C# Example: Set the beam compensation value to 55.55:

 

int CCI_Return = cci.ScSetEntityDoubleData( "Any_Entity", ( int )ScComSAMLightClientCtrlFlags.scComSAMLightClientCtrlDoubleDataIdHatchLayerSolidUpDownSkinBeamComp, 55.55 );

C# Example: Get the beam compensation value:

 

double comp = 0;

int CCI_Return = cci.ScGetEntityDoubleData("", (int)ScComSAMLightClientCtrlFlags.scComSAMLightClientCtrlDoubleDataIdHatchLayerSolidUpDownSkinBeamComp, ref comp);

Table 313: Hatch Layer Solid Parameters

Hatch Layer Solid Global Parameters
 

Set

Get

DLL Function

int CCI_Return = ScSetEntityLongData(string Entity_Name, int Data_ID, int Parameter)

int Parameter = ScGetEntityLongData(string Entity_Name, int Data_ID)

ASCII Function

int CCI_Return = ScCciSetEntityLongData(string Entity_Name, int Data_ID, int Parameter)

int Parameter = ScCciGetEntityLongData(string Entity_Name, int Data_ID)

Description

 

Entity_Name

Type: string

Unit: none

Specify the entity based on the name.

Data_ID

Type: int

Location: ScComSAMLightClientCtrlFlags

scComSAMLightClientCtrlLongDataIdHatchLayerSolidNumLoops

136

Set the num loops value.

scComSAMLightClientCtrlLongDataIdHatchLayerSolidPointOffset

137

Set the point offset value.

scComSAMLightClientCtrlLongDataIdHatchLayerSolidBeamCompOutToIn

139

Set the marking order for beam compensated lines.

Parameter

Type: int

Unit: none

Set the required value.

CCI_Return

Type: int

CCI return number, see error list.

Notes

-

C# Example: Set the num loops value to 55:

 

int CCI_Return = cci.ScSetEntityLongData("", (int)ScComSAMLightClientCtrlFlags.scComSAMLightClientCtrlLongDataIdHatchLayerSolidNumLoops, 55);

C# Example: Get the num loops value:

 

int Num_Loops = cci.ScGetEntityLongData( "Any_Entity", ( int )ScComSAMLightClientCtrlFlags.scComSAMLightClientCtrlLongDataIdHatchLayerSolidNumLoops );

Table 314: Hatch Layer Solid Global Parameters

Hatch Var Angle
 

Set

Get

DLL Function

int CCI_Return = ScSetEntityDoubleData(string Entity_Name, int Data_ID, double Hatch_Var_Angle)

int CCI_Return = ScGetEntityDoubleData(string Entity_Name, int Data_ID, ref double Hatch_Var_Angle)

ASCII Function

int CCI_Return = ScCciSetEntityDoubleData(string Entity_Name, int Data_ID, double Hatch_Var_Angle)

double Hatch_Var_Angle = ScCciGetEntityDoubleData(string Entity_Name, int Data_ID)

Description

Set or get variable hatch angles of an entity of the selected hatch pair.

Entity_Name

Type: string

Unit: none

Specify the required entity based on the name.

Data_ID

Type: int

ID:

Location: ScComSAMLightClientCtrlFlags

scComSAMLightClientCtrlDoubleDataIdHatchVarAngle1

95

Variable hatch angle 1

scComSAMLightClientCtrlDoubleDataIdHatchVarAngle2

96

Variable hatch angle 2

Hatch_Var_Angle

Type: int

Unit: [deg]

Value of the variable hatch angle

CCI_Return

Type: int

CCI return number, see error list.

Notes

HatchPair has to be set first.

C# Example: Set variable hatch angle 1 to 20.0:

 

int CCI_Return = cci.ScSetEntityDoubleData( "Sphere", ( int )ScComSAMLightClientCtrlFlags.scComSAMLightClientCtrlDoubleDataIdHatchVarAngle1, 20.0 );

C# Example: Get current variable hatch angle 1:

 

double HatchVarAngle1 = 0.0;

int CCI_Return = cci.ScGetEntityDoubleData( "Sphere", ( int )ScComSAMLightClientCtrlFlags.scComSAMLightClientCtrlDoubleDataIdHatchVarAngle1, ref HatchVarAngle1 );

Table 315: Hatch Var Angle

Layer
 

Set

Get

DLL Function

int CCI_Return = ScSetLongValue(int Value_Type, int Parameter)

int Parameter = ScGetLongValue(int Value_Type)

ASCII Function

int CCI_Return = ScCciSetLongValue(int Value_Type, int Parameter)

int Parameter = ScCciGetLongValue(int Value_Type)

Description

Set or get different layer numbers.

Value_Type

Type: int

ID:

Location: ScComSAMLightClientCtrlValueTypes

scComSAMLightClientCtrlLongValueTypeGetTotalSlices

44

Total number of layers in job. There is no set function.

scComSAMLightClientCtrlLongValueTypeSliceFrom

45

First layer to be marked

scComSAMLightClientCtrlLongValueTypeSliceTo

46

Last layer to be marked

scComSAMLightClientCtrlLongValueTypeCurrentSliceNum

47

Current layer

Parameter

Type: int

Unit: none

The corresponding value.

CCI_Return

Type: int

CCI return number, see error list.

Notes

-

C# Example: Set current layer to 3:

 

int CCI_Return = cci.ScSetLongValue( ( int )ScComSAMLightClientCtrlValueTypes.scComSAMLightClientCtrlLongValueTypeCurrentSliceNum, 3 );

C# Example: Get current layer:

 

int Current_Layer = cci.ScGetLongValue( ( int )ScComSAMLightClientCtrlValueTypes.scComSAMLightClientCtrlLongValueTypeCurrentSliceNum );

Table 316: Layer

Layer Count
 

Set

Get

DLL Function

int Layer_Count = ScGetEntityLongData(string Entity_Name, int Data_ID)

ASCII Function

int Layer_Count = ScCciGetEntityLongData(string Entity_Name, int Data_ID)

Description

Get the total number of layers from the LayerSolid.

Entity_Name

Type: string

Unit: none

Specify the entity based on the name.

Data_ID

Type: int

Location: ScComSAMLightClientCtrlFlags

scComSAMLightClientCtrlLongDataIdEntityLayerCount

111

Layer_Count

Type: int

Unit: none

Layer counter.

CCI_Return

Type: int

CCI return number, see error list.

Notes

-

C# Example: Get layer counter:
 

int Layer_Count = cci.ScGetEntityLongData("", (int)ScComSAMLightClientCtrlFlags.scComSAMLightClientCtrlLongDataIdEntityLayerCount);

Table 317: Layer Count

Outline 3D
 

Set

Get

DLL Function

int CCI_Return = ScSetEntityOutline3D(string Entity_Name, double Min_X, double Min_Y, double Max_X, double Max_Y, double Min_Z, double Max_Z, int Flag)

int CCI_Return = ScGetEntityOutline3D(string Entity_Name, ref double Min_X, ref double Min_Y, ref double Max_X, ref double Max_Y, ref double Max_Z, ref double Max_Z, int Flag)

ASCII Function

int CCI_Return = ScCciSetEntityOutline3D(string Entity_Name, double Min_X, double Min_Y, double Max_X, double Max_Y, double Min_Z, double Max_Z, int Flag)

double Min_X double Min_Y double Max_X double Max_Y double Min_Z double Max_Z = ScCciGetEntityOutline3D(string Entity_Name)

Description

Set or get the 3D outlines of all entities named Entity_Name.

Entity_Name

Type: string

Unit: none

If Entity_Name is an empty string, the function returns the outline of the whole job.

Min_X

Type: double

Unit: [mm]*

The smallest x coordinate.

Min_Y

Type: double

Unit: [mm]*

The smallest y coordinate.

Max_X

Type: double

Unit: [mm]*

The biggest x coordinate.

Max_Y

Type: double

Unit: [mm]*

The biggest y coordinate.

Min_Z

Type: double

Unit: [mm]*

The smallest z coordinate.

Max_Z

Type: double

Unit: [mm]*

The biggest z coordinate.

Flag

Type: int

Flag:

Location: ScComSAMLightClientCtrlFlags

scComSAMLightClientCtrlSetOutlineNoMove

0x1

Left down point will stay at current position and the rest is scaled.

scComSAMLightClientCtrlSetOutlineNoSize

0x2

All values should be the same value to define the new center

CCI_Return

Type: int

CCI return number, see error list.

Note

The default unit is mm, but the user can select a different unit.

ScSetEntityOutline3D does not work for ScLayerSolid entities.

When 0 is used as Flag, the object will be scaled and positioned like defined.

For this command the flags cannot be combined.

C# Example: Set new 3D outline for the ScTriaMesh3D entity "Sphere":
 

int CCI_Return = cci.ScSetEntityOutline3D( "Sphere", 0.0, 0.0, 10.0, 10.0, 0.0, 10.0, 0 );

C# Example: Get current 3D outline of entity "Sphere":

 
double Min_X, Min_Y, Max_X, Max_Y, Min_Z, Max_Z;

Min_X = Min_Y = Max_X = Max_Y = Min_Z = Max_Z = 0.0;

int CCI_Return = cci.ScGetEntityOutline3D( "Sphere", ref Min_X, ref Min_Y, ref Max_X, ref Max_Y, ref Min_Z, ref Max_Z );

Table 318: Outline 3D

Pause Marking
 

Set

Get

DLL Function

int CCI_Return = ScSetLongValue(int Value_Type, int Pause)

int Pause = ScGetLongValue(int Value_Type)

ASCII Function

int CCI_Return = ScCciSetLongValue(int Value_Type, int Pause)

int Pause = ScCciGetLongValue(int Value_Type)

Description

Set function: Continue/Pause current job execution.

Get function: Get current pause state.

Value_Type

Type: int

ID:

Location: ScComSAMLightClientCtrlValueTypes

scComSAMLightClientCtrlLongValueTypePauseBuild

98

Pause

Type: int

Unit: none

Set function:

o0: Continue marking.

o1: Pause marking.

Get function:

o0: Marking is not paused.

o1: Marking will be paused. Current layer will be finished before.

o2: Marking is paused.

CCI_Return

Type: int

CCI return number, see error list.

Notes

-

C# Example: Pause current job execution:

 

int CCI_Return = cci.ScSetLongValue( ( int )ScComSAMLightClientCtrlValueTypes.scComSAMLightClientCtrlLongValueTypePauseBuild, 1 );

C# Example: Get current pause state:

 

int Pause = cci.ScGetLongValue( ( int )ScComSAMLightClientCtrlValueTypes.scComSAMLightClientCtrlLongValueTypePauseBuild );

Table 319: Pause Marking

Prepare Layer

 

Set

 Get

DLL Function

int CCI_Return = ScSetLongValue(int Value_Type, int Layer)

ASCII Function

int CCI_Return = ScCciSetLongValue(int Value_Type, int Layer)

Description

Prepare the selected layer for marking.

Value_Type

Type: int

ID:

Location: ScComSAMLightClientCtrlValueTypes

scComSAMLightClientCtrlLongValueTypePrepareLayer

67

Layer

Type: int

Unit: none

Set the layer number.

CCI_Return

Type: int

CCI return number, see error list.

Notes

-

C# Example: Prepare layer 4:

 

int CCI_Return = cci.ScSetLongValue((int)ScComSAMLightClientCtrlValueTypes.scComSAMLightClientCtrlLongValueTypePrepareLayer, 4);

Table 320: Prepare layer

Rotate Entity 3D
 

☒ Set

☐ Get

DLL Function

int CCI_Return = ScRotateEntity3D(string Entity_Name, double P_X, double P_Y, double P_Z, double V_X, double V_Y, double V_Z, double Angle)

ASCII Function

int CCI_Return = ScCciRotateEntity3D(string Entity_Name, double P_X, double P_Y, double P_Z, double V_X, double V_Y, double V_Z, double Angle)

Description

Rotates Entity_Name around the axis of rotation by the given Angle.

The axis of rotation is defined by two points:

Point P (P_X, P_Y, P_Z)

Point Q (P_X+V_X, P_Y+V_Y, P_Z+V_Z).

Entity_Name

Type: string

Unit: none

Specify the entity which should be rotated.

P_X

Type: double

Unit: [mm]*

X position of the start point of the rotation axis.

P_Y

Type: double

Unit: [mm]*

Y position of the start point of the rotation axis.

P_Z

Type: double

Unit: [mm]*

Z position of the start point of the rotation axis.

V_X

Type: double

Unit: [mm]*

X position of the end point of the rotation axis.

V_Y

Type: double

Unit: [mm]*

Y position of the end point of the rotation axis.

V_Z

Type: double

Unit: [mm]*

Z position of the end point of the rotation axis.

Angle

Type: double

Unit: [deg]

Rotation angle, counterclockwise around the rotation vector for positive angles.

CCI_Return

Type: int

CCI return number, see error list.

Notes

The default unit is mm, but the user can select a different unit.

C# Example: Rotate entity Star in the XY plane around the center (X = 4, Y = 5) by 30 degrees:

 
int CCI_Return = cci.ScRotateEntity3D( "Star", 4.0, 5.0, 0.0, 0.0, 0.0, 1.0, 30.0 );

Table 321: Rotate Entity 3D

Screenshot of current 2D layer
 

Set

Get

DLL Function

int CCI_Return = ScSetStringValue(int Value_Type, string Screenshot_Path)

ASCII Function

int CCI_Return = ScCciSetStringValue(int Value_Type, string Screenshot_Path)

Description

Take a screenshot of current 2D layer.

Value_Type

Type: int

ID:

Location: ScComSAMLightClientCtrlValueTypes

scComSAMLightClientCtrlStringValueTypeSaveLayerAdjustableDPI

24

Screenshot_Path

Type: string

Unit: none

Defines the path, where the screenshot is saved to. The path must include the file extension, which must be ".bmp".

CCI_Return

Type: int

CCI return number, see error list.

Notes

The pixel density of the screenshot must be defined with SaveView2DBitmapDPI.

The screenshot contains a defined section of the View3D, defined by SaveView2DBitmapX, SaveView2DBitmapY, SaveView2DBitmapXW and SaveView2DBitmapYW.

The line drawing width can be changed with SaveView2DBitmapMode.

The screenshot is black and white.

This CCI command even works if SAMLight is hidden.

C# Example: Make a screenshot of current 2D layer in SAM3D:

 

int CCI_Return = cci.ScSetStringValue( ( int )ScComSAMLightClientCtrlValueTypes.scComSAMLightClientCtrlStringValueTypeSaveLayerAdjustableDPI, @"F:\screenshot.bmp" );

Table 322: Screenshot of current 2D layer

Screenshot of current View3D
 

Set

Get

DLL Function

int CCI_Return = ScSetStringValue(int Value_Type, string Screenshot_Path)

ASCII Function

int CCI_Return = ScCciSetStringValue(int Value_Type, string Screenshot_Path)

Description

Take a screenshot of the current View3D.

Value_Type

Type: int

ID:

Location: ScComSAMLightClientCtrlValueTypes

scComSAMLightClientCtrlStringValueTypeSaveView3DVariableSize

25

The width of the screenshot is defined by SaveView2DBitmapVariableSize.
The larger axis (usually x) is set to a fixed value, the aspect ratio is kept.

scComSAMLightClientCtrlStringValueTypeSaveView3DFull

26

Size of the screenshot is 1:1 from the current View3D.

Screenshot_Path

Type: string

Unit: none

Define the required file name.

CCI_Return

Type: int

CCI return number, see error list.

Notes

The screenshot contains the section of the current View3D.

The screenshot is colored.

This CCI command only works if SAMLight is visible and not hidden by something else.

The current View3D can be changed via FitViewToAllEntities, FitViewToSelectedEntities and View3DViewIso.

C# Example: Make a 1:1 screenshot of current View3D:

 

int CCI_Return = cci.ScSetStringValue( ( int )ScComSAMLightClientCtrlValueTypes.scComSAMLightClientCtrlStringValueTypeSaveView3DFull, @"F:\screenshot_A.bmp" );

Table 323: Screenshot of current View3D

Slice
 

☒ Set

☐ Get

DLL Function

int CCI_Return = ScSlice(string Entity_Name, string Layer_Solid_Name, double Layer_Spacing, int Only_Selected, int Slice_Reverse )

ASCII Function

-

Description

Slices a ScTriaMesh3D entity into a ScLayerSolid entity.

Entity_Name

Type: string

Unit: none

Entity name of the ScTriaMesh3D that is being sliced. Use "" for all ScTriaMesh3D entities in job.

Layer_Solid_Name

Type: string

Unit: none

Entity name of the generated ScLayerSolid entity.

Layer_Spacing

Type: double

Unit: [mm]*

Layer spacing (aka Constant or Slice Thickness)

Only_Selected

Type: int

Unit: none

0: All ScTriaMesh3D entities named Entity_Name are being sliced.

1: All ScTriaMesh3D selected entities which are named Entity_Name are being sliced.

Slice_Reverse

Type: int

Unit: none

0: The order of the sliced layers is from bottom to top (additive manufacturing).

1: The order of the sliced layers is from top to bottom (subtractive manufacturing).

CCI_Return

Type: int

CCI return number, see error list.

Notes

The default unit is mm, but the user can select a different unit.

C# Example: Slices a ScTriaMesh3D entity into a ScLayerSolid entity:

 

int CCI_Return = cci.ScSlice( "Sphere", "Layers", 0.05, 0, 0 );

Table 324: Slice

Slice from text file
 

☒ Set

☐ Get

DLL Function

int CCI_Return = ScSliceFromTxt(string File_Path, string Entity_Name, string Layer_Solid_Name, int Only_Selected)

ASCII Function

-

Description

Slices a ScTriaMesh3D entity into a ScLayerSolid entity according to a text file containing the slice information.

File_Path

Type: string

Unit: none

Path to the text file containing the slice information. The path must include the file extension ".txt". The specification of the slice parameter in the text file can be found here.

Entity_Name

Type: string

Unit: none

Entity name of the ScTriaMesh3D that is being sliced. Use "" for all ScTriaMesh3D entities in job.

Layer_Solid_Name

Type: string

Unit: none

Entity name of the generated ScLayerSolid entity.

Only_Selected

Type: int

Unit: none

0: All ScTriaMesh3D entities named Entity_Name are being sliced.

1: All ScTriaMesh3D selected entities which are named Entity_Name are being sliced.

CCI_Return

Type: int

CCI return number, see error list.

Notes

-

C# Example: Slice from text file:

 

int CCI_Return = cci.ScSliceFromTxt( @"F:\slice_info.txt", "Spehre", "Layers", 0 );

Table 325: Slice from text file