Jump to content

Circumferential Groove Measurement


---
 Share

Recommended Posts

Hi.

I've been asked to modify our methodology of measurement of circumferential grooves to suit our customers methodology who uses Mitutoyo software.
2161_979ecb7697a221a1b06ff09fd8d669d5.jpg
Here is an example of one of their programs methods, but in this case the Gauge Height is 14,8mm.
2161_bd635c5ae9c711bcea2b65c3d8f42afa.jpg
I've tried a couple of ideas, but the PCM fails with reciprocal dependencies.
Any ideas of how I can achieve this? Any pointers would be greatly appreciated. Below is where i've got to so far. 2161_d01007b81a93239b09c0516d689c922e.jpg
2161_ad43ee038612df2ecc0cf9eb13b0f7cd.jpg
2161_38167e97d9146d320af74403798cc207.jpg
2161_49e58acd2066d4264f7781c9bc05ab4e.jpg
Thanks in advance.
Link to comment
Share on other sites

notice that using line features you are intersecting with the LSQ line (or the method selected to generate the line), for more accurate result I would use a curve instead..
also you don’t need a loop to generate the intersection with the gauge value, you can generate a theoretical cylinder with this value an intersect it with the two sections..

Edit: my mistake this method is not going to center correctly the gauge diameter…

cilind.png

Link to comment
Share on other sites

I agree that the curve might produce a more accurate measurement, however the method you've described doesn't match the spec required from the customer.
This is where I've got to so far with experimenting, it kind of seems to work, however the GAUGE variable doesn't update and it doesn't stop when reached it's specified dimension. 2161_9480024f2b2b89bd93c39e356dbcc42b.jpg
Link to comment
Share on other sites

This is probably too simple... but could you recall the two lines into a Cone, and do a cone calculation to get the location of the length (Position Definition at D - in cone calculation)
Link to comment
Share on other sites

Please sign in to view this quote.

Loops in calypso are very slow is better to have bigger steps, this works OK:


GAUGE=10.9
CIR_R= 2  // Nominal Value
Step=0.2
Diff=999

repeat
CIR_R = CIR_R+Step
measure("Theo 3d Line1")
measure("Theo Int Upper")
measure("Theo Int Lower")

if abs(GAUGE - (getActual("Theo Int Upper").z- getActual("Theo Int Lower").z)) < Diff then
Diff=abs(GAUGE - (getActual("Theo Int Upper").z- getActual("Theo Int Lower").z)) 
else
CIR_R =CIR_R -Step  
Step=-Step/2
endif

until abs(Step) <= 0.0001

measure("Theo 3d Line1")
measure("Theo Int Upper")
measure("Theo Int Lower")
Link to comment
Share on other sites

I've just tried that method and it seems to have overshot the target again.
Plus I have a simple distance between the intersections in characteristics which doesn't update until you manually interrogate the features. This changes due to the variables shifting the 3d line, but doesn't show at the end of the run.
Does anyone know why?
Anyone with any other solutions i could try?
Link to comment
Share on other sites

Please sign in to view this quote.

We had already developed a method to measure this feature prior to this.
  • Create a line on each pressure face
  • Create a symmetry of these pressure faces
  • Recall One Feature of the symmetry as a 2d Line
  • Offset this 2d Line by half of the Gauge Height (in this case 10.9/2) in the Z axis. One going +Z and one -Z
  • Intersect these offset 2d Lines to the corresponding measured 2d Line Pressure Faces
  • Repeat this process several times around the circumference
  • Recall this intersections as a circle to create the required diameter
Link to comment
Share on other sites

Please sign in to view this quote.

The code that I have write you works OK..
(I’m still thinking that curves will give better accuracy)
I put a display in order to see how the variable values change during the loop, download the file and test it:

1375_f04264460089adf54783229a6421cef0.7z


1375_16fbb662cfcc885627eb423333e062c1.png
Link to comment
Share on other sites

 Share

×
×
  • Create New...