hexagon logo

Probe Calibration Automation

I'm trying to automate a probe calibration using the Qualify2(QualificationSettings settings) method.

I'm able to set all of my qualification settings except for a few things.

1. QualificationSettings.Mode - any time I attempt to change it, QualificationSettings.Mode becomes 100...

2. Selected probe tips - Per the help doc, you should use Probe.ClearAllProbes() to Clear the list of probes to be calibrated and Tip.Selected to select/deselect the probes to be qualified. this doesn't work. I can see that the tip angle that i want calibrated is selected, and nothing else, but PC-DMIS still attempts to calibrate all of the probe angles.

Before you mention Parameter Sets, we would like to get away from them, we have multiple machines that have different probe heads so just copying the probe file with the parameter set is not a valid option as the parameter set gets cleared when you change a component.

Also, we often have to use different calibration spheres when one goes out for calibration. Parameter sets, and autoqualify do not allow you to select which tool you would like to use. QualificationSettings does.


Has anyone else tried this?

Maybe i should report it as a bug? Anyone know how to go about doing that?


-cappy


  • thanks i found it on the ftp site, it doesn't select the probes to be calibrated though....
  • Here is a link to a thread about this. The title doesn't do the job describing the topic. http://www.pcdmisforum.com/showthread.php?23055-How-To-Force-PCDMIS-to-Save-Results-Via-Automation
    The problem was having was a bit different, but maybe you can pick up some ideas from reading his solution.

    Just wait til you see what he or she did... Good Luck Slight smile

    I agree with you on the deficiencies of parameter sets. Our automatic calibration consists of a basic script (make a list of probes) and 2 pc-dmis subroutines to locate the tool(s) and calibrate the tips. The subroutines use the calibrate single tip command to do their work. Works great.


    so i've started looking into this method, just wondering how you prevent collision with the shank of the qualification tool. I imagine that you have some fancy way of determining if it will crash?
  • so i've started looking into this method, just wondering how you prevent collision with the shank of the qualification tool. I imagine that you have some fancy way of determining if it will crash?


    It's actually pretty simple. We programmed the autosphere with feature vector of 0,0,1 and angle vector of 1,0,0, start angle1 45, end angle1 315. Then we substituted variables for the feature vector and angle vector. The feature vector becomes the vector of the active tip and for the angle vector we use this - it isn't unitized, but pc-dmis handles it correctly:

    [SIZE=2][FONT=courier new][COLOR=#000000]            ASSIGN/VVEC=MPOINT(0,0,1)[/COLOR]
    [COLOR=#000000]            IF/TIPVECTOR == VVEC[/COLOR]
    [COLOR=#000000]            ASSIGN/AVEC=MPOINT(1,0,0)[/COLOR]
    [COLOR=#000000]            END_IF/[/COLOR]
    [COLOR=#000000]            ELSE/[/COLOR]
    [COLOR=#000000]            ASSIGN/AVEC=MPOINT(TIPVECTOR.I,TIPVECTOR.J,-1)[/COLOR]
    [COLOR=#000000]            END_ELSE/[/COLOR][/FONT]
    [/SIZE]


    Tip vector.IJK can be obtained using the PROBEDATA function. Over time, we ended up using variables for both autosphere start/end angle combinations to handle things like large diameter ceramic spherical styli and styli that won't reach the equator.

    The autosphere commands end up looking like this (the first sphere is to do initial rough location - like the first hits in pc-dmis calibration):
    [SIZE=2][FONT=courier new][COLOR=#000000]LOC_TIP    =FEAT/CONTACT/SPHERE,CARTESIAN,OUT,LEAST_SQR[/COLOR]
    [COLOR=#000000]            THEO/<0,0,0>,<0,0,1>,QUAL_DIA[/COLOR]
    [COLOR=#000000]            ACTL/<3.9929,-8.1411,-1.2326>,<0,0,1>,0[/COLOR]
    [COLOR=#000000]            TARG/<0,0,0>,<TIPVECTOR.I,TIPVECTOR.J,TIPVECTOR.K>[/COLOR]
    [COLOR=#000000]            START ANGLE 1=STRTANG,END ANG 1=ENDANG[/COLOR]
    [COLOR=#000000]            START ANGLE 2=60,END ANG 2=90[/COLOR]
    [COLOR=#000000]            ANGLE VEC=<AVEC.I,AVEC.J,AVEC.K>[/COLOR]
    [COLOR=#000000]            SHOW FEATURE PARAMETERS=YES[/COLOR]
    [COLOR=#000000]              MEASURE MODE=NOMINALS[/COLOR]
    [COLOR=#000000]              RMEAS=NONE,NONE,NONE[/COLOR]
    [COLOR=#000000]              AUTO WRIST=NO[/COLOR]
    [COLOR=#000000]              CIRCULAR MOVES=YES[/COLOR]
    [COLOR=#000000]              CLEARPLANE=NO[/COLOR]
    [COLOR=#000000]              GRAPHICAL ANALYSIS=NO[/COLOR]
    [COLOR=#000000]              FEATURE LOCATOR=NO,NO,""[/COLOR]
    [COLOR=#000000]            SHOW CONTACT PARAMETERS=YES[/COLOR]
    [COLOR=#000000]              NUMHITS=4,NUMROWS=2[/COLOR]
    [COLOR=#000000]              SAMPLE HITS=0[/COLOR]
    [COLOR=#000000]              AVOIDANCE MOVE=NO,DISTANCE=0.625[/COLOR]
    [COLOR=#000000]            SHOW HITS=NO[/COLOR]
    [COLOR=#000000]$$ NO,[/COLOR]
    
    [COLOR=#000000]            COMMENT/REPT,[/COLOR]
    
    [COLOR=#000000]            "Station = " + CPN + "     TIP NAME = " + TIPNAME + "[/COLOR]
    [COLOR=#000000]            MOVE/CIRCULAR[/COLOR]
    [COLOR=#000000]QUAL_SPH   =FEAT/CONTACT/SPHERE,CARTESIAN,OUT,LEAST_SQR[/COLOR]
    [COLOR=#000000]            THEO/<LOC_TIP.X,LOC_TIP.Y,LOC_TIP.Z>,<0,0,1>,QUAL_DIA[/COLOR]
    [COLOR=#000000]            ACTL/<3.9929,-8.1411,-1.2326>,<0,0,1>,0[/COLOR]
    [COLOR=#000000]            TARG/<LOC_TIP.X,LOC_TIP.Y,LOC_TIP.Z>,<TIPVECTOR.I,TIPVECTOR.J,TIPVECTOR.K>[/COLOR]
    [COLOR=#000000]            START ANGLE 1=STRTANG,END ANG 1=ENDANG[/COLOR]
    [COLOR=#000000]            START ANGLE 2=STANG2,END ANG 2=ENANG2[/COLOR]
    [COLOR=#000000]            ANGLE VEC=<AVEC.I,AVEC.J,AVEC.K>[/COLOR]
    [COLOR=#000000]            SHOW FEATURE PARAMETERS=YES[/COLOR]
    [COLOR=#000000]              MEASURE MODE=NOMINALS[/COLOR]
    [COLOR=#000000]              RMEAS=NONE,NONE,NONE[/COLOR]
    [COLOR=#000000]              AUTO WRIST=NO[/COLOR]
    [COLOR=#000000]              CIRCULAR MOVES=YES[/COLOR]
    [COLOR=#000000]              CLEARPLANE=NO[/COLOR]
    [COLOR=#000000]              GRAPHICAL ANALYSIS=NO[/COLOR]
    [COLOR=#000000]              FEATURE LOCATOR=NO,NO,""[/COLOR]
    [COLOR=#000000]            SHOW CONTACT PARAMETERS=YES[/COLOR]
    [COLOR=#000000]              NUMHITS=8,NUMROWS=3[/COLOR]
    [COLOR=#000000]              SAMPLE HITS=0[/COLOR]
    [COLOR=#000000]              AVOIDANCE MOVE=NO,DISTANCE=0.625[/COLOR]
    [COLOR=#000000]            SHOW HITS=NO[/COLOR]
    [COLOR=#000000]CALIBRATE ACTIVE TIP WITH FEAT_ID=QUAL_SPH, QUALTOOL_ID=QUAL, MOVED=NO[/COLOR]
    [COLOR=#000000]AXIS     THEO     MEAS     DEV      STD DEV[/COLOR]
    [COLOR=#000000]X       < 0.0000  26.5577  26.5577[/COLOR]
    [COLOR=#000000]Y        0.0000  18.1317  18.1317[/COLOR]
    [COLOR=#000000]Z        0.0000>  -26.0811  26.0811[/COLOR]
    [COLOR=#000000]DIAM     0.7500   0.0000   0.7500   0.0000[/COLOR][/FONT][/SIZE]


    So manipulating the ANGLE VEC is the key to missing the sphere stem.

    Hope this is helpful.
  • It's actually pretty simple. We programmed the autosphere with feature vector of 0,0,1 and angle vector of 1,0,0, start angle1 45, end angle1 315. Then we substituted variables for the feature vector and angle vector. The feature vector becomes the vector of the active tip and for the angle vector we use this - it isn't unitized, but pc-dmis handles it correctly:

    [SIZE=2][FONT=courier new][COLOR=#000000]            ASSIGN/VVEC=MPOINT(0,0,1)[/COLOR]
    [COLOR=#000000]            IF/TIPVECTOR == VVEC[/COLOR]
    [COLOR=#000000]            ASSIGN/AVEC=MPOINT(1,0,0)[/COLOR]
    [COLOR=#000000]            END_IF/[/COLOR]
    [COLOR=#000000]            ELSE/[/COLOR]
    [COLOR=#000000]            ASSIGN/AVEC=MPOINT(TIPVECTOR.I,TIPVECTOR.J,-1)[/COLOR]
    [COLOR=#000000]            END_ELSE/[/COLOR][/FONT]
    [/SIZE]


    Tip vector.IJK can be obtained using the PROBEDATA function. Over time, we ended up using variables for both autosphere start/end angle combinations to handle things like large diameter ceramic spherical styli and styli that won't reach the equator.

    The autosphere commands end up looking like this (the first sphere is to do initial rough location - like the first hits in pc-dmis calibration):
    [SIZE=2][FONT=courier new][COLOR=#000000]LOC_TIP    =FEAT/CONTACT/SPHERE,CARTESIAN,OUT,LEAST_SQR[/COLOR]
    [COLOR=#000000]            THEO/<0,0,0>,<0,0,1>,QUAL_DIA[/COLOR]
    [COLOR=#000000]            ACTL/<3.9929,-8.1411,-1.2326>,<0,0,1>,0[/COLOR]
    [COLOR=#000000]            TARG/<0,0,0>,<TIPVECTOR.I,TIPVECTOR.J,TIPVECTOR.K>[/COLOR]
    [COLOR=#000000]            START ANGLE 1=STRTANG,END ANG 1=ENDANG[/COLOR]
    [COLOR=#000000]            START ANGLE 2=60,END ANG 2=90[/COLOR]
    [COLOR=#000000]            ANGLE VEC=<AVEC.I,AVEC.J,AVEC.K>[/COLOR]
    [COLOR=#000000]            SHOW FEATURE PARAMETERS=YES[/COLOR]
    [COLOR=#000000]              MEASURE MODE=NOMINALS[/COLOR]
    [COLOR=#000000]              RMEAS=NONE,NONE,NONE[/COLOR]
    [COLOR=#000000]              AUTO WRIST=NO[/COLOR]
    [COLOR=#000000]              CIRCULAR MOVES=YES[/COLOR]
    [COLOR=#000000]              CLEARPLANE=NO[/COLOR]
    [COLOR=#000000]              GRAPHICAL ANALYSIS=NO[/COLOR]
    [COLOR=#000000]              FEATURE LOCATOR=NO,NO,""[/COLOR]
    [COLOR=#000000]            SHOW CONTACT PARAMETERS=YES[/COLOR]
    [COLOR=#000000]              NUMHITS=4,NUMROWS=2[/COLOR]
    [COLOR=#000000]              SAMPLE HITS=0[/COLOR]
    [COLOR=#000000]              AVOIDANCE MOVE=NO,DISTANCE=0.625[/COLOR]
    [COLOR=#000000]            SHOW HITS=NO[/COLOR]
    [COLOR=#000000]$$ NO,[/COLOR]
    
    [COLOR=#000000]            COMMENT/REPT,[/COLOR]
    
    [COLOR=#000000]            "Station = " + CPN + "     TIP NAME = " + TIPNAME + "[/COLOR]
    [COLOR=#000000]            MOVE/CIRCULAR[/COLOR]
    [COLOR=#000000]QUAL_SPH   =FEAT/CONTACT/SPHERE,CARTESIAN,OUT,LEAST_SQR[/COLOR]
    [COLOR=#000000]            THEO/<LOC_TIP.X,LOC_TIP.Y,LOC_TIP.Z>,<0,0,1>,QUAL_DIA[/COLOR]
    [COLOR=#000000]            ACTL/<3.9929,-8.1411,-1.2326>,<0,0,1>,0[/COLOR]
    [COLOR=#000000]            TARG/<LOC_TIP.X,LOC_TIP.Y,LOC_TIP.Z>,<TIPVECTOR.I,TIPVECTOR.J,TIPVECTOR.K>[/COLOR]
    [COLOR=#000000]            START ANGLE 1=STRTANG,END ANG 1=ENDANG[/COLOR]
    [COLOR=#000000]            START ANGLE 2=STANG2,END ANG 2=ENANG2[/COLOR]
    [COLOR=#000000]            ANGLE VEC=<AVEC.I,AVEC.J,AVEC.K>[/COLOR]
    [COLOR=#000000]            SHOW FEATURE PARAMETERS=YES[/COLOR]
    [COLOR=#000000]              MEASURE MODE=NOMINALS[/COLOR]
    [COLOR=#000000]              RMEAS=NONE,NONE,NONE[/COLOR]
    [COLOR=#000000]              AUTO WRIST=NO[/COLOR]
    [COLOR=#000000]              CIRCULAR MOVES=YES[/COLOR]
    [COLOR=#000000]              CLEARPLANE=NO[/COLOR]
    [COLOR=#000000]              GRAPHICAL ANALYSIS=NO[/COLOR]
    [COLOR=#000000]              FEATURE LOCATOR=NO,NO,""[/COLOR]
    [COLOR=#000000]            SHOW CONTACT PARAMETERS=YES[/COLOR]
    [COLOR=#000000]              NUMHITS=8,NUMROWS=3[/COLOR]
    [COLOR=#000000]              SAMPLE HITS=0[/COLOR]
    [COLOR=#000000]              AVOIDANCE MOVE=NO,DISTANCE=0.625[/COLOR]
    [COLOR=#000000]            SHOW HITS=NO[/COLOR]
    [COLOR=#000000]CALIBRATE ACTIVE TIP WITH FEAT_ID=QUAL_SPH, QUALTOOL_ID=QUAL, MOVED=NO[/COLOR]
    [COLOR=#000000]AXIS     THEO     MEAS     DEV      STD DEV[/COLOR]
    [COLOR=#000000]X       < 0.0000  26.5577  26.5577[/COLOR]
    [COLOR=#000000]Y        0.0000  18.1317  18.1317[/COLOR]
    [COLOR=#000000]Z        0.0000>  -26.0811  26.0811[/COLOR]
    [COLOR=#000000]DIAM     0.7500   0.0000   0.7500   0.0000[/COLOR][/FONT][/SIZE]


    So manipulating the ANGLE VEC is the key to missing the sphere stem.

    Hope this is helpful.


    I ended up figuring this out the other day, pretty much the same code on my end. I'm glad we're on the same page Slight smile