Jump to content

Travel in +Z position to first feature?


---
 Share

Recommended Posts

Hello my Calypso Friends,

I have a short question, perhaps somebody found already a solution for it.
Some times from time to time (and for sure depends on the Program), which starts with a Clearance of +Y.
The machine goes down in -Z on the last park position, which is for sure not always good as it some times there are things on the table which could lead to a collision.

I use for the Parking always a PCM “post setting” instead of a parking position.
if (getRecordHead("palletlocationnumber") == getRecordHead("lastpalletlocationnumber")) then  
positionCMM(350,-350,-50)  
endif
Depends on the CMM size this ends in the middle of the table (approx.),

BUT, there is always a BUT, does anybody has an idea to do perhaps a PCM “pre setting” that the machine travel on the last position in +Z close to the first feature or the clearance of the part to avoid my problem 🙂

Would be really nice if somebody faced already this issue and had some idea.
For sure it would be possible to always adapt the parking part, but depends on the amount of programs you forgot it sometimes so this would be really helpful to me. 🙂

Thanks in advance,
Link to comment
Share on other sites

I don´t understand your problem.
Perhaps you can define specifiyed parkingpositions for each machine number/type.
At the end of the inspection, check the actual machine number getRecordHead("dmesn") or type getRecordHead("dmeid"), grab the according parkposition and move
Link to comment
Share on other sites

  • 2 weeks later...
Hello Flo,

Thanks for your answer, this is a good idea, but it’s not gonna work in my case. We have approx. 50 machines and not always the same park position, as we have a really huge part deviation.. so i was looking more for something like..

End of the Measurement Plan..
1) Machine Lift in Z+ according to machine coordinate System.
2) Machine moves in X/Y to desired position in machine coordinate System.
Operator Starts Program again..
3) Machine stays in Z+ till it reach the X=0 / Y=0
4) Machine continue the normal process, start / base alignment (for sure goes down..)

In this case the machine would travel approx. to the correct start position in X/Y and would avoid any collision on with parts or fixtures on the table.

I tried already..

PCM PRE-SETTINGS:
positionCMM(400,-700,-50,"Z","Y","X")
positionRS(0,0,200,"","")
PCM POST-SETTINGS:
if (getRecordHead("palletlocationnumber") == getRecordHead("lastpalletlocationnumber")) then  
positionCMM(400,-700,-50,"Z","Y","X")
endif
This is really going to work, but the Problem is..

The PositionRS drives to the BaseAlignment (which match my needs) but it travel straight (in all 3 axis together), which is not really helpful.
If there would be a way to do it like PositionCMM, or you could travel only in 2 axis (X,Y) this would be great, but I didn’t found a way.

Regards,
Link to comment
Share on other sites

Perhaps you can use the function stepRS()
Calculate the difference of the actual position to the basesystem and use step first in X and Y.

positionCMM(400,-700,-50,"Z","Y","X")

travelX = abs(getPositionCMM().x-baseSystem().x)
travelY = abs(getPositionCMM().y-baseSystem().y)
travelZ = abs(getPositionCMM().z-baseSystem().z)

stepRS(travelX,-travelY,0)
stepRS(0,0,-travelZ+200)
Good luck !
Link to comment
Share on other sites

You could transform the position say (0,0,50) related to the basesystem into the machine coordinate system.
(The z-coordinate z=50 is not important) and afterwards use the positionCMM command to drive to the desired position:
pos0=executeCode("0 @ 0 @ 50 transformFrom: Zeiss.Calypso.OMInspection active baseSystem pcs.")
positionCMM(pos0.x,pos0.y,-30)
Link to comment
Share on other sites

@Reiner Gerke
@Michael Krauskopf

Thank you very much for your 2x possibilties, i will definitly give it a try and let you know 🙂

Thank you! 🙂
Link to comment
Share on other sites

TLDR;

The code I posted, when used with the inspection_end_pcm.txt file placed in the default program directory will make the CMM retreat to the position you define every single time a program ends normally. It will clear the part by whatever clearance plane is selected for the last feature, then travel to the defined position by traveling in Z First. I suggest something up high, near your probe racks(Make sure it works with the largest probe system you have). This very simple code has saved us thousands in damage from starting the CMM in a weird spot and it decides to travel through the part.

-------------------------------------------------------------------------------------------------------------------------------------------------------------------

So we do something similar but the opposite and honestly much simpler thought process, instead of making the CMM go to a specific position at the start, we make it go to a specific position at the END of each run. A PCM park position, it's very simple and can be done with nothing more than a text file and positionCMM() command which uses the machine coordinate system. There really is no need to get all fancy with trying to move in various alignments.

I choose to put the position at the extreme right or left back of the machine. So on a 5/5/5 Machine it's something like this, that's a park just in front of the probe rack in the back left corner. Put this code in an inspection_end_pcm.txt file in the default program directory and it will only run AFTER the program has cleared the part, by default the positionCMM() moves in Z first.. Note the if statement, I have it so it doesn't run while I'm in Master actively programming.

The beauty of this is one file instantly creates a park position for all programs on a machine with no edits to the programs, and I know you said you have a great variation in part size, but you will definitely be able to do this as your parts are not doing to be above your racks.

I actually get fancier with this and control the position with a variable, and then use another text file, inspection_start_pcm.txt to verify the CMM is actually at the defined park position before allowing it to run, but that's only required for us as CMMs are ran by untrained operators here.
//Checks the user, then "parks" the machine
if getRecordHead("operid") == user
		setInspectionDrivingSpeed(80)
		positionCMM(50.0,-125.0,-50.0)	
endif
Link to comment
Share on other sites

Please sign in to view this quote.

I ran into an issue using this method (Less the User ID PCM).
When the last feature is a Point, it ignored the clearance requirement (My point entered from the +X axis to touch a face in the X axis, and the stylus went straight up in the Z axis while the stylus was still inside the bore. The psotionCMM data was for a +Z move.
I was able to repeat this at will.
Link to comment
Share on other sites

Please sign in to view this quote.

I have not seen this however I can't think of any program where we end with a point - but weird stuff is why I also have the setInspectionDrivingSpeed() in there because various versions sometimes break things.... I would simply program a position point to run after the measured point that is clear of the part as my first step in dealing with that situation, if that didn't work I'm not completely sure what option I would go with.
Link to comment
Share on other sites

 Share

×
×
  • Create New...