hexagon logo

Next Problem: Cross measurement with Variables just into a Subroutine Block

Tried to pack a Cross measurement with Variables just into a Subroutine Block ... But a Goto and If Goto ... doesnt work ... Subprogram also doesnt work with the VARs in the Measurments ...\
Any Hints ?????


CLOSE/DID(FPTR),BEIBEHALTEN
CLOSE/DID(FPTR2),BEIBEHALTEN

(ENDE)

$$Einsprung fuer Kreuz

(KREUZ)

F(F1)=FEAT/POINT,CART,XPOS,YPOS,NULL,0,0,1

DMESW/COMAND,'LIN1=FEAT/LINE,BND,CART,XPOS-(HL/2),YPOS+(HB/2),FOCUS,$
XPOS+(HL/2),YPOS+(HB/2),-0.06925,HL,$

ELEMENTPARAMETER EINBLENDEN=NEIN,$
OPTIKPARAMETER_ANZEIGEN=JA,$
MESSPUNKTZIEL=EA1,0,1,HOCH,SCANHORTOL,$
FILTER=JA,11,JA,0,1.85,$
KANTE=FESTGELEGTE KANTE,7,[|]->[ ],<--,1,-1,-1,-1,NEIN,$
Oberes Licht=AUS,46,AUS,Unteres Licht=AUS,93,EIN,Ringlicht=AUS,82,AUS,$
FOKUS=NEIN'
DMESW/COMAND,'LIN2=FEAT/LINE,BND,CART,XPOS-(HL/2),YPOS-(HB/2),0.23116,$
XPOS+(HL/2),YPOS-(HB/2),0.23116,HL,$

ELEMENTPARAMETER EINBLENDEN=NEIN,$
OPTIKPARAMETER_ANZEIGEN=JA,$
MESSPUNKTZIEL=EA1,0,1,NORMAL,SCANHORTOL,$
FILTER=JA,11,JA,0,1.85,$
KANTE=FESTGELEGTE KANTE,16,[|]->[ ],-->,1,-1,-1,-1,NEIN,$
Oberes Licht=AUS,46,AUS,Unteres Licht=AUS,93,EIN,Ringlicht=AUS,82,AUS,$
FOKUS=NEIN'
DMESW/COMAND,'LIN7=FEAT/LINE,BND,CART,XPOS-(VB/2),YPOS-(VL/2),FOCUS,$
XPOS-(VB/2),YPOS+(VL/2),FOCUS,VL,$

ELEMENTPARAMETER EINBLENDEN=NEIN,$
OPTIKPARAMETER_ANZEIGEN=JA,$
MESSPUNKTZIEL=EA1,0,1,NORMAL,SCANVERTOL,$
FILTER=JA,11,JA,0,1.85,$
KANTE=FESTGELEGTE KANTE,13,[|]->[ ],<--,1,-1,-1,-1,NEIN,$
Oberes Licht=AUS,46,AUS,Unteres Licht=AUS,93,EIN,Ringlicht=AUS,82,AUS,$
FOKUS=NEIN'
DMESW/COMAND,'LIN8=FEAT/LINE,BND,CART,XPOS-(VB/2),YPOS-(VL/2),FOCUS,$
XPOS+(VB/2),YPOS+(VL/2),FOCUS,VL,$

ELEMENTPARAMETER EINBLENDEN=NEIN,$
OPTIKPARAMETER_ANZEIGEN=JA,$
MESSPUNKTZIEL=EA1,0,1,NORMAL,SCANVERTOL,$
FILTER=JA,11,JA,0,1.85,$
KANTE=FESTGELEGTE KANTE,13,[|]->[ ],-->,1,-1,-1,-1,NEIN,$
Oberes Licht=AUS,46,AUS,Unteres Licht=AUS,93,EIN,Ringlicht=AUS,82,AUS,$
FOKUS=NEIN'

F(LIN39)=FEAT/LINE,UNBND,CART,0,0.25,0.28792,1,0,0,0,0,1
CONST/LINE,F(LIN39),MIDLI,FA(LIN1),FA(LIN2)
F(LIN40)=FEAT/LINE,UNBND,CART,-91.426,84.329,-0.06925,0.1350594,0.9908375,0,$
0,0,1
CONST/LINE,F(LIN40),MIDLI,FA(LIN7),FA(LIN8)

RECALL/DA(WST_KS)

F(SP_1)=FEAT/POINT,CART,0.03669,0.25,0.30121,1,0,0
CONST/POINT,F(SP_1),INTOF,FA(LIN39),FA(LIN40)

IF/(EXIT .EQ. 0)
JUMPTO/(MAIN)
ENDIF
  • BLTeb,
    I re-named your thread to reflect the actual topic, as is good practice for online forums (search thread titles for "help!" and get 10,000 different results to see why).

    I also moved it to the Code section of the forum, as your topic is a little beyond the usual PC-DMIS content of the main forum.

    I am now going to try and translate what you posted into English... that may help.

    - Josh
  • BLTeb,
    I re-named your thread to reflect the actual topic, as is good practice for online forums (search thread titles for "help!" and get 10,000 different results to see why).

    I also moved it to the Code section of the forum, as your topic is a little beyond the usual PC-DMIS content of the main forum.

    I am now going to try and translate what you posted into English... that may help.

    - Josh


    Thanks Josh ... for the move!
    Hope to use PCDMIS in English will change also the Program ... i will try it tomorrow to change it to english!
    Eric
  • Thanks for the Hints ..... i forgot to set the Variables to global !
    regards
    eric
  • Does it work now?
    Because I got the first line translated and had to stop and work on other things.
  • Hello Josh ... Subprogr is Running now ... the only problem is to get back the measured Value in the SUB from a point to the main.... my TEST String has for each measurement the same Value ! Workaraound woulb maybe to generate the TEST Var in the Subpro !

    =DATEI/ÖFFNEN,C:\FTDANALYSIS\SOLLPOSITIONEN.TXT,LESEN
    DO/
    V1 =DATEI/ZEILE_LESEN,FPTR,{XPOS}+" "+{YPOS}
    CS3 =AUFR_UNTERPROG/CROSS,:,
    ZUWEISEN/TEST=CONCAT(STR( SP_1.X.MEAS ) , CHR(9), (STR( SP_1.Y.MEAS))) '<<<<<<<<<<<<<<<<<<<<<<<<<<< Here is the problem >>>>>>>>>>>>>>>
    DATEI/ZEILE_SCHREIB,FPTR2,TEST
    UNTIL/V1=="EOF"
    DATEI/SCHLIESSEN,FPTR,BEIBEHALTEN
    DATEI/SCHLIESSEN,FPTR2,BEIBEHALTEN
    ENDE =SPRUNGMARKE/
    $$ NEIN,
    Einsprung fuer Kreuz
    UNTERPROGRAMM/CROSS,
    =
    F1 =BENUTZERDEFINIERT/PUNKT,ABHÄNGIG,KARTESISCH,$
    NENNW/XYZ,<XPOS,YPOS,NULL>,$
    MESS/XYZ,<XPOS,YPOS,NULL>,$
    NENNW/IJK,<0,0,1>,$
    MESS/IJK,<0,0,1>
    LIN1 =ELEM/OPTIK/GERADE/STANDARD,KARTESISCH,BEGR
    NENN/<XPOS-(HL/2),YPOS+(HB/2),FOCUS>,<XPOS+(HL/2),YPOS+(HB/2),0.27057>,<1,0,0>,<0,-1,0>,<0,0,1>,HL
    MESS/<-95.48382,82.83384,-1.20552>,<-90.29917,83.21278,-1.20552>,<0.99734,0.07289,0>,<0.0728946,-0.9973396,0>,<0,0,1>,5.19848
    ZIEL/<XPOS-(HL/2),YPOS+(HB/2),FOCUS>,<XPOS+(HL/2),YPOS+(HB/2),FOCUS>,<1,0,0>,<0,-1,0>,<0,0,1>
    ELEMENTPARAMETER EINBLENDEN=NEIN
    OPTIKPARAMETER_ANZEIGEN=JA
    TYP=AUTOMATISCHES MESSPUNKTZIEL
    ABDECKUNG=100%
    VERGRÖSSERUNG=MAG
    Farbe des Messpunktziels=MAGENTA,FARBE DES NENNWERTS=GRÜN
    MESSPUNKTZIEL=EA1,0,1,HOCH,SCANHORTOL
    FILTER=JA,11,JA,0,1.85
    KANTE=FESTGELEGTE KANTE,7,[|]->[ ],<--,1,-1,-1,-1,NEIN,Oberes Licht=<AUS,46,AUS>,Unteres Licht=<AUS,93,EIN>,Ringlicht=<AUS,82,AUS>
    FOKUS=NEIN
    LIN2 =ELEM/OPTIK/GERADE/STANDARD,KARTESISCH,BEGR
    NENN/<XPOS-(HL/2),YPOS-(HB/2),0.23116>,<XPOS+(HL/2),YPOS-(HB/2),0.23116>,<1,0,0>,<0,-1,0>,<0,0,1>,HL
    MESS/<-95.36909,82.52284,-1.20552>,<-90.30324,82.88912,-1.20552>,<0.9974,0.07212,0>,<0.0721159,-0.9973963,0>,<0,0,1>,5.07908
    ZIEL/<XPOS-(HL/2),YPOS-(HB/2),FOCUS>,<XPOS+(HL/2),YPOS-(HB/2),FOCUS>,<1,0,0>,<0,-1,0>,<0,0,1>
    ELEMENTPARAMETER EINBLENDEN=NEIN
    OPTIKPARAMETER_ANZEIGEN=JA
    TYP=AUTOMATISCHES MESSPUNKTZIEL
    ABDECKUNG=100%
    VERGRÖSSERUNG=MAG
    Farbe des Messpunktziels=MAGENTA,FARBE DES NENNWERTS=GRÜN
    MESSPUNKTZIEL=EA1,0,1,NORMAL,SCANHORTOL
    FILTER=JA,11,JA,0,1.85
    KANTE=FESTGELEGTE KANTE,16,[|]->[ ],-->,1,-1,-1,-1,NEIN,Oberes Licht=<AUS,46,AUS>,Unteres Licht=<AUS,93,EIN>,Ringlicht=<AUS,82,AUS>
    FOKUS=NEIN
    LIN7 =ELEM/OPTIK/GERADE/STANDARD,KARTESISCH,BEGR
    NENN/<XPOS-(VB/2),YPOS-(VL/2),FOCUS>,<XPOS-(VB/2),YPOS+(VL/2),FOCUS>,<0,1,0>,<1,0,0>,<0,0,1>,VL
    MESS/<-93.29957,80.87618,-1.20552>,<-93.42728,84.66516,-1.20552>,<-0.03369,0.99943,0>,<0.9994325,0.0336862,0>,<0,0,1>,3.79114
    ZIEL/<XPOS-(VB/2),YPOS-(VL/2),FOCUS>,<XPOS-(VB/2),YPOS+(VL/2),FOCUS>,<0,1,0>,<1,0,0>,<0,0,1>
    ELEMENTPARAMETER EINBLENDEN=NEIN
    OPTIKPARAMETER_ANZEIGEN=JA
    TYP=AUTOMATISCHES MESSPUNKTZIEL
    ABDECKUNG=100%
    VERGRÖSSERUNG=MAG
    Farbe des Messpunktziels=MAGENTA,FARBE DES NENNWERTS=GRÜN
    MESSPUNKTZIEL=EA1,0,1,NORMAL,SCANVERTOL
    FILTER=JA,11,JA,0,1.85
    KANTE=FESTGELEGTE KANTE,13,[|]->[ ],<--,1,-1,-1,-1,NEIN,Oberes Licht=<AUS,46,AUS>,Unteres Licht=<AUS,93,EIN>,Ringlicht=<AUS,82,AUS>
    FOKUS=NEIN
    LIN8 =ELEM/OPTIK/GERADE/STANDARD,KARTESISCH,BEGR
    NENN/<XPOS-(VB/2),YPOS-(VL/2),FOCUS>,<XPOS+(VB/2),YPOS+(VL/2),FOCUS>,<0.28735,0.95783,0>,<1,0,0>,<0,0,1>,VL
    MESS/<-92.6581,80.87122,-1.20552>,<-92.79048,84.76174,-1.20552>,<-0.03401,0.99942,0>,<0.9994216,0.0340081,0>,<0,0,1>,3.89277
    ZIEL/<XPOS+(VB/2),YPOS-(VL/2),FOCUS>,<XPOS+(VB/2),YPOS+(VL/2),FOCUS>,<0,1,0>,<1,0,0>,<0,0,1>
    ELEMENTPARAMETER EINBLENDEN=NEIN
    OPTIKPARAMETER_ANZEIGEN=JA
    TYP=AUTOMATISCHES MESSPUNKTZIEL
    ABDECKUNG=100%
    VERGRÖSSERUNG=MAG
    Farbe des Messpunktziels=MAGENTA,FARBE DES NENNWERTS=GRÜN
    MESSPUNKTZIEL=EA1,0,1,NORMAL,SCANVERTOL
    FILTER=JA,11,JA,0,1.85
    KANTE=FESTGELEGTE KANTE,13,[|]->[ ],-->,1,-1,-1,-1,NEIN,Oberes Licht=<AUS,46,AUS>,Unteres Licht=<AUS,93,EIN>,Ringlicht=<AUS,82,AUS>
    FOKUS=NEIN
    LIN39 =ELEMENT/LINIE,KARTESISCH,UNBEGR,NEIN
    NENN/<0,0.25,0.28792>,<1,0,0>
    MESS/<-95.42646,82.67836,-1.20552>,<0.997368,0.0725052,0>
    KONST/LINIE,MITTELPKT,LIN1,LIN2
    LIN40 =ELEMENT/LINIE,KARTESISCH,UNBEGR,NEIN
    NENN/<-91.426,84.329,-0.06925>,<0.1350594,0.9908375,0>
    MESS/<-92.97884,80.8737,-1.20552>,<-0.0338471,0.999427,0>
    KONST/LINIE,MITTELPKT,LIN7,LIN8
    AUFRUFEN/AUSRICHTUNG,INTERN,WST_KS
    SP_1 =ELEMENT/PUNKT,KARTESISCH,NEIN
    NENN/<0.03669,0.25,0.30121>,<1,0,0>
    MESS/<-93.04582,82.85142,-1.20552>,<0.997368,0.0725052,0>
    KONST/PUNKT,SCHNITTPKT,LIN39,LIN40
    PROGRAMM/ENDE
  • You can try to create TEST in the sub...
    You could also try to change the language to english, then copy/paste your code, then back to german...
  • You can try to create TEST in the sub...
    You could also try to change the language to english, then copy/paste your code, then back to german...



    Hi here the same in english ! File opening for FTD in Group
    FTD_OPEN =GROUP/SHOWALLPARAMS=NO
    ENDGROUP/ID=FTD_OPEN
    FPTR =FILE/OPEN,C:\FTDANALYSIS\SOLLPOSITIONEN.TXT,READ
    DO/
    V1 =FILE/READLINE,FPTR,{XPOS}+" "+{YPOS}
    CS3 =CALLSUB/CROSS,:,
    ASSIGN/TEST=CONCAT(STR( SP_1.X.MEAS ) , CHR(9), (STR( SP_1.Y.MEAS))) ' >>>>>> thats the problem tried to read back the values from the Point SP_1 ...see on the bottom!!!!!! Why i don't get a new Value from SP_1
    FILE/WRITELINE,FPTR2,TEST
    UNTIL/V1=="EOF"
    FILE/CLOSE,FPTR,KEEP
    FILE/CLOSE,FPTR2,KEEP
    ENDE =LABEL/
    $$ NO,
    Einsprung fuer Kreuz
    SUBROUTINE/CROSS,
    =
    F1 =GENERIC/POINT,DEPENDENT,CARTESIAN,$
    NOM/XYZ,<XPOS,YPOS,NULL>,$
    MEAS/XYZ,<XPOS,YPOS,NULL>,$
    NOM/IJK,<0,0,1>,$
    MEAS/IJK,<0,0,1>
    LIN1 =FEAT/VISION/LINE/DEFAULT,CARTESIAN,BOUNDED
    THEO/<XPOS-(HL/2),YPOS+(HB/2),FOCUS>,<XPOS+(HL/2),YPOS+(HB/2),0.27057>,<1,0,0>,<0,-1,0>,<0,0,1>,HL
    ACTL/<-95.48382,82.83384,-1.20552>,<-90.29917,83.21278,-1.20552>,<0.99734,0.07289,0>,<0.0728946,-0.9973396,0>,<0,0,1>,5.19848
    TARG/<XPOS-(HL/2),YPOS+(HB/2),FOCUS>,<XPOS+(HL/2),YPOS+(HB/2),FOCUS>,<1,0,0>,<0,-1,0>,<0,0,1>
    SHOW FEATURE PARAMETERS=NO
    SHOW_VISION_PARAMETERS=YES
    TYPE=AUTOMATIC HIT TARGET
    COVERAGE=100%
    MAGNIFICATION=MAG
    HIT TARGET COLOR=MAGENTA,NOMINAL COLOR=GREEN
    HIT TARGET=EA1,0,1,HIGH,SCANHORTOL
    FILTER=YES,11,YES,0,1.85
    EDGE=SPECIFIED EDGE,7,[|]->[ ],<--,1,-1,-1,-1,NO,Top Light=<OFF,46,OFF>,Bottom Light=<OFF,93,ON>,Ring Light=<OFF,82,OFF>
    FOCUS=NO
    LIN2 =FEAT/VISION/LINE/DEFAULT,CARTESIAN,BOUNDED
    THEO/<XPOS-(HL/2),YPOS-(HB/2),0.23116>,<XPOS+(HL/2),YPOS-(HB/2),0.23116>,<1,0,0>,<0,-1,0>,<0,0,1>,HL
    ACTL/<-95.36909,82.52284,-1.20552>,<-90.30324,82.88912,-1.20552>,<0.9974,0.07212,0>,<0.0721159,-0.9973963,0>,<0,0,1>,5.07908
    TARG/<XPOS-(HL/2),YPOS-(HB/2),FOCUS>,<XPOS+(HL/2),YPOS-(HB/2),FOCUS>,<1,0,0>,<0,-1,0>,<0,0,1>
    SHOW FEATURE PARAMETERS=NO
    SHOW_VISION_PARAMETERS=YES
    TYPE=AUTOMATIC HIT TARGET
    COVERAGE=100%
    MAGNIFICATION=MAG
    HIT TARGET COLOR=MAGENTA,NOMINAL COLOR=GREEN
    HIT TARGET=EA1,0,1,NORMAL,SCANHORTOL
    FILTER=YES,11,YES,0,1.85
    EDGE=SPECIFIED EDGE,16,[|]->[ ],-->,1,-1,-1,-1,NO,Top Light=<OFF,46,OFF>,Bottom Light=<OFF,93,ON>,Ring Light=<OFF,82,OFF>
    FOCUS=NO
    LIN7 =FEAT/VISION/LINE/DEFAULT,CARTESIAN,BOUNDED
    THEO/<XPOS-(VB/2),YPOS-(VL/2),FOCUS>,<XPOS-(VB/2),YPOS+(VL/2),FOCUS>,<0,1,0>,<1,0,0>,<0,0,1>,VL
    ACTL/<-93.29957,80.87618,-1.20552>,<-93.42728,84.66516,-1.20552>,<-0.03369,0.99943,0>,<0.9994325,0.0336862,0>,<0,0,1>,3.79114
    TARG/<XPOS-(VB/2),YPOS-(VL/2),FOCUS>,<XPOS-(VB/2),YPOS+(VL/2),FOCUS>,<0,1,0>,<1,0,0>,<0,0,1>
    SHOW FEATURE PARAMETERS=NO
    SHOW_VISION_PARAMETERS=YES
    TYPE=AUTOMATIC HIT TARGET
    COVERAGE=100%
    MAGNIFICATION=MAG
    HIT TARGET COLOR=MAGENTA,NOMINAL COLOR=GREEN
    HIT TARGET=EA1,0,1,NORMAL,SCANVERTOL
    FILTER=YES,11,YES,0,1.85
    EDGE=SPECIFIED EDGE,13,[|]->[ ],<--,1,-1,-1,-1,NO,Top Light=<OFF,46,OFF>,Bottom Light=<OFF,93,ON>,Ring Light=<OFF,82,OFF>
    FOCUS=NO
    LIN8 =FEAT/VISION/LINE/DEFAULT,CARTESIAN,BOUNDED
    THEO/<XPOS-(VB/2),YPOS-(VL/2),FOCUS>,<XPOS+(VB/2),YPOS+(VL/2),FOCUS>,<0.28735,0.95783,0>,<1,0,0>,<0,0,1>,VL
    ACTL/<-92.6581,80.87122,-1.20552>,<-92.79048,84.76174,-1.20552>,<-0.03401,0.99942,0>,<0.9994216,0.0340081,0>,<0,0,1>,3.89277
    TARG/<XPOS+(VB/2),YPOS-(VL/2),FOCUS>,<XPOS+(VB/2),YPOS+(VL/2),FOCUS>,<0,1,0>,<1,0,0>,<0,0,1>
    SHOW FEATURE PARAMETERS=NO
    SHOW_VISION_PARAMETERS=YES
    TYPE=AUTOMATIC HIT TARGET
    COVERAGE=100%
    MAGNIFICATION=MAG
    HIT TARGET COLOR=MAGENTA,NOMINAL COLOR=GREEN
    HIT TARGET=EA1,0,1,NORMAL,SCANVERTOL
    FILTER=YES,11,YES,0,1.85
    EDGE=SPECIFIED EDGE,13,[|]->[ ],-->,1,-1,-1,-1,NO,Top Light=<OFF,46,OFF>,Bottom Light=<OFF,93,ON>,Ring Light=<OFF,82,OFF>
    FOCUS=NO
    LIN39 =FEAT/LINE,CARTESIAN,UNBOUNDED,NO
    THEO/<0,0.25,0.28792>,<1,0,0>
    ACTL/<-95.42646,82.67836,-1.20552>,<0.997368,0.0725052,0>
    CONSTR/LINE,MID,LIN1,LIN2
    LIN40 =FEAT/LINE,CARTESIAN,UNBOUNDED,NO
    THEO/<-91.426,84.329,-0.06925>,<0.1350594,0.9908375,0>
    ACTL/<-92.97884,80.8737,-1.20552>,<-0.0338471,0.999427,0>
    CONSTR/LINE,MID,LIN7,LIN8
    RECALL/ALIGNMENT,INTERNAL,WST_KS
    SP_1 =FEAT/POINT,CARTESIAN,NO ' >>>>>>>>>>>>>>>>> SP_1
    THEO/<0.03669,0.25,0.30121>,<1,0,0>
    ACTL/<-93.04582,82.85142,-1.20552>,<0.997368,0.0725052,0>
    CONSTR/POINT,INT,LIN39,LIN40
    PROGRAM/END
  • Solved with Workaround !!!


    RECALL/ALIGNMENT,INTERNAL,WST_KS
    SP_1 =FEAT/POINT,CARTESIAN,NO ' >>>>>>>>>>>>>>>>> SP_1
    THEO/<0.03669,0.25,0.30121>,<1,0,0>
    ACTL/<-93.04582,82.85142,-1.20552>,<0.997368,0.0725052,0>
    CONSTR/POINT,INT,LIN39,LIN40
    ASSIGN/TEST=CONCAT(STR( SP_1.X.MEAS ) , CHR(9), (STR( SP_1.Y.MEAS))) ' >>>>>> thats the problem tried to read back the values from the Point SP_1 ...see on the bottom!!!!!! Why i don't get a new Value from SP_1

    PROGRAM/END
  • Just a thought, I think that SP_1.X = SP_1.X.MEAS... The theo value is SP_1.TX.........