[Iv...] Posted July 17 Share Posted July 17 Hi, I want to extract/recall circle paths from a high volume of cylinders that have already been created and inspected. Due to the volume, I would like to automate the process. Scope: The measurement plan contains a high volume of Cylinders (2000+). Each cylinder is commonly named Cylinder1, Cylinder2, etc. Each Cylinder contains the same strategy (5 circle paths) and evaluation. The pattern of the hole set is not consistent, meaning there is no consistent X and Y offset. Goal: Use an automated process to recall the feature points of each circle path within the Cylinder. I.e., Cylinder1 → Circle1_1, Circle1_3, Circle1_5, where the underscore index represents the circle path. I have coding experience but no direct PCM experience, so I was hoping to avoid PCM. But I'm happy to give it a shot. Any help would be appreciated. 1 Link to comment Share on other sites More sharing options...
[Cl...] Posted July 17 Share Posted July 17 You want to recall all those points into what? Link to comment Share on other sites More sharing options...
[Cl...] Posted July 17 Share Posted July 17 (edited) If you right click on each feature, you can export points to a file and then recall those same points into another feature. Or recall them directly from inside another feature. As far as the lack of a pattern problem. I'm no help there. What is the end goal? Edited July 17 2 Link to comment Share on other sites More sharing options...
[Iv...] Posted July 17 Author Share Posted July 17 Thanks for the response. Let me add some extra information. I would like to recall each scan path for each cylinder into a circle. Then, I would like to report the diameter size for each of these circular paths. Because there are over 2000 cylinders, I would like to avoid any manual process, such as your suggestion above. 1 Link to comment Share on other sites More sharing options...
[Cl...] Posted July 17 Share Posted July 17 You state: "The pattern of the hole set is not consistent, meaning there is no consistent X and Y offset". Do you have a model? 1 Link to comment Share on other sites More sharing options...
[Iv...] Posted July 17 Author Share Posted July 17 I do have a model, but I would be unable to upload it due. A screenshot of the pattern is below. Each hole shown represents a cylinder that was captured. Link to comment Share on other sites More sharing options...
[Ma...] Posted July 17 Share Posted July 17 With this quantity - PCM only way 😆 1 Link to comment Share on other sites More sharing options...
[Iv...] Posted July 17 Author Share Posted July 17 That's what I was thinking, but I thought it was worth asking. I had hope that I could use the recall feature points feature and add a loop to index each cylinder. However, I could not add a formula to the cylinder selection. I could add a loop to the feature point recall box for that specific feature, but that doesn't help much... 😑 My other idea was hoping there was a recallable feature attribute that I could reference in a single diameter callout. I'm aware that not all feature attributes are listed in the popup, so I was hoping that this was hidden as well. Link to comment Share on other sites More sharing options...
[No...] Posted July 18 Share Posted July 18 (edited) I have to thank you for this topic! I've been working with Calypso for 18 years now, and only today found out that the feature(s) to be used in a point recall can also be parametrized with a formula (not just the point range). 😵🤯 But shame on uncle Carl, for the odd way in which this was implemented! Edited July 18 1 1 Link to comment Share on other sites More sharing options...
[No...] Posted July 18 Share Posted July 18 (edited) Update: While playing around with my new knowledge I found out that while you can put a formula on the point recall and specify the features to use with list("Feature1", "Feature2",...) there seems to be no syntax that would allow to further specify which scanning path(s) to take from those features. Adding a point range from the context menu when a formula is already present, doesn't seem to work (it doesn't get stored permanently), so if it's at all possible to define an additional range, it would have to be part of the formula itself. Does anybody know if and how this can be achieved with the list() function? Edited July 18 1 Link to comment Share on other sites More sharing options...
[Ow...] Posted July 18 Share Posted July 18 (edited) That's a lot of cylinders. Not the answer you're looking for, but for refence if you don't use it, anytime I want to use one feature to report the diameter and locations of the cylinder at different depths and cylindricity of all, I create individual circle features/strategies for each depth the cylinder is being measured at, group them together and then recall the circles into a stepped-cylinder feature. The stepped cylinder allows you to report all the diameter sizes and locations in one group. I wish they could add the form/roundness to the stepped cylinder as well, but that has been brought up in Zeiss's "my voice" suggestions a few times, to no avail. It may be easier to extract what you're looking for in a stepped cylinder, with filters applied, with PCM? Edited July 18 1 1 Link to comment Share on other sites More sharing options...
[Cl...] Posted July 18 Share Posted July 18 Where's Eric Moberg when you need him? ;-) 1 Link to comment Share on other sites More sharing options...
[Iv...] Posted July 18 Author Share Posted July 18 @Norbert Bendl Happy to help! And yes, I wish it were implemented in a better way. And can math/code the process in my head, but Calypso lacks the features 😢 I'm not sure if I am completely following. Are you trying to recall the features points of a uniform pattern? If so, I believe you should be able to use the cylinder function with formulas to get that done. You would have to adjust the formulas, but the following is an example. Adjust the X,Y,Z to start at your first hole. Assuming the cylinder is in the Z axis, the X and Y should be the nominal of your hole 1. The Z should include a buffer so that it always captures the first scan path of the cylinder. The diameter should also include a buffer to prevent issues caused by the actual size or X/Y offsets. Then I believe you should be able to pattern this feature to capture all holes. Because my pattern is not consistent, I did not dive into this method. But if you give it a shot, let me know how it goes 😁 1 Link to comment Share on other sites More sharing options...
[Iv...] Posted July 18 Author Share Posted July 18 @Owen Long Very interesting! I never considered a Stepped Cylinder, and that could be very helpful in the future. But the major issue I foresee is that instead of 2000+ cylinders, I would have 10000+ circles (2000 holes x 5 circle paths per hole). And I would need to be very specific with the naming convention so that I could use PCM to recall the 5 circle paths into the proper cylinder. I think you may be alluding to this with your final comment. 2 Link to comment Share on other sites More sharing options...
[Ma...] Posted Saturday at 03:58 PM Share Posted Saturday at 03:58 PM I'm not sitting in front of the computer now but this should get you started in PCM. I may need some tweaking. // Declare the number of cylinders you want to process numCylinders = 2000 // Loop through each cylinder for i = 1 to numCylinders // Build base name of cylinder and circle subfeatures baseName = "Cylinder" + format(i) // Loop through each expected circle path (you mentioned 5) for j = 1 to 5 circleName = "Circle" + format(i) + "_" + format(j) // Check if the feature exists in the plan if doesFeatureExist(circleName) // You can extract or log coordinates or do something with the circle path here xVal = getActual("Position", circleName).x yVal = getActual("Position", circleName).y zVal = getActual("Position", circleName).z // Print or write to file/log if needed println("Feature " + circleName + " position: X=" + format(xVal) + ", Y=" + format(yVal) + ", Z=" + format(zVal)) else println("Feature " + circleName + " does not exist.") endif next j next i 2 1 Link to comment Share on other sites More sharing options...
[Je...] Posted Saturday at 04:19 PM Share Posted Saturday at 04:19 PM (edited) Please sign in to view this username. I echo Please sign in to view this username. . Thanks for posting about this project. I agree with you that the naming conventions will need to be specific. Though it's a complex task, it is achievable. Please sign in to view this username. , thanks for the possible PCM solution. Very innovative. I'll definitely be following this topic, and please keep posting updates on how it develops. Edited Saturday at 04:20 PM Link to comment Share on other sites More sharing options...
[No...] Posted Monday at 06:41 AM Share Posted Monday at 06:41 AM (edited) Please sign in to view this quote. I wasn't trying to solve a problem of my own, but to find a way to a generic solution of yours. Since you can select the features to recall points from with a formula using the list(...) function, I wonder if it's also possible to further select single scan paths of a feature with list(...), in the same way you'd do it manually when you "open" a feature from the context menu in the strategy window. With such a formula and some PCM code I believe you could make a dynamic feature that would recall its points from the correct scan path of the correct cylinder depending on its own name. So you'd just copy it, rename it in a specific way and it would recall the points from a different cylinder/scan path. Edited Monday at 06:44 AM 3 Link to comment Share on other sites More sharing options...
[Iv...] Posted 19 hours ago Author Share Posted 19 hours ago Sorry, I was swamped with other projects and couldn't follow up sooner. I also put in a service request, so I have a couple of updates from that application engineer. @Mark Boucher - Thank you for the support. The PCM code is very similar to the PCM code provided by ZEISS. Some slight differences, the PCM was based more on the nominals than the actuals. And the zValue, included a buffer to capture the offset actuals. I can not validate that your code works, but worst case, it would just need a few modifications. But unfortunately, the ZEISS application engineer confirmed that there is no better way to complete this process. He felt that the concept was interesting enough that it should be considered in My Voice. I was just a little disappointed since all the data is there, but there is no easy way to streamline it. 😭 Link to comment Share on other sites More sharing options...
[Ma...] Posted 18 hours ago Share Posted 18 hours ago Ok, I’ll try and sort it out in PCM. See if I can’t get it to work. Link to comment Share on other sites More sharing options...
[He...] Posted 5 hours ago Share Posted 5 hours ago Would this work for you? Short explaination: Cylinder1-Cylinder11: My try to mimic your current program. CylinderX(11): Recalling each cylinder individually in a pattern Circle_1(11) - Circle_5(11) - Recall the individual paths from the cylinder into 5 separate circles. Testplate.zip 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