Jump to content

Base Alignment Check


---
 Share

Recommended Posts

Hello all,
I'm trying to figure out how to check the part base alignment to the CMM coordinates.
What I'm looking for is an X, Y, Z, A1, and A2. The part I'm aligning could be incorrectly aligned causing a tiny probe to bind and break before the CMM errors out.

I do not have PCM but here's what I tried.
"baseSystem().x" gave me a number that seemed correct but when running in simulation/CNC, this errored out as undefined.


Any help would be awesome,
Thanks!
Link to comment
Share on other sites

Im unsure if it will, What i want calypso to do is run though the base alignment then, using Result Element to check alignment position to CMM coordinates. The condition on this will stop the CMM before continuing the program.
2212_2112d023d963d8a8e737effde91bd9a5.png
Link to comment
Share on other sites

Now I understand better what you're trying to do... but I don't know a way to do it.

Is it out of the question to run two programs? One to check the alignment's close enough, and another to do the inspection itself?


ETA: As far as I know, the "baseSystem().x" is only used for iterating the base alignment, so the X-value it provides is the difference between the current base alignment and the previous iteration - so calculating on the first iteration won't give you anything useful, hence the error message. I could be wrong, though.

Does anyone know if there's such a thing as "machineSystem.x" or something like that?
Link to comment
Share on other sites

Quick read thru the issue and maybe I missed something but, couldn't you just loop the base alignment to make sure it's exactly where it's supposed to be?
Are you familiar with looping the base alignment?
To loop the alignment, open up the base alignment and in the 1st window that opens up, you’ll see a tab in it that says “Loop”, click that tab and in the next window put 1 in the start, a 5 in the end and a 1 in the step.
Put a break condition in so the program knows to stop re-measuring the alignment when the condition is met. Your break condition should read like this: baseSystem().valueA<0.005. The numerical number (0.005) it’s trying to meet is the Delta value (explained below) .

What’s the Delta Value?
The Delta Value is a measurement of how much the Coordinate System has shifted from one measurement of the Base Alignment to the next. Delta is the accumulation of the X,Y,Z,X-Y Rotation and X-Y Tilt. The shift is the result of the data points being taken in slightly different locations each time the alignment is looped.

I think it will only loop up to like 70 times if it doesn't meet the condition (if you put 1-70-1 in the loop) but, it will not stop if it doesn't.

You could maybe put a condition in the 1st feature strategy it runs and use a formula like -( I haven't tried it)
if (baseSystem().valueA>0.005)
cncBreak()
endif
Link to comment
Share on other sites

Please sign in to view this quote.

But baseSystem().valueA compares the current BA iteration to the previous BA iteration, right? What he wants is something that will compare the current BA to the machine coordinate system.
Link to comment
Share on other sites

if (getActual("Part Check Radius Point").radius) < 55.8)
	positionRS(10.0,-50.0,150.0,baseSystem())
	positionRS(120.0,140.00,180.00,baseSystem())
	message("Verify the part number matches the program and the fixturing is correct!")
	wait(2)
	cncBreak()
else
	if (getActual("Part Check Radius Point").radius) > 58.2)
		positionRS(10.0,-50.0,150.0,baseSystem())
		positionRS(120.0,140.00,180.00,baseSystem())
		message("Verify the part number matches the program and the fixturing is correct!")
		wait(2)
		cncBreak()
	endif
endif
We use this at my facility. I'm not sure if you'll be able to do anything with it without PCM though. We put it in the post settings of a check point at the very start of many programs.
Link to comment
Share on other sites

 Share

×
×
  • Create New...