hexagon logo

Loopity Loops (and how to offset em')

Greetings fellow metrologists

I would like some help on my loop problem.
I have to create a loop to measure many parts simultaneously. I have done this before, but it was cylindrical parts, so it was quite easy to create the offsets in the loops.
But now i have this not-so-round part and its coordinatesystem doesnt match cmm axis
so im not quite sure how to go about this problem.
(see picture for part coordinates and how i will place them on the cmm). they will be placed in mulitple rows.

ty guys, u always help me

Attached Files
  • what method did you use to create the program to loop? IE paste with pattern, do/loop, or looping?

  • Well, how i've done it in the past (on cylindrical parts) is looping. so

    comment/input - how many parts in X-row?
    comment/input - how many parts in Y-row?
    assign V1 = INPUT 1
    assign V2 = INPUT 2
    Loop/start, (use v1 as number)
    Loop/start (use v2 as number)

    Measuring starts

    loop end,
    loop end

    and by that method i know the offset in X/Y, because i just place the parts against the threads on my plate, which i know the distance between
  • Maybe:

    Measure the thread distances, align on them (cir-cir) and the base plate plane, set zero in one of them.
    Move to DCC, measure your part, align accordingly (so it matches the part CAD).
    Evaluate.
    Recall the first alignment.
    Offset the alignment to the next set of thread distances.
    Jump up to the DCC section of the actual part measurement.
    Evaluate.
    Recall the first alignment.
    Offset... bla, bla

    Rinse, repeat.
  • Ty VPT, you always have an answer
    I will try this,
    how can i go from measuring the threads (dubbarna in the picture) straight to DCC on the part?
    i dont have cad of how the part is placed on the plate against the dubbs.
  • Align it and measure the part features for the part alignment "manually" in DCC, either by manual/learned features or by "learning" autofeatures (open autofeature dialog and manually take points to fill the XYZ, IJK in the dialog).

    Or, measure the part features for the part alignment manually (don't bother about the thread bosses), go to DCC and create the measurements/evaluations for the part. Offset the alignment with the distance between the thread bosses in X, still in DCC and it should measure the next part.
  • Ah oki!
    Thing is i dont know the what the nominal ijks are relative to the the alignment of the threads.
    So only option i see then is to manually probe the features, so i use the measured ijk as nominal ijk (besides top plane, thats easy to figure out)
  • If you choose to go by the thread bosses, you are right but that is only valid for all features PRIOR to your part alignment (the features measured in the thread boss alignment will not be used for evaluation anyway). As soon as you have managed the part alignment, you will go by the CAD. So the only thing the thread boss alignment should do is to "find" and measure the part features you will use for the part alignment.

  • Goodmorning Slight smile
    Ok so kinda like this? I used programmode to get the manual part features and i unmarked them. (maybe that was wrong to do)
    should the loop command be before the manual part alignment?
    BASE_PLATE =ELEMENT/PLAN,REKTANGULÄRA,TRIANGEL
                TEOR/<4.516,913.126,-612.181>,<0,0,1>
                MÄTT/<4.516,913.126,-612.181>,<0,0,1>
                MÄT/PLAN,7
                  MÄTPKT/ALLMÄN,NORMALT,<-35.41,894.791,-612.186>,<0,0,1>,<-35.41,894.791,-612.186>,ANV NOM=JA
                  MÄTPKT/ALLMÄN,NORMALT,<6.766,894.792,-612.178>,<0,0,1>,<6.766,894.792,-612.178>,ANV NOM=JA
                  MÄTPKT/ALLMÄN,NORMALT,<43.416,894.794,-612.169>,<0,0,1>,<43.416,894.794,-612.169>,ANV NOM=JA
                  MÄTPKT/ALLMÄN,NORMALT,<43.416,926.879,-612.174>,<0,0,1>,<43.416,926.879,-612.174>,ANV NOM=JA
                  MÄTPKT/ALLMÄN,NORMALT,<18.137,926.878,-612.182>,<0,0,1>,<18.137,926.878,-612.182>,ANV NOM=JA
                  MÄTPKT/ALLMÄN,NORMALT,<-9.228,926.875,-612.188>,<0,0,1>,<-9.228,926.875,-612.188>,ANV NOM=JA
                  MÄTPKT/ALLMÄN,NORMALT,<-35.485,926.874,-612.191>,<0,0,1>,<-35.485,926.874,-612.191>,ANV NOM=JA
                SLUTMÄT/
    A1         =UPPRIKTNING/START,ÅTERKALLA:START,LISTA=JA
                  UPPRIKTNING/PRIMÄR,ZPLUS,BASE_PLATE
                  UPPRIKTNING/FLYTTA,Z-AXEL,BASE_PLATE
                UPPRIKTNING/SLUT
    BOSS_1     =ELEMENT/CIRKEL,REKTANGULÄRA,YTTRE,GAUSS
                TEOR/<-21.199,908.022,5.338>,<0,0,1>,12.342,0
                MÄTT/<-21.199,908.022,5.338>,<0,0,1>,12.342,0
                MÄT/CIRKEL,4,ZPLUS
                  MÄTPKT/ALLMÄN,NORMALT,<-26.879,905.808,5.348>,<-0.9317725,-0.3630427,0>,<-26.879,905.808,5.348>,ANV NOM=JA
                  VIA/CIRKULÄR
                  MÄTPKT/ALLMÄN,NORMALT,<-20.383,901.818,5.348>,<0.1303953,-0.9914621,0>,<-20.383,901.818,5.348>,ANV NOM=JA
                  VIA/CIRKULÄR
                  MÄTPKT/ALLMÄN,NORMALT,<-15.12,908.47,5.348>,<0.9972847,0.0736429,0>,<-15.12,908.47,5.348>,ANV NOM=JA
                  VIA/CIRKULÄR
                  MÄTPKT/ALLMÄN,NORMALT,<-21.703,914.237,5.309>,<-0.0809076,0.9967216,0>,<-21.703,914.237,5.309>,ANV NOM=JA
                SLUTMÄT/
    BOSS_2     =ELEMENT/CIRKEL,REKTANGULÄRA,YTTRE,GAUSS
                TEOR/<28.823,907.851,5.246>,<0,0,1>,11.817,0
                MÄTT/<28.823,907.851,5.246>,<0,0,1>,11.817,0
                MÄT/CIRKEL,6,ZPLUS
                  MÄTPKT/ALLMÄN,NORMALT,<22.889,907.683,5.31>,<-0.9995968,-0.0283937,0>,<22.889,907.683,5.31>,ANV NOM=JA
                  VIA/CIRKULÄR
                  MÄTPKT/ALLMÄN,NORMALT,<29.191,901.991,5.309>,<0.0627505,-0.9980292,0>,<29.191,901.991,5.309>,ANV NOM=JA
                  VIA/CIRKULÄR
                  MÄTPKT/ALLMÄN,NORMALT,<34.861,907.571,5.309>,<0.9989223,-0.0464141,0>,<34.861,907.571,5.309>,ANV NOM=JA
                  VIA/CIRKULÄR
                  MÄTPKT/ALLMÄN,NORMALT,<34.633,907.518,5.31>,<0.9983612,-0.0572277,0>,<34.633,907.518,5.31>,ANV NOM=JA
                  VIA/CIRKULÄR
                  MÄTPKT/ALLMÄN,NORMALT,<31.619,913.013,5.12>,<0.4763049,0.8792802,0>,<31.619,913.013,5.12>,ANV NOM=JA
                  VIA/CIRKULÄR
                  MÄTPKT/ALLMÄN,NORMALT,<27.278,913.552,5.12>,<-0.2614952,0.9652048,0>,<27.278,913.552,5.12>,ANV NOM=JA
                SLUTMÄT/
    A_BASEPLATE=UPPRIKTNING/START,ÅTERKALLA:A1,LISTA=JA
                  UPPRIKTNING/PRIMÄR,ZPLUS,BASE_PLATE
                  UPPRIKTNING/FLYTTA,Z-AXEL,BASE_PLATE
                  UPPRIKTNING/VRID_CIRKEL,XPLUS,TILL,BOSS_1,OCH,BOSS_2,OMKRING,ZPLUS
                  UPPRIKTNING/FLYTTA,X-AXEL,BOSS_1
                  UPPRIKTNING/FLYTTA,Y-AXEL,BOSS_1
                UPPRIKTNING/SLUT
    
    
    PLAN_PART_MAN=ELEMENT/PLAN,REKTANGULÄRA,TRIANGEL
                TEOR/<21.684,-924.436,618.181>,<0,0,1>
                MÄTT/<19.322,-38.402,12.052>,<-0.0005063,0.0003302,0.9999998>
                MÄT/PLAN,4
                  MÄTPKT/ALLMÄN,NORMALT,<10.3,-947.525,618.181>,<0,0,1>,<13.782,-62.928,12.059>,ANV NOM=JA
                  MÄTPKT/ALLMÄN,NORMALT,<26.724,-947.818,618.181>,<0,0,1>,<27.801,-62.879,12.062>,ANV NOM=JA
                  MÄTPKT/ALLMÄN,NORMALT,<37.196,-900.467,618.181>,<0,0,1>,<31.089,-15.684,12.051>,ANV NOM=JA
                  MÄTPKT/ALLMÄN,NORMALT,<12.516,-901.934,618.181>,<0,0,1>,<4.615,-12.115,12.035>,ANV NOM=JA
                SLUTMÄT/
    A3         =UPPRIKTNING/START,ÅTERKALLA:A_BASEPLATE,LISTA=JA
                  UPPRIKTNING/PRIMÄR,ZPLUS,PLAN_PART_MAN
                  UPPRIKTNING/FLYTTA,Z-AXEL,PLAN_PART_MAN
                UPPRIKTNING/SLUT
    LIN_PART_MAN=ELEMENT/LINJE,REKTANGULÄRA,OBEGRÄNSAD
                TEOR/<28.066,-896.473,-4.518>,<0.6716586,-0.7408608,0>
                MÄTT/<17.117,-6.178,-1.781>,<0.8256193,-0.5642276,0>
                MÄT/LINJE,2,ZPLUS
                  MÄTPKT/ALLMÄN,NORMALT,<28.066,-896.473,-4.24>,<-0.7408608,-0.6716586,0>,<17.117,-6.178,-1.778>,ANV NOM=JA
                  MÄTPKT/ALLMÄN,NORMALT,<34.317,-903.369,-4.797>,<-0.7408608,-0.6716586,0>,<23.808,-10.75,-1.783>,ANV NOM=JA
                SLUTMÄT/
    A4         =UPPRIKTNING/START,ÅTERKALLA:START,LISTA=JA
                  UPPRIKTNING/PRIMÄR,ZPLUS,PLAN_PART_MAN
                  UPPRIKTNING/FLYTTA,Z-AXEL,PLAN_PART_MAN
                  UPPRIKTNING/VRID,XPLUS,TILL,LIN_PART_MAN,OMKRING,ZPLUS
                UPPRIKTNING/SLUT
    CIR_PART_MAN=ELEMENT/CIRKEL,REKTANGULÄRA,YTTRE,GAUSS
                TEOR/<0,0,-2.407>,<0,0,1>,36,0
                MÄTT/<-509.223,729.937,-0.822>,<0,0,1>,36.009,0
                MÄT/CIRKEL,4,ZPLUS
                  MÄTPKT/ALLMÄN,NORMALT,<16.707,6.7,-2.79>,<0.9281522,0.3722008,0>,<-496.655,742.832,-0.812>,ANV NOM=JA
                  VIA/CIRKULÄR
                  MÄTPKT/ALLMÄN,NORMALT,<-0.206,17.999,-2.044>,<-0.0114519,0.9999344,0>,<-503.37,746.958,-0.807>,ANV NOM=JA
                  VIA/CIRKULÄR
                  MÄTPKT/ALLMÄN,NORMALT,<-5.137,17.251,-2.091>,<-0.2854093,0.9584057,0>,<-513.944,747.316,-0.8>,ANV NOM=JA
                  VIA/CIRKULÄR
                  MÄTPKT/ALLMÄN,NORMALT,<-14.679,10.418,-2.702>,<-0.8154914,0.5787691,0>,<-521.925,742.694,-0.868>,ANV NOM=JA
                SLUTMÄT/
    A_PART_MAN =UPPRIKTNING/START,ÅTERKALLA:A4,LISTA=JA
                  UPPRIKTNING/PRIMÄR,ZPLUS,PLAN_PART_MAN
                  UPPRIKTNING/FLYTTA,Z-AXEL,PLAN_PART_MAN
                  UPPRIKTNING/VRID,XPLUS,TILL,LIN_PART_MAN,OMKRING,ZPLUS
                  UPPRIKTNING/FLYTTA,X-AXEL,CIR_PART_MAN
                  UPPRIKTNING/FLYTTA,Y-AXEL,CIR_PART_MAN
                UPPRIKTNING/SLUT
    
                CNCLÄGE/CNC
    PLAN_PART_DCC=ELEM/KONTAKT/PLAN/STANDARDVÄRDE,REKTANGULÄRA,TRIANGEL,GAUSS
                TEOR/<18.387,-18.913,0>,<0,0,1>
                MÄTT/<18.387,-18.913,0>,<0,0,1>
                MÅL/<18.387,-18.913,0>,<0,0,1>
                VINKELVEKT=<1,0,0>,FYRKANT
                VISA ELEMENTPARAMETRAR=NEJ
                VISA KONTAKTPARAMETRAR=NEJ
    LIN_PART_DCC=ELEM/KONTAKT/LINJE/STANDARDVÄRDE,REKTANGULÄRA,OBEGRÄNSAD
                TEOR/<-5.263,10.5,0>,<1,0,0>,<0,-1,0>,<0,0,1>,9.814
                MÄTT/<-5.263,10.5,0>,<1,0,0>,<0,-1,0>,<0,0,1>,9.814
                MÅL/<-5.263,10.5,0>,<1,0,0>,<0,-1,0>,<0,0,1>
                VISA ELEMENTPARAMETRAR=NEJ
                VISA KONTAKTPARAMETRAR=NEJ
    CIR_PART_DCC=ELEM/KONTAKT/CIRKEL/STANDARDVÄRDE,REKTANGULÄRA,YTTRE,GAUSS
                TEOR/<0,0,0>,<0,0,1>,36,0
                MÄTT/<0,0,0>,<0,0,1>,36,0
                MÅL/<0,0,0>,<0,0,1>
                STARTVINKEL=320.692,SLUTVINKEL=469.796
                VINKELVEKT=<0.6691306,0.7431448,0>
                RIKTNING=CCW
                VISA ELEMENTPARAMETRAR=NEJ
                VISA KONTAKTPARAMETRAR=NEJ
    A_PART_DCC =UPPRIKTNING/START,ÅTERKALLA:A_PART_MAN,LISTA=JA
                  UPPRIKTNING/PRIMÄR,ZPLUS,PLAN_PART_DCC
                  UPPRIKTNING/FLYTTA,Z-AXEL,PLAN_PART_DCC
                  UPPRIKTNING/VRID,XPLUS,TILL,LIN_PART_DCC,OMKRING,ZPLUS
                  UPPRIKTNING/FLYTTA,X-AXEL,CIR_PART_DCC
                  UPPRIKTNING/FLYTTA,Y-AXEL,CIR_PART_DCC
                UPPRIKTNING/SLUT
    
    ​ (Measuring features and evaluate stuff here)
    
  • It seems you have chosen to use one boss for one part and then one boss located at the next part. While it might be working without issues, I would choose the two bosses that are used for the same part (and align them in Y).

    I would go DCC after the "A_BASEPLATE" alignment. If you do, make sure to use clearplanes, via-points or whatever you use for steering clear in DCC, between the features (this is not autofeatures)!
    The loop should start here as well.

    Also, I would adjust the THEOs for the manually/learned features, especially the baseplate Z. The other ones that you don't have any THEOs for (threaded bosses and first part alignment) I would just round them off.

    The thing here is to align manually once off the threaded bosses, then move to DCC to measure the features for the first part alignment (learned features), make the part alignment so you can go off your CAD for the part measurement, then offset the alignment with the distance between the columns, repeat the first part alignment (but for the second part) and then do the part measurement.

    If you are feeling frisky and your parts are located perfectly, you might as well just offset the part alignment and go by that for all part measurements (not do the learned features measurement (in DCC) at all).

    1 - First alignment off of threaded bosses
    2 - DCC measurement of learned part features for part alignment
    3 - DCC measurement of part
    4 - Evaluate
    5 - Offset alignment
    6 - Return loop

    You can choose to start the loop between point 1 or point 2.