Your Products have been synced, click here to refresh
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.
© 2024 Hexagon AB and/or its subsidiaries. | Privacy Policy | Cloud Services Agreement |