hexagon logo

Using external alignment to run multiple parts instead of looping.

I'm really close to ditching any attempt to use looping in my program to try and run multiple parts on my CMM table (I would like to run maybe 6 max). I'm trying to use 1 probe to inspect all the parts features (measuring on part, then going down in -Y 11.5" and doing the same measurement, go down in -Y again etc), then change probes, and measure all parts the same way (measuring all necessary features of one part, and then going down 11.5 inches in Y). The alignment keeps changing on me from the first part to the second...and when I post the data, 1 part will have the alignment from the second part. So, everything will dimensionally be okay, but because the origin is shifted down in Y by 11.5 inches, everything is screwed up on the total positioning (even though I know these parts will pass). How can I save one alignment/ do an external alignment, and then just shift it down 11.5 inches? I am sick of using looping, I feel like looping is really only for like bolt hole patterns, and waffle grid patterns in holes. Measuring whole parts in different locations is giving me a nightmare. It's something about the tool change and multiple parts. Because the second part doesn't get it's own alignment (like if your DCC alignment was A3, the second part should get A3-2 or something like that, but no. It just drives off the first parts alignment. I need multiple alignments just like the first part, just in different locations. I'll post the code just for giggles.
STARTUP =ALIGNMENT/START,RECALL:USE_PART_SETUP,LIST=YES
ALIGNMENT/END
MODE/MANUAL
FORMAT/TEXT,OPTIONS, ,HEADINGS,SYMBOLS, ;NOM,TOL,MEAS,DEV,OUTTOL, ,
LOADPROBE/4MM X 20MM
TIP/T1A0B0, SHANKIJK=0, 0, 1, ANGLE=0
PLN1 =FEAT/PLANE,CARTESIAN,TRIANGLE
THEO/<3.4829,-0.1456,0>,<0,0,1>
ACTL/<12.1376,32.7697,-26.1905>,<0.0005222,-0.0003643,0.9999998>
MEAS/PLANE,3
HIT/BASIC,NORMAL,<1.9889,-0.5175,0>,<0,0,1>,<10.5594,32.265,-26.1899>,USE THEO=YES
HIT/BASIC,NORMAL,<4.0258,0.8213,0>,<0,0,1>,<12.1295,33 .9516,-26.1901>,USE THEO=YES
HIT/BASIC,NORMAL,<4.434,-0.7405,0>,<0,0,1>,<13.7238,32.0923,-26.1916>,USE THEO=YES
ENDMEAS/
LIN1 =FEAT/LINE,CARTESIAN,UNBOUNDED
THEO/<-2.1728,-2.295,-0.6305>,<1,0,0>
ACTL/<6.7011,30.8644,-26.6467>,<1,-0.0003111,0>
MEAS/LINE,2,ZPLUS
HIT/BASIC,NORMAL,<-2.1728,-2.295,-0.629>,<0,-1,0>,<6.7011,30.8644,-26.6468>,USE THEO=YES
HIT/BASIC,NORMAL,<6.84,-2.295,-0.632>,<0,-1,0>,<15.6711,30.8616,-26.6467>,USE THEO=YES
ENDMEAS/
PNT1 =FEAT/POINT,CARTESIAN
THEO/<-2.275,0.0718,-0.3763>,<-1,0,0>
ACTL/<6.3863,31.8955,-26.567>,<-0.9999996,-0.0009195,0>
MEAS/POINT,1,WORKPLANE
HIT/BASIC,NORMAL,<-2.275,0.0718,-0.3763>,<-1,0,0>,<6.3863,31.8955,-26.567>,USE THEO=YES
ENDMEAS/
A1 =ALIGNMENT/START,RECALL:STARTUP,LIST=YES
ALIGNMENT/LEVEL,ZPLUS,PLN1
ALIGNMENT/TRANS,ZAXIS,PLN1
ALIGNMENT/ROTATE,XPLUS,TO,LIN1,ABOUT,ZPLUS
ALIGNMENT/TRANS,YAXIS,LIN1
ALIGNMENT/TRANS,XAXIS,PNT1
ALIGNMENT/END
MODE/DCC
FLY/ON
MOVESPEED/ 250
MOVE/POINT,NORMAL,<4.5328,1.9318,1.0961>
PLN2 =FEAT/PLANE,CARTESIAN,TRIANGLE
THEO/<5.7549,2.0759,0>,<0,0,1>
ACTL/<5.755,2.0756,-0.0033>,<0.0000146,-0.0000177,1>
MEAS/PLANE,3
MOVE/POINT,NORMAL,<7.0084,1.6156,0.8147>
(CODE CUT TO FIT, JUST MOVE POINTS)
HIT/BASIC,NORMAL,<4.2265,1.4394,0>,<0,0,1>,<4.2264,1.4 389,-0.0033>,USE THEO=YES
HIT/BASIC,NORMAL,<6.0296,3.0913,0>,<0,0,1>,<6.0298,3.0 911,-0.0033>,USE THEO=YES
HIT/BASIC,NORMAL,<7.0084,1.6972,0>,<0,0,1>,<7.0086,1.6 967,-0.0033>,USE THEO=YES
ENDMEAS/
MOVE/POINT,NORMAL,<6.9272,2.3614,1.4628>
MOVE/POINT,NORMAL,<6.8272,-0.616,0.8246>
MOVE/POINT,NORMAL,<0.1955,-0.616,1.1066>
MOVE/POINT,NORMAL,<0.1955,-0.3262,-0.6042>
LIN2 =FEAT/LINE,CARTESIAN,UNBOUNDED
THEO/<0.2769,0,-0.6506>,<1,0,0>
ACTL/<0.2769,0.0045,-0.6505>,<1,-0.0000029,0>
MEAS/LINE,2,ZPLUS
HIT/BASIC,NORMAL,<0.2769,0,-0.6573>,<0,-1,0>,<0.2769,0.0045,-0.6573>,USE THEO=YES
HIT/BASIC,NORMAL,<8.968,0,-0.6438>,<0,-1,0>,<8.9682,0.0045,-0.6437>,USE THEO=YES
ENDMEAS/
MOVE/POINT,NORMAL,<8.968,-0.4155,1.3796>
MOVE/POINT,NORMAL,<-0.591,-0.4155,1.5577>
MOVE/POINT,NORMAL,<-0.6887,-0.4155,-0.3356>
PNT2 =FEAT/POINT,CARTESIAN
THEO/<0,2.1944,-0.3618>,<-1,0,0>
ACTL/<0.0011,2.1942,-0.3618>,<-1,0,0>
MEAS/POINT,1,WORKPLANE
HIT/BASIC,NORMAL,<0,2.1944,-0.3618>,<-1,0,0>,<0.0011,2.1942,-0.3618>,USE THEO=YES
ENDMEAS/
MOVE/POINT,NORMAL,<-0.4913,2.1944,1.5459>
A2 =ALIGNMENT/START,RECALL:STARTUP,LIST=YES
ALIGNMENT/LEVEL,ZPLUS,PLN2
ALIGNMENT/TRANS,ZAXIS,PLN2
ALIGNMENT/ROTATE,XPLUS,TO,LIN2,ABOUT,ZPLUS
ALIGNMENT/TRANS,YAXIS,LIN2
ALIGNMENT/TRANS,XAXIS,PNT2
ALIGNMENT/END
V1 =LOOP/START,ID=YES,NUMBER=2,START=1,SKIP=,
OFFSET:XAXIS=0,YAXIS=-11.5,ZAXIS=0,ANGLE=0
MOVE/POINT,NORMAL,<3.9146,2.1944,2.4398>
PLN3-DATUM A =FEAT/PLANE,CARTESIAN,TRIANGLE
THEO/<5.9086,2.2725,0>,<0,0,1>
ACTL/<5.9087,2.2722,0.0033>,<0.0004246,-0.0001787,0.9999999>
MEAS/PLANE,7
HIT/BASIC,NORMAL,<4.3281,3.3546,0>,<0,0,1>,<4.3283,3.3 544,0.0044>,USE THEO=YES
HIT/BASIC,NORMAL,<4.0306,1.4526,0>,<0,0,1>,<4.0305,1.4 522,0.0041>,USE THEO=YES
HIT/BASIC,NORMAL,<5.7436,3.0695,0>,<0,0,1>,<5.7437,3.0 693,0.0031>,USE THEO=YES
HIT/BASIC,NORMAL,<5.8434,1.4538,0>,<0,0,1>,<5.8436,1.4 534,0.0029>,USE THEO=YES
HIT/BASIC,NORMAL,<7.2594,3.4126,0>,<0,0,1>,<7.2596,3.4 124,0.0031>,USE THEO=YES
HIT/BASIC,NORMAL,<6.8504,2.1411,0>,<0,0,1>,<6.8502,2.1 408,0.0029>,USE THEO=YES
HIT/BASIC,NORMAL,<7.3046,1.0234,0>,<0,0,1>,<7.3047,1.0 23,0.0027>,USE THEO=YES
ENDMEAS/
MOVE/POINT,NORMAL,<7.3046,0.3131,1.0796>
MOVE/POINT,NORMAL,<7.3046,-0.5902,-0.3132>
PLN4-DATUM B =FEAT/PLANE,CARTESIAN,TRIANGLE
THEO/<4.6859,0,-0.7652>,<0,-1,0>
ACTL/<4.6858,0.0045,-0.7651>,<0.0000139,-0.9999988,-0.0015266>
MEAS/PLANE,8
HIT/BASIC,NORMAL,<9.0292,0,-0.683>,<0,-1,0>,<9.0294,0.0044,-0.683>,USE THEO=YES
(CODE CUT TO FIT)
ENDMEAS/
MOVE/POINT,NORMAL,<0.1156,-0.5425,2.3897>
MOVE/POINT,NORMAL,<0.1156,4.8792,2.1768>
MOVE/POINT,NORMAL,<10.7453,4.8792,2.63>
MOVE/POINT,NORMAL,<10.7453,5.1562,-0.4423>
PLN5-BACKSIDE COMPARATIVE =FEAT/PLANE,CARTESIAN,TRIANGLE
THEO/<6.3431,4.59,-0.7871>,<0,1,0>
ACTL/<6.343,4.5968,-0.7869>,<-0.0000426,0.9999986,-0.0016886>
MEAS/PLANE,8
HIT/BASIC,NORMAL,<11.4177,4.59,-0.638>,<0,1,0>,<11.4179,4.5971,-0.6379>,USE THEO=YES
(CODE CUT TO FIT)
ENDMEAS/
MOVE/POINT,NORMAL,<0.1326,4.774,0.2651>
MOVE/POINT,NORMAL,<-0.331,4.774,0.0903>
PLN6-DATUM C =FEAT/PLANE,CARTESIAN,TRIANGLE
THEO/<0,2.3748,-0.5079>,<-1,0,0>
ACTL/<0.011,2.3744,-0.508>,<-0.9999993,0.0000425,0.0011476>
MEAS/PLANE,9
HIT/BASIC,NORMAL,<0,4.5184,-0.7714>,<-1,0,0>,<0.0103,4.518,-0.7715>,USE THEO=YES
(CODE CUT TO FIT/MEASURING A PLANE)
ENDMEAS/
MOVE/POINT,NORMAL,<-0.7644,0.0617,1.8962>
MOVE/POINT,NORMAL,<2.0946,0.0617,2.4491>
A3 =ALIGNMENT/START,RECALL:STARTUP,LIST=YES
ALIGNMENT/LEVEL,ZPLUS,PLN3-DATUM A
ALIGNMENT/TRANS,ZAXIS,PLN3-DATUM A
ALIGNMENT/ROTATE,YMINUS,TO,PLN4-DATUM B,ABOUT,ZPLUS
ALIGNMENT/TRANS,YAXIS,PLN4-DATUM B
ALIGNMENT/TRANS,XAXIS,PLN6-DATUM C
ALIGNMENT/END
A4 =ALIGNMENT/START,RECALL:STARTUP,LIST=YES
ALIGNMENT/LEVEL,ZPLUS,PLN3-DATUM A
ALIGNMENT/TRANS,ZAXIS,PLN3-DATUM A
ALIGNMENT/ROTATE,YMINUS,TO,PLN4-DATUM B,ABOUT,ZPLUS
ALIGNMENT/TRANS,YAXIS,PLN4-DATUM B
ALIGNMENT/TRANS,XAXIS,PLN6-DATUM C
ALIGNMENT/END
RECALL/ALIGNMENT,INTERNAL,A3
CIR1 =FEAT/CONTACT/CIRCLE/DEFAULT,CARTESIAN,IN,LEAST_SQR
THEO/<2.27,13.795,0.4>,<0,0,1>,2.62
ACTL/<2.272,13.7962,0.3979>,<0,0,1>,2.6191
TARG/<2.27,13.795,0.4>,<0,0,1>
START ANG=0,END ANG=361.2
ANGLE VEC=<1,0,0>
DIRECTION=CCW
SHOW FEATURE PARAMETERS=NO
SHOW CONTACT PARAMETERS=YES
NUMHITS=8,DEPTH=0.065,PITCH=0
SAMPLE METHOD=SAMPLE_HITS
SAMPLE HITS=0,SPACER=0
AVOIDANCE MOVE=BOTH,DISTANCE=1
FIND HOLE=DISABLED,ONERROR=NO,READ POS=NO
SHOW HITS=NO
CIR2 =FEAT/CONTACT/CIRCLE/DEFAULT,CARTESIAN,IN,LEAST_SQR
THEO/<9.235,13.795,0.4>,<0,0,1>,2.62
ACTL/<9.235,13.7961,0.3979>,<0,0,1>,2.6192
TARG/<9.235,13.795,0.4>,<0,0,1>
START ANG=0,END ANG=360
ANGLE VEC=<1,0,0>
DIRECTION=CCW
SHOW FEATURE PARAMETERS=NO
SHOW CONTACT PARAMETERS=YES
NUMHITS=8,DEPTH=0.065,PITCH=0
SAMPLE METHOD=SAMPLE_HITS
SAMPLE HITS=0,SPACER=0
AVOIDANCE MOVE=BOTH,DISTANCE=1
FIND HOLE=DISABLED,ONERROR=NO,READ POS=NO
SHOW HITS=NO
MOVE/INCREMENT,<0,0,2>
LOOP/END
MOVE/INCREMENT,<6,0,0>
MOVE/INCREMENT,<0,0,4>
MOVE/POINT,NORMAL,<15.241,-20.3018,9.4919>
LOADPROBE/SUXING PROBE 1MM X 40MM
TIP/T1A0B0, SHANKIJK=-0.0007, 0.0006, 1, ANGLE=0.0216
AUTOCALIBRATE/PROBE, PARAMETER_SET=SUXING PROBE 1MMx40MM 0-0, QUALTOOL_MOVED=NO,
CHECK COLLISION=NO, SHOW_SUMMARY=NO, OVERWRITE_RESULTSFILE=NO
MOVE/INCREMENT,<0,0,2>
TOUCHSPEED/ 1
MOVE/POINT,NORMAL,<0.9019,-1.9748,7.5298>
MOVE/POINT,NORMAL,<0.49,0.3912,3.3834>
MOVE/POINT,NORMAL,<6.9268,2.6651,2.9921>
V2 =LOOP/START,ID=YES,NUMBER=2,START=1,SKIP=,
OFFSET:XAXIS=0,YAXIS=-11.5,ZAXIS=0,ANGLE=0
CIR3 =FEAT/CONTACT/CIRCLE/DEFAULT,CARTESIAN,IN,LEAST_SQR
THEO/<7.0004,14.8936,0>,<0,0,1>,0.1005
ACTL/<7.0016,14.8947,0>,<0,0,1>,0.1008
TARG/<7.0004,14.8936,0>,<0,0,1>
START ANG=0,END ANG=360
ANGLE VEC=<1,0,0>
DIRECTION=CCW
SHOW FEATURE PARAMETERS=NO
SHOW CONTACT PARAMETERS=YES
NUMHITS=8,DEPTH=0.04,PITCH=0
SAMPLE METHOD=SAMPLE_HITS
SAMPLE HITS=0,SPACER=0
AVOIDANCE MOVE=BOTH,DISTANCE=1
FIND HOLE=DISABLED,ONERROR=NO,READ POS=NO
SHOW HITS=NO
CIR4 =FEAT/CONTACT/CIRCLE/DEFAULT,CARTESIAN,IN,LEAST_SQR
THEO/<7.7076,14.8936,0>,<0,0,1>,0.1005
ACTL/<7.7077,14.8953,0>,<0,0,1>,0.1008
TARG/<7.7076,14.8936,0>,<0,0,1>
START ANG=0,END ANG=360
ANGLE VEC=<1,0,0>
DIRECTION=CCW
SHOW FEATURE PARAMETERS=NO
SHOW CONTACT PARAMETERS=YES
NUMHITS=8,DEPTH=0.04,PITCH=0
SAMPLE METHOD=SAMPLE_HITS
SAMPLE HITS=0,SPACER=0
AVOIDANCE MOVE=BOTH,DISTANCE=1
FIND HOLE=DISABLED,ONERROR=NO,READ POS=NO
SHOW HITS=NO
CIR5 =FEAT/CONTACT/CIRCLE/DEFAULT,CARTESIAN,IN,LEAST_SQR
THEO/<7.354,14.54,0>,<0,0,1>,0.283
ACTL/<7.355,14.5412,0>,<0,0,1>,0.2843
TARG/<7.354,14.54,0>,<0,0,1>
START ANG=0,END ANG=360
ANGLE VEC=<1,0,0>
DIRECTION=CCW
SHOW FEATURE PARAMETERS=NO
SHOW CONTACT PARAMETERS=YES
NUMHITS=8,DEPTH=0.04,PITCH=0
SAMPLE METHOD=SAMPLE_HITS
SAMPLE HITS=0,SPACER=0
AVOIDANCE MOVE=BOTH,DISTANCE=1
FIND HOLE=DISABLED,ONERROR=NO,READ POS=NO
SHOW HITS=NO
CIR6 =FEAT/CONTACT/CIRCLE/DEFAULT,CARTESIAN,IN,LEAST_SQR
THEO/<7.354,13.04,0>,<0,0,1>,0.283


(TRIMMED SOME CODE AT END)
Parents
  • I've seen your threads pop up but haven't really had time to chip in yet.

    Can I ask why exactly you want to do away with the probe change mid program?

    Unless the cycle time is really critical your just adding (imho) unnecessary complexity.


    That said, if you go want to do it, the best option would be to use either a while/end while our a do/until loop, using external alignments to recall the correct starting positions, however, as you'll be looping twice (once with the first probe and once with the second, you're also going to have to save any alignments you generate within the first loop to recall in the second loop.

    These will have to have a unique name i.e ALN_ABC_1, and ALN_ABC_2, you would do this by creating a counter for each loop..

    ASSIGN/V1=1

    then
    ASSIGN/ALN_NAME="ALN_ABC"+V1

    then save the alignment with ALN_NAME.

    You would then have to recall those using the same method within the second loop.


Reply
  • I've seen your threads pop up but haven't really had time to chip in yet.

    Can I ask why exactly you want to do away with the probe change mid program?

    Unless the cycle time is really critical your just adding (imho) unnecessary complexity.


    That said, if you go want to do it, the best option would be to use either a while/end while our a do/until loop, using external alignments to recall the correct starting positions, however, as you'll be looping twice (once with the first probe and once with the second, you're also going to have to save any alignments you generate within the first loop to recall in the second loop.

    These will have to have a unique name i.e ALN_ABC_1, and ALN_ABC_2, you would do this by creating a counter for each loop..

    ASSIGN/V1=1

    then
    ASSIGN/ALN_NAME="ALN_ABC"+V1

    then save the alignment with ALN_NAME.

    You would then have to recall those using the same method within the second loop.


Children
  • I think the main problem for me is 1.) I need to learn really fast (super small aerospace company with not many employees/management unwilling to spend lots of money, so I have to figure things out on my own time/learn on my own). 2.) I come from a background more on the side of Basic programming and stuff like that. I *think* that I am describing the wrong thing/ looping won't work for me. The reason is that because it is shifting the alignments/I need more precision than what looping is doing. I am holding Total Positioning tolerances of .010 TP and using a fixturing plate on my CMM without ground pins. With the ground pins this should all be working/way more close. My theory (well, not really theory, because I can see that the alignment is shifting on the second/third/whatever number part) is that using looping doesn't adjust the alignment at all on the parts. It just drives off of the first parts alignment, and then I am shifting the loop by -11.5" in Y. It does a DCC on the second part, sure. But then the first parts data is being driven off the 2nd parts alignment coordinates. The Y's are perfect, they aren't messing up because I told the computer to go exactly -11.5 inches in Y...BUT the X's are shifting/I'm getting really screwy TP because the X's aren't going back in the same place every time. I don't have ground pins, I'm just using a washer bottomed hex head screw (it's got a round bit near the table, but can be screwed in with a socket wrench). These bolts aren't good enough for the looping pattern, and the looping just doesn't account for the 1st and 2nd parts actual positions. If it created an Alignment 1 for part 1, and an alignment 1.2 for part 2 for example, it would work. But each part is sharing an alignment. That's why I'm asking if anybody has used Variables/if and if end statements, and just shifting the alignment down -11.5 in Y because that would be much easier I think. I *could* just write it out....like copy and paste my DCC alignments, and then create a new alignment for each part on the table and shift it, but that is going to take a lot of tweaking and a much longer program. I wanted to get back into the swing of using logic statements. I am really sorry, I've probably confused the heck out of everyone on this forum. I'm going to go back and answer each persons comment, I am so sorry for being rude, but I am just desperate to learn as much as I can as fast as I can.
  • I'm at the point where I don't even want to read another one of your novel-posts man. Please try to be more succinct.
    Loops work great, but they are generally intended to loop based on each physical offset, not with the added complexity of one probe at a time.
    Why add all the extra drama and split the routine by probe? Do you not have a probe rack?
  • There's a lot of things going on here. I sense your frustration. Sorry I can't be of more help, I'm really not a looping expert. I do wanna mention a couple things though
    .
    1- You have an awful lot of alignments. Maybe it's necessary, I dunno but typically an alignment recalls the previous alignment. For example, you're doing a manual alignment to locate the part but your 1st DCC alignment is recalling machine startup, not the manual alignment. Your 2nd dcc alignment is also recalling machine startup, not the 1st dcc alignment. This may be some of your problem. But I feel the reason your TP callouts are out of spec is because your second loop is not related to your alignments in your 1st loop. This is why I suggested earlier running the entire program, tip change and all, first and the allow the loop command to take you to the second part and then run it completely.

    2- you said earlier that the original one-off program works fine. OK, use that one. I really don't understand where you benefit from a loop if you're having to manually change probes. In my mind it's just as easy to swap parts and hit go as it is to manually change probes in the middle of a loop.
  • haha man, I'm sorry about that. I talk x10 more than I write out, so there is at least that to be thankful for. Okay, what you are describing is *probably* why loops are not going to work for me- I was trying to loop the parts with one probe, do a tool change, then inspect the parts again starting on the first part alignment. But loops aren't cutting it because I'm not using ground pins (I think). I'm pretty sure loops are better suited for things like bolt holes/ patterns in ONE part, not using it to make a pattern for multiple parts. It probably would work with just one probe and ground pins, but the way I'm using it for is no bueno. And no, management is hesitant to buy a probe rack. Also I only have 2 probe modules, so I have to deal with that as well (tear down and build up a lot). I've been using PC-DMIS fairly regularly for a year now, but management will not pay for me to go to a formal class, and all the local resources/QC guys don't know as much as y'all. In fact, the guy that helped me the most getting off the ground told me that running more than one part was impossible/ stupid to do for QC. I didn't take that very well so just decided to figure it out on my own. Life sucks lol.
  • Okay, even though I'm making myself look foolish, I'm getting somewhere posting my code for y'all. To answer your questions in order as best I can: 1.) I was not taught ANYTHING, even by Hexagon when I went to their basic CMM 101 class (which was pretty much overpriced b.s. lol a week to teach a simple manual alignment and DCC...what a pyramid scheme) about recalling alignments. It's something I should be doing for each new alignment? Recalling the previous and building on it? Why doesn't PC-Dmis do that by default? Nobody really described the theory to me, they just started clicking and showing me. Most of the time when I ask a question in person the answer is "because I was taught that way". I am literally a chimp with a machine gun flying an F-35.

    2.) Yes, the program that I wrote where it is running one part at a time works marvelously, the TP and Diameters of every hole and feature line up. My Micro-Hite agrees with that too. The reason I want to loop/do more parts at once is simple volume. I'm one QC guy with 4 machinists basically. There are times when I need to batch inspect aka slap 6 parts up on my fixturing plate on the cmm, clamp them down in a sensible pattern/grid. Hit go, and walk away to go do other things. I don't "stay in the lab" like most QC guys because we are so small. I might have to hit start on my CMM and go run a lathe or deburr parts for inspection. To make it even more complicated, our management isn't very good so I might have a situation (very common in the past) where I will have a stack of parts that nobody knows if they are good or bad because either a.) they weren't checking them properly or b.) they were looking at the wrong print and didn't use the right measurements to inspect it out by the machine. As far as hitting our ISO 9100D goals (actually inspecting them for TP /requirements all that), it's getting done, but the volume is drowning me. It doesn't help that management expects a new program to just be written in 30 minutes/ able to be adapted quickly from one part to two, or just want me to push go on the cmm and go do something else. As far as you saying why the tool change in the loop, it was just for saving time. Inspecting part 1 with probe 1, doing a tool change, then inspecting with probe 2, then having to change for probe 1 again for part 2, then probe 2 for part 2 just adds so much time. Also the calibration because we don't have a probe rack lol.

    It's a nightmare I know, I'm sorry.
  • I don't think ground pins are your problem. I have a nested loop program where I can run anywhere from 2 - 48 parts depending on operator input. I use 1/4-20 socket head screws for my pins and it runs just fine. If you would:

    Manual align
    loop start
    dcc align(recalling manual align)
    measure with probe 1
    change probe
    measure with probe 2
    dimension and report
    loop end

    I feel the problems you are having will go away.

    Side note, I don't think you need all those calibrations either

    Calibrate your master probe (yes sphere has moved)
    Calibrate your other probes (no sphere has not moved)
    if this is done before running the program it shouldn't need to be done again until you crash or break thread... Those magnetic connections are fairly repeatable
  • I am going to try what you just posted. I can 100% verify that I did not recall a single alignment after the startup. I def need to read up on it more because I want the *theory* behind it etched into my skull. Simply clicking and following what the lab people told me to do is frustrating. Thank you! The amount of misinformation/theories/bro-science from everyone including Hexagon is maddening. I've heard so many things from multiple people I'm surprised I haven't lost it yet.
  • ahhh, just learned something invaluable!!! So...pc-dmis DOES automatically make the next alignment you add recall the previous one...but...I'm using auto align! Which for some odd reason calls up startup. I use auto-align almost exclusively on simple squarish parts....so..that's why the program sucks! (or at least part of the reason). If I do auto-alignment and recall the previous alignment and hit okay, it does work though. I thought PC-DMIS was gonna stroke out and blue screen me haha.
  • Whoa there fella! People are trying to help.

    The thing is, (and I'm not meaning to be condescending here) it sounds a little like you may be trying to run before you can walk.

    PCDMIS is incredibly powerful, but also incredibly complex. Your asking for advice on how to achieve something fairly complex, that while doable isn't particularly easy to explain to a relative beginner, and short of someone simply doing it for you will be open to misinterpretation (especially when several people are shouting different ideas at you at once).

    Also what might be confusing, it that there are typically several ways of achieving the same thing (theories/misinformation/bro science).
  • ??? I've been very very appreciative of any help that I can get. If you read any of my comments and felt like I was attacking any of the people answering my questions, I am sorry both to you (and whoever felt like that if they did). If you mean I'm just posting too much/ not giving you enough time to respond I'm sorry. I'm just under somewhat of a time crunch here and I have to figure this stuff out like 6 months ago. Lol, yeah, my life has always been run before you walk. It's just the nature of where I work though, I don't have much of a choice. It's very much a diy figure it out yourself or it's your fault kind of job. I don't mind people throwing different ideas at me because I'll def use all of them in the future (we do so many different setups I've gotta learn all the tricks.) I just need to find a way to make it work for me then modify it. I'm not expecting anybody to "do it" for me either. I've been reading these forums for a year or maybe 2 now, just never posted. It's like learning a new language, you can read so much before you have to converse.