05-25-2018, 08:40 PM

I have a program with subprograms, and each subprogram specifies a tool. In the resulting program file a procedure is defined for each subprogram, and only the first one has a line to specify the tool. As a result, the real robot knows it has a tool for the first program, then for the second, it considers the flange to be the TCP. The model in RoboDK behaves as expected. I can't figure out how the postprocessor removes the setTool instructions.

Code:

`DEF C_0_stroke_prog ( )`

; ...

PTP $AXIS_ACT ; skip BCO quickly

$BASE = {FRAME: X 0.000,Y 0.000,Z 0.000,A 0.000,B 0.000,C 0.000}

$TOOL = {FRAME: X 0.000,Y 0.000,Z 205.000,A 0.000,B 0.000,C 0.000}

; Show paintbrush2Shape

$VEL.CP = 1.00000

PTP {AXIS: A1 -97.95481,A2 -64.68960,A3 115.43524,A4 152.84739,A5 76.05941,A6 100.41150}

LIN {X -64.192,Y 1659.559,Z 1175.153,A 162.369,B -7.105,C 68.735}

; ...

END

DEF C_1_stroke_prog ( )

PTP $AXIS_ACT ; skip BCO quickly

$APO.CPTP = 100.000

$APO.CDIS = 100.000

; Show paintbrush2Shape

$VEL.CP = 1.00000

PTP {AXIS: A1 -36.34085,A2 -55.72483,A3 88.11530,A4 -0.00000,A5 57.60954,A6 -36.34085} C_PTP

LIN {X 1287.834,Y 947.423,Z 825.569,A -180.000,B -0.000,C 180.000} C_DIS

; ...

END