Conditionally marked/unmarked features

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

  • Conditionally marked/unmarked features

    Have been looking though the forum for a day or so now and can't seem to find an answer to the question: Can I conditionally mark/unmark features of a part based on operator input? I'm programming a part which is going to come through the lab at various stages of completion but they want a full inspection at each stage. The problem is some features I check on one operation will be removed in subsequent operations. I don't want to write a separate program for each time they bring this thing in here, so I was wondering if it's possible to prompt the operator "Are XYZ still on the part?" if yes, continue with the program, if no, mark them from the program and then continue. I would just use a goto statement with a label, but there will be multiple features being machined off this part at the same time, so, would like to just skip them all in one shot rather than asking the operator to skip each one individually.

    I'm pretty new to this, so any help would be greatly appreciated.

    Thanks!

  • #2
    I do the same thing here with multiple machining stages. I use if/end_if to control it. You can also use assignments with the if/end_if comments to turn on/off reporting for those dimensions too.

    Basically you put the features that get skipped at certain stages inside the if/end_if. In my case, I start the program with a yes/no comment asking if tooling tabs are attached. The features that are where the tooling tabs are and set it to if the question is answered no, those features run.

    Check out the post linked. A lot of good information in there including how I use assignments to control reporting.

    https://www.pcdmisforum.com/forum/pc...ntrol-commands
    Last edited by A-machine-insp; 05-13-2020, 11:23 AM.
    Remembering my beautiful wife Taz who's life was lost on 6-13-2020. I love you and I miss you.

    Comment


    • louisd
      louisd commented
      Editing a comment
      You can use flow controls, but the critical component is the use of labels (pseudocode)

      Label=operation_input
      C1 Comment/input will prompt user for a keyed-in value, say:
      "What operation is this?"
      "(input 10, 20, 30, 40, or 50)"

      --then make an assignment to make sure the user input isn't erroneous
      Assign\V1= if c1.input is not (! not symbol on pcdmis) 10 20 30 40 or 50, 0 for false, 1 for true
      if\V1==1
      Goto=validinput
      end_if\
      Else=
      Comment\Operator: "you suck, do your job and input one of the following values!"
      " 10, 20, 30, 40, or 50 "
      Goto= operation_input
      end_else\

      Label/validinput
      --then program your entire routine for all operations. when you need to avoid a command make an if statement to skip for example:
      --if you need just one feature for just one operation step we will say 40
      if\c1.input == 40
      measure feature
      end/if
      --voila! skips op 40 feature and keeps going through routine.

      --if you need one feature later on in routine for only ops 40 and 50
      if\c1.input == 40 or if(c1.input==50)
      measure feature
      end/if

      --you can also use if_goto with labels to just skip each feature as you'd like.
      if_goto\c1.input==20,skip1
      feature to skip
      label\skip1

      hope this helps.

    • A-machine-insp
      A-machine-insp commented
      Editing a comment
      louisd That's a great idea for parts that come in several different stages. What I get is parts with tooling tabs or without so if/end_if works for me. That being said, the part I am currently working on skips a lot of code for the tooling tabs so I did an if/goto. I will definitely keep that in mind if I get a part in more than 2 stages.

  • #3
    You can do it as A-machine-insp said, or there's something called marked sets.

    Edit > Markings > New Marked set (to create a set which will measure what's currently marked)

    Edit > Markings > View Marked Sets gives you a dashboard to run them from.
    Applications Engineer
    Hexagon UK

    Comment


    • #4
      Also do a search for Flow Control on the forum. That is what you are looking for and searching for that will give you a lot of answers.
      Remembering my beautiful wife Taz who's life was lost on 6-13-2020. I love you and I miss you.

      Comment


      • jlgadrow
        jlgadrow commented
        Editing a comment
        Great! Thanks for the info.

    • #5
      I always found marked sets difficult/ quirky to use. (May have given up too quickly but ....) There is an updated alternative to marked sets.

      IF Clear Cube was used, you can quickly create a subset of the program. Say you needed to sort a lot of parts for several dimensions. You can tell PC DMIS you only want to measure those particular dimensions. PC DMIS will then auto-magically mark and un-mark the program as needed to do that task. You can save that configuration and run it as needed. I've started using mini-routines to quickly create incoming inspection measurement routines from full blown First Article routines. That way I'm using the exact code that qualified the first article and if the incoming inspection checklist ever changes I can update the program in ten to 15 minutes. Here's a link to a youtube video about it... https://www.youtube.com/watch?v=ZTlSU4mMJsM

      Comment


      • NinjaBadger
        NinjaBadger commented
        Editing a comment
        Thanks for the link - I was aware of them but haven't really played with them yet. I'll check that out later.

      • DAN_M
        DAN_M commented
        Editing a comment
        Do you have to use XACT Measure with MiniRoutines?

      • davehocum
        davehocum commented
        Editing a comment
        Basically Mini-Routines Marks the required features for the dimensions.
        Mini-Routines require Clearance Cube or FBM (Feature Based Measurement) to work.

    • #6
      I don't think so. I know locations and distances work as well as XACT. I usually use XACT Measure so I can't say for sure if Legacy geometric tolerances work or not. Just have to try it and see on a simple part. Mini-Routines are fairly new to me so I won't claim to know all the ends and outs. So far I haven't had any issues and I like what it does. .

      Comment


      • #7
        I've never liked using marked sets and prefer to use variables and flow control. The OP_SELECT is used to determine what operation the CMM program is supposed to run and jump code is inserted into the program to measure or skip as needed.
        Code:
        OPERATION =LABEL/
        OP_SELECT =COMMENT/INPUT,NO,'Enter the operation that you need to run
        ,
        ,4 - Mill Op - 400
        ,5 - Wire Op - 800
        ,6 - Complete - 1300
        ,'
        IF/OP_SELECT.INPUT=="4"
        ASSIGN/OP_NO="400"
        ASSIGN/OP_DESC="Mill"
        ASSIGN/PICKUP_DIA=.087
        ASSIGN/D_DAT_DIA=.085
        GOTO/MENU
        END_IF/
        IF/OP_SELECT.INPUT=="5"
        ASSIGN/OP_NO="800"
        ASSIGN/OP_DESC="Wire"
        ASSIGN/PICKUP_DIA=.128
        ASSIGN/D_DAT_DIA=.128
        GOTO/MENU
        END_IF/
        IF/OP_SELECT.INPUT=="6"
        ASSIGN/OP_NO="1300"
        ASSIGN/OP_DESC="Complete"
        ASSIGN/PICKUP_DIA=.128
        ASSIGN/D_DAT_DIA=.128
        GOTO/MENU
        END_IF/
        GOTO/OPERATION
        IF/OP_SELECT.INPUT<>"4" AND OP_SELECT.INPUT <>"5" AND OP_SELECT.INPUT <>"6"
        COMMENT/OPER,NO, INPUT NOT VALID!!
        GOTO/OPERATION
        END_IF/
        MENU =LABEL/
        MENU_SELECT =COMMENT/INPUT,NO,'1 - Probe Calibration
        ,2 - Setup Information
        ,3 - Fixture Alignment
        ,4 - Program Execution
        ,5 - Quit'
        IF/MENU_SELECT.INPUT=="1"
        GOTO/PROBE_QUAL
        END_IF/
        IF/MENU_SELECT.INPUT=="2"
        GOTO/SETUP_INFO
        END_IF/
        IF/MENU_SELECT.INPUT=="3"
        GOTO/MANUAL_ALGN
        END_IF/
        IF/MENU_SELECT.INPUT=="4"
        GOTO/EXECUTE
        END_IF/
        IF/MENU_SELECT.INPUT=="5"
        GOTO/QUIT
        END_IF/
        GOTO/MENU
        IF/MENU_SELECT.INPUT<>"1" AND MENU_SELECT.INPUT <>"2" AND MENU_SELECT.INPUT <>"3" AND MENU_SELECT.INPUT <>"4" AND MENU_SELECT.INPUT <>"5"
        COMMENT/OPER,NO, INPUT NOT VALID!!
        GOTO/MENU
        END_IF/

        This is nothing more than YESNO operator input at the beginning of the program with IF_GOTTO/ statements for measuring or skipping features and/or tolerancing.
        Code:
        OP_SELECT =COMMENT/YESNO,NO,
        ,ARE YOU RUNNING TAPER ONLY - CLICK YES
        MENU =LABEL/
        MENU_SELECT =COMMENT/INPUT,NO,'1 - Probe Calibration
        ,2 - Setup Information
        ,3 - Fixture Alignment
        ,4 - Program Execution
        ,5 - Quit'
        IF/MENU_SELECT.INPUT=="1"
        GOTO/PROBE_QUAL
        END_IF/
        IF/MENU_SELECT.INPUT=="2"
        GOTO/SETUP_INFO
        END_IF/
        IF/MENU_SELECT.INPUT=="3"
        GOTO/MANUAL_ALGN
        END_IF/
        IF/MENU_SELECT.INPUT=="4"
        GOTO/EXECUTE
        END_IF/
        IF/MENU_SELECT.INPUT=="5"
        GOTO/QUIT
        END_IF/
        GOTO/MENU
        IF/MENU_SELECT.INPUT<>"1" AND MENU_SELECT.INPUT <>"2" AND MENU_SELECT.INPUT <>"3" AND MENU_SELECT.INPUT <>"4" AND MENU_SELECT.INPUT <>"5"
        COMMENT/OPER,NO, INPUT NOT VALID!!
        GOTO/MENU
        END_IF/
        Code:
        MOVE/POINT,NORMAL,<0,20,100>
        IF_GOTO/OP_SELECT.INPUT=="YES",GOTO = TAPER1
        TIP/T1A90B0, SHANKIJK=0, 1, 0, ANGLE=180
        Xcel & MicroVal Pfx & Global 37mr4 thru 2012mr1sp3
        Contura Calypso 5.4

        Lord, keep Your arm around my shoulder and Your hand over my mouth. Amen.

        Comment


        • #8
          Thank you all for the quick responses and all the great ideas. I'm thinking that using flow control is exactly what I would want to use on this particular part. I'm working offline on this at the moment, so, hopefully in a week when they start machining it I'll remember to post an update with how it all worked out.

          Thanks again!

          Comment


          • #9
            For the type of scenario mentioned in the OP I'd go with the marked sets. It's much easier and eliminates most all operator input error. The more buttons they have to push the more likely they are to push the wrong one.

            Never forget the KiSs rule
            Last edited by YGOLORTEM; 05-15-2020, 08:32 AM.
            Jesse Krook

            Comment


            • #10
              Noted:
              Mark Sets and Mini routines dialog windows will not be visible with INSPECT

              Comment


              • #11
                program it in 'order'
                (1) thing that will ALWAYS be there to be checked
                (2) 'first batch of stuff that may or may not be there'
                (3) 'second batch'
                (4) and on until each batch of stuff that may or may not be there for each step in the process
                For each section of stuff that may or may not be there, use ONERROR (ON ERROR not ONE RROR!), try to check the first point/feature/etc that may or may not be there. ONERROR go to the next section, no error, it keeps measuring.

                No operator input needed.
                sigpic
                Originally posted by AndersI
                I've got one from September 2006 (bug ticket) which has finally been fixed in 2013.

                Comment


                • #12
                  Good idea Matt.

                  B&S CHAMELEON/PCDMIS CAD++ V2011

                  There are no bugs, only "UNDOCUMENTED ENHANCEMENTS!"

                  sigpic

                  Comment

                  Related Topics

                  Collapse

                  Working...
                  X