hexagon logo

Handle

I am trying to intersect two cylinders on the outer side of the radius and was wondering if anyone has a similar program they could share. Please review attached file and take note of the two dimensions circled in red, any advise would be appreciated. Let me know if you require additional information, I will be happy to assist. My best guess... I would need separate alignments to project lines to the out side of each cylinder and then intersect the lines? How do I project a line to the outside of the cylinder radius?


  •  Here's a thought...

    CYL1       =FEAT/CONTACT/CYLINDER/DEFAULT,CARTESIAN,IN,LEAST_SQR
                THEO/<0,0,0>,<0,0,1>,1,3
                ACTL/<0,0,0>,<0,0,1>,1,3
                TARG/<0,0,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=5,NUMLEVELS=3,DEPTH=0,END OFFSET=0,PITCH=0
                  SAMPLE METHOD=SAMPLE_HITS
                  SAMPLE HITS=0,SPACER=0
                  AVOIDANCE MOVE=NO,DISTANCE=0
                  FIND HOLE=DISABLED,ONERROR=NO,READ POS=NO
                SHOW HITS=NO
    CYL2       =FEAT/CONTACT/CYLINDER/DEFAULT,CARTESIAN,IN,LEAST_SQR
                THEO/<0,0,-3.2>,<0.7071068,0,0.7071068>,1,3
                ACTL/<0,0,-3.2>,<0.7071068,0,0.7071068>,1,3
                TARG/<0,0,-3.2>,<0.7071068,0,0.7071068>
                START ANG=0,END ANG=360
                ANGLE VEC=<-1,0,0>
                DIRECTION=CCW
                SHOW FEATURE PARAMETERS=NO
                SHOW CONTACT PARAMETERS=YES
                  NUMHITS=5,NUMLEVELS=3,DEPTH=0,END OFFSET=0,PITCH=0
                  SAMPLE METHOD=SAMPLE_HITS
                  SAMPLE HITS=0,SPACER=0
                  AVOIDANCE MOVE=NO,DISTANCE=0
                  FIND HOLE=DISABLED,ONERROR=NO,READ POS=NO
                SHOW HITS=NO
    A1         =ALIGNMENT/START,RECALL:STARTUP,LIST=YES
                  ALIGNMENT/LEVEL,ZPLUS,CYL1
                  ALIGNMENT/TRANS,XAXIS,CYL1
                  ALIGNMENT/TRANS,YAXIS,CYL1
                  ALIGNMENT/TRANS,XAXIS,CYL1
                  ALIGNMENT/TRANS_OFFSET,XAXIS,CYL1.R
                ALIGNMENT/END
    LIN1       =FEAT/LINE,CARTESIAN,UNBOUNDED,NO
                THEO/<0,0,-0.5>,<0,0,1>
                ACTL/<0,0,-0.5>,<0,0,1>
                CONSTR/LINE,ALIGN,1,ZPLUS
    A2         =ALIGNMENT/START,RECALL:A1,LIST=YES
                  ALIGNMENT/LEVEL,ZPLUS,CYL2
                  ALIGNMENT/TRANS,XAXIS,CYL2
                  ALIGNMENT/TRANS,YAXIS,CYL2
                  ALIGNMENT/TRANS_OFFSET,XAXIS,CYL2.R
                ALIGNMENT/END
    LIN2       =FEAT/LINE,CARTESIAN,UNBOUNDED,NO
                THEO/<0,0,-0.5>,<0,0,1>
                ACTL/<0,0,-0.5>,<0,0,1>
                CONSTR/LINE,ALIGN,1,ZPLUS
    PNT1       =FEAT/POINT,CARTESIAN,NO
                THEO/<0,0,-2.4092>,<-0.7071068,0,0.7071068>
                ACTL/<0,0,-2.4092>,<-0.7071068,0,0.7071068>
                CONSTR/POINT,INT,LIN1,LIN2
  • When creating the lines is there some way to make it to the outside of the cylinder instead of just -0.5, maybe something like <0,0,-CYL1.RAD>,<0,0,1>, this way it will be more exact? I am not a coder so I don't grasp the concept. Oh wait, I think I understand what you did here. you did an offset when creating the alignment, I will check this out to see if it works for me. Thank you.
  • Below is a simple program I created in CAD, it seams to give me the results I am looking for. I wasn't sure how to intersect LIN4 and LIN3 because of its location to that of LIN3 so I created a plane and projected it (LIN5). Could you look over the coding and see if I messed up somewhere?

    STARTUP =ALIGNMENT/START,RECALL:USE_PART_SETUP,LIST=YES
    ALIGNMENT/END
    MODE/MANUAL
    FORMAT/TEXT,OPTIONS, ,HEADINGS,SYMBOLS, ;MEAS,NOM,TOL,DEV,OUTTOL, ,
    LOADPROBE/3_MM
    TIP/TIP1, SHANKIJK=0, 0, 1, ANGLE=0
    CYL1 =FEAT/CYLINDER,CARTESIAN,OUT,LEAST_SQR
    THEO/<-0.7092,0,0>,<-1,0,0>,1,1.2338
    ACTL/<-0.7092,0,0>,<-1,0,0>,1,1.2338
    MEAS/CYLINDER,6
    HIT/BASIC,NORMAL,<-0.1134,0.2636,0.4249>,<0,0.5272129,0.8497332>,<-0.1134,0.2636,0.4249>,USE THEO=YES
    HIT/BASIC,NORMAL,<-0.0923,0.4736,-0.1602>,<0,0.947283,-0.3203982>,<-0.0923,0.4736,-0.1602>,USE THEO=YES
    HIT/BASIC,NORMAL,<-0.1098,0.0699,-0.4951>,<0,0.1397437,-0.9901877>,<-0.1098,0.0699,-0.4951>,USE THEO=YES
    HIT/BASIC,NORMAL,<-1.3169,-0.0278,-0.4992>,<0,-0.0555718,-0.9984547>,<-1.3169,-0.0278,-0.4992>,USE THEO=YES
    HIT/BASIC,NORMAL,<-1.0604,0.4931,-0.083>,<0,0.9861324,-0.1659603>,<-1.0604,0.4931,-0.083>,USE THEO=YES
    HIT/BASIC,NORMAL,<-1.3261,-0.0435,0.4981>,<0,-0.0869568,0.9962121>,<-1.3261,-0.0435,0.4981>,USE THEO=YES
    ENDMEAS/
    CYL2 =FEAT/CYLINDER,CARTESIAN,OUT,LEAST_SQR
    THEO/<-4.8565,-0.549,-0.5577>,<-0.9672796,-0.1779873,-0.1808055>,1,4.6723
    ACTL/<-4.8565,-0.549,-0.5577>,<-0.9672796,-0.1779873,-0.1808055>,1,4.6723
    MEAS/CYLINDER,6
    HIT/BASIC,NORMAL,<-2.7237,0.2123,0.2032>,<-0.2536738,0.6909374,0.6769454>,<-2.7237,0.2123,0.2032>,USE THEO=YES
    HIT/BASIC,NORMAL,<-2.6438,0.3058,-0.3701>,<-0.075098,0.881561,-0.4660584>,<-2.6438,0.3058,-0.3701>,USE THEO=YES
    HIT/BASIC,NORMAL,<-2.5197,-0.1027,-0.6285>,<0.1719098,0.0643235,-0.9830104>,<-2.5197,-0.1027,-0.6285>,USE THEO=YES
    HIT/BASIC,NORMAL,<-7.0139,-1.0283,-1.4654>,<0.2047699,-0.1269166,-0.970547>,<-7.0139,-1.0283,-1.4654>,USE THEO=YES
    HIT/BASIC,NORMAL,<-6.6413,-0.4363,-1.1293>,<-0.0686507,0.869667,-0.4888419>,<-6.6413,-0.4363,-1.1293>,USE THEO=YES
    HIT/BASIC,NORMAL,<-7.0512,-0.7358,-0.501>,<-0.2380537,0.3902123,0.8894182>,<-7.0512,-0.7358,-0.501>,USE THEO=YES
    ENDMEAS/
    PLN1 =FEAT/PLANE,CARTESIAN,OUTLINE
    THEO/<0,-0.0214,-0.0059>,<1,0,0>
    ACTL/<0,-0.0214,-0.0059>,<1,0,0>
    MEAS/PLANE,4
    HIT/BASIC,NORMAL,D=0,<0,0.0748,0.4589>,<1,0,0>,<0,0.07 48,0.4589>,USE THEO=YES
    HIT/BASIC,NORMAL,D=0,<0,0.4585,-0.063>,<1,0,0>,<0,0.4585,-0.063>,USE THEO=YES
    HIT/BASIC,NORMAL,D=0,<0,-0.1519,-0.4544>,<1,0,0>,<0,-0.1519,-0.4544>,USE THEO=YES
    HIT/BASIC,NORMAL,D=0,<0,-0.4671,0.0351>,<1,0,0>,<0,-0.4671,0.0351>,USE THEO=YES
    ENDMEAS/
    A1 =ALIGNMENT/START,RECALL:STARTUP,LIST=YES
    ALIGNMENT/LEVEL,XPLUS,CYL1
    ALIGNMENT/ROTATE,YMINUS,TO,CYL2,ABOUT,XPLUS
    ALIGNMENT/TRANS,XAXIS,PLN1
    ALIGNMENT/TRANS,YAXIS,CYL1
    ALIGNMENT/TRANS,ZAXIS,CYL1
    ALIGNMENT/TRANS_OFFSET,YAXIS,CYL1.R
    ALIGNMENT/END
    LIN2 =FEAT/LINE,CARTESIAN,UNBOUNDED,NO
    THEO/<-0.5,0,0>,<1,0,0>
    ACTL/<-0.5,0,0>,<1,0,0>
    CONSTR/LINE,ALIGN,1,XPLUS
    A2 =ALIGNMENT/START,RECALL:A1,LIST=YES
    ALIGNMENT/LEVEL,XPLUS,CYL2
    ALIGNMENT/ROTATE,YPLUS,TO,CYL1,ABOUT,XPLUS
    ALIGNMENT/TRANS,XAXIS,CYL2
    ALIGNMENT/TRANS,YAXIS,CYL2
    ALIGNMENT/TRANS,ZAXIS,CYL2
    ALIGNMENT/TRANS_OFFSET,YAXIS,CYL2.R
    ALIGNMENT/END
    LIN3 =FEAT/LINE,CARTESIAN,UNBOUNDED,NO
    THEO/<-0.5,0,0>,<1,0,0>
    ACTL/<-0.5,0,0>,<1,0,0>
    CONSTR/LINE,ALIGN,1,XPLUS
    PNT1 =FEAT/POINT,CARTESIAN,NO
    THEO/<-3.1491,0,0>,<0.9672796,0.2537126,0>
    ACTL/<-3.1491,0,0>,<0.9672796,0.2537126,0>
    CONSTR/POINT,INT,LIN2,LIN3
    DIM DIST1= 3D DISTANCE FROM PLANE PLN1 TO POINT PNT1,SHORTEST=OFF,NO_RADIUS UNITS=IN,$
    GRAPH=OFF TEXT=OFF MULT=10.00 OUTPUT=BOTH
    AX MEAS NOMINAL +TOL -TOL DEV OUTTOL
    M 1.9374 1.9370 0.0600 0.0600 0.0004 0.0000 ----#----
    CYL3 =FEAT/CYLINDER,CARTESIAN,OUT,LEAST_SQR
    THEO/<7.1176,-1.5015,-1.8759>,<0.8519654,-0.2466042,-0.4618889>,1,5.4928
    ACTL/<7.1176,-1.5015,-1.8759>,<0.8519654,-0.2466042,-0.4618889>,1,5.4928
    MEAS/CYLINDER,6
    HIT/BASIC,NORMAL,<5.1683,-0.6734,-0.295>,<0.523391,0.3762938,0.764503>,<5.1683,-0.6734,-0.295>,USE THEO=YES
    HIT/BASIC,NORMAL,<4.9754,-1.1402,-0.2628>,<0.2467621,-0.58893,0.7695907>,<4.9754,-1.1402,-0.2628>,USE THEO=YES
    HIT/BASIC,NORMAL,<4.6036,-1.2871,-0.6814>,<-0.3482096,-0.9256479,-0.1480743>,<4.6036,-1.2871,-0.6814>,USE THEO=YES
    HIT/BASIC,NORMAL,<8.9732,-2.5015,-3.2068>,<-0.450202,-0.7954265,-0.4057275>,<8.9732,-2.5015,-3.2068>,USE THEO=YES
    HIT/BASIC,NORMAL,<8.3525,-2.2543,-2.2358>,<0.0775018,-0.8130335,0.5770356>,<8.3525,-2.2543,-2.2358>,USE THEO=YES
    HIT/BASIC,NORMAL,<9.6858,-1.7882,-2.9316>,<0.4568308,0.7811453,0.4255792>,<9.6858,-1.7882,-2.9316>,USE THEO=YES
    ENDMEAS/
    A3 =ALIGNMENT/START,RECALL:A2,LIST=YES
    ALIGNMENT/ROTATE,XPLUS,TO,CYL3,ABOUT,ZPLUS
    ALIGNMENT/TRANS,XAXIS,CYL3
    ALIGNMENT/TRANS,YAXIS,CYL3
    ALIGNMENT/TRANS,ZAXIS,CYL3
    ALIGNMENT/TRANS_OFFSET,YAXIS,CYL3.R
    ALIGNMENT/END
    LIN4 =FEAT/LINE,CARTESIAN,UNBOUNDED,NO
    THEO/<-0.5,0,0>,<1,0,0>
    ACTL/<-0.5,0,0>,<1,0,0>
    CONSTR/LINE,ALIGN,1,XPLUS
    PNT2 =FEAT/POINT,CARTESIAN,NO
    THEO/<-11.6864,-3.3347,1.8759>,<0.858597,0.5126511,0>
    ACTL/<-11.6864,-3.3347,1.8759>,<0.858597,0.5126511,0>
    CONSTR/POINT,PIERCE,CYL1,PLN1
    PLN2 =FEAT/PLANE,CARTESIAN,OUTLINE,NO
    THEO/<-10.2945,-2.4256,1.8759>,<0,0,-1>
    ACTL/<-10.2945,-2.4256,1.8759>,<0,0,-1>
    CONSTR/PLANE,BF,LIN2,LIN3,PNT2,,
    OUTLIER_REMOVAL/OFF,3
    FILTER/OFF,WAVELENGTH=0
    LIN5 =FEAT/LINE,CARTESIAN,UNBOUNDED,NO
    THEO/<-0.5,0,1.8759>,<1,0,0>
    ACTL/<-0.5,0,1.8759>,<1,0,0>
    CONSTR/LINE,PROJ,LIN4,PLN2,1
    PNT3 =FEAT/POINT,CARTESIAN,NO
    THEO/<-3.6731,0,1.8759>,<1,0,0>
    ACTL/<-3.6731,0,1.8759>,<1,0,0>
    CONSTR/POINT,INT,LIN5,LIN3
    DIM DIST3= 2D DISTANCE FROM POINT PNT3 TO POINT PNT1 (CENTER TO CENTER),NO_RADIUS UNITS=IN,$
    GRAPH=OFF TEXT=OFF MULT=10.00 OUTPUT=BOTH
    AX MEAS NOMINAL +TOL -TOL DEV OUTTOL
    M 6.8774 6.8770 0.0600 0.0600 0.0004 0.0000 ----#----