Jump to content

Recall Feature Points from a Single Circle Path of a Cylinder, High Volume (Loop or Pattern)


---
 Share

Recommended Posts

---

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. 

  • Like! 1
Link to comment
Share on other sites

---

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
  • Like! 2
Link to comment
Share on other sites

---

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. 

image.thumb.png.c809d9864e3d3af65d6d45c51068e79d.png

  • Like! 1
Link to comment
Share on other sites

---

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?

  • Like! 1
Link to comment
Share on other sites

---

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. 

image.thumb.png.42cf41bebea579299ff1afd3c2f9728a.png

Link to comment
Share on other sites

---

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. 

image.png.b203486fdd0a95337f006e773def6974.png 

image.png.78e9cdb6c6c492238d79f6d5eb707ee6.png

Link to comment
Share on other sites

---

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
  • Like! 1
  • Awesome! 1
Link to comment
Share on other sites

---

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
  • Like! 1
Link to comment
Share on other sites

---

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
  • Like! 1
  • Awesome! 1
Link to comment
Share on other sites

---

@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 😁

  • Like! 1
Link to comment
Share on other sites

---

@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. 

  • Like! 2
Link to comment
Share on other sites

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
 

  • Like! 2
  • Awesome! 1
Link to comment
Share on other sites

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
Link to comment
Share on other sites

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
  • Like! 3
Link to comment
Share on other sites

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

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

 Share

×
×
  • Create New...