hexagon logo

Loop or Variables

Hey! Im new here in this Forum. I have +/- 3.5 years expt. in CMM.

I work on a project with 4 pieces on a block, theyre milled. after the measurment they will cut it off. After this the z position change -10.2mm and Milling again 4 pieces and so on... i hope youre understanding^^

So i made a Loop and the i made a Copie of this loop and change the z position by typing.

Is there am smoother version to change the Z position? or antoher way? because if they have other blocks with the same pieces they will have the issue that the x,y,z where not at the same postion as from ''block 1''. They can Save the programm as block 1,2,3 etc. i know but there will be to many programs Smiley

here is the code, (maybe its completely bulls**t Smiley ) and its German^^

C1 =KOMMENTAR/JANEIN,NEIN,VOLLBILD=NEIN,AUTO. FORTFAHREN=NEIN,
Manuell Ausrichten?
IF_GOTO/C1.INPUT=="NEIN",GOTO = CNC_LAUF
TASTSPITZE/T1A0B0, SCHAFTIJK=0, 0, 1, WINKEL=0
LIN_MAN_X =ELEMENT/LINIE,KARTESISCH,UNBEGR
NENN/<0,-34.969,-0.061>,<0,1,0>
MESS/<0,-34.969,-0.061>,<0,1,0>
MESS/GERADE,2,ZPLUS
ARBEITSEBENE/YPLUS
MESSPKT/BASIS,NORMAL,<0,-34.969,-0.113>,<1,0,0>,<0,-34.969,-0.113>,THEO VERW=JA
MESSPKT/BASIS,NORMAL,<0,-24.555,-0.009>,<1,0,0>,<0,-24.555,-0.009>,THEO VERW=JA
ENDEMESS/
EBENE1_MAN_Y=ELEMENT/EBENE,KARTESISCH,DREIECK
NENN/<-1.993,-35.85,0.154>,<0,-1,0>
MESS/<-1.993,-35.85,0.154>,<0,-1,0>
MESS/EBENE,3
MESSPKT/BASIS,NORMAL,<-2.865,-35.85,0.687>,<0,-1,0>,<-2.865,-35.85,0.687>,THEO VERW=JA
MESSPKT/BASIS,NORMAL,<-0.931,-35.85,0.793>,<0,-1,0>,<-0.931,-35.85,0.793>,THEO VERW=JA
MESSPKT/BASIS,NORMAL,<-2.183,-35.85,-1.019>,<0,-1,0>,<-2.183,-35.85,-1.019>,THEO VERW=JA
ENDEMESS/
ARBEITSEBENE/YMINUS
EBENE2_MAN_Y=ELEMENT/EBENE,KARTESISCH,DREIECK
NENN/<-1.283,-23.7,0.623>,<0,1,0>
MESS/<-1.283,-23.7,0.623>,<0,1,0>
MESS/EBENE,3
MESSPKT/BASIS,NORMAL,<-0.665,-23.7,1.288>,<0,1,0>,<-0.665,-23.7,1.288>,THEO VERW=JA
MESSPKT/BASIS,NORMAL,<-1.85,-23.7,1.266>,<0,1,0>,<-1.85,-23.7,1.266>,THEO VERW=JA
MESSPKT/BASIS,NORMAL,<-1.335,-23.7,-0.684>,<0,1,0>,<-1.335,-23.7,-0.684>,THEO VERW=JA
ENDEMESS/
ARBEITSEBENE/ZPLUS
EBENE_Z_MAN=ELEMENT/EBENE,KARTESISCH,DREIECK
NENN/<-2.343,-30.212,2.653>,<0,0,1>
MESS/<-2.343,-30.212,2.653>,<0,0,1>
MESS/EBENE,4
MESSPKT/BASIS,NORMAL,<-3.638,-33.755,2.653>,<0,0,1>,<-3.638,-33.755,2.653>,THEO VERW=JA
MESSPKT/BASIS,NORMAL,<-1.431,-33.845,2.653>,<0,0,1>,<-1.431,-33.845,2.653>,THEO VERW=JA
MESSPKT/BASIS,NORMAL,<-0.867,-26.491,2.653>,<0,0,1>,<-0.867,-26.491,2.653>,THEO VERW=JA
MESSPKT/BASIS,NORMAL,<-3.434,-26.759,2.653>,<0,0,1>,<-3.434,-26.759,2.653>,THEO VERW=JA
ENDEMESS/
EBENE_Y_0_MAN=ELEMENT/EBENE,KARTESISCH,DREIECK,NEIN
NENN/<-1.638,-29.775,0.389>,<0,-1,0>
MESS/<-1.638,-29.775,0.389>,<0,-1,0>
KONST/EBENE,MITTELPKT,EBENE1_MAN_Y,EBENE2_MAN_Y
CNC_LAUF =SPRUNGMARKE/
MODUS/CNC
C2 =KOMMENTAR/EINGABE,NEIN,VOLLBILD=NEIN,
Reihe?
IF_GOTO/C2.INPUT=="1",GOTO = R1
IF_GOTO/C2.INPUT=="2",GOTO = R2
IF_GOTO/C2.INPUT=="3",GOTO = R3
IF_GOTO/C2.INPUT=="4",GOTO = R4
R1 =SPRUNGMARKE/
V7 =SCHLEIFE/ANFANG,ID=JA,NUMMER=4,ANFANG=1,AUSLASSEN=,
VERSATZ:X_ACHSE=0,Y_ACHSE=19.8,Z_ACHSE=0,WINKEL=0
A_MANUELL =AUSRICHTUNG/ANFANG,AUFRUFEN:START,LISTE=JA
AUSRICHTUNG/EBENE,ZPLUS,EBENE_Z_MAN
AUSRICHTUNG/ÜBERTR,Z_ACHSE,EBENE_Z_MAN
AUSRICHTUNG/DREHEN,YPLUS,ZU,LIN_MAN_X,DREHEN UM,ZPLUS
AUSRICHTUNG/ÜBERTR,Y_ACHSE,EBENE_Y_0_MAN
AUSRICHTUNG/ÜBERTR,X_ACHSE,LIN_MAN_X
AUSRICHTUNG/ENDE
EBENE_Z_CNC =ELEM/KONTAKT/EBENE/STANDARD,KARTESISCH,DREIECK,KLEINSTE_QUAD
NENN/<-1.977,-1.962,0>,<0,0,1>
MESS/<-1.977,-1.962,0>,<0,0,1>
ZIEL/<-1.977,-1.962,0>,<0,0,1>
WINKELVEK=<1,0,0>,VIERECKIG
ELEMENTPARAMETER EINBLENDEN=NEIN
KONTAKTPARAMETER EINBLENDEN=NEIN
EBENE1_Y_CNC =ELEM/KONTAKT/EBENE/STANDARD,KARTESISCH,DREIECK,KLEINSTE_QUAD
NENN/<-1.913,-6.075,-2.785>,<0,-1,0>
MESS/<-1.913,-6.075,-2.785>,<0,-1,0>
ZIEL/<-1.913,-6.075,-2.785>,<0,-1,0>
WINKELVEK=<1,0,0>,VIERECKIG
ELEMENTPARAMETER EINBLENDEN=NEIN
KONTAKTPARAMETER EINBLENDEN=NEIN
EBENE2_Y_CNC =ELEM/KONTAKT/EBENE/STANDARD,KARTESISCH,DREIECK,KLEINSTE_QUAD
NENN/<-0.942,6.075,-1.959>,<0,1,0>
MESS/<-0.942,6.075,-1.959>,<0,1,0>
ZIEL/<-0.942,6.075,-1.959>,<0,1,0>
WINKELVEK=<-1,0,0>,VIERECKIG
ELEMENTPARAMETER EINBLENDEN=NEIN
KONTAKTPARAMETER EINBLENDEN=NEIN
PKT1 =ELEM/KONTAKT/VEKTORPUNKT/STANDARD,KARTESISCH
NENN/<0,-5.186,-2.5>,<1,0,0>
MESS/<0,-5.186,-2.5>,<1,0,0>
ZIEL/<0,-5.186,-2.5>,<1,0,0>
EINRASTEN=NEIN
ELEMENTPARAMETER EINBLENDEN=NEIN
KONTAKTPARAMETER EINBLENDEN=NEIN
PKT2 =ELEM/KONTAKT/VEKTORPUNKT/STANDARD,KARTESISCH
NENN/<0,4.87,-2.5>,<1,0,0>
MESS/<0,4.87,-2.5>,<1,0,0>
ZIEL/<0,4.87,-2.5>,<1,0,0>
EINRASTEN=NEIN
ELEMENTPARAMETER EINBLENDEN=NEIN
KONTAKTPARAMETER EINBLENDEN=NEIN
LIN_CNC =ELEMENT/LINIE,KARTESISCH,UNBEGR,NEIN
NENN/<0,-5.186,-2.5>,<0,1,0>
MESS/<0,-5.186,-2.5>,<0,1,0>
KONST/GERADE,BE,3D,PKT1,PKT2,,
AUSREISSER_ENTFERNEN/AUS,3
FILTER/AUS,WELLENLÄNGE=0
EBENE_Y0_CNC =ELEMENT/EBENE,KARTESISCH,DREIECK,NEIN
NENN/<-1.427,0,-2.372>,<0,-1,0>
MESS/<-1.427,0,-2.372>,<0,-1,0>
KONST/EBENE,MITTELPKT,EBENE1_Y_CNC,EBENE2_Y_CNC
A_CNC =AUSRICHTUNG/ANFANG,AUFRUFEN:A_MANUELL,LISTE=JA
AUSRICHTUNG/EBENE,ZPLUS,EBENE_Z_CNC
AUSRICHTUNG/DREHEN,YPLUS,ZU,LIN_CNC,DREHEN UM,ZPLUS
AUSRICHTUNG/ÜBERTR,X_ACHSE,LIN_CNC
AUSRICHTUNG/ÜBERTR,Y_ACHSE,EBENE_Y0_CNC
AUSRICHTUNG/ENDE
SCHLEIFE/ENDE
GOTO/AUSWERTUNG
R2 =SPRUNGMARKE/
V7 =SCHLEIFE/ANFANG,ID=JA,NUMMER=4,ANFANG=1,AUSLASSEN=,
VERSATZ:X_ACHSE=0,Y_ACHSE=19.8,Z_ACHSE=0,WINKEL=0
A_MANUELL =AUSRICHTUNG/ANFANG,AUFRUFEN:START,LISTE=JA
AUSRICHTUNG/EBENE,ZPLUS,EBENE_Z_MAN
AUSRICHTUNG/ÜBERTR,Z_ACHSE,EBENE_Z_MAN
AUSRICHTUNG/DREHEN,YPLUS,ZU,LIN_MAN_X,DREHEN UM,ZPLUS
AUSRICHTUNG/ÜBERTR,Y_ACHSE,EBENE_Y_0_MAN
AUSRICHTUNG/ÜBERTR,X_ACHSE,LIN_MAN_X
AUSRICHTUNG/ENDE
EBENE_Z_CNC =ELEM/KONTAKT/EBENE/STANDARD,KARTESISCH,DREIECK,KLEINSTE_QUAD
NENN/<-1.977,-1.962,-10.2>,<0,0,1>
MESS/<-1.977,-1.962,-10.2>,<0,0,1>
ZIEL/<-1.977,-1.962,-10.2>,<0,0,1>
WINKELVEK=<1,0,0>,VIERECKIG
ELEMENTPARAMETER EINBLENDEN=NEIN
KONTAKTPARAMETER EINBLENDEN=NEIN
EBENE1_Y_CNC =ELEM/KONTAKT/EBENE/STANDARD,KARTESISCH,DREIECK,KLEINSTE_QUAD
NENN/<-1.913,-6.075,-10.985>,<0,-1,0>
MESS/<-1.913,-6.075,-10.985>,<0,-1,0>
ZIEL/<-1.913,-6.075,-10.985>,<0,-1,0>
WINKELVEK=<1,0,0>,VIERECKIG
ELEMENTPARAMETER EINBLENDEN=NEIN
KONTAKTPARAMETER EINBLENDEN=NEIN
EBENE2_Y_CNC =ELEM/KONTAKT/EBENE/STANDARD,KARTESISCH,DREIECK,KLEINSTE_QUAD
NENN/<-0.942,6.075,-12.159>,<0,1,0>
MESS/<-0.942,6.075,-12.159>,<0,1,0>
ZIEL/<-0.942,6.075,-12.159>,<0,1,0>
WINKELVEK=<-1,0,0>,VIERECKIG
ELEMENTPARAMETER EINBLENDEN=NEIN
KONTAKTPARAMETER EINBLENDEN=NEIN
PKT1 =ELEM/KONTAKT/VEKTORPUNKT/STANDARD,KARTESISCH
NENN/<0,-5.186,-12.7>,<1,0,0>
MESS/<0,-5.186,-12.7>,<1,0,0>
ZIEL/<0,-5.186,-12.7>,<1,0,0>
EINRASTEN=NEIN
ELEMENTPARAMETER EINBLENDEN=NEIN
KONTAKTPARAMETER EINBLENDEN=NEIN
PKT2 =ELEM/KONTAKT/VEKTORPUNKT/STANDARD,KARTESISCH
NENN/<0,4.87,-12.7>,<1,0,0>
MESS/<0,4.87,-12.7>,<1,0,0>
ZIEL/<0,4.87,-12.7>,<1,0,0>
EINRASTEN=NEIN
ELEMENTPARAMETER EINBLENDEN=NEIN
KONTAKTPARAMETER EINBLENDEN=NEIN
LIN_CNC =ELEMENT/LINIE,KARTESISCH,UNBEGR,NEIN
NENN/<0,-5.186,-12.7>,<0,1,0>
MESS/<0,-5.186,-12.7>,<0,1,0>
KONST/GERADE,BE,3D,PKT1,PKT2,,
AUSREISSER_ENTFERNEN/AUS,3
FILTER/AUS,WELLENLÄNGE=0
EBENE_Y0_CNC =ELEMENT/EBENE,KARTESISCH,DREIECK,NEIN
NENN/<-1.427,0,-11.572>,<0,-1,0>
MESS/<-1.427,0,-11.572>,<0,-1,0>
KONST/EBENE,MITTELPKT,EBENE1_Y_CNC,EBENE2_Y_CNC
A_CNC =AUSRICHTUNG/ANFANG,AUFRUFEN:A_MANUELL,LISTE=JA
AUSRICHTUNG/EBENE,ZPLUS,EBENE_Z_CNC
AUSRICHTUNG/DREHEN,YPLUS,ZU,LIN_CNC,DREHEN UM,ZPLUS
AUSRICHTUNG/ÜBERTR,X_ACHSE,LIN_CNC
AUSRICHTUNG/ÜBERTR,Y_ACHSE,EBENE_Y0_CNC
AUSRICHTUNG/ENDE
SCHLEIFE/ENDE
GOTO/AUSWERTUNG
R3 =SPRUNGMARKE/
V8 =SCHLEIFE/ANFANG,ID=JA,NUMMER=4,ANFANG=1,AUSLASSEN=,
VERSATZ:X_ACHSE=0,Y_ACHSE=19.8,Z_ACHSE=0,WINKEL=0
A_MANUELL =AUSRICHTUNG/ANFANG,AUFRUFEN:START,LISTE=JA

and so on.....



thanks and greetings

Attached Files
Parents
  • Not really easy to read german prog...
    I would remove "" in if statements, I think IF_GOTO/C2.INPUT==1,GOTO = R1 should work directly.
    In addition, you could use an array to change values :
    For example, between R1 and R2, there are -10.2 z difference.
    You could let the loop inside a do /until like :
    ASSIGN/NUM=1
    ASSIGN/ZVAL=ARRAY(0,-10.2,-20.4,-30.6)
    DO/
    ZVAL_NUM=ZVAL[NUM]
    LOOP...
    LOOP/END
    ASSIGN/NUM=NUM+1
    UNTIL/NUM=5


    Sorry for the dump question, but how i ''create'' the ZVAL_NUM=ZVAL[NUM]. i know thats should be basic knwoledge but im very new a codeing.
Reply
  • Not really easy to read german prog...
    I would remove "" in if statements, I think IF_GOTO/C2.INPUT==1,GOTO = R1 should work directly.
    In addition, you could use an array to change values :
    For example, between R1 and R2, there are -10.2 z difference.
    You could let the loop inside a do /until like :
    ASSIGN/NUM=1
    ASSIGN/ZVAL=ARRAY(0,-10.2,-20.4,-30.6)
    DO/
    ZVAL_NUM=ZVAL[NUM]
    LOOP...
    LOOP/END
    ASSIGN/NUM=NUM+1
    UNTIL/NUM=5


    Sorry for the dump question, but how i ''create'' the ZVAL_NUM=ZVAL[NUM]. i know thats should be basic knwoledge but im very new a codeing.
Children
No Data