debugging loops

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

  • debugging loops

    Solution, thank you @louisd: Make sure all alignments in loop RECALL ACTIVE ALIGNMENT!!!



    PCDMIS 2016 CAD++ Brown & Sharpe Chameleon, Renishaw controller

    I don't know why the first block of code executes correctly, but the second block of code does not. (second block of code in first comment) The second block offsets my OD features by the entire 12 inches Y and 6 inches X that my loop indicates. I wonder if I'm just lucky so far with the first block of code, since I don't specifically call out all 6 DOF in every alignment inside my loop?

    Update: I've tried locking down all 6 DOF, then resetting all feature origins to 0,0 and shelling the program. not having any better luck.


    Code:
    STARTUP    =ALIGNMENT/START,RECALL:USE_PART_SETUP,LIST=YES
                ALIGNMENT/END
                MODE/MANUAL
                PREHIT/0.1
                RETRACT/0.1
                TOUCHSPEED/ 3
                FORMAT/TEXT,OPTIONS, ,HEADINGS,SYMBOLS, ;NOM,TOL,MEAS,DEV,OUTTOL, ,
                LOADPROBE/18MMDISC_PLUS20MM
                WORKPLANE/ZPLUS
                TIP/T1A0B0, SHANKIJK=0.0013, -0.0001, 1, ANGLE=-0.0226
                RECALL/ALIGNMENT,EXTERNAL,ALIGN_FIXTURE
                WORKPLANE/ZPLUS
    FIXTURE_ORIGIN=FEAT/POINT,CARTESIAN,NO
                THEO/<0,0,0>,<0,0,1>
                ACTL/<0,0,0>,<0,0,1>
                CONSTR/POINT,ORIGIN
                WORKPLANE/ZPLUS
    FIXTURE_ZEROPLANE=FEAT/PLANE,CARTESIAN,TRIANGLE,YES
                THEO/<0,0,0>,<0,0,1>
                ACTL/<0,0,0>,<0,0,1>
                CONSTR/PLANE,ALIGN,ZPLUS
    FIXTURE_XPLUS=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
                COMMENT/OPER,NO,FULL SCREEN=YES,AUTO-CONTINUE=NO,
                Position probe about
                a half inch above
                center of part.
    
                DCC mode will start.
    RP1        =FEAT/POINT,CARTESIAN
                THEO/<2,2,6.75>,<0,0,1>
                ACTL/<2,2,6.75>,<0,0,1>
                READPOINT/
    A1_RP        =ALIGNMENT/START,RECALL:ALIGN_FIXTURE,LIST=YES
                    ALIGNMENT/TRANS,XAXIS,RP1
                    ALIGNMENT/TRANS,YAXIS,RP1
                    ALIGNMENT/TRANS,ZAXIS,FIXTURE_ZEROPLANE
                    ALIGNMENT/TRANS_OFFSET,ZAXIS,5.25
                  ALIGNMENT/END
                  MODE/DCC
                  MOVESPEED/ 100
    XLOOP        =LOOP/START,ID=YES,NUMBER=2,START=1,SKIP=,
                    OFFSET:XAXIS=6,YAXIS=0,ZAXIS=0,ANGLE=0
    YLOOP          =LOOP/START,ID=YES,NUMBER=3,START=1,SKIP=,
                      OFFSET:XAXIS=0,YAXIS=6,ZAXIS=0,ANGLE=0
                      MOVE/CLEARPLANE
          DIM LOC11= LOCATION OF POINT FIXTURE_ORIGIN  UNITS=IN ,$
          GRAPH=OFF  TEXT=OFF  MULT=10.00  OUTPUT=NONE  HALF ANGLE=NO
          AX    NOMINAL       +TOL       -TOL       MEAS        DEV     OUTTOL
          X      -2.0000     0.0010     0.0010    -2.0000     0.0000     0.0000 ----#----
          END OF DIMENSION LOC11
                      MOVE/CLEARPLANE
    CIR1             =FEAT/CONTACT/CIRCLE/DEFAULT,CARTESIAN,IN,LEAST_SQR
                      THEO/<0,0,-0.25>,<0,0,1>,1.754
                      ACTL/<0,0,-0.25>,<0,0,1>,1.754
                      TARG/<0,0,-0.25>,<0,0,1>
                      START ANG=0,END ANG=360
                      ANGLE VEC=<1,0,0>
                      DIRECTION=CCW
                      SHOW FEATURE PARAMETERS=NO
                      SHOW CONTACT PARAMETERS=NO
    A2               =ALIGNMENT/START,RECALL:A1_RP,LIST=YES
                        ALIGNMENT/TRANS,XAXIS,CIR1
                        ALIGNMENT/TRANS,YAXIS,CIR1
                      ALIGNMENT/END
                      CLEARP/ZPLUS,0.5,ZPLUS,0,OFF
    CIRA             =FEAT/CONTACT/CIRCLE/DEFAULT,CARTESIAN,IN,LEAST_SQR
                      THEO/<-6,-12,-0.25>,<0,0,1>,1.754
                      ACTL/<-6,-12,-0.25>,<0,0,1>,1.754
                      TARG/<-6,-12,-0.25>,<0,0,1>
                      START ANG=0,END ANG=360
                      ANGLE VEC=<1,0,0>
                      DIRECTION=CCW
                      SHOW FEATURE PARAMETERS=NO
                      SHOW CONTACT PARAMETERS=NO
    CIRB             =FEAT/CONTACT/CIRCLE/DEFAULT,CARTESIAN,IN,LEAST_SQR
                      THEO/<-6,-12,-1.023>,<0,0,1>,1.754
                      ACTL/<-6,-12,-1.023>,<0,0,1>,1.754
                      TARG/<-6,-12,-1.023>,<0,0,1>
                      START ANG=0,END ANG=360
                      ANGLE VEC=<1,0,0>
                      DIRECTION=CCW
                      SHOW FEATURE PARAMETERS=NO
                      SHOW CONTACT PARAMETERS=NO
    CIRC             =FEAT/CONTACT/CIRCLE/DEFAULT,CARTESIAN,IN,LEAST_SQR
                      THEO/<-6,-12,-1.797>,<0,0,1>,1.754
                      ACTL/<-6,-12,-1.797>,<0,0,1>,1.754
                      TARG/<-6,-12,-1.797>,<0,0,1>
                      START ANG=0,END ANG=360
                      ANGLE VEC=<1,0,0>
                      DIRECTION=CCW
                      SHOW FEATURE PARAMETERS=NO
                      SHOW CONTACT PARAMETERS=NO
    CIRD             =FEAT/CONTACT/CIRCLE/DEFAULT,CARTESIAN,IN,LEAST_SQR
                      THEO/<-6,-12,-2.4>,<0,0,1>,1.754
                      ACTL/<-6,-12,-2.4>,<0,0,1>,1.754
                      TARG/<-6,-12,-2.4>,<0,0,1>
                      START ANG=0,END ANG=360
                      ANGLE VEC=<1,0,0>
                      DIRECTION=CCW
                      SHOW FEATURE PARAMETERS=NO
                      SHOW CONTACT PARAMETERS=NO
                      MOVE/CLEARPLANE
    SCN1             =FEAT/SET,CARTESIAN
                      THEO/<-6,-12,-1.3675>,<0,0,1>
                      ACTL/<-6,-12,-1.3675>,<0,0,1>
                      CONSTR/SET,BASIC,CIRA.HIT[1..CIRA.NUMHITS],CIRB.HIT[1..CIRB.NUMHITS],CIRC.HIT[1..CIRC.NUMHITS],CIRD.HIT[1..CIRD.NUMHITS],,
    CYLDATUMB        =FEAT/CYLINDER,CARTESIAN,IN,LEAST_SQR,YES
                      THEO/<-6,-12,-1.41>,<0,0,-1>,1.754,2.32
                      ACTL/<-6,-12,-1.325>,<0,0,-1>,1.754,2.15
                      CONSTR/CYLINDER,BF,SCN1,,
    A3               =ALIGNMENT/START,RECALL:A2,LIST=YES
                        ALIGNMENT/LEVEL,ZMINUS,CYLDATUMB
                        ALIGNMENT/TRANS,XAXIS,CYLDATUMB
                        ALIGNMENT/TRANS,YAXIS,CYLDATUMB
                      ALIGNMENT/END
    CIRE             =FEAT/CONTACT/CIRCLE/DEFAULT,CARTESIAN,OUT,LEAST_SQR
                      THEO/<-6,-12,-0.25>,<0,0,1>,2.002,0
                      ACTL/<-6,-12,-0.25>,<0,0,1>,2.002,0
                      TARG/<-6,-12,-0.25>,<0,0,1>
                      START ANG=0,END ANG=360
                      ANGLE VEC=<1,0,0>
                      DIRECTION=CCW
                      SHOW FEATURE PARAMETERS=NO
                      SHOW CONTACT PARAMETERS=NO
                      MOVE/CIRCULAR
    CIRF             =FEAT/CONTACT/CIRCLE/DEFAULT,CARTESIAN,OUT,LEAST_SQR
                      THEO/<-6,-12,-1.023>,<0,0,1>,2.002,0
                      ACTL/<-6,-12,-1.023>,<0,0,1>,2.002,0
                      TARG/<-6,-12,-1.023>,<0,0,1>
                      START ANG=0,END ANG=360
                      ANGLE VEC=<1,0,0>
                      DIRECTION=CCW
                      SHOW FEATURE PARAMETERS=NO
                      SHOW CONTACT PARAMETERS=NO
                      MOVE/CIRCULAR
    CIRG             =FEAT/CONTACT/CIRCLE/DEFAULT,CARTESIAN,OUT,LEAST_SQR
                      THEO/<-6,-12,-1.797>,<0,0,1>,2.002,0
                      ACTL/<-6,-12,-1.797>,<0,0,1>,2.002,0
                      TARG/<-6,-12,-1.797>,<0,0,1>
                      START ANG=0,END ANG=360
                      ANGLE VEC=<1,0,0>
                      DIRECTION=CCW
                      SHOW FEATURE PARAMETERS=NO
                      SHOW CONTACT PARAMETERS=NO
                      MOVE/CIRCULAR
    CIRH             =FEAT/CONTACT/CIRCLE/DEFAULT,CARTESIAN,OUT,LEAST_SQR
                      THEO/<-6,-12,-2.4>,<0,0,1>,2.002,0
                      ACTL/<-6,-12,-2.4>,<0,0,1>,2.002,0
                      TARG/<-6,-12,-2.4>,<0,0,1>
                      START ANG=0,END ANG=360
                      ANGLE VEC=<1,0,0>
                      DIRECTION=CCW
                      SHOW FEATURE PARAMETERS=NO
                      SHOW CONTACT PARAMETERS=NO
                      MOVE/CLEARPLANE
    Last edited by EmilySue; 11-29-2018, 11:54 AM.

  • #2
    Code:
    STARTUP    =ALIGNMENT/START,RECALL:USE_PART_SETUP,LIST=YES
                ALIGNMENT/END
                MODE/MANUAL
                PREHIT/0.12
                RETRACT/0.12
                FORMAT/TEXT,OPTIONS, ,HEADINGS,SYMBOLS, ;NOM,TOL,MEAS,DEV,OUTTOL, ,
                LOADPROBE/3X40_A
                WORKPLANE/ZPLUS
                TIP/T1A0B0, SHANKIJK=0, 0, 1, ANGLE=0
                RECALL/ALIGNMENT,EXTERNAL,ALIGN_FIXTURE
                WORKPLANE/ZPLUS
    FIXTURE_ORIGIN=FEAT/POINT,CARTESIAN,NO
                THEO/<0,0,0>,<0,0,1>
                ACTL/<0,0,0>,<0,0,1>
                CONSTR/POINT,ORIGIN
                WORKPLANE/ZPLUS
    FIXTURE_ZEROPLANE=FEAT/PLANE,CARTESIAN,TRIANGLE,YES
                THEO/<0,0,0>,<0,0,1>
                ACTL/<0,0,0>,<0,0,1>
                CONSTR/PLANE,ALIGN,ZPLUS
    FIXTURE_XPLUS=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
                COMMENT/OPER,NO,FULL SCREEN=YES,AUTO-CONTINUE=NO,
                Position probe about
                a half inch above
                center of part.
    
                DCC mode will start.
                MODE/DCC
                MOVESPEED/ 100
    XLOOP      =LOOP/START,ID=YES,NUMBER=2,START=1,SKIP=,
                  OFFSET:XAXIS=6,YAXIS=0,ZAXIS=0,ANGLE=0
    YLOOP        =LOOP/START,ID=YES,NUMBER=3,START=1,SKIP=,
                    OFFSET:XAXIS=0,YAXIS=6,ZAXIS=0,ANGLE=0
    RP1            =FEAT/POINT,CARTESIAN
                    THEO/<2,2,6.75>,<0,0,1>
                    ACTL/<6.8308,7.1818,5.75>,<0,0,1>
                    READPOINT/
    A1_RP            =ALIGNMENT/START,RECALL:ALIGN_FIXTURE,LIST=YES
                        ALIGNMENT/TRANS,XAXIS,RP1
                        ALIGNMENT/TRANS,YAXIS,RP1
                        ALIGNMENT/TRANS,ZAXIS,FIXTURE_ZEROPLANE
                        ALIGNMENT/TRANS_OFFSET,ZAXIS,5.25
                      ALIGNMENT/END
          DIM LOC11= LOCATION OF POINT FIXTURE_ORIGIN  UNITS=IN ,$
          GRAPH=OFF  TEXT=OFF  MULT=10.00  OUTPUT=NONE  HALF ANGLE=NO
          AX    NOMINAL       +TOL       -TOL       MEAS        DEV     OUTTOL
          X      -2.0000     0.0010     0.0010   -12.8308   -10.8308    10.8298 <--------
          END OF DIMENSION LOC11
                      MOVE/CLEARPLANE
    CIR1             =FEAT/CONTACT/CIRCLE/DEFAULT,CARTESIAN,IN,LEAST_SQR
                      THEO/<-6,-12,-0.25>,<0,0,1>,1.754
                      ACTL/<-6,-12,-0.25>,<0,0,1>,1.754
                      TARG/<-6,-12,-0.25>,<0,0,1>
                      START ANG=0,END ANG=360
                      ANGLE VEC=<1,0,0>
                      DIRECTION=CCW
                      SHOW FEATURE PARAMETERS=NO
                      SHOW CONTACT PARAMETERS=NO
    A2               =ALIGNMENT/START,RECALL:A1_RP,LIST=YES
                        ALIGNMENT/TRANS,XAXIS,CIR1
                        ALIGNMENT/TRANS,YAXIS,CIR1
                      ALIGNMENT/END
                      CLEARP/ZPLUS,0.5,ZPLUS,0,OFF
    CIRA             =FEAT/CONTACT/CIRCLE/DEFAULT,CARTESIAN,IN,LEAST_SQR
                      THEO/<0,0,-0.25>,<0,0,1>,1.754
                      ACTL/<0,0,-0.25>,<0,0,1>,1.754
                      TARG/<0,0,-0.25>,<0,0,1>
                      START ANG=0,END ANG=360
                      ANGLE VEC=<1,0,0>
                      DIRECTION=CCW
                      SHOW FEATURE PARAMETERS=NO
                      SHOW CONTACT PARAMETERS=NO
    CIRB             =FEAT/CONTACT/CIRCLE/DEFAULT,CARTESIAN,IN,LEAST_SQR
                      THEO/<0,0,-1.41>,<0,0,1>,1.754
                      ACTL/<0,0,-1.41>,<0,0,1>,1.754
                      TARG/<0,0,-1.41>,<0,0,1>
                      START ANG=0,END ANG=360
                      ANGLE VEC=<1,0,0>
                      DIRECTION=CCW
                      SHOW FEATURE PARAMETERS=NO
                      SHOW CONTACT PARAMETERS=NO
    CIRD             =FEAT/CONTACT/CIRCLE/DEFAULT,CARTESIAN,IN,LEAST_SQR
                      THEO/<0,0,-2.4>,<0,0,1>,1.754
                      ACTL/<0,0,-2.4>,<0,0,1>,1.754
                      TARG/<0,0,-2.4>,<0,0,1>
                      START ANG=0,END ANG=360
                      ANGLE VEC=<1,0,0>
                      DIRECTION=CCW
                      SHOW FEATURE PARAMETERS=NO
                      SHOW CONTACT PARAMETERS=NO
                      MOVE/CLEARPLANE
    SCN1             =FEAT/SET,CARTESIAN
                      THEO/<0,0,-1.3533>,<0,0,1>
                      ACTL/<0,0,-1.3533>,<0,0,1>
                      CONSTR/SET,BASIC,CIRA.HIT[1..CIRA.NUMHITS],CIRB.HIT[1..CIRB.NUMHITS],CIRD.HIT[1..CIRD.NUMHITS],,
    CYLDATUMB        =FEAT/CYLINDER,CARTESIAN,IN,LEAST_SQR,YES
                      THEO/<0,0,-1.41>,<0,0,-1>,1.754,2.32
                      ACTL/<0,0,-1.325>,<0,0,-1>,1.754,2.15
                      CONSTR/CYLINDER,BF,SCN1,,
    A3               =ALIGNMENT/START,RECALL:A2,LIST=YES
                        ALIGNMENT/LEVEL,ZMINUS,CYLDATUMB
                        ALIGNMENT/TRANS,XAXIS,CYLDATUMB
                        ALIGNMENT/TRANS,YAXIS,CYLDATUMB
                        ALIGNMENT/ROTATE,XPLUS,TO,FIXTURE_XPLUS,ABOUT,ZPLUS
                      ALIGNMENT/END
    CIRE             =FEAT/CONTACT/CIRCLE/DEFAULT,CARTESIAN,OUT,LEAST_SQR
                      THEO/<-12,-24,-0.25>,<0,0,1>,2.002,0
                      ACTL/<-12,-24,-0.25>,<0,0,1>,2.002,0
                      TARG/<-12,-24,-0.25>,<0,0,1>
                      START ANG=0,END ANG=360
                      ANGLE VEC=<1,0,0>
                      DIRECTION=CCW
                      SHOW FEATURE PARAMETERS=NO
                      SHOW CONTACT PARAMETERS=NO
                      MOVE/CIRCULAR
    CIRF             =FEAT/CONTACT/CIRCLE/DEFAULT,CARTESIAN,OUT,LEAST_SQR
                      THEO/<-12,-24,-1.41>,<0,0,1>,2.002,0
                      ACTL/<-12,-24,-1.41>,<0,0,1>,2.002,0
                      TARG/<-12,-24,-1.41>,<0,0,1>
                      START ANG=0,END ANG=360
                      ANGLE VEC=<1,0,0>
                      DIRECTION=CCW
                      SHOW FEATURE PARAMETERS=NO
                      SHOW CONTACT PARAMETERS=NO
                      MOVE/CIRCULAR
    CIRH             =FEAT/CONTACT/CIRCLE/DEFAULT,CARTESIAN,OUT,LEAST_SQR
                      THEO/<-12,-24,-2.4>,<0,0,1>,2.002,0
                      ACTL/<-12,-24,-2.4>,<0,0,1>,2.002,0
                      TARG/<-12,-24,-2.4>,<0,0,1>
                      START ANG=0,END ANG=360
                      ANGLE VEC=<1,0,0>
                      DIRECTION=CCW
                      SHOW FEATURE PARAMETERS=NO
                      SHOW CONTACT PARAMETERS=NO
                      MOVE/CLEARPLANE

    Comment


    • #3
      Try changing your alignments to "use active alignment", and end your loop with an alignment that calls the same features as the alignment at start of loop.
      I don't see any loop/end commands. Be sure you have two in there, otherwise first loop executes and doesn't know where to go when it finishes running code without a loop/end command.

      Comment


      • EmilySue
        EmilySue commented
        Editing a comment
        Use Active... UGH! I knew it was something silly! I know better than to forget that.

        The recall alignment and loop ends are after the report commands, which I didn't copy (forgot there was relevant stuff down there)

      • EmilySue
        EmilySue commented
        Editing a comment
        This worked offline. Thank you so much! I'll post the solution in my OP once I run it on a table full of actual parts.

    • #4
      Also when I program in loops, I set loop counts at 1 until ready to release the routine (then set loop count to whatever's necessary for pallet and change file to read-only), that way all loop data remains displaying the first position's nominals.

      Comment


      • EmilySue
        EmilySue commented
        Editing a comment
        I hadn't programmed a new loop in quite a while - just got to working on learning other things - and just flaked out. IF I have the alignments correct, I don't usually have a problem with the nominals changing on me, but that is a nice method!

    Related Topics

    Collapse

    Working...
    X