[Ca...] Posted November 2, 2023 Share Posted November 2, 2023 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 More sharing options...
[Fl...] Posted November 3, 2023 Share Posted November 3, 2023 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 More sharing options...
[Ca...] Posted November 14, 2023 Author Share Posted November 14, 2023 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 More sharing options...
[Re...] Posted November 14, 2023 Share Posted November 14, 2023 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 More sharing options...
[Mi...] Posted November 14, 2023 Share Posted November 14, 2023 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 More sharing options...
[Ca...] Posted November 14, 2023 Author Share Posted November 14, 2023 @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 More sharing options...
[Mi...] Posted November 14, 2023 Share Posted November 14, 2023 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 More sharing options...
[Ri...] Posted November 15, 2023 Share Posted November 15, 2023 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 More sharing options...
[Mi...] Posted November 15, 2023 Share Posted November 15, 2023 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 More sharing options...
Recommended Posts
Please sign in to comment
You will be able to leave a comment after signing in