Jump to content

Re-measure a feature according to a condition


---
 Share

Recommended Posts

Hi everyone! I am trying to find out how to re-measure a feature according to a result, for instance, I've created a feature circle "c1" and characteristic "d1" and in the feature "c1" I placed on post-condition a code to check the error form like this:

result=getActual("c1").form

if result > 0.001 then

   activateFeature("c1")

   meausure()

end if

The idea is: if the result is bigger than 0,001 the measurement of the circle should be perform again, but it doesn't work.

I will really apreciate if anyone has an idea how to do this.

Thanks in advance//

Ricardo

Link to comment
Share on other sites

What you are looking for is a method generally referred to as "retrace" (or re-scan).  This is very difficult to accomplish reliably. I am interested to see what our community has come on with on this topic.

Link to comment
Share on other sites

Please sign in to view this quote.

I tried this code but it doesn't work because when I check for instance the form of a diameter and I choose option 3 to re-measure, it evaluates the diameter without measuring the circle again, because the loop is applied to the characteristic, not to the feature.

Link to comment
Share on other sites

I may be way off target, with PCM can you "Delete Characteristic and Feature actuals" or "Delete actuals" (Delete actuals is for the feature) and force a rerun? 

Link to comment
Share on other sites

Please sign in to view this quote.

Hi Richard!  I don't know if is possible to delete but maybe is not necessary, when you re-measure, the new values should replace the old one. 

Link to comment
Share on other sites

We just use two characteristics.  If a diameter of a bore is out of spec from a simple scan, it un-masks characteristics that re-capture the feature with an intensive long boring scan.  Concerning parts just automatically have an extra report page with the intensive scan and graphics. 

Link to comment
Share on other sites

  • 1 month later...

Please sign in to view this quote.

Would you be able to share how you did this please? 
Would save us having to remeasure everything with different outputs on the same features! 

Edited
Link to comment
Share on other sites

I declare a global parameter (DoHelixScan = 0)

The "Non Intensive Scan" characteristic has postprocessing step that sets the DoHelixScan variable based on its results:

Dim7Act    = getActual("Dim 7_Dia").actual
Dim7Nom   = getNominal("Dim 7_Dia").actual
Dim7Upper = getNominal("Dim 7_Dia").tolerance.upperTolerance
Dim7Lower = getNominal("Dim 7_Dia").tolerance.lowerTolerance

if  ( (Dim7Act > (Dim7Nom + Dim7Upper)) or (Dim7Act < (Dim7Nom +Dim7Lower)) )
    DoHelixScan = 1
    display("Helical scan triggered. Dia:", Dim7Act)
else
    DoHelixScan = 0
    display("NO helical scan. Dia:", Dim7Act)
endif

 

The "Intensive Scan" characteristic has a precondition set to "DoHelixScan == 1" and will only execute if the characteristic is out of tolerance. 

Link to comment
Share on other sites

 Share

×
×
  • Create New...