Showing results for 
Search instead for 
Do you mean 
Reply
Solved! Go to solution

Toolchanger simulation

Hello everyone.

I have a question. I started to create an ISV project with a machine which have a toolchanger that needs to be moved to execute the change of the tool. I was trying to manage and move the toolchanger creating an axis to them, but without success.

I tried to use the move and position (Language AC), but without success.

Someone experienced in this kind of kinematic could give some tip?

With best Regards.

Marco Antonio Rodrigues Silva.

4 REPLIES
Solution
Solution
Accepted by topic author marcoarsilva
‎01-02-2017 01:03 PM

Re: Toolchanger simulation

Example code of modified multiaxis toolchanger in CSE below

(Source: ToolChange.SPF).

 

 

G0 G90 D0 M5

; Set the tool change position values in metric X,Y,Z
R501=0.0
R502=0.0
R503=0.0
; Position for the V axis to mount the tool
R504=-15.0
; Z Position over the tool changer
R505=0.0

; check the activ unit and change values if inch is in use
; 3 for G700
IF ($P_GG[13] == 1 OR $P_GG[13] == 3)
   R501 = R501 / 25.4;
   R502 = R502 / 25.4;
   R503 = R503 / 25.4;
   R504 = R504 / 25.4;
   R505 = R505 / 25.4;
ENDIF

IF (R101 <> 0) 
  G0 G53 Z=R503
ELSE
  G0 G53 Z=R505
ENDIF
;position of the carousel before tool change
G0 G53 V=R504 Z75


##LANGUAGE AC
  INT nToolID;
  nToolID   = getVariable("$P_TOOLP");

  IF (nToolID > 0);
    STRING strCarrierTool;
    strCarrierTool = getCarrierTool ("1", ITOS(nToolID));
    setNextTool (strCarrierTool, "S");
  ENDIF;

  IF (exist (getCurrentTool ("S")));
    INT nPocketID;
    nPocketID = getArrayElement("$R",101);
    grasp      (     getCurrentTool ("S"), "POCKET_"+ITOS(nPocketID)+"@T"+ITOS(nPocketID));
	 position   (     getCurrentTool ("S"), 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
  ENDIF;
##LANGUAGE NATIVE
;G0 G53 Z=R503
##ROTATION UINSG C AXIS G0 G53 C=($P_TOOLP-1)*22.5 ;G0 G53 Z=R503 ##LANGUAGE AC IF (exist (getNextTool ("S"))); grasp ( getNextTool ("S"), getSpindleObject ("S")); position ( getNextTool ("S"), 0.0, 0.0, 0.0, 0.0, 0.0, 0.0); activateNextTool ("S"); ENDIF; ##LANGUAGE NATIVE R101=$P_TOOLP;position of the carousel after tool change G0 G53 V0.0 Z0 D1 M99

 

^ In this case using the V axis with a C rotation. You get te idea.

 

If you'd like to have more axis, you can define your own in Machine Configurator e.g. Axis Addresses: V1, V2, V3, etc.... fill as per screen grab below, save mdf, reload simulation & play!

 

 

mc_addaxis.jpg

Re: Toolchanger simulation

Hello CWilson.
Thanks for your fast answer.

I believe that it is an approach, but my desire is to use MOVE command.

I'll try to change the machine axis and use the move command with an axis rotation. The manual of nx has a poor information about language ac. (without some applied samples)

But, if i can not get success, i'll use the method you proposed.

With best Regards.

Marco Antonio Rodrigues Silva

Solution
Solution
Accepted by topic author marcoarsilva
‎01-02-2017 01:03 PM

Re: Toolchanger simulation

As far as I see, you have the rotating toolchanger with 2 clamps.
1) In the machine model create joints in these clamps.
2) Write subprogram ToolChange.prg (Language AC) with combination of commands move / release / grasp for these joints, so that to re-connect a tool to proper joint.

Re: Toolchanger simulation

Hello FROBI,
thanks for your contribuition

I did this, but the problem that i faced was with move command. But now everything are ok.
Thanks for your feedback.

Learn online





Solution Information