hexagon logo

Turn off CAD graphs programatically

UPDATE: I've added the SWITCH variable as it was displaying the dimension result twice.



This is one of those really niche tips that might help out one maybe two people but I thought it was quite cool. When using the CAD graphs for surface profiles it has always bugged me that they stay active resulting in a messy report after several dimensions. I have found a way to capture the CADGRAPH, display it on the report and then turn it off again afterwards before displaying the next feature Slight smile


[COLOR=#EE82EE]ASSIGN/COUNT=0[/COLOR]
SCN1START      =LABEL/
[COLOR=#EE82EE]IF/COUNT==0
                  ASSIGN/[/COLOR][B][COLOR=#FF0000]TOGGLE[/COLOR][/B][COLOR=#EE82EE]="BOTH"
                  ASSIGN/[/COLOR][B][COLOR=#008000]SWITCH[/COLOR][/B][COLOR=#EE82EE]="BOTH"
                END_IF/[/COLOR]
[COLOR=#0000FF]    IF/COUNT==1
                  ASSIGN/[/COLOR][B][COLOR=#FF0000]TOGGLE[/COLOR][/B][COLOR=#0000FF]="OFF"[/COLOR]
[COLOR=#0000CD]ASSIGN/[/COLOR][B][COLOR=#008000]SWITCH[/COLOR][/B][COLOR=#0000FF]="NONE"
                END_IF/[/COLOR]

SCN1           =FEAT/SET,CARTESIAN
                THEO/<21.723,21.584,2.446>,<0,0,1>
                ACTL/<21.677,21.586,2.247>,<0,0,1>
                CONSTR/SET,BASIC,P8--(1),P9--(1),P10--(1),P11--(1),P12--(1),P13--(1),,

    FCFPROF1 =SURFACE PROFILE : SCN1
                FEATCTRLFRAME/SHOWPARAMS=YES,SHOWEXPANDED=YES
                CADGRAPH=[B][SIZE=14px][COLOR=#FF0000]TOGGLE[/COLOR][/SIZE][/B],REPORTGRAPH=OFF,TEXT=OFF,MULT=10.00,ARROWDENSITY=100,OUTPUT=[SIZE=14px][B][COLOR=#008000]SWITCH[/COLOR][/B][/SIZE],UNITS=MM
                COMPOSITE=NO,
                CUSTOMIZED DRF=NO
                STANDARDTYPE=ASME_Y14_5
                  PRIMARY DIMENSION/PROFILE OF SURFACE,1,UNEQUAL TOLERANCE ZONE,0.7,A1,<dat>,<dat>
                  NOTE/FCFPROF1
                FEATURES/SCN1,,
                COMMENT/REPT,

SCNVIEW1       =VIEWSET/
                RECALL/VIEWSET,SCNVIEW1
[COLOR=#EE82EE]IF/COUNT==0
                  DISPLAY/METAFILE, "", TO FIT, GOOD
                END_IF/[/COLOR]
[COLOR=#0000FF]IF/COUNT==0
                  ASSIGN/COUNT=COUNT+1
                GOTO/SCN1START
              END_IF/[/COLOR]



This allows you to use CADGRAPH and end up with a clean and crisp report that only shows one profile on each screen capture.


Warning: I use this in a program that has 84 surface profile callouts, while it works perfectly it does dramatically increase saving and loading time.
  • Can't you just use the (reportgraph) and not create a viewset to do the same thing? That is what I do and it gives me one profile for each output. But the code looks pretty cool.
  • I'll be honest, other than at my training I have never used reportgraph (we used to use legacy a lot so analysis view was our go to), AFAIK reportgraph doesn't show the CAD model? I'm basically doing this to have an overlay on the cad so even "morons/" engineers/customers can understand the results. Slight smile
  • That might be a better way having the CAD there.
  • I thought this was a clever workaround.
    Here is the code re-posted with the formatting fixed.

    ASSIGN/COUNT=0
    SCN1START =LABEL/
    IF/COUNT==0
    ASSIGN/
    TOGGLE="BOTH"
    ASSIGN/
    SWITCH="BOTH"
    END_IF/

    IF/COUNT==1 ASSIGN/TOGGLE="OFF"
    ASSIGN/SWITCH="NONE"
    END_IF/


    SCN1 =FEAT/SET,CARTESIAN
    THEO/<21.723,21.584,2.446>,<0,0,1>
    ACTL/<21.677,21.586,2.247>,<0,0,1>
    CONSTR/SET,BASIC,P8--(1),P9--(1),P10--(1),P11--(1),P12--(1),P13--(1),,

    FCFPROF1 =SURFACE PROFILE : SCN1 FEATCTRLFRAME/SHOWPARAMS=YES,SHOWEXPANDED=YES CADGRAPH=TOGGLE,REPORTGRAPH=OFF,TEXT=OFF,MULT=10.00,ARROWDENSITY= 100,OUTPUT=SWITCH,UNITS=MM COMPOSITE=NO, CUSTOMIZED DRF=NO STANDARDTYPE=ASME_Y14_5 PRIMARY DIMENSION/PROFILE OF SURFACE,1,UNEQUAL TOLERANCE ZONE,0.7,A1,<dat>,<dat> NOTE/FCFPROF1 FEATURES/SCN1,, COMMENT/REPT,

    SCNVIEW1 =VIEWSET/
    RECALL/VIEWSET,SCNVIEW1
    IF/COUNT==0 DISPLAY/METAFILE, "", TO FIT, GOOD END_IF/
    IF/COUNT==0 ASSIGN/COUNT=COUNT+1 GOTO/SCN1START END_IF/


  • 3D pdf's were supposed to solve some of this, but they have enough bugs of their own.. this is pretty cool stuff.
  • Oh, thank you for the tip . It really worked for me.
  • I thought this was a clever workaround.
    Here is the code re-posted with the formatting fixed.

    ASSIGN/COUNT=0
    SCN1START =LABEL/
    IF/COUNT==0
    ASSIGN/
    TOGGLE="BOTH"
    ASSIGN/
    SWITCH="BOTH"
    END_IF/

    IF/COUNT==1 ASSIGN/TOGGLE="OFF"
    ASSIGN/SWITCH="NONE"
    END_IF/


    SCN1 =FEAT/SET,CARTESIAN
    THEO/<21.723,21.584,2.446>,<0,0,1>
    ACTL/<21.677,21.586,2.247>,<0,0,1>
    CONSTR/SET,BASIC,P8--(1),P9--(1),P10--(1),P11--(1),P12--(1),P13--(1),,

    FCFPROF1 =SURFACE PROFILE : SCN1 FEATCTRLFRAME/SHOWPARAMS=YES,SHOWEXPANDED=YES CADGRAPH=TOGGLE,REPORTGRAPH=OFF,TEXT=OFF,MULT=10.00,ARROWDENSITY= 100,OUTPUT=SWITCH,UNITS=MM COMPOSITE=NO, CUSTOMIZED DRF=NO STANDARDTYPE=ASME_Y14_5 PRIMARY DIMENSION/PROFILE OF SURFACE,1,UNEQUAL TOLERANCE ZONE,0.7,A1,<dat>,<dat> NOTE/FCFPROF1 FEATURES/SCN1,, COMMENT/REPT,

    SCNVIEW1 =VIEWSET/
    RECALL/VIEWSET,SCNVIEW1
    IF/COUNT==0 DISPLAY/METAFILE, "", TO FIT, GOOD END_IF/
    IF/COUNT==0 ASSIGN/COUNT=COUNT+1 GOTO/SCN1START END_IF/




    Love this.

    Can you add what I would need to do if I want to do multiple VIEWSETS for the same feature?


  • Love this.

    Can you add what I would need to do if I want to do multiple VIEWSETS for the same feature?


    Just to be clear, this isn't my code. I just saw JackMindo's post and thought it was cool enough that it needed a bump.
    Also, he went through the trouble of color coding his code, but the formatting was all messed up when it was posted in a CODE wrapper.
    I was just "remastering" the code to show it as the artist intended it to be seen.

    It seems like it would work fine with more than one viewset command or even the more modern Snapshot commands.
    I'd put them in the same place as the original viewset. See below in Orange
    ASSIGN/COUNT=0
    SCN1START =LABEL/

    IF/COUNT==0

    [INDENT=2] ASSIGN/TOGGLE="BOTH"
    ASSIGN/
    SWITCH="BOTH"
    [/INDENT]
    END_IF/

    IF/COUNT==1

    [INDENT=2] ASSIGN/TOGGLE="OFF"
    ASSIGN/SWITCH="NONE"
    [/INDENT]
    END_IF/

    SCN1 =FEAT/SET,CARTESIAN
    THEO/<21.723,21.584,2.446>,<0,0,1>
    ACTL/<21.677,21.586,2.247>,<0,0,1>
    CONSTR/SET,BASIC,P8--(1),P9--(1),P10--(1),P11--(1),P12--(1),P13--(1),,

    FCFPROF1 =SURFACE PROFILE : SCN1 FEATCTRLFRAME/SHOWPARAMS=YES,SHOWEXPANDED=YES
    CADGRAPH=TOGGLE,REPORTGRAPH=OFF,TEXT=OFF,MULT=10.00,ARROWDENSITY= 100,OUTPUT=SWITCH,UNITS=MM COMPOSITE=NO, CUSTOMIZED DRF=NO STANDARDTYPE=ASME_Y14_5 PRIMARY DIMENSION/PROFILE OF SURFACE,1,UNEQUAL TOLERANCE ZONE,0.7,A1,<dat>,<dat> NOTE/FCFPROF1 FEATURES/SCN1,, COMMENT/REPT,

    SCNVIEW1 =VIEWSET/
    RECALL/VIEWSET,SCNVIEW1
    SCNVIEW2 =VIEWSET/
    RECALL/VIEWSET,SCNVIEW2

    SCNVIEW3 =VIEWSET/
    RECALL/VIEWSET,SCNVIEW3


    IF/COUNT==0

    [INDENT=2] DISPLAY/METAFILE, "", TO FIT, GOOD[/INDENT]
    END_IF/

    IF/COUNT==0

    [INDENT=2] ASSIGN/COUNT=COUNT+1
    GOTO/SCN1START
    [/INDENT]
    END_IF/