Variables in Alignments

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Variables in Alignments

    Probably a simple answer, but I haven't gotten this to work yet, and haven't found in the forum, so here we go, first post.

    I have a line from the center diameter to a hole that is nominally 12.158° from the X-axis. But there is no feature to square the part up, and no fixture possibility, to control how close the operator actually gets the part, that hole could be located at 5° or 20°, and small Ø.190", I see a crash happening if I don't get an accurate actual angle into the rotate for my alignment.

    I was thinking that I could measure the actual angle, assign that measurement as a variable, and then use the variable as my rotate angle in the alignment, but the software isn't accepting the variable as the rotate angle.

    Any help please?

    Thanks

  • #2
    Post a print so we might have a better understanding ? Use FIND HOLE on a auto circle so if it cant find the circle it will error out instead of crashing into the part ?

    Comment


    • #3
      Would knowing exactly where it is be enough or do you need it near that 12.158° to avoid other trouble? maybe pause for operator to drive the probe inside the hole start, then when program resumes take a readpoint and use that as a nominal location to probe it and find out where it is?

      Comment


      • #4
        Doc1.pdf

        There isn't really sufficient surface area for Find Hole option, small surface area with fillets and edge radii leaves almost no flat. I can calculate XYZ, but that changes based on set-up. We generally try and avoid program stops. Quick cartoon sketch attached "Doc1.pdf". Thanks.
        Attached Files
        Last edited by Woody S; 04-06-2020, 08:23 PM.

        Comment


        • #5
          Originally posted by Woody S View Post

          I was thinking that I could measure the actual angle, assign that measurement as a variable, and then use the variable as my rotate angle in the alignment, but the software isn't accepting the variable as the rotate angle.

          Thanks
          How about a generic feature if your program is blowing chunks with a variable?

          Comment


          • #6
            How do you start your programs? With a manual alignment? Straight into DCC? How are you going to measure the actual angle to feed into a variable?

            If it were me I'd start with a read-point alignment in Dat C, then come and measure the Ø12 bore, then align to that as a rough alignment, then go on and measure AB&C.

            Applications Engineer
            Hexagon UK

            Comment


            • #7
              Try something like this:
              Code:
               COMMENT/OPER,NO,FULL SCREEN=NO,AUTO-CONTINUE=NO,
              Place the probe in the opening of Datum C hole
              PNT_C =FEAT/POINT,CARTESIAN
              THEO/<-6.495,3.75,2.2>,<0,0,1>
              ACTL/<-6.495,3.75,2.2>,<0,0,1>
              READPOINT/
              A1 =ALIGNMENT/START,RECALL:STARTUP,LIST=YES
              ALIGNMENT/TRANS,XAXIS,PNT_C
              ALIGNMENT/TRANS,YAXIS,PNT_C
              ALIGNMENT/TRANS,ZAXIS,PNT_C
              ALIGNMENT/END
              MODE/DCC
              CIR_C =FEAT/CONTACT/CIRCLE/DEFAULT,CARTESIAN,IN,LEAST_SQR
              THEO/<0,0,0>,<0,0,1>,0.19
              ACTL/<0,0,0>,<0,0,1>,0.19
              TARG/<0,0,0>,<0,0,1>
              START ANG=0,END ANG=360
              ANGLE VEC=<0.5,0.8660254,0>
              DIRECTION=CCW
              SHOW FEATURE PARAMETERS=NO
              SHOW CONTACT PARAMETERS=NO
              A2 =ALIGNMENT/START,RECALL:A1,LIST=YES
              ALIGNMENT/TRANS,XAXIS,CIR_C
              ALIGNMENT/TRANS,YAXIS,CIR_C
              ALIGNMENT/TRANS,ZAXIS,CIR_C
              ALIGNMENT/END
              MOVE/INCREMENT,<13,0,0>
              COMMENT/OPER,NO,FULL SCREEN=NO,AUTO-CONTINUE=NO,
              Place the probe in the opening of the second hole
              PNT_2 =FEAT/POINT,CARTESIAN
              THEO/<12.99,0,0>,<0,0,1>
              ACTL/<12.99,0,0>,<0,0,1>
              READPOINT/
              A3 =ALIGNMENT/START,RECALL:A2,LIST=YES
              ALIGNMENT/TRANS,XAXIS,PNT_2
              ALIGNMENT/TRANS,YAXIS,PNT_2
              ALIGNMENT/TRANS,ZAXIS,PNT_2
              ALIGNMENT/END
              CIR_2 =FEAT/CONTACT/CIRCLE/DEFAULT,CARTESIAN,IN,LEAST_SQR
              THEO/<0,0,0>,<0,0,1>,0.19
              ACTL/<0,0,0>,<0,0,1>,0.19
              TARG/<0,0,0>,<0,0,1>
              START ANG=0,END ANG=360
              ANGLE VEC=<0.8660254,-0.5,0>
              DIRECTION=CCW
              SHOW FEATURE PARAMETERS=NO
              SHOW CONTACT PARAMETERS=NO
              A4 =ALIGNMENT/START,RECALL:A3,LIST=YES
              ALIGNMENT/ROTATE_CIRCLE,XPLUS,TO,CIR_C,AND,CIR_2,ABOUT,ZPLUS
              ALIGNMENT/TRANS,XAXIS,CIR_C
              ALIGNMENT/TRANS,YAXIS,CIR_C
              ALIGNMENT/TRANS,ZAXIS,CIR_C
              ALIGNMENT/END
              PNT_A1 =FEAT/CONTACT/VECTOR POINT/DEFAULT,CARTESIAN
              THEO/<13.045,0.1,0>,<0,0,1>
              ACTL/<13.045,0.1,0>,<0,0,1>
              TARG/<13.045,0.1,0>,<0,0,1>
              SNAP=YES
              SHOW FEATURE PARAMETERS=NO
              SHOW CONTACT PARAMETERS=NO
              PNT_A2 =FEAT/CONTACT/VECTOR POINT/DEFAULT,CARTESIAN
              THEO/<-0.055,0.1,0>,<0,0,1>
              ACTL/<-0.055,0.1,0>,<0,0,1>
              TARG/<-0.055,0.1,0>,<0,0,1>
              SNAP=YES
              SHOW FEATURE PARAMETERS=NO
              SHOW CONTACT PARAMETERS=NO
              PNT_A3 =FEAT/CONTACT/VECTOR POINT/DEFAULT,CARTESIAN
              THEO/<6.495,-11.395,0>,<0,0,1>
              ACTL/<6.495,-11.395,0>,<0,0,1>
              TARG/<6.495,-11.395,0>,<0,0,1>
              SNAP=YES
              SHOW FEATURE PARAMETERS=NO
              SHOW CONTACT PARAMETERS=NO
              CIR_3 =FEAT/CONTACT/CIRCLE/DEFAULT,CARTESIAN,IN,LEAST_SQR
              THEO/<6.495,-11.25,0>,<0,0,1>,0.19
              ACTL/<6.495,-11.25,0>,<0,0,1>,0.19
              TARG/<6.495,-11.25,0>,<0,0,1>
              START ANG=0,END ANG=360
              ANGLE VEC=<1,0,0>
              DIRECTION=CCW
              SHOW FEATURE PARAMETERS=NO
              SHOW CONTACT PARAMETERS=NO
              CIR_CF =FEAT/CONTACT/CIRCLE/DEFAULT,CARTESIAN,IN,LEAST_SQR
              THEO/<0,0,0>,<0,0,1>,0.19
              ACTL/<0,0,0>,<0,0,1>,0.19
              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=NO
              CIR_2F =FEAT/CONTACT/CIRCLE/DEFAULT,CARTESIAN,IN,LEAST_SQR
              THEO/<12.99,0,0>,<0,0,1>,0.19
              ACTL/<12.99,0,0>,<0,0,1>,0.19
              TARG/<12.99,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=NO
              PLN_A =FEAT/PLANE,CARTESIAN,OUTLINE,NO,LEAST_SQR
              THEO/<6.495,-3.732,0>,<0,0,1>
              ACTL/<6.495,-3.732,0>,<0,0,1>
              CONSTR/PLANE,BF,PNT_A1,PNT_A2,PNT_A3,,
              OUTLIER_REMOVAL/OFF,3
              FILTER/OFF,WAVELENGTH=0
              CIR_B =FEAT/CIRCLE,CARTESIAN,IN,LEAST_SQR,NO
              THEO/<6.495,-3.75,0>,<0,0,1>,15
              ACTL/<6.495,-3.75,0>,<0,0,1>,15
              CONSTR/CIRCLE,BF,3D,CIR_CF,CIR_2F,CIR_3,,
              OUTLIER_REMOVAL/OFF,3
              FILTER/OFF,UPR=0
              A5 =ALIGNMENT/START,RECALL:A4,LIST=YES
              ALIGNMENT/BF3D,LEAST_SQR,CREATE WEIGHTS=NO,ROTANDTRANS,USE SCALING=NO,0,0,0,0,0,0
              ITERATEANDREPIERCECAD=NO
              Deviation Threshold=0.01
              SHOWALLINPUTS=NO,SHOWALLPARAMS=NO
              ALIGNMENT/END

              Comment


              • #8
                Originally posted by NinjaBadger View Post
                How do you start your programs? With a manual alignment? Straight into DCC? How are you going to measure the actual angle to feed into a variable?

                If it were me I'd start with a read-point alignment in Dat C, then come and measure the Ø12 bore, then align to that as a rough alignment, then go on and measure AB&C.
                +1

                B&S CHAMELEON/PCDMIS CAD++ V2011

                There are no bugs, only "UNDOCUMENTED ENHANCEMENTS!"

                sigpic

                Comment


                • #9
                  Read point is the way to go on this one

                  Comment


                  • #10
                    Thank you all for your help. This forum rocks!

                    Comment


                    • DAN_M
                      DAN_M commented
                      Editing a comment
                      You're welcome! Is your issue resolved? If so, can you please post your code so we can see what you came up with/so others can learn?

                    • Kp61dude!
                      Kp61dude! commented
                      Editing a comment
                      like comment above ^^^^(since there isn't a button to do so)

                  • #11
                    Yeah, issue is resolved. I was overthinking, set on a path, looking for a solution on that path. New day, new outlook, and I realized that using the line from center of Ø12.000 to C hole to control the rotation was the control that I needed to get that angle lock achieved.

                    My initial thought was that the readpoint wouldn't work in this instance, as it's essentially a bolt hole pattern that establishes -B- and my Y and Z locations. Depending on how operator had part spun, it could greatly miss the 2nd and 3rd -B- holes. I suppose that instead of inspecting all 3 -B- holes in sequence as I would usually do, taking the suggestion above of then measuring the Ø12.000, then strike a line between and align to that rotation would then allow me to lock on to the B2 and B3 holes.

                    Only been programming about a year now, that's what I love about this job. Always new challenges and things to learn. And always more stupid prints that we gotta find someway to achieve results to what is easy enough to draw, but much harder to actualize, hahahaha.

                    Thanks again.

                    Comment


                    • NinjaBadger
                      NinjaBadger commented
                      Editing a comment
                      Yep! In a few years you'll look back on these times and be amazed at how little you knew (this isn't meant to be condescending or a dig by the way). I think back to some of the programs I wrote in the early days and shudder at the thought!
                  widgetinstance 190 (Related Topics) skipped due to lack of content & hide_module_if_empty option.
                  Working...
                  X