hexagon logo

Closed Loop Scans and Looping

I have parts that run on a multi-cavity die set. These parts required profile on many surfaces, so I wanted to do Linear scans. However, the native looping within PC-DMIS doesn't allow that to occur.

Per PC-DMIS Help File (credit to for finding this):

OPEN/CLOSED LOOP Scanning

Currently, Open Loop only works with circular paths and features such as Circle and Cylinder. This does not refer to Linear Open and Linear Closed scans.

Feature Scans (for example, Circle, Cylinder, and Axis) are implemented as Open Loop scans. Other scans (Linear Open, Linear Closed, Center, Rotary) are implemented as Closed Loop. The final implementation is that the feature scans are Open Loop, and all other scan types are Closed Loop. The registry entry currently used is removed.

Controls over whether the executed scans are either Open or Closed are accomplished by editing the Settings Editor value: UseClosedLoop found in the Sheffield section.

If you wish to control the type of scan being performed for a measurement routine, you must quit PC-DMIS and launch the Settings Editor.

OPEN LOOP UseClosedLoop False

CLOSED LOOP UseClosedLoop True

There are no controls to change to Open or Closed with PC-DMIS commands, or by the loss of surface with an Open loop. The global value defined in the PC-DMIS Settings Editor application is a global default.


The issue arises that the CAD model does not follow the offset. So when the software goes to repierce the CAD, there is an empty space. PLUS, according to the Help File, they disable it anyway.

The code below allows you to loop parts and still do these types of scans:

*
*
MANUAL OR READ POINT ALIGNMENT
*
*
MODE/DCC
ASSIGN/COUNTER=0
DO/
ASSIGN/COUNTER=COUNTER+1
IF/COUNTER==4
ASSIGN/FIXTURE_X=151.2
ASSIGN/FIXTURE_Y=0
END_IF/
IF/COUNTER==3
ASSIGN/FIXTURE_X=100.8
ASSIGN/FIXTURE_Y=0
END_IF/
IF/COUNTER==2
ASSIGN/FIXTURE_X=50.4
ASSIGN/FIXTURE_Y=0
GOTO/ORIGIN
END_IF/
IF/COUNTER==1
ASSIGN/FIXTURE_X=0
ASSIGN/FIXTURE_Y=0
GOTO/ORIGIN
END_IF/
ORIGIN =LABEL/
LOOP_ORIGIN =GENERIC/POINT,DEPENDENT,CARTESIAN,$
NOM/XYZ,<0+0,0+0,0+0>,$
MEAS/XYZ,<FIXTURE_X,FIXTURE_Y,0+0>,$
NOM/IJK,<0+0,0+0,1+0>,$
MEAS/IJK,<0+0,0+0,1+0>
LOOP_ALN =ALIGNMENT/START,RECALL:MAN_ALN,LIST=YES
ALIGNMENT/TRANS,XAXIS,LOOP_ORIGIN
ALIGNMENT/TRANS,YAXIS,LOOP_ORIGIN
ALIGNMENT/END
*
*
DCC ALIGNMENT CODE
*
*
LINEAR SCAN (I used Find Nominals for the Nominals Method)
*
*
DIMENSION
*
UNTIL/COUNTER==4


With the DO /UNTIL method of looping, the CAD model follows the offset, allowing the software to pierce the CAD every time when creating the scan.

I only tried this with a linear open scan, but I am sure it will work with all the others.

Let me know if you find an error with this or if you have any questions!
Parents
  • BFIRE: 

    I'm still not able to get the profile scan to follow. 

                LOADPROBE/1MM_50MM_RACK
                TIP/T1A0B0, SHANKIJK=0, 0, 1, ANGLE=0
    PNT1       =FEAT/POINT,CARTESIAN
                THEO/<0,0,0>,<0,0,1>
                ACTL/<0,0,0>,<0,0,1>
                READPOINT/
    A1         =ALIGNMENT/START,RECALL:STARTUP,LIST=YES
                  ALIGNMENT/TRANS,XAXIS,PNT1
                  ALIGNMENT/TRANS,YAXIS,PNT1
                  ALIGNMENT/TRANS,ZAXIS,PNT1
                ALIGNMENT/END
                MODE/DCC
                ASSIGN/COUNTER=0
                DO/
                  ASSIGN/COUNTER=COUNTER+1
                  IF/COUNTER==5
                    ASSIGN/FIXTURE_X=0
                    ASSIGN/FIXTURE_Y=250.8
                  END_IF/
                  IF/COUNTER==4
                    ASSIGN/FIXTURE_X=0
                    ASSIGN/FIXTURE_Y=188.1
                  END_IF/
                  IF/COUNTER==3
                    ASSIGN/FIXTURE_X=0
                    ASSIGN/FIXTURE_Y=125.4
                  END_IF/
                  IF/COUNTER==2
                    ASSIGN/FIXTURE_X=0
                    ASSIGN/FIXTURE_Y=62.7
                  END_IF/
                  IF/COUNTER==1
                    ASSIGN/FIXTURE_X=0
                    ASSIGN/FIXTURE_Y=0
                  END_IF/
    ORIGIN       =LABEL/
    LOOP_ORIGIN  =GENERIC/POINT,DEPENDENT,CARTESIAN,$
                  NOM/XYZ,<0+0,0+0,0+0>,$
                  MEAS/XYZ,<FIXTURE_X,FIXTURE_Y,0+0>,$
                  NOM/IJK,<0+0,0+0,1+0>,$
                  MEAS/IJK,<0+0,0+0,1+0>
    LOOP_ALIGN   =ALIGNMENT/START,RECALL:A1,LIST=YES
                    ALIGNMENT/TRANS,XAXIS,LOOP_ORIGIN
                    ALIGNMENT/TRANS,YAXIS,LOOP_ORIGIN
                  ALIGNMENT/END
                 *
                 *
                 *dcc code scans
                 *
                 *
                             UNTIL/COUNTER==5
                 

  • It's been a while since I have worked with this workaround. The CAD should follow the trihedron. The one you have circled is your first part? Are you saying the darker section didn't follow? What alignment does that scan use? Is that alignment connected to your LOOP_ALIGN alignment? 

  • Thanks bfire for checking in. 

    So upon running the program a few times, the profile does in fact follow. 

    HOWEVER, 

    After running the program, if I exit out, and go back into the program and REFRESH the REPORTthe results go all wonky. 

  • I would not expect anything less than that honestly. It's PC-DMIS we are talking about. 

    However, I think it is because of the do/until function and maybe if you have a print command in your line of code. 

  • hmmm, I know you're probably right, but there's gotta be a fix for this. 

    1. conventional looping can't track profile scans

    2. do/unitl can't report results correctly. (unless I'm doing it wrong)

    This isn't a good result for me. 

    I might have to bring this back up on the main page

Reply
  • hmmm, I know you're probably right, but there's gotta be a fix for this. 

    1. conventional looping can't track profile scans

    2. do/unitl can't report results correctly. (unless I'm doing it wrong)

    This isn't a good result for me. 

    I might have to bring this back up on the main page

Children