Your Products have been synced, click here to refresh
COMMENT/REPT, RECALL/ALIGNMENT,INTERNAL,A8_1 $$ NO, This section evaluates if any of the first 8 samples fail, and will flag the auditor with a comment. If comment isn't responded to within 30 seconds, it will automatically continue, prompting to load samples 9-16. If responded with "NO", program will cancel without any Measurlink output, but will still output all data for cavities 1-8 to the C:\ drive location. ASSIGN/OT1=SUM(ARRAY(AA_1.D.OUTTOL <> 0, AB1_1.M.OUTTOL <> 0, AB2_1.M.OUTTOL <> 0, AB3_1.M.OUTTOL <> 0, AC1_1.M.OUTTOL <> 0, AC2_1.M.OUTTOL <> 0, AC3_1.M.OUTTOL <> 0, AD_1.D.OUTTOL <> 0, AE_1.M.OUTTOL <> 0, AF_1.M.OUTTOL <> 0)) ASSIGN/OT2=SUM(ARRAY(AA_2.D.OUTTOL <> 0, AB1_2.M.OUTTOL <> 0, AB2_2.M.OUTTOL <> 0, AB3_2.M.OUTTOL <> 0, AC1_2.M.OUTTOL <> 0, AC2_2.M.OUTTOL <> 0, AC3_2.M.OUTTOL <> 0, AD_2.D.OUTTOL <> 0, AE_2.M.OUTTOL <> 0, AF_2.M.OUTTOL <> 0)) ASSIGN/OT3=SUM(ARRAY(AA_3.D.OUTTOL <> 0, AB1_3.M.OUTTOL <> 0, AB2_3.M.OUTTOL <> 0, AB3_3.M.OUTTOL <> 0, AC1_3.M.OUTTOL <> 0, AC2_3.M.OUTTOL <> 0, AC3_3.M.OUTTOL <> 0, AD_3.D.OUTTOL <> 0, AE_3.M.OUTTOL <> 0, AF_3.M.OUTTOL <> 0)) ASSIGN/OT4=SUM(ARRAY(AA_4.D.OUTTOL <> 0, AB1_4.M.OUTTOL <> 0, AB2_4.M.OUTTOL <> 0, AB3_4.M.OUTTOL <> 0, AC1_4.M.OUTTOL <> 0, AC2_4.M.OUTTOL <> 0, AC3_4.M.OUTTOL <> 0, AD_4.D.OUTTOL <> 0, AE_4.M.OUTTOL <> 0, AF_4.M.OUTTOL <> 0)) ASSIGN/OT5=SUM(ARRAY(AA_5.D.OUTTOL <> 0, AB1_5.M.OUTTOL <> 0, AB2_5.M.OUTTOL <> 0, AB3_5.M.OUTTOL <> 0, AC1_5.M.OUTTOL <> 0, AC2_5.M.OUTTOL <> 0, AC3_5.M.OUTTOL <> 0, AD_5.D.OUTTOL <> 0, AE_5.M.OUTTOL <> 0, AF_5.M.OUTTOL <> 0)) ASSIGN/OT6=SUM(ARRAY(AA_6.D.OUTTOL <> 0, AB1_6.M.OUTTOL <> 0, AB2_6.M.OUTTOL <> 0, AB3_6.M.OUTTOL <> 0, AC1_6.M.OUTTOL <> 0, AC2_6.M.OUTTOL <> 0, AC3_6.M.OUTTOL <> 0, AD_6.D.OUTTOL <> 0, AE_6.M.OUTTOL <> 0, AF_6.M.OUTTOL <> 0)) ASSIGN/OT7=SUM(ARRAY(AA_7.D.OUTTOL <> 0, AB1_7.M.OUTTOL <> 0, AB2_7.M.OUTTOL <> 0, AB3_7.M.OUTTOL <> 0, AC1_7.M.OUTTOL <> 0, AC2_7.M.OUTTOL <> 0, AC3_7.M.OUTTOL <> 0, AD_7.D.OUTTOL <> 0, AE_7.M.OUTTOL <> 0, AF_7.M.OUTTOL <> 0)) ASSIGN/OT8=SUM(ARRAY(AA_8.D.OUTTOL <> 0, AB1_8.M.OUTTOL <> 0, AB2_8.M.OUTTOL <> 0, AB3_8.M.OUTTOL <> 0, AC1_8.M.OUTTOL <> 0, AC2_8.M.OUTTOL <> 0, AC3_8.M.OUTTOL <> 0, AD_8.D.OUTTOL <> 0, AE_8.M.OUTTOL <> 0, AF_8.M.OUTTOL <> 0)) ASSIGN/WHATCAV=IF(OT1<>0,"#1, ","")+IF(OT2<>0,"#2, ","")+IF(OT3<>0,"#3, ","")+IF(OT4<>0,"#4, ","")+IF(OT5<>0,"#5, ","")+IF(OT6<>0,"#6, ","")+IF(OT7<>0,"#7, ","")+IF(OT8<>0,"#8, ","") IF/SUM(ARRAY(OT1,OT2,OT3,OT4,OT5,OT6,OT7,OT8)) == 0 GOTO/CONTINUEOUTPUT END_IF/ ELSE/ OOT1NOTE =COMMENT/YESNO,NO,FULL SCREEN=YES,AUTO-CONTINUE=NO, "Part(s) in fixture location(s) " + WHATCAV + " = out of tolerance. " "Continue Program for samples 9-16 (as applies)? " "Click YES to continue, or " "Click NO to end routine. " " --If no, data will NOT be sent to Measurlink." IF_GOTO/OOT1NOTE.INPUT=="NO",GOTO = END IF_GOTO/OOT1NOTE.INPUT=="YES",GOTO = CONTINUEOUTPUT END_ELSE/ CONTINUEOUTPUT =LABEL
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.
Are the names updating properly? Where the constructions are occurring, are the same number of features being utilized?
How did you name your features, did you add something like "_1" to the end of each feature you are trying to pattern, or give it some type of countable index value?
Do you have proper workplanes set for your construction vs the pattern? (Pattern paste could require Z workplane, while feature construction could need X/Y workplane)
Sharing a sample of the code might aid with some advice that gets your goal completed faster.
© 2024 Hexagon AB and/or its subsidiaries. | Privacy Policy | Cloud Services Agreement |