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.
Solved! Go to Solution.
Example code of modified multiaxis toolchanger in CSE below
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 == 1 OR $P_GG == 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!
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
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.
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.