Label template - perpendicularity

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

  • Label template - perpendicularity

    Hello

    I am trying to uniform my parallelism / perpendicularity report labels to work similarly to our TP one, but I am struggling to get it working (and to make sense of existing working labels like the TP one)

    First out TP label template visual structure:

    Code:
    ID+" DF"            | NOM | +TOL | -TOL | ACTUAL | MMC/LMC/RFS | EMPTY    | EMPTY | EMPTY |
    ID+" D"+datumnumber | NOM | +TOL | -TOL | ACTUAL | MMC/LMC/RFS | EMPTY    | EMPTY | EMPTY | (repeating section)
    ID                  | NOM | +TOL | -TOL | ACTUAL | DEVIATION   | GRAPHICS | PASS  | FAIL  |
    My first attempts (setting aside the graphics / pass / fail section that I intend to handle later):

    Line 1:
    Code:
    =ID+TOL(" DF",,DIM_OUTTOL:[B][COLOR=#e74c3c]??[/COLOR][/B],0.0,0.0)
    =TOL(NOMINAL:[B][COLOR=#e74c3c]??[/COLOR][/B],DIM_OUTTOL:[B][COLOR=#e74c3c]??[/COLOR][/B],0.0,0.0)
    =TOL(F_PLUS_TOL:[B][COLOR=#e74c3c]??[/COLOR][/B],DIM_OUTTOL:[B][COLOR=#e74c3c]??[/COLOR][/B],0.0,0.0)
    =TOL(F_MINUS_TOL:[B][COLOR=#e74c3c]??[/COLOR][/B],DIM_OUTTOL:[B][COLOR=#e74c3c]??[/COLOR][/B],0.0,0.0)
    =TOL(DIM_MEASURED:[B][COLOR=#e74c3c]??[/COLOR][/B],DIM_OUTTOL:[B][COLOR=#e74c3c]??[/COLOR][/B],0.0,0.0)
    =TOL([COLOR=#e74c3c][B][MMC/LMC/RFS][/B][/COLOR]:[B][COLOR=#e74c3c]??[/COLOR][/B],DIM_OUTTOL:[B][COLOR=#e74c3c]??[/COLOR][/B],0.0,0.0)
    Line 2: repeating = COUNT(DIM_RPT_DATUM)
    Code:
    =ID+TOL(" D"+ [B][COLOR=#e74c3c]??[/COLOR][/B]:N,DIM_OUTTOL:N,0.0,0.0)
    =TOL(NOMINAL:N,DIM_OUTTOL:N,0.0,0.0)
    =TOL(F_PLUS_TOL:N,DIM_OUTTOL:N,0.0,0.0)
    =TOL(F_MINUS_TOL:N,DIM_OUTTOL:N,0.0,0.0)
    =TOL(DIM_MEASURED:N,DIM_OUTTOL:N,0.0,0.0)
    =TOL([COLOR=#e74c3c][B][MMC/LMC/RFS][/B][/COLOR]:N,DIM_OUTTOL:N,0.0,0.0)
    Line 3:
    Code:
    =TOL(ID,DIM_OUTTOL,0.0,0.0)
    =TOL(NOMINAL,DIM_OUTTOL,0.0,0.0)
    =TOL(F_PLUS_TO,DIM_OUTTOL,0.0,0.0)
    =TOL(F_MINUS_TO,DIM_OUTTOL,0.0,0.0)
    =TOL(DIM_MEASURED,DIM_OUTTOL,0.0,0.0)
    =TOL(DIM_DEVIATION,DIM_OUTTOL,0.0,0.0)
    In red the section I am struggling more with (but even with those removed the label does not work as intended), so I would love to find out the following:
    • How can I refer to the measured feature? (?? in Line 1, if this is even the correct method)
    • How can I refer to the datum number (?? in Line 2 - EDIT: SOLVED)
    • How can I display MMC/LMC/RFS?
    • What else did I miss?

    Edit: forgot the check condition for TOL()
    Last edited by MBaroni; 02-03-2021, 06:13 AM.

  • #2
    Which version of PC-DMIS are you running? Which default labels are you looking at and attempting to modify?

    Comment


    • MBaroni
      MBaroni commented
      Editing a comment
      Running 2012 #624

      I am using pre-existing custom labels (which to my understanding, are derived from the legacy labels and modified to fit in a single line), I tried using both our generic "dimension" label as a base and our true position one, without much success.
      Last edited by MBaroni; 02-01-2021, 11:02 AM.

  • #3
    Update: some (very limited) progress.

    The answer to the second question is obviously N (silly me). Still struggling with the other parts:
    • I don't know how to reference the actual feature for the first line, so that is on hold.
    • Second line is working except for the MMC/LMC/RFS bit that I am unsure of how to implement.
    • My third line for some reason displays the values of the datum instead of parallelism/perpendicularity as it should, no idea why.

    Comment


    • JacobCheverie
      JacobCheverie commented
      Editing a comment
      The reason for the third line displaying values for the datum is that you are not referencing the correct measured value stored in DIM_MEASURED. It should be the last one, but when your considered feature and datum features are referenced at different combinations of material conditions, the stored values in DIM_MEASURED are changing.

  • #4
    For multiple considered features, change the Repeat Expression to "=COUNT(REF_ID)" and refer to the considered features by using "=REF_ID:N". If you do not wish to support multiple considered features, then you can eliminate the Repeat Expression and simply use "={1}ID" to refer to the considered feature.

    Line 1 would be "=TOL(REF_ID:N + " DF", DIM_OUTTOL:N, 0.0, 0.0)" to support multiple considered features.

    Try "=TP_MODIFIER" for the material condition of the considered feature, "=DATUM1_MODIFIER" for the material condition of datum 1, "=DATUM2_MODIFIER" for the material condition of datum 2, etc...

    I will try to look into any issues with your third line if I have some time. You may have to use my suggestions with a bit of additional logic to get exactly what you want.
    Last edited by JacobCheverie; 02-02-2021, 08:00 AM.

    Comment


    • MBaroni
      MBaroni commented
      Editing a comment
      As each label should handle a single feature, I tried using {1}THING as you suggested:
      Code:
      =ID+TOL(" DF",{1}DIM_OUTTOL,0.0,0.0)
      =TOL({1}NOMINAL,{1}DIM_OUTTOL,0.0,0.0)
      =TOL({1}F_PLUS_TOL,{1}DIM_OUTTOL,0.0,0.0)
      =TOL({1}F_MINUS_TOL,{1}DIM_OUTTOL,0.0,0.0)
      =TOL({1}DIM_MEASURED,{1}DIM_OUTTOL,0.0,0.0)
      =TOL({1}TP_MODIFIER,{1}DIM_OUTTOL,0.0,0.0)

      With the above, when running a test program I get:
      Code:
      ID+" DF" | EMPTY | EMPTY | EMPTY | EMPTY | EMPTY

      Some notes:
      * As I was not sure if TP_MODIFIER required the same {1} I tried with and without it, with no difference in results (empty cell)
      * I get empty cells both if the feature is not a FoS (expected except for material condition) and when it is one (not expected)
      * Oddly, when looking in the label editor the cells seem to work (they display the placeholder values)

      Regarding the material modifier for the datums, I am not sure how would I use individual datum references (DATUM1_MODIFIER, DATUM2_MODIFIER, etc.) in a repeating section =COUNT(DIM_RPT_DATUM)

      EDIT1: I also tried making the first line a repeating section =COUNT(REF_ID) and using :N, (trying both TP_MODIFIER and TP_MODIFIER:N).
      This gives me a line with Datum 1 data in all fields, except for ID+" DF" and for the correct material modifier (RFS as the feature instead of MMC as the datum) when using TP_MODIFIER:N (empty cell if just TP_MODIFIER).

      EDIT2:I also tried using DATUM1_MODIFIER and DATUM2_MODIFIER (both with and without :N) in the line 2 repeating =COUNT(DIM_RPT_DATUM) and I am getting empty cells only.
      Last edited by MBaroni; 02-03-2021, 06:54 AM.

  • #5
    Are you using legacy dimensioning?

    If you are using Legacy, the dimension cannot access F_PLUS_TOL and similar data fields if the feature/datum is referenced at RFS that I am aware of.

    When you switch the considered feature between MMC and RFS, notice in the Edit Window that the "DF" axis will disappear and reappear. This will be more difficult to program a report label around and some logic will need to be used if that is possible. You will need to repeat the row around "=COUNT(AXIS)" if I am not mistaken and also add a check for "TP_MODIFIER" to determine the material condition. If it is being referenced at RFS/RMB, the nominal can be pulled from the feature THEO value, but there will be no tolerance assigned to the characteristic and thus no way to determine conformance.

    You will need to come up with a plan to deal with that. Report with no tolerance? Don't report at all?

    Let me know if this makes sense.
    Last edited by JacobCheverie; 02-03-2021, 08:20 AM.

    Comment


    • MBaroni
      MBaroni commented
      Editing a comment
      I am on legacy dimension.

      I am looking at out True position label (also legacy) that does report DF (with tolerance) and it seems to do with =COUNT(SUMMARY_AXIS), but trying to use the same in the perp label did not change anything (still reporting the data for D1)

      also I see a lot of stuff I do not fully understand in said TP label, particularly the use of ":101" "׃(N+110)" and similar references. I feel I am missing some basic information on how this referencing system works exactly.

      For more clarity, I will PM you the TP label.
      Last edited by MBaroni; 02-03-2021, 10:41 AM.

  • #6
    I got your report label. I guess I still have a few questions.

    Are you trying to report the considered feature measured size on line 1 regardless of the material condition it is referenced? Or do you only wish to report the measured size if it is at MMC/LMC?
    Are you trying to report each datum feature's measured size on line 2+ regardless of the material condition that they are referenced? Or only at MMB/LMB?
    Are you finally trying to report the actual dimension measured value on the last line?

    The answers to these questions will shape the end result.

    I think DIM_RPT_DATUMS is a sort of container where index 1, 2, 3, are the numbers of the datums if they exist and the index + 110 is the actual datum name? I'm not quite sure either...

    Comment


    • MBaroni
      MBaroni commented
      Editing a comment
      Ideally I would like the label for perpendicularity / parallelism (and maybe in the future, other FCF dimensions as well, but that's for a later date) to look like the TP report. As for parallelism XYZ deviation is not really relevant that would be

      Code:
      FEATURE:   ID+" DF"  | NOMINAL | +TOL | -TOL | ACTUAL | MMC/LMC/RFS | EMPTY | EMPTY | EMPTY |
      DATUM:     ID+" D"+N | NOMINAL | +TOL | -TOL | ACTUAL | MMC/LMC/RFS | EMPTY | EMPTY | EMPTY |
      DIMENSION: ID        | NOMINAL | +TOL | -TOL | ACTUAL | DEVIATION   | GRAPH | PASS  | FAIL  |

      Some notes:
      * the TP report currently does not have the material condition for DF in the feature line, but instead has it in the dimension's nominal. I am planning to change that as well.
      * If this is not possible having DF material condition in the dimension's nominal (as currently in TP) would be acceptable but not ideal.
      * The TP report is currently using the -TOL column to report bonus tolerance, this will be changed soon, and the +TOL column will have TOL+BONUS.
      * TOL() coding based on the actual feature/datum in/out of tolerance status for DF, D1, D2, etc.

      On the format:
      * I want to always report DF regardless of material condition (if not a feature of size, it would be an empty line except for ID+" DF" and material condition).
      * I want to always report datums regardless of material condition (same empty line point as above).
      * The last line should have the actual dimension results.

      Regarding the +110, it is used even outside DIM_RPT_DATUMS repeating section. I would love to understand what that is doing, but I cannot find any documentation on it.
      Last edited by MBaroni; 02-03-2021, 11:53 AM.

  • #7
    MBaroni I am working on something for you. Please try the following suggestions and let me know if they are along the lines of what you are looking for. I am only pasting in my Line 1 changes.

    Code:
    =ID + IF(TP_MODIFIER:1 == "RFS" OR TP_MODIFIER:1 == " ", " DF " + REF_ID:1, TOL(" DF " + REF_ID:1, DIM_OUTTOL, 0.0, 0.0))
    =IF(TP_MODIFIER:1 == "RFS" OR TP_MODIFIER:1 == " ",{1}THEO_DIAM,TOL(NOMINAL, DIM_OUTTOL, 0.0, 0.0))
    =IF(TP_MODIFIER:1 == "RFS" OR TP_MODIFIER:1 == " ","",TOL(F_PLUS_TOL:1, DIM_OUTTOL, 0.0, 0.0))
    =IF(TP_MODIFIER:1 == "RFS" OR TP_MODIFIER:1 == " ","", TOL(F_MINUS_TOL:1, DIM_OUTTOL, 0.0, 0.0))
    =IF(TP_MODIFIER:1 == "RFS" OR TP_MODIFIER:1 == " ",{1}MEAS_DIAM, TOL(DIM_MEASURED, DIM_OUTTOL, 0.0, 0.0))
    =IF(TP_MODIFIER:1 == "RFS" OR TP_MODIFIER:1 == " ", "RFS", TOL(TP_MODIFIER:1, DIM_OUTTOL, 0.0, 0.0))
    As you can see, and as you will certainly see with Line 2 and Line 3, this is going to become a bit messy.

    When a feature or datum feature is referenced at RFS/RMB, there is no option to input the tolerance on the size. That being said, the report label checks which material condition they are at and adjusts the label accordingly. Any RFS/RMB reference will not show a size tolerance and will not be colored upon failure (there is no failure with no specified tolerance). The THEO diameter and MEAS diameter are also pulled straight from the feature definition further up in the code and may not match the alignment that you are reporting in.

    The code is only set to work with cylindrical features (Notice the THEO_DIAM statements). This can be changed by adding more logic, or maybe somebody has a better approach.

    Also, if I am not mistaken, Legacy Perpendicularity and Parallelism only allow for one datum. That being said, I am only coding a label that is compatible with one datum and thus there are no repeating rows.
    Last edited by JacobCheverie; 02-04-2021, 09:33 AM.

    Comment


    • #8
      MBaroni Please review and test the suggested code that I have put below for Lines 1-3. Consider my comments from Post #7. At the end of Line1 and Line2, I have added {1}MINOR_WORD_TOGGLE and {2}MINOR_WORD_TOGGLE, respectively. This will identify the feature type and can be used to expand the code beyond cylinders only. For example, if the primary datum is a plane, {2}MINOR_WORD_TOGGLE will return "PLANE".

      Line 1
      Code:
      =ID + IF(TP_MODIFIER:1 == "RFS" OR TP_MODIFIER:1 == " ", " DF " + REF_ID:1, TOL(" DF " + REF_ID:1, DIM_OUTTOL, 0.0, 0.0))
      =IF(TP_MODIFIER:1 == "RFS" OR TP_MODIFIER:1 == " ",{1}THEO_DIAM,TOL(NOMINAL, DIM_OUTTOL, 0.0, 0.0))
      =IF(TP_MODIFIER:1 == "RFS" OR TP_MODIFIER:1 == " ","",TOL(F_PLUS_TOL:1, DIM_OUTTOL, 0.0, 0.0))
      =IF(TP_MODIFIER:1 == "RFS" OR TP_MODIFIER:1 == " ","", TOL(F_MINUS_TOL:1, DIM_OUTTOL, 0.0, 0.0))
      =IF(TP_MODIFIER:1 == "RFS" OR TP_MODIFIER:1 == " ",{1}MEAS_DIAM, TOL(DIM_MEASURED, DIM_OUTTOL, 0.0, 0.0))
      =IF(TP_MODIFIER:1 == "RFS" OR TP_MODIFIER:1 == " ", "RFS", TOL(TP_MODIFIER:1, DIM_OUTTOL, 0.0, 0.0))
      ={1}MINOR_WORD_TOGGLE
      Line 2
      Code:
      =ID + IF(TP_MODIFIER:2 == "RFS" OR TP_MODIFIER:2 == " ", " D1 " + REF_ID:2, IF(TP_MODIFIER:1 == "MMC" OR TP_MODIFIER:1 == "LMC", TOL(" D1 " + REF_ID:2, DIM_OUTTOL:2, 0.0, 0.0), TOL(" D1 " + REF_ID:2, DIM_OUTTOL:1, 0.0, 0.0)))
      =IF(TP_MODIFIER:2 == "RFS" OR TP_MODIFIER:2 == " ", {2}THEO_DIAM, IF(TP_MODIFIER:1 == "MMC" OR TP_MODIFIER:1 == "LMC", TOL(NOMINAL:2, DIM_OUTTOL:2, 0.0, 0.0), TOL(NOMINAL:1, DIM_OUTTOL:1, 0.0, 0.0)))
      =IF(TP_MODIFIER:2 == "RFS" OR TP_MODIFIER:2 == " ","", IF(TP_MODIFIER:1 == "MMC" OR TP_MODIFIER:1 == "LMC", TOL(F_PLUS_TOL:2, DIM_OUTTOL:2, 0.0, 0.0), TOL(F_PLUS_TOL:1, DIM_OUTTOL:1, 0.0, 0.0)))
      =IF(TP_MODIFIER:2 == "RFS" OR TP_MODIFIER:2 == " ","", IF(TP_MODIFIER:1 == "MMC" OR TP_MODIFIER:1 == "LMC", TOL(F_MINUS_TOL:2, DIM_OUTTOL:2, 0.0, 0.0), TOL(F_MINUS_TOL:1, DIM_OUTTOL:1, 0.0, 0.0)))
      =IF(TP_MODIFIER:2 == "RFS" OR TP_MODIFIER:2 == " ", {2}MEAS_DIAM, IF(TP_MODIFIER:1 == "MMC" OR TP_MODIFIER:1 == "LMC", TOL(DIM_MEASURED:2, DIM_OUTTOL:2, 0.0, 0.0), TOL(DIM_MEASURED:1, DIM_OUTTOL:1, 0.0, 0.0)))
      =IF(TP_MODIFIER:1 == "MMC" OR TP_MODIFIER:1 == "LMC", IF(TP_MODIFIER:2 == "RFS" OR TP_MODIFIER:2 == " ", "RFS", TOL(TP_MODIFIER:2, DIM_OUTTOL:2, 0.0, 0.0)), IF(TP_MODIFIER:2 == "RFS" OR TP_MODIFIER:2 == " ", "RFS", TOL(TP_MODIFIER:2, DIM_OUTTOL:1, 0.0, 0.0)))
      ={2}MINOR_WORD_TOGGLE
      Line 3
      Code:
      =ID
      =IF(TP_MODIFIER:2 == "RFS" OR TP_MODIFIER:2 == " ", IF(TP_MODIFIER:1 == "RFS" OR TP_MODIFIER:1 == " ", TOL(NOMINAL:1,DIM_OUTTOL:1,0.0,0.0), TOL(NOMINAL:2,DIM_OUTTOL:2,0.0,0.0)), IF(TP_MODIFIER:1 == "RFS" OR TP_MODIFIER:1 == " ", TOL(NOMINAL:2,DIM_OUTTOL:2,0.0,0.0), TOL(NOMINAL:3,DIM_OUTTOL:3,0.0,0.0)))
      =IF(TP_MODIFIER:2 == "RFS" OR TP_MODIFIER:2 == " ", IF(TP_MODIFIER:1 == "RFS" OR TP_MODIFIER:1 == " ", TOL(F_PLUS_TOL:1 + DIM_BONUS:1,DIM_OUTTOL:1,0.0,0.0), TOL(F_PLUS_TOL:2 + DIM_BONUS:3,DIM_OUTTOL:2,0.0,0.0)), IF(TP_MODIFIER:1 == "RFS" OR TP_MODIFIER:1 == " ", TOL(F_PLUS_TOL:2 + DIM_BONUS:3,DIM_OUTTOL:2,0.0,0.0), TOL(F_PLUS_TOL:3 + DIM_BONUS:3,DIM_OUTTOL:3,0.0,0.0)))
      =IF(TP_MODIFIER:2 == "RFS" OR TP_MODIFIER:2 == " ", IF(TP_MODIFIER:1 == "RFS" OR TP_MODIFIER:1 == " ", TOL(F_MINUS_TOL:1,DIM_OUTTOL:1,0.0,0.0), TOL(F_MINUS_TOL:2,DIM_OUTTOL:2,0.0,0.0)), IF(TP_MODIFIER:1 == "RFS" OR TP_MODIFIER:1 == " ", TOL(F_MINUS_TOL:2,DIM_OUTTOL:2,0.0,0.0), TOL(F_MINUS_TOL:3,DIM_OUTTOL:3,0.0,0.0)))
      =IF(TP_MODIFIER:2 == "RFS" OR TP_MODIFIER:2 == " ", IF(TP_MODIFIER:1 == "RFS" OR TP_MODIFIER:1 == " ", TOL(DIM_MEASURED:1,DIM_OUTTOL:1,0.0,0.0), TOL(DIM_MEASURED:2,DIM_OUTTOL:2,0.0,0.0)), IF(TP_MODIFIER:1 == "RFS" OR TP_MODIFIER:1 == " ", TOL(DIM_MEASURED:2,DIM_OUTTOL:2,0.0,0.0), TOL(DIM_MEASURED:3,DIM_OUTTOL:3,0.0,0.0)))

      Comment


      • MBaroni
        MBaroni commented
        Editing a comment
        My apologies for not coming back to you sooner, I have been pulled for an "emergency project" and today is the first day I have a chance to test your code.
        I'll reply more n-depth in a separate post to have better formatting capabilities.

    • #9
      Amazing work. this does everything I want it to except for some minor nitpicks:
      • RFS tolerance are not shown (I understand this might not be possible at all, maybe a better approach would be to remove it from the TP label as well to uniform them?)
      • The perpendicularity nominal is "truncated" instead of showing the correct precision (0 instead of 0.000)
      • Some cells show a 0 (with no extra precision) when they should be blank:
        • Perpendicularity -TOL
        • Plane nominal
        • Plane actual
      • Cones behave a bit weirdly:
        • When at MMC they show the correct tolerances and actual (assuming the average diameter can be considered the "correct actual") but with 0.000 as nominal
        • When at RFS they show 0 (with no extra precision) both as nominal and actual.
      Regarding cones, I must admit I'm not even sure of the regularity of using material modifiers on them when they are called in FCFs (is a cone even a feature of size?), so the relevant scenario is probably only the RFS one. and, if not a feature of size, the line should be blank except for ID and material condition

      I think most if not all of the above issues should be solvable with use of your MINOR_WORD_TOGGLE suggestion and I am going to experiment with that tomorrow.

      Overall a massive improvement, thank you very much for the help so far.
      Last edited by MBaroni; 02-23-2021, 11:48 AM.

      Comment


      • JacobCheverie
        JacobCheverie commented
        Editing a comment
        No problem MBaroni and as you mention, most of those issues can be solved by adding logic to handle feature types other than cylinders. The nominal value for a feature at RFS is coded as the theoretical diameter, so it is no surprise that you are seeing issues with non-cylindrical features.

        You can hard-code -TOL to be blank and you can hard-code the desired precision into the nominal value. I can make some minor adjustments to the code if I have some time.

        I probably won’t have time to adjust for different feature types but I can offer support if needed.

        If I’m not mistaken, a cone is an irregular feature of size and should be valid.
        Last edited by JacobCheverie; 02-24-2021, 05:38 AM.

    • #10
      MBaroni

      Sorry not here with help, but could you attach some pictures of a few evaluations once this project is finished or close to finish?
      I want to see if this is something that could be useful for us too.

      Thanks in advance

      Comment


      • #11
        JacobCheverie

        Whelp looks like I spoke a tad too soon.

        MINOR_WORD_TOGGLE does not seem to be working. While It translates to "Feature type" while editing the label, in the actual report I get a blank cell regardless of feature type.
        I'll keep playing with it, but if you have any insight it would be appreciated.
        Last edited by MBaroni; 02-24-2021, 09:44 AM.

        Comment


        • JacobCheverie
          JacobCheverie commented
          Editing a comment
          It worked for me. Make sure you put the index of the feature/datum in curly brackets up front like {1}MINOR_WORD_TOGGLE or {2}MINOR_WORD_TOGGLE.

          MBaroni Here's something funny - I did a quick test offline. If the active probe is "UNKNOWN" at the point of feature definition, the report label will not show the feature type. I added a known probe and angle right above the feature and the report showed the feature type.

          Are you testing offline with an unknown probe (is the angle after the TIP/ command red?)?
          Last edited by JacobCheverie; 02-24-2021, 10:07 AM.

      Related Topics

      Collapse

      Working...
      X