hexagon logo

Cad=part

I am beginning to attempt to program off a cad model. I have a sample part, every time I press cad=part my alignment moves off my cad model. I am actually trying to program off of cad on a part I have a sample for before I make a program off a part that I have no sample for.
  • I am beginning to attempt to program off a cad model. I have a sample part, every time I press cad=part my alignment moves off my cad model. I am actually trying to program off of cad on a part I have a sample for before I make a program off a part that I have no sample for.


    So i used to use C=P all the time.
    You don't need it.

    Import your model.
    Translate your model to match your machine coordinates or your drawing callout. (I like to put the coordinates somewhere I can easily eyeball and put my READPOINT at {0,0,0}
    Create your READPOINT.
    Create your alignment.
    Done.

    No need for C=P
  • If you insist on using C=P then you need to TRANSLATE your model to match the part orientation as it sits on the table, hence the whole C=P thing.
  • Could use some more info to give you better answer.
    Was the alignment on the cad model before you hit cad=part?
    Did you have an existing or manual alignment before you brought in your model?
    Are you programming your alignment from the model?
    There are a few things that can come into play here and this button is not always the answer.
  • I never use Cad=Part. The first thing I do is transform my cad axis so they match how the part is on the CMM. That makes it easier to visualize the moves. I then pick my alignment features off the Cad model and do a manual, and then DCC iterative alignment
  • I import model, translate trihedron where I want it, create alignment accordingly. I have no idea why CAD= PART would need to exist. Never used it. Would someone far wiser than I explain why it exists?
  • If you insist on using C=P then you need to TRANSLATE your model to match the part orientation as it sits on the table, hence the whole C=P thing.


    Nope, not true, not even CLOSE to true. You do NOT ever "need" to translate a model, not for any reason at all.

    CAD=PART works, and it works every time. However, if you do NOT make the alignment correct, then using it will do no good at all.

    If you have a square block, and the top is A, the front is B, and the left side is C, then you measure a plane on top, measure a line on the front (LEFT to RIGHT), and measure a line on the left side, then construct a point where the 2 lines intersect.

    Then you LEVEL (Z+) to the plane, ROTATE (X+) to the line on the front, then set X ORIGIN to the point, Y ORIGIN to the point, Z ORIGIN to the plane.

    Now, if that corner is X0Y0Z0, in theory, you are done, you are aligned.

    HOWEVER, if the top of that block is Z1.5, then in the alignment you need to OFFSET the Z ORIGIN -1.5 (as in, push the Z0 down 1.5 so that the plane will be +1.5 from the absolute zero).

    Same with the X and Y.

    Now, do you HAVE to do CAD=PART even then? No, not really BUT!!!!!!!!

    When you do the CAD=PART once you have level, rotate, origin, origin-offset), then all those manual features you just measured will now have THEO values and VECTORS that match the ALIGNMENT you just made. If you do NOT do CAD=PART, their theo's and vector will remain in MACHINE CO-ORDINATES. Your plane won't have a Z nominal (THEO) of -127.487 and a vector of .000001, 0.00023, 0.99999, it will have a Z THEO of 1.5 (see above, the origin offset) and it will have a vector of 0,0,1. Every time.

    BUT, you, the person creating the alignment, MUST make the alignment correctly. If your cad model of that square block has X123, Y453, Z1.5 at the datum corner, and you do NOT do the ORIGIN OFFSET, but simply set the origins to those features, then do CAD=PART, your features will 'snap' to the X0Y0Z0 absolute relationship to the CAD model.

    Even if you have to set the 'block' up so that X+ is UP (machine Z+), and Y+ is LEFT (machine X-) and Z+ is FRONT (machine Y-), you will do not need to translate the model, you can either just do the alignment correctly, and it will be correct once you are on the machine, OR, you can use the F5 PART/MACHINE function. What that does is 'change' the machine axis to match the cad model (part) orientation as you have it on the machine.

    Machine axis (XYZ) are not something 'set in stone', they are nothing more than 'starting reference' thingies. X+ does NOT have to point to the right, that is simply a starting 'idea', nothing more, nothing less.
  • Somehow, I knew it would be Matt that brought clarity................
  • I import model, translate trihedron where I want it, create alignment accordingly. I have no idea why CAD= PART would need to exist. Never used it. Would someone far wiser than I explain why it exists?


    I can give you at least one example where this can be handy. If you program a part without CAD, and then wanted to add a CAD model after the fact, you would need to use CAD = PART. I suspect there might be another reason or two, but this is the first that comes to mind. I agree not everyone needs it, and it is often mis-understood, but it can still be handy on occasion.

    oh, and I do not consider this to make me far wiser than you, but as someone told me recently (so as not to call me old), I might have more experience.
  • I do everything with DCC iterative alignment and parts in car body. I never translate CAD, or use C=P. If you program off of CAD and use iterative alignments, none of that other stuff is necessary.

    I think Don's example is pretty much the only time I would use it, but Matt has a lot of good info up there.
  • How many times have we seen people ask for help, and when they post the code that SO MANY people want to see, and one of the FIRST things they always say is "Why don't your THEO and VECTOR match your alignment?" Why? Because they did a 'standard' alignment WITHOUT using CAD=PART!


    basic plane-line-line alignment WITH the 'datum corner' at X0Y0Z0 without using CAD=PART. As you can see, all the THEO & Vectors are to MACHINE CO-ORDINATES
    TOP        =FEAT/PLANE,RECT,TRIANGLE
                THEO/7.5566,28.4443,-24.3177,0.0000146,0.0001855,1
                ACTL/7.5566,28.4443,-24.3177,0.0000146,0.0001855,1
                MEAS/PLANE,3
                HIT/BASIC,NORMAL,7.0509,29.4326,-24.3178,0.0000146,0.0001855,1,7.0509,29.4326,-24.3178,USE THEO = YES
                HIT/BASIC,NORMAL,7.0508,27.9501,-24.3176,0.0000146,0.0001855,1,7.0508,27.9501,-24.3176,USE THEO = YES
                HIT/BASIC,NORMAL,8.5681,27.9501,-24.3176,0.0000146,0.0001855,1,8.5681,27.9501,-24.3176,USE THEO = YES
                ENDMEAS/
    FRONT      =FEAT/LINE,RECT,UNBND
                THEO/7.2431,27.7943,-24.3992,0.9995433,0.0302207,-0.0000202
                ACTL/7.2431,27.7943,-24.3992,0.9995433,0.0302207,-0.0000202
                MEAS/LINE,2,FEATURE=TOP
                HIT/BASIC,NORMAL,7.2431,27.7943,-24.3992,0.0302207,-0.9995433,0,7.2431,27.7943,-24.3992,USE THEO = YES
                HIT/BASIC,NORMAL,8.492,27.832,-24.3992,0.0302207,-0.9995433,0,8.492,27.832,-24.3992,USE THEO = YES
                ENDMEAS/
    LEFT       =FEAT/LINE,RECT,UNBND
                THEO/6.8872,28.1055,-24.3991,-0.0295446,0.9995634,-0.000185
                ACTL/6.8872,28.1055,-24.3991,-0.0295446,0.9995634,-0.000185
                MEAS/LINE,2,FEATURE=TOP
                HIT/BASIC,NORMAL,6.8872,28.1055,-24.3991,-0.9995635,-0.0295446,0,6.8872,28.1055,-24.3991,USE THEO = YES
                HIT/BASIC,NORMAL,6.8488,29.403,-24.3991,-0.9995635,-0.0295446,0,6.8488,29.403,-24.3991,USE THEO = YES
                ENDMEAS/
    CORNER     =FEAT/POINT,RECT
                THEO/6.8967,27.7838,-24.3991,0.9995433,0.0302207,-0.0000202
                ACTL/6.8967,27.7838,-24.3991,0.9995433,0.0302207,-0.0000202
                CONSTR/POINT,INT,FRONT,LEFT
    ALIGN01    =ALIGNMENT/START,RECALL:STARTUP, LIST= YES
                ALIGNMENT/LEVEL,ZPLUS,TOP
                ALIGNMENT/ROTATE,XPLUS,TO,FRONT,ABOUT,ZPLUS
                ALIGNMENT/TRANS,XAXIS,CORNER
                ALIGNMENT/TRANS,YAXIS,CORNER
                ALIGNMENT/TRANS,ZAXIS,TOP
                ALIGNMENT/TRANS_OFFSET,XAXIS,0
                ALIGNMENT/TRANS_OFFSET,YAXIS,0
                ALIGNMENT/TRANS_OFFSET,ZAXIS,0
                ALIGNMENT/END
    


    Same program, all I did was do CAD=PART, nothing more, at all was done to this.
    TOP        =FEAT/PLANE,RECT,TRIANGLE
                THEO/0.6796,0.6402,0,0,0,1
                ACTL/7.5566,28.4443,-24.3177,0.0000146,0.0001855,1
                MEAS/PLANE,3
                HIT/BASIC,NORMAL,0.204,1.6434,0,0,0,1,7.0509,29.4326,-24.3178,USE THEO = YES
                HIT/BASIC,NORMAL,0.1591,0.1616,0,0,0,1,7.0508,27.9501,-24.3176,USE THEO = YES
                HIT/BASIC,NORMAL,1.6757,0.1157,0,0,0,1,8.5681,27.9501,-24.3176,USE THEO = YES
                ENDMEAS/
    FRONT      =FEAT/LINE,RECT,UNBND
                THEO/0.3465,0,-0.0817,1,0,0
                ACTL/7.2431,27.7943,-24.3992,0.9995433,0.0302207,-0.0000202
                MEAS/LINE,2,FEATURE=TOP
                HIT/BASIC,NORMAL,0.3465,0,-0.0817,0,-1,-0.000185,7.2431,27.7943,-24.3992,USE THEO = YES
                HIT/BASIC,NORMAL,1.596,0,-0.0816,0,-1,-0.000185,8.492,27.832,-24.3992,USE THEO = YES
                ENDMEAS/
    LEFT       =FEAT/LINE,RECT,UNBND
                THEO/0.0002,0.3218,-0.0815,0.0006763,0.9999998,0
                ACTL/6.8872,28.1055,-24.3991,-0.0295446,0.9995634,-0.000185
                MEAS/LINE,2,FEATURE=TOP
                HIT/BASIC,NORMAL,0.0002,0.3218,-0.0815,-0.9999998,0.0006763,-0.0000201,6.8872,28.1055,-24.3991,USE THEO = YES
                HIT/BASIC,NORMAL,0.0011,1.6199,-0.0813,-0.9999998,0.0006763,-0.0000201,6.8488,29.403,-24.3991,USE THEO = YES
                ENDMEAS/
    CORNER     =FEAT/POINT,RECT
                THEO/0,0,-0.0816,1,0,0
                ACTL/6.8967,27.7838,-24.3991,0.9995433,0.0302207,-0.0000202
                CONSTR/POINT,INT,FRONT,LEFT
    ALIGN01    =ALIGNMENT/START,RECALL:STARTUP, LIST= YES
                ALIGNMENT/LEVEL,ZPLUS,TOP
                ALIGNMENT/ROTATE,XPLUS,TO,FRONT,ABOUT,ZPLUS
                ALIGNMENT/TRANS,XAXIS,CORNER
                ALIGNMENT/TRANS,YAXIS,CORNER
                ALIGNMENT/TRANS,ZAXIS,TOP
                ALIGNMENT/TRANS_OFFSET,XAXIS,0
                ALIGNMENT/TRANS_OFFSET,YAXIS,0
                ALIGNMENT/TRANS_OFFSET,ZAXIS,0
                ALIGNMENT/END
    


    As you can see, ALL the THEO & VECTORS are now to "PART ALIGNMENT", they are no longer to MACHINE CO-ORDINATE. The ACTLs are still to MACHINE CO-ORDINATES, because that is what they were measured to, but the THEO & VECTORS are now exactly to PART ALIGNMENT.

    Now, isn't that a pretty handy function when used correctly? Just like any other tool, if not used correctly, it won't work correctly.