hexagon logo

Editing Features/Constructed Features Inside Loop Array?

Hello All,

Fairly new to loops in PCdmis and hoping someone can shed some light on this.

I have a simple loop setup to go through 2 parts. I found (through some extensive searching) that I can change which part is being dimensioned by adding a "[1]" or "[2]" to the feature being dimensioned.
If I add "[1]" to Point1 it will call up Point1 on Part 1. As seen in the code here:

DIM DIM1= LOCATION OF POINT POINT [1] UNITS=MM ,$
GRAPH=OFF TEXT=OFF MULT=10.00 OUTPUT=BOTH
AX MEAS NOMINAL +TOL -TOL DEV OUTTOL
X 19.969 20.000 0.050 0.050 -0.031 0.000 -#-------
Y 19.996 20.000 0.050 0.050 -0.004 0.000 ----#----
Z 0.005 0.000 0.050 0.050 0.005 0.000 ----#----
T 0.005 0.000 0.050 0.050 0.005 0.000 ----#----
END OF DIMENSION DIM1​

This works great, and I can add the bracketed numbers to each dimension to individually edit them. My question is: How do I do the same thing, but actually edit the feature itself, instead of just the measurement of it?

TLDR: I want to edit a single instance of a feature in a looping program without affecting the other instances of it. Is that possible?
Parents
  • Paste w/ Pattern is a built-in feature with PC-DMIS, so that is not a bad practice. Just be sure to have an indexable value at the end of every feature you are copy/pasting to prevent archaic naming from occurring to your freshly pasted features. (I add '_1' to every feature/alignment I plan to use paste w/ pattern on, if reporting/constructing features later in the program, it is now very easy to find which points go together to build/report)

    I suppose in rereading this, you could potentially store the alignment for part1 as an 'external' alignment, then save part2 as another 'external' alignment, using the flow control (IF/ENDIF) you can manage which alignment should be used and recall them explicitly. I believe this would enable you to remeasure a scan, but it would cause a restructure of your current program.

    Loop processes do not lend themselves to be helpful when you need to rerun a specific feature for anything other than the last unit.

    IF_GOTO/lables can enable you to jump through your program isolating only the data you need to remeasure. This could be something to speed up your over-checks, but it takes a great deal of forethought and architecture in your program.




    We found a way to be able to rerun individual features/scans! Basically we ended up using the if statement you recommended and created a bespoke alignment using generic features and recalling an alignment outside the loop. (That way the next iteration in the loop doesn't affect it when it remakes the basic alignments) Then we return to the previous alignment before exiting the if statement. It's a little bit of a workaround but it gives us the result we wanted and is far less code than using paste with pattern on 3500 lines of code. lol

    Just coming back to say thank you for your help!
Reply
  • Paste w/ Pattern is a built-in feature with PC-DMIS, so that is not a bad practice. Just be sure to have an indexable value at the end of every feature you are copy/pasting to prevent archaic naming from occurring to your freshly pasted features. (I add '_1' to every feature/alignment I plan to use paste w/ pattern on, if reporting/constructing features later in the program, it is now very easy to find which points go together to build/report)

    I suppose in rereading this, you could potentially store the alignment for part1 as an 'external' alignment, then save part2 as another 'external' alignment, using the flow control (IF/ENDIF) you can manage which alignment should be used and recall them explicitly. I believe this would enable you to remeasure a scan, but it would cause a restructure of your current program.

    Loop processes do not lend themselves to be helpful when you need to rerun a specific feature for anything other than the last unit.

    IF_GOTO/lables can enable you to jump through your program isolating only the data you need to remeasure. This could be something to speed up your over-checks, but it takes a great deal of forethought and architecture in your program.




    We found a way to be able to rerun individual features/scans! Basically we ended up using the if statement you recommended and created a bespoke alignment using generic features and recalling an alignment outside the loop. (That way the next iteration in the loop doesn't affect it when it remakes the basic alignments) Then we return to the previous alignment before exiting the if statement. It's a little bit of a workaround but it gives us the result we wanted and is far less code than using paste with pattern on 3500 lines of code. lol

    Just coming back to say thank you for your help!
Children