[Me...] Posted December 17, 2020 Share Posted December 17, 2020 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 More sharing options...
[Mi...] Posted December 17, 2020 Share Posted December 17, 2020 The compact printout might include that info. I know it does for geometry best fit, at least. Link to comment Share on other sites More sharing options...
[Me...] Posted December 17, 2020 Author Share Posted December 17, 2020 Unfortunately I need the program to check the alignment before it completes the run... Link to comment Share on other sites More sharing options...
[Cl...] Posted December 17, 2020 Share Posted December 17, 2020 Won't the Default report give all the information you are asking for? Link to comment Share on other sites More sharing options...
[Me...] Posted December 17, 2020 Author Share Posted December 17, 2020 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. Link to comment Share on other sites More sharing options...
[Mi...] Posted December 17, 2020 Share Posted December 17, 2020 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 More sharing options...
[Ow...] Posted December 17, 2020 Share Posted December 17, 2020 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 More sharing options...
[Mi...] Posted December 18, 2020 Share Posted December 18, 2020 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 More sharing options...
[Mi...] Posted December 18, 2020 Share Posted December 18, 2020 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 More sharing options...
Recommended Posts
Please sign in to comment
You will be able to leave a comment after signing in