[Se...] Posted May 13 Share Posted May 13 Is there a PCM command to run a characteristic like stylus qualification? I’m referring to the characteristic shown in the red box in the picture. Link to comment Share on other sites More sharing options...
[Ch...] Posted May 13 Share Posted May 13 (edited) yes , but even easier should be a "mini-plan" some PCM that would help are : measure() addCF() measure() is for Features or ME / Measurement Elements only not Characteristics. I tried a few things , no dice. I wuold say easiest way to go here is a mini-plan then you can use PCM with SetRUNID() etc. Good luck. Edited May 13 Link to comment Share on other sites More sharing options...
[Se...] Posted May 14 Author Share Posted May 14 Hello, Chris Please check the attached screenshot first. I am creating a stylus qualification program. First, I qualify the stylus and then measure the sphere. Then, I check how much the measured result is shifted from the nominal sphere center. If the result is out of tolerance, the program shows a message to clean the probe and remeasures the sphere. This part works correctly. The problem is: I also want to remeasure the qualification characteristic, but I don’t know how. I want the qualification characteristic to be remeasured after the probe is requalified. Is it possible to do this using setRunID? Or is there another way? Thank you in advance for your help. Link to comment Share on other sites More sharing options...
[Ch...] Posted May 14 Share Posted May 14 Ah I see, thank you for the information. I'm not sure measure() works with characteristics. I did have another idea in mind for PCM however that kind of involved a "mini-plan". I will think about this further and do some testing. I am thinking that a 'condition' might work as well. Since you 'feature' in your program is probably a 'theoretical' feature - running that with : measure() won't help much. It's worth a shot to reach out to Zeiss support for this info - let us know how you make out ! Thanks ! Link to comment Share on other sites More sharing options...
[Ch...] Posted May 14 Share Posted May 14 (edited) question : do you run from characteristics list instead of features ? - so the Probe Qual is done first, correct ? In theory , you could add 2 probe qualifications, the second one could have a 'condition' set on it if one of the characteristics is ".outOfTolerance" to remeasure. Im testing offline even running from characteristics, it runs the sphere before running the 1st probe qual .. Edited May 14 Link to comment Share on other sites More sharing options...
[Ch...] Posted May 14 Share Posted May 14 Another thing I was thinking is the group you have you can put a LOOP on and have a parameter / formula for that. Although I'm not seeing a way with PCM to test if a "group" is inTolerance or outOfTolerance, that would be one easy way. I'd suggest reaching out to Zeiss team. Please sign in to view this username. any help on this one? Thanks ! Link to comment Share on other sites More sharing options...
[Se...] Posted May 15 Author Share Posted May 15 Please sign in to view this quote. Yes, I am running the measurement from the characteristics list. First, the stylus qualification is done, and then the reference sphere is measured. I added PCM to the stylus qualification characteristic. Link to comment Share on other sites More sharing options...
[Se...] Posted May 15 Author Share Posted May 15 Please sign in to view this quote. Yes, that's right I really want to solve this issue. Thank you so much for your help! Link to comment Share on other sites More sharing options...
[Ch...] Posted Thursday at 12:49 PM Share Posted Thursday at 12:49 PM if you run from characteristics, and it runs as you mentioned (ran the opposite way for me offline), then add a second qualification with a condition getActual("Sphere_Xetc").toleranceState=="outOfTolerance" if this boolean is true then make sure it says yes to remeasure again. Unfortunately, in this condition field I'm not sure you can check if X OR Y OR Z OR DIA are outOfTol , so you may have to do an individual probe qual for each. There is probably a better way with a LOOP, I would reach out to Zeiss, they can probably help on this one. (Maybe they will even add it to the knowledge base article on remeasuring sphere after probe qual) Link to comment Share on other sites More sharing options...
[Se...] Posted Monday at 04:55 AM Author Share Posted Monday at 04:55 AM Please sign in to view this quote. Hi Chris, First of all, thank you for your help. I have one question — Where exactly should I apply the example you showed? Could you please share a screenshot or picture of how it should look? Also, we already contacted ZEISS in our country, but unfortunately, they couldn't solve the issue... Thanks again for your support. Link to comment Share on other sites More sharing options...
[Se...] Posted Monday at 06:05 AM Author Share Posted Monday at 06:05 AM Hi Chris, Please check the attached file. I tried adding the condition as you suggested — and it worked! But as you mentioned, I had to do it separately for X, Y, Z, and DIA. Is there any way to combine them into one condition? Can’t we write it as a single line in the condition field? Link to comment Share on other sites More sharing options...
[Se...] Posted Monday at 06:21 AM Author Share Posted Monday at 06:21 AM Hi Chris, As you can see in the screenshot, the condition for DIA works fine. But the OR condition for X, Y, and Z doesn’t seem to trigger the remeasure. Do you know what might be causing this? Could you please take a look and let me know if something is wrong with the logic? Link to comment Share on other sites More sharing options...
[Ch...] Posted Monday at 12:59 PM Share Posted Monday at 12:59 PM Please sign in to view this username. Glad to hear it worked. I'm sure there may be other ways as well. As I mentioned; unfortunately I don't think we can use AND/OR for Results Element Boolean statement. (would be nice if we could though). Only other thing I was possibly thinking of was : If you put things in a group you may be able to do a little more with the PCM of the group itself, but maybe not. I'll try some other thing when I can. Perhaps Zeiss should make the probe Qual thing a 'feature' instead of a 'characteristic' since its measuring something and not really reporting anything. Then measure() should work just fine. Good luck ! Link to comment Share on other sites More sharing options...
[Ma...] Posted Monday at 06:04 PM Share Posted Monday at 06:04 PM Please sign in to view this username. I am using formula with two conditions. But it's a little long. I don't remember it now, but tommorow i can post my working code. Something like this will get 1 for el1.x out of tolerance: ord(getActual("el1").x > 0.02) You can combine it with "+". For number higher than 1 you can take whole as "ord(... >= 1)" Link to comment Share on other sites More sharing options...
[Ch...] Posted Monday at 07:56 PM Share Posted Monday at 07:56 PM Please sign in to view this username. try this , I got an error offline, but its worth a shot. You can see along the lines how I am thinking of going about this, etc.. In characteristic list just have your probe qual and report features, X,Y,Z and DIA. Then put a LOOP on these, any reasonable #, 5 , 10 , etc. in the LOOP formula put the following : inspectionToleranceState()=="inTolerance" Since the PCM is kind of referencing itself may not work well, but you can try it other ways to, experiment. I'll keep trying as well. Good luck ! 1 Link to comment Share on other sites More sharing options...
[Se...] Posted yesterday at 06:05 AM Author Share Posted yesterday at 06:05 AM Please sign in to view this username. Please take a look at the screenshots. This is how I set it up. In the full PCM code, I defined "outOfTolerance_Master" using four dimensional conditions. With this setup, the condition works correctly. Then I used "inTolerance_Master" as the break condition in the loop. However, it doesn't seem to work properly. What is the difference between these two conditions? Why does one work and the other doesn’t? Link to comment Share on other sites More sharing options...
[na...] Posted 23 hours ago Share Posted 23 hours ago (edited) Please sign in to view this quote. Hi Seo, I believe to fulfill conditions you need to specify booleans: Edited 23 hours ago Link to comment Share on other sites More sharing options...
[na...] Posted 23 hours ago Share Posted 23 hours ago (edited) Please sign in to view this quote. Also, each variable will only be set with the lowest input, which probably isn't your intention: Edited 23 hours ago Link to comment Share on other sites More sharing options...
[Ch...] Posted 19 hours ago Share Posted 19 hours ago Please sign in to view this username. Thank you for the comments. Correct, you need to assign a Boolean statement and also each variable will need it's own unique name. Link to comment Share on other sites More sharing options...
[Se...] Posted 16 hours ago Author Share Posted 16 hours ago Please sign in to view this username. Please sign in to view this username. I see your point. My intention was to group X, Y, Z, and DIA into one logical unit. I tried assigning the same name to all of them and used an outOfTolerance condition. It worked — the condition triggered when any one of the four values went out of tolerance. However, since Boolean conditions in Calypso don’t support using OR or AND directly, I was trying to avoid writing separate conditions for each. Also, I noticed that using inTolerance as a condition to stop the loop doesn’t seem to work, and I’m currently trying to figure out why. If I must assign a unique name to each result, how can I combine them all into a single Boolean condition? Thanks again for the advice — I really appreciate your help. Link to comment Share on other sites More sharing options...
[Ch...] Posted 16 hours ago Share Posted 16 hours ago Please sign in to view this username. Thank you for the comments. Correct, you need to assign a Boolean statement and also each variable will need it's own unique name. Also I dont think 'goto' command actually works but I like the logic and you have the right idea. For that you might need to defineFucntion or just type out your code each time. Link to comment Share on other sites More sharing options...
[Ch...] Posted 16 hours ago Share Posted 16 hours ago (edited) Please sign in to view this username. Wow that is great to hear you managed to get it to work by using the same VARiable name for 4 different values. Maybe is there a way to boolean check for : (getActual("Char").tolerState=="outOfTolerance")=false ?? Edited 16 hours ago Link to comment Share on other sites More sharing options...
[Se...] Posted 41 minutes ago Author Share Posted 41 minutes ago (edited) Please sign in to view this quote. Hi, Please sign in to view this username. Please sign in to view this quote. Edited 33 minutes ago 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