CS3 =SCRIPT/FILENAME= C:\PROGRAM FILES\WAI\PC-DMIS V40\PART PROGRAMS\VARIABLES PULLED.BAS FUNCTION/Main,SHOW=YES,, STARTSCRIPT/ ASSIGN/A = .709 ASSIGN/B = .570 ASSIGN/C = 1.023 ASSIGN/D = 1.062 ASSIGN/E = .561 ASSIGN/F = 1.159 ASSIGN/G = 1.414 ASSIGN/HOLESETS = 1 ASSIGN/NUMBER1HOLES = 6 ASSIGN/NUMBER2HOLES = 0 ASSIGN/START1Z = 90 ASSIGN/START2Z = 90 ASSIGN/Z1ROTATE = 360/NUMBER1HOLES ASSIGN/Z2ROTATE = 360/NUMBER2HOLES ASSIGN/X1ANGLE = 45 ASSIGN/X2ANGLE = 0 ASSIGN/X1ROTATE = -45 ASSIGN/X2ROTATE = 0 ASSIGN/X1ROTATEBACK = -(X1ROTATE) ASSIGN/X2ROTATEBACK = -(X2ROTATE) ASSIGN/A1START = 0 ASSIGN/A1END = 360 ASSIGN/A1ANGLE = 45 ASSIGN/B10ANGLE = 90 ASSIGN/B11ANGLE = 150 ASSIGN/B12ANGLE = -150 ASSIGN/B13ANGLE = -90 ASSIGN/B14ANGLE = -30 ASSIGN/B15ANGLE = 30 ASSIGN/B16ANGLE = 0 ASSIGN/B17ANGLE = 0 ASSIGN/B18ANGLE = 0 ASSIGN/B19ANGLE = 0 ASSIGN/A2START = 0 ASSIGN/A2END = 0 ASSIGN/A2ANGLE = 0 ASSIGN/B20ANGLE = 0 ASSIGN/B21ANGLE = 0 ASSIGN/B22ANGLE = 0 ASSIGN/B23ANGLE = 0 ASSIGN/B24ANGLE = 0 ASSIGN/B25ANGLE = 0 ASSIGN/THRUHOLEDEPTH = -(B)-.025 ASSIGN/Z1START = Z1ROTATE/2 ASSIGN/Z2START = Z2ROTATE/2 ENDSCRIPT/
ASSIGN/B_DIAM = B*2 IF/HOLESETS==1 ASSIGN/CRHITS = 12 ASSIGN/SRSTART = -START1Z+(Z1ROTATE/2) ASSIGN/SRROTATE = Z1ROTATE ISR_ROT =ALIGNMENT/START,RECALL[emoticon:6D505171FAA4497C85C5CA27290C555D]ATUM_XY,LIST=YES ALIGNMENT/ROTATE_OFFSET,SRSTART,ABOUT,ZPLUS ALIGNMENT/END V1 =LOOP/START, ID = YES, NUMBER = NUMBER1HOLES, START = 1, SKIP = , OFFSET: XAXIS = 0, YAXIS = 0, ZAXIS = 0, ANGLE = SRROTATE MOVE/CLEARPLANE ISR1_ =AUTO/CIRCLE,SHOWALLPARAMS = YES,SHOWHITS = NO THEO/0+0,0+0,0.009+0,1,0,0,B_DIAM+0 ACTL/0,0,0.009,1,0,0,1.14 TARG/0+0,0+0,0.009+0,1,0,0 THICKNESS_OFF = 0,RECT,IN,CIRCULAR,LEAST_SQR,ONERROR = NO,$ AUTO MOVE = NO,DISTANCE = 1,RMEAS = None,None,None,$ READ POS = NO,FIND HOLE = DISABLED,REMEASURE = NO,$ NUMHITS = CRHITS,INIT = 0,PERM = 0,SPACER = 0,PITCH = 0,$ START ANG = -140,END ANG = -115,DEPTH = 0,$ VOID DETECT = NO,$ ANGLE VEC = 0,0,1 LOOP/END COMMENT/OPER,NO,Need to construct Sphere ISR_ROTA =ALIGNMENT/START,RECALL[emoticon:6D505171FAA4497C85C5CA27290C555D]ATUM_XY,LIST=YES ALIGNMENT/ROTATE_OFFSET,-SRSTART,ABOUT,ZPLUS ALIGNMENT/END END_IF/ IF/HOLESETS==2 ASSIGN/CRHITS = 10 ASSIGN/SRSTART = START2Z+(Z2ROTATE/2) ASSIGN/SRROTATE = Z2ROTATE ASSIGN/SRSTART2 = START1Z+(Z1ROTATE/2) ASSIGN/SRROTATE2 = Z1ROTATE ISR_ROT =ALIGNMENT/START,RECALL[emoticon:6D505171FAA4497C85C5CA27290C555D]ATUM_XY,LIST=YES ALIGNMENT/ROTATE_OFFSET,SRSTART,ABOUT,ZPLUS ALIGNMENT/END V1 =LOOP/START, ID = YES, NUMBER = NUMBER2HOLES, START = 1, SKIP = , OFFSET: XAXIS = 0, YAXIS = 0, ZAXIS = 0, ANGLE = SRROTATE MOVE/CLEARPLANE ISR1_ =AUTO/CIRCLE,SHOWALLPARAMS = YES,SHOWHITS = NO THEO/0+0,0+0,0.009+0,1,0,0,B_DIAM+0 ACTL/0,0,0.009,1,0,0,1.14 TARG/0+0,0+0,0.009+0,1,0,0 THICKNESS_OFF = 0,RECT,IN,CIRCULAR,LEAST_SQR,ONERROR = NO,$ AUTO MOVE = NO,DISTANCE = 1,RMEAS = None,None,None,$ READ POS = NO,FIND HOLE = DISABLED,REMEASURE = NO,$ NUMHITS = CRHITS,INIT = 0,PERM = 0,SPACER = 0,PITCH = 0,$ START ANG = -140,END ANG = -130,DEPTH = 0,$ VOID DETECT = NO,$ ANGLE VEC = 0,0,1 LOOP/END ISR_ROTA =ALIGNMENT/START,RECALL[emoticon:6D505171FAA4497C85C5CA27290C555D]ATUM_XY,LIST=YES ALIGNMENT/ROTATE_OFFSET,-SRSTART,ABOUT,ZPLUS ALIGNMENT/END ISR_ROT =ALIGNMENT/START,RECALL[emoticon:6D505171FAA4497C85C5CA27290C555D]ATUM_XY,LIST=YES ALIGNMENT/ROTATE_OFFSET,SRSTART2,ABOUT,ZPLUS ALIGNMENT/END V2 =LOOP/START, ID = YES, NUMBER = NUMBER1HOLES, START = 1, SKIP = , OFFSET: XAXIS = 0, YAXIS = 0, ZAXIS = 0, ANGLE = SRROTATE MOVE/CLEARPLANE ISR2_ =AUTO/CIRCLE,SHOWALLPARAMS = YES,SHOWHITS = NO THEO/0+0,0+0,0.009+0,1,0,0,B_DIAM+0 ACTL/0,0,0.009,-1,0,0,1.14 TARG/0+0,0+0,0.009+0,1,0,0 THICKNESS_OFF = 0,RECT,IN,CIRCULAR,LEAST_SQR,ONERROR = NO,$ AUTO MOVE = NO,DISTANCE = 1,RMEAS = None,None,None,$ READ POS = NO,FIND HOLE = DISABLED,REMEASURE = NO,$ NUMHITS = CRHITS,INIT = 0,PERM = 0,SPACER = 0,PITCH = 0,$ START ANG = -125,END ANG = -115,DEPTH = 0,$ VOID DETECT = NO,$ ANGLE VEC = 0,0,1 LOOP/END COMMENT/OPER,NO,Need to construct Sphere ISR_ROTA =ALIGNMENT/START,RECALL[emoticon:6D505171FAA4497C85C5CA27290C555D]ATUM_XY,LIST=YES ALIGNMENT/ROTATE_OFFSET,-SRSTART2,ABOUT,ZPLUS ALIGNMENT/END END_IF/ IF/HOLESETS==1 IF/NUMBER1HOLES==6 SPH1 =FEAT/SPHERE,RECT,OUT THEO/0.11629,0.20141,0.009,0,0,1,1.23124 ACTL/-0.02884,0.01665,-0.0243,0,0,1,1.04588 CONSTR/SPHERE,BF,ISR1_1.HITS[1..10],ISR1_2.HITS[1..10],ISR1_3.HITS[1..10],ISR1_4.HITS[1..10],ISR1_5.HITS[1..10],ISR1_6.HITS[1..10],, END_IF/ END_IF/ IF/HOLESETS==2 IF/NUMBER1HOLES==6 SPH1 =FEAT/SPHERE,RECT,OUT THEO/0.11629,0.20141,0.009,0,0,1,1.23124 ACTL/-0.02884,0.01665,-0.0243,0,0,1,1.04588 CONSTR/SPHERE,BF,ISR1_1.HITS[1..10],ISR1_2.HITS[1..10],ISR1_3.HITS[1..10],ISR1_4.HITS[1..10],ISR1_5.HITS[1..10],ISR1_6.HITS[1..10],ISR2_1.HITS[1..10],ISR2_2.HITS[1..10],ISR2_3.HITS[1..10],ISR2_4.HITS[1..10],ISR2_5.HITS[1..10],, END_IF/ IF/NUMBER1HOLES==7 SPH1 =FEAT/SPHERE,RECT,OUT THEO/0.11629,0.20141,0.009,0,0,1,1.23124 ACTL/-0.02884,0.01665,-0.0243,0,0,1,1.04588 CONSTR/SPHERE,BF,ISR1_1.HITS[1..10],ISR1_2.HITS[1..10],ISR1_3.HITS[1..10],ISR1_4.HITS[1..10],ISR1_5.HITS[1..10],ISR1_6.HITS[1..10],ISR1_7.HITS[1..10],ISR2_1.HITS[1..10],ISR2_2.HITS[1..10],ISR2_3.HITS[1..10],ISR2_4.HITS[1..10],, END_IF/ IF/NUMBER1HOLES==8 SPH1 =FEAT/SPHERE,RECT,OUT THEO/0.11629,0.20141,0.009,0,0,1,1.23124 ACTL/-0.02884,0.01665,-0.0243,0,0,1,1.04588 CONSTR/SPHERE,BF,ISR1_1.HITS[1..10],ISR1_2.HITS[1..10],ISR1_3.HITS[1..10],ISR1_4.HITS[1..10],ISR1_5.HITS[1..10],ISR1_6.HITS[1..10],ISR1_7.HITS[1..10],ISR1_8.HITS[1..10],, END_IF/ IF/NUMBER1HOLES==9 SPH1 =FEAT/SPHERE,RECT,OUT THEO/0.11629,0.20141,0.009,0,0,1,1.23124 ACTL/-0.02884,0.01665,-0.0243,0,0,1,1.04588 CONSTR/SPHERE,BF,ISR1_1.HITS[1..10],ISR1_2.HITS[1..10],ISR1_3.HITS[1..10],ISR1_4.HITS[1..10],ISR1_5.HITS[1..10],ISR1_6.HITS[1..10],ISR1_7.HITS[1..10],ISR1_8.HITS[1..10],ISR1_9.HITS[1..10],, END_IF/ IF/NUMBER1HOLES==10 SPH1 =FEAT/SPHERE,RECT,OUT THEO/0.11629,0.20141,0.009,0,0,1,1.23124 ACTL/-0.02884,0.01665,-0.0243,0,0,1,1.04588 CONSTR/SPHERE,BF,ISR1_1.HITS[1..10],ISR1_2.HITS[1..10],ISR1_3.HITS[1..10],ISR1_4.HITS[1..10],ISR1_5.HITS[1..10],ISR1_6.HITS[1..10],ISR1_7.HITS[1..10],ISR1_8.HITS[1..10],ISR1_9.HITS[1..10],ISR1_10.HITS[1..10],, END_IF/ END_IF/ ASSIGN/EREF = 0
Ok here is the code ^. Here is my problem.
On a different CMM software, MCOSMOS to be exact, I can select a feature and then use a measuring pattern to draw said feature. So for instance, a sphere. I can select sphere and then crunch out arcs, and finish that feature and allow the software to calculate out the sphere from all the points entered. Comes in handy when you have a segmented sphere due to hole locations, openings, windows, etc.
So in my attempt to do something relatively close to it on PCDMIS, I have ran into some snags. In the code above, I am running a series of cup parts. A family of approx. 20 parts. Through the script, i put in the above window, that is called in through variable inputs I can call in all the print dimensions I need for the Part Size that is inputed. So with all 20 parts being almost identical, I can just run them all through one program.
The problem. The internal sphere, the cup, is broken up by thru holes. So I have to measure it using arcs. The holes are on certain rotation patterns but as the part gets bigger, there becomes 2 rows and the holes don't line up. So again I am stuck with arcing, in more locations on them. In my best attempt to remain accurate, I arc in the middle of every 2 holes.
Now toward the end of my line of code, in the bottom section, i ran out of room to incorporate more arcs into my sphere constructions. I am sure there has to be a better way to do this. I am treading unknown waters when it comes to using loops in PCDMIS, they have been aggrevating. I do not know if I am even programming this correctly. I am just hard coding, I do not have a part infront of me. Just a stack of blueprints.
So any and all advice or input on this would be most welcomed.