#!MC 1200 #++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ # # HiLiftPW-3 SECTIONAL CUTTER (Version 1 - 03 MARCH 2017) # TO BE USED WITH: SECTIONAL CUT DATA SUBMITTAL FORM (Version 1 - 03 MARCH 2017) # # INSTRUCTIONS: # 1. Load Surface Zones into Tecplot # 2. Assign LABEL variable as the "XXX" identifier of the dataset # 3. Assign INFO variable as the appropriate zone header for the particular case # 4. Assign FILE variable to the path & filename to write out sectional cut data # 5. Assign (X,Y,Z) variables to the variable number in dataset (typically 1,2,3) # 6. Assign CP variable to the variable number in dataset (typically 4) # 7. Assign CF variable to the variable number in dataset (if exists) # 8. Assign CFX,CFY,CFZ variables to the variable number in dataset (if exists) # 9. Run macro and verify output to |FILE| # 10. Copy zone data into data form (e.g., case2a_cpcf_v1.dat) # # XXX: Participant ID (To be assigned by HiLiftPW workshop committee) # #++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ $!VARSET |LABEL| = "XXX" $!VARSET |INFO| = "a4.36 case2a medium no nacelle" $!VARSET |FILE| = "./SectionalCuts.dat" $!VARSET |X| = "1" # Variable Number for X (Required) $!VARSET |Y| = "2" # Variable Number for Y (Required) $!VARSET |Z| = "3" # Variable Number for Z (Required) $!VARSET |CP| = "9" # Variable Number for CP (Required) $!VARSET |CF| = "16" # Variable Number for CF (Leave Blank If Not In Data) $!VARSET |CFX| = "13" # Variable Number for CFX (Leave Blank If Not In Data) $!VARSET |CFY| = "14" # Variable Number for CFY (Leave Blank If Not In Data) $!VARSET |CFZ| = "15" # Variable Number for CFZ (Leave Blank If Not In Data) #++++++++++++++++++++++++++++++++++++++ END USER INPUTS +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ # #=================================================================== # Create Sectional Cutting Macro Function #-------------------------------------- $!MACROFUNCTION NAME = "SECTIONALCUTTER" $!GLOBALTHREED SLICE{ORIGIN{X = |1| Y = |2| Z = |3|}} $!GLOBALTHREED SLICE{NORMAL{X = |4| Y = |5| Z = |6|}} $!CREATESLICEZONEFROMPLANE SLICESOURCE = SURFACEZONES FORCEEXTRACTIONTOSINGLEZONE = YES COPYCELLCENTEREDVALUES = NO $!ENDMACROFUNCTION #=================================================================== #=================================================================== # Prepare Variable Names & Positions #-------------------------------------- $!IF "|CFX|" == "" $!ALTERDATA EQUATION = "{CFXo} = -999" $!VARSET |CFX| = "|NUMVARS|" $!ENDIF $!IF "|CFY|" == "" $!ALTERDATA EQUATION = "{CFYo} = -999" $!VARSET |CFY| = "|NUMVARS|" $!ENDIF $!IF "|CFZ|" == "" $!ALTERDATA EQUATION = "{CFZo} = -999" $!VARSET |CFZ| = "|NUMVARS|" $!ENDIF $!RENAMEDATASETVAR VAR = |X| NAME = "Xo" $!RENAMEDATASETVAR VAR = |Y| NAME = "Yo" $!RENAMEDATASETVAR VAR = |Z| NAME = "Zo" $!RENAMEDATASETVAR VAR = |CP| NAME = "CPo" $!RENAMEDATASETVAR VAR = |CFX| NAME = "CFXo" $!RENAMEDATASETVAR VAR = |CFY| NAME = "CFYo" $!RENAMEDATASETVAR VAR = |CFZ| NAME = "CFZo" $!IF "|CF|" == "" $!ALTERDATA EQUATION = "{CFo} = SQRT({CFXo}**2 + {CFYo}**2 + {CFZo}**2)" $!VARSET |CF| = "|NUMVARS|" $!ENDIF $!RENAMEDATASETVAR VAR = |CF| NAME = "CFo" $!ALTERDATA EQUATION = "{X} = {Xo}" $!VARSET |NUMVARS0| = |NUMVARS| $!ALTERDATA EQUATION = "{Y} = {Yo}" $!ALTERDATA EQUATION = "{Z} = {Zo}" $!ALTERDATA EQUATION = "{CP} = {CPo}" $!ALTERDATA EQUATION = "{CF} = {CFo}" $!ALTERDATA EQUATION = "{CFX} = {CFXo}" $!ALTERDATA EQUATION = "{CFY} = {CFYo}" $!ALTERDATA EQUATION = "{CFZ} = {CFZo}" $!VARSET |NUMVARS1| = |NUMVARS| #=================================================================== #=================================================================== # Establish Zone Number For Cut Data #-------------------------------------- $!VARSET |NUMZONES0| = |NUMZONES| $!VARSET |NUMZONES1| = |NUMZONES| $!VARSET |NUMZONES1| += 1 #=================================================================== #=================================================================== # Create Sectional Cuts #-------------------------------------- # slatA-A eta=0.16 $!RUNMACROFUNCTION "SECTIONALCUTTER" (1.88529E+03, -3.93220E+02, -1.21820E+02, 0.041617, -0.979370, -0.197741) # wingA-A eta=0.16 $!RUNMACROFUNCTION "SECTIONALCUTTER" (2.66397E+03, -3.68949E+02, -1.63180E+02, 0.000000, -0.998630, 0.052336) # flapA-A eta=0.16 $!RUNMACROFUNCTION "SECTIONALCUTTER" (2.75207E+03, -3.74214E+02, -2.12251E+02, 0.022513, 0.997400, -0.068458) # slatB-B eta=0.25 $!RUNMACROFUNCTION "SECTIONALCUTTER" (2.01323E+03, -5.88613E+02, -1.17578E+02, 0.041617, -0.979370, -0.197741) # wingB-B eta=0.25 $!RUNMACROFUNCTION "SECTIONALCUTTER" (2.66443E+03, -5.63925E+02, -1.41428E+02, 0.000000, -0.998630, 0.052336) # flapB-B eta=0.25 $!RUNMACROFUNCTION "SECTIONALCUTTER" (2.75376E+03, -5.69028E+02, -1.89207E+02, 0.022513, 0.997400, -0.068458) # wingC-C eta=0.33 $!RUNMACROFUNCTION "SECTIONALCUTTER" (2.66488E+03, -7.58991E+02, -1.20093E+02, 0.000000, -0.998630, 0.052336) # flapC-C eta=0.33 $!RUNMACROFUNCTION "SECTIONALCUTTER" (2.80467E+03, -7.68242E+02, -2.13068E+02, 0.022513, 0.997400, -0.068458) # slatD-D eta=0.41 $!RUNMACROFUNCTION "SECTIONALCUTTER" (2.25561E+03, -9.59264E+02, -1.06694E+02, 0.055020, -0.976978, -0.206122) # wingD-D eta=0.41 $!RUNMACROFUNCTION "SECTIONALCUTTER" (2.70351E+03, -9.34093E+02, -1.06152E+02, 0.000000, -0.998630, 0.052336) # flapD-D eta=0.41 $!RUNMACROFUNCTION "SECTIONALCUTTER" (2.84134E+03, -9.54908E+02, -1.92803E+02, 0.029388, -0.956670, 0.289688) # slatE-E eta=0.56 $!RUNMACROFUNCTION "SECTIONALCUTTER" (2.48536E+03, -1.31263E+03, -8.79189E+01, 0.055020, -0.976978, -0.206122) # wingE-E eta=0.56 $!RUNMACROFUNCTION "SECTIONALCUTTER" (2.86617E+03, -1.28765E+03, -8.83407E+01, 0.000000, -0.998630, 0.052336) # flapE-E eta=0.56 $!RUNMACROFUNCTION "SECTIONALCUTTER" (2.98732E+03, -1.31114E+03, -1.62036E+02, 0.029388, -0.956670, 0.289688) # slatG-G eta=0.77 $!RUNMACROFUNCTION "SECTIONALCUTTER" (2.79930E+03, -1.79532E+03, -6.24533E+01, 0.055020, -0.976978, -0.206122) # wingG-G eta=0.77 $!RUNMACROFUNCTION "SECTIONALCUTTER" (3.08838E+03, -1.77064E+03, -6.40080E+01, 0.000000, -0.998630, 0.052336) # flapG-G eta=0.77 $!RUNMACROFUNCTION "SECTIONALCUTTER" (3.17849E+03, -1.77767E+03, -1.21743E+02, 0.029388, -0.956670, 0.289688) # slatH-H eta=0.89 $!RUNMACROFUNCTION "SECTIONALCUTTER" (2.97876E+03, -2.07116E+03, -4.79897E+01, 0.055020, -0.976978, -0.206122) # wingH-H eta=0.89 $!RUNMACROFUNCTION "SECTIONALCUTTER" (3.24813E+03, -2.04704E+03, -5.71650E+01, 0.000000, -0.998630, 0.052336) # fuselageN-N X=2504.88 $!RUNMACROFUNCTION "SECTIONALCUTTER" (2.50488E+03, -4.59483E+01, 2.60586E+02, 1.000000, 0.000000, 0.000000) #=================================================================== #=================================================================== # Rename Zones With Sectional Cut Names #-------------------------------------- $!VARSET |ZONE| = |NUMZONES0| $!VARSET |ZONE| += 1 $!RENAMEDATASETZONE ZONE = |ZONE| NAME = '|LABEL| slatA-A |INFO|' $!VARSET |ZONE| += 1 $!RENAMEDATASETZONE ZONE = |ZONE| NAME = '|LABEL| wingA-A |INFO|' $!VARSET |ZONE| += 1 $!RENAMEDATASETZONE ZONE = |ZONE| NAME = '|LABEL| flapA-A |INFO|' $!VARSET |ZONE| += 1 $!RENAMEDATASETZONE ZONE = |ZONE| NAME = '|LABEL| slatB-B |INFO|' $!VARSET |ZONE| += 1 $!RENAMEDATASETZONE ZONE = |ZONE| NAME = '|LABEL| wingB-B |INFO|' $!VARSET |ZONE| += 1 $!RENAMEDATASETZONE ZONE = |ZONE| NAME = '|LABEL| flapB-B |INFO|' $!VARSET |ZONE| += 1 $!RENAMEDATASETZONE ZONE = |ZONE| NAME = '|LABEL| wingC-C |INFO|' $!VARSET |ZONE| += 1 $!RENAMEDATASETZONE ZONE = |ZONE| NAME = '|LABEL| flapC-C |INFO|' $!VARSET |ZONE| += 1 $!RENAMEDATASETZONE ZONE = |ZONE| NAME = '|LABEL| slatD-D |INFO|' $!VARSET |ZONE| += 1 $!RENAMEDATASETZONE ZONE = |ZONE| NAME = '|LABEL| wingD-D |INFO|' $!VARSET |ZONE| += 1 $!RENAMEDATASETZONE ZONE = |ZONE| NAME = '|LABEL| flapD-D |INFO|' $!VARSET |ZONE| += 1 $!RENAMEDATASETZONE ZONE = |ZONE| NAME = '|LABEL| slatE-E |INFO|' $!VARSET |ZONE| += 1 $!RENAMEDATASETZONE ZONE = |ZONE| NAME = '|LABEL| wingE-E |INFO|' $!VARSET |ZONE| += 1 $!RENAMEDATASETZONE ZONE = |ZONE| NAME = '|LABEL| flapE-E |INFO|' $!VARSET |ZONE| += 1 $!RENAMEDATASETZONE ZONE = |ZONE| NAME = '|LABEL| slatG-G |INFO|' $!VARSET |ZONE| += 1 $!RENAMEDATASETZONE ZONE = |ZONE| NAME = '|LABEL| wingG-G |INFO|' $!VARSET |ZONE| += 1 $!RENAMEDATASETZONE ZONE = |ZONE| NAME = '|LABEL| flapG-G |INFO|' $!VARSET |ZONE| += 1 $!RENAMEDATASETZONE ZONE = |ZONE| NAME = '|LABEL| slatH-H |INFO|' $!VARSET |ZONE| += 1 $!RENAMEDATASETZONE ZONE = |ZONE| NAME = '|LABEL| wingH-H |INFO|' $!VARSET |ZONE| += 1 $!RENAMEDATASETZONE ZONE = |ZONE| NAME = '|LABEL| fuselageN-N |INFO|' #=================================================================== #=================================================================== # Visualize Sectional Cuts #-------------------------------------- $!FIELDLAYERS SHOWMESH = NO $!FIELDLAYERS SHOWCONTOUR = NO $!FIELDLAYERS SHOWVECTOR = NO $!FIELDLAYERS SHOWSCATTER = NO $!FIELDLAYERS SHOWSHADE = NO $!FIELDLAYERS SHOWEDGE = NO $!FIELDLAYERS USELIGHTINGEFFECT = NO $!FIELDLAYERS USETRANSLUCENCY = NO $!FIELDMAP [ 1 - |NUMZONES0|] MESH{COLOR = BLACK} $!FIELDMAP [ 1 - |NUMZONES0|] MESH{LINETHICKNESS = 0.10} $!FIELDMAP [|NUMZONES1| - |NUMZONES| ] MESH{COLOR = GREEN} $!FIELDMAP [|NUMZONES1| - |NUMZONES| ] MESH{LINETHICKNESS = 0.80} $!FIELDMAP [ 1 - |NUMZONES| ] MESH{SHOW = NO} $!FIELDMAP [ 1 - |NUMZONES0|] MESH{SHOW = YES} $!FIELDMAP [|NUMZONES1| - |NUMZONES| ] MESH{SHOW = YES} $!FIELDLAYERS SHOWMESH = YES $!REDRAWALL #=================================================================== #=================================================================== # Write Sectional Cuts To |FILE| #-------------------------------------- $!SETDATASETTITLE "SectionalCuts" $!WRITEDATASET "|FILE|" ASSOCIATELAYOUTWITHDATAFILE = NO INCLUDEAUTOGENFACENEIGHBORS = NO INCLUDECUSTOMLABELS = NO INCLUDEDATA = YES INCLUDEDATASHARELINKAGE = NO INCLUDEGEOM = NO INCLUDETEXT = NO BINARY = NO USEPOINTFORMAT = YES PRECISION = 12 TECPLOTVERSIONTOWRITE = TECPLOTCURRENT VARPOSITIONLIST = [|NUMVARS0| - |NUMVARS1|] ZONELIST = [|NUMZONES1| - |NUMZONES|] #=================================================================== #=================================================================== # Delete Zones With Sectional Cuts #-------------------------------------- #$!DELETEZONES [|NUMZONES1|-|NUMZONES|] #===================================================================