pytecplot 1.7.4__py3-none-any.whl → 1.8.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {pytecplot-1.7.4.dist-info → pytecplot-1.8.0.dist-info}/METADATA +25 -7
- {pytecplot-1.7.4.dist-info → pytecplot-1.8.0.dist-info}/RECORD +23 -23
- {pytecplot-1.7.4.dist-info → pytecplot-1.8.0.dist-info}/WHEEL +1 -1
- tecplot/constant.py +3 -1
- tecplot/data/__init__.py +2 -1
- tecplot/data/load.py +90 -0
- tecplot/data/operate.py +2 -1
- tecplot/plot/__init__.py +1 -1
- tecplot/plot/effects.py +175 -0
- tecplot/plot/fieldmap.py +23 -7
- tecplot/plot/isosurface.py +20 -3
- tecplot/plot/plot.py +33 -0
- tecplot/plot/slice.py +20 -2
- tecplot/tecutil/__init__.py +1 -1
- tecplot/tecutil/constant.py +132 -5
- tecplot/tecutil/sv.py +14 -1
- tecplot/tecutil/tecutil.py +18 -4
- tecplot/tecutil/tecutil_connector.py +4 -1
- tecplot/tecutil/tecutil_rpc.py +13 -0
- tecplot/tecutil/util.py +61 -27
- tecplot/version.py +3 -2
- {pytecplot-1.7.4.dist-info → pytecplot-1.8.0.dist-info}/licenses/LICENSE.html +0 -0
- {pytecplot-1.7.4.dist-info → pytecplot-1.8.0.dist-info}/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pytecplot
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.8.0
|
|
4
4
|
Summary: A Python interface to Tecplot 360
|
|
5
5
|
Author-email: "Tecplot, Inc." <support@tecplot.com>
|
|
6
6
|
License-Expression: LicenseRef-Tecplot-Software-License
|
|
@@ -26,10 +26,12 @@ Classifier: Topic :: Software Development :: Libraries
|
|
|
26
26
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
27
27
|
Classifier: Programming Language :: Python
|
|
28
28
|
Classifier: Programming Language :: Python :: 3
|
|
29
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
29
30
|
Classifier: Programming Language :: Python :: 3.12
|
|
30
31
|
Classifier: Programming Language :: Python :: 3.13
|
|
31
32
|
Classifier: Programming Language :: Python :: 3.14
|
|
32
|
-
|
|
33
|
+
Classifier: Programming Language :: Python :: 3.15
|
|
34
|
+
Requires-Python: >=3.11
|
|
33
35
|
Description-Content-Type: text/x-rst
|
|
34
36
|
License-File: LICENSE.html
|
|
35
37
|
Requires-Dist: protobuf>=3.20.0
|
|
@@ -75,11 +77,11 @@ Documentation
|
|
|
75
77
|
The full documentation is here: https://www.tecplot.com/docs/pytecplot
|
|
76
78
|
|
|
77
79
|
.. note::
|
|
78
|
-
|PyTecplot|
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
Python**.
|
|
80
|
+
|PyTecplot| supports the Python versions actively maintained by the Python
|
|
81
|
+
Software Foundation, 64-bit only.
|
|
82
|
+
|PyTecplot| does not support 32 bit Python. Please refer to INSTALL.rst for
|
|
83
|
+
installation instructions and environment setup. For the best experience,
|
|
84
|
+
developers are encouraged to use the **latest supported version of Python**.
|
|
83
85
|
|
|
84
86
|
Quick Start
|
|
85
87
|
-----------
|
|
@@ -107,6 +109,22 @@ For more information, see |Tecplot 360s release notes|.
|
|
|
107
109
|
|
|
108
110
|
.. |Tecplot 360s release notes| replace:: `Tecplot 360's release notes <https://tecplot.com/products/tecplot-360/new-in-tecplot-360>`__
|
|
109
111
|
|
|
112
|
+
PyTecplot 1.8.0
|
|
113
|
+
^^^^^^^^^^^^^^^
|
|
114
|
+
|
|
115
|
+
* Added surface-flow effect controls, including line integral convolution, for
|
|
116
|
+
Tecplot 360 2026 R1 and later.
|
|
117
|
+
* Added `tp.data.load_ugrid()` for loading exactly one `.b8.ugrid` or
|
|
118
|
+
`.lb8.ugrid` file per call with an optional explicit `mapbc_filename`.
|
|
119
|
+
* Documented UGRID MAPBC behavior in the API reference, including companion
|
|
120
|
+
`.mapbc` auto-discovery when `mapbc_filename=None`.
|
|
121
|
+
* Current FEA loader version updated to v196864.
|
|
122
|
+
|
|
123
|
+
PyTecplot 1.7.5
|
|
124
|
+
^^^^^^^^^^^^^^^
|
|
125
|
+
|
|
126
|
+
* Fixed: type handling of `ignore_divide_by_zero` argument in `execute_equation()`.
|
|
127
|
+
|
|
110
128
|
PyTecplot 1.7.4
|
|
111
129
|
^^^^^^^^^^^^^^^
|
|
112
130
|
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
pytecplot-1.
|
|
1
|
+
pytecplot-1.8.0.dist-info/licenses/LICENSE.html,sha256=I240fAHgxqlSQn_eSmb9ktcS4hgugObDnHYQnlEPzt8,28492
|
|
2
2
|
tecplot/__init__.py,sha256=iHAPbGDgIh7HtLWaWcDYfVS4TOsNrRSHyQa-H_6Li3g,3550
|
|
3
|
-
tecplot/constant.py,sha256=
|
|
3
|
+
tecplot/constant.py,sha256=KoqTkjfi6xjxolWeYNSUXwh27iBR8DnemNnwdZ2s4GM,8740
|
|
4
4
|
tecplot/exception.py,sha256=YB4zeL0-07yCy4pyUqeFdNQ98nK11h2n3ZHHe58Od6s,6493
|
|
5
5
|
tecplot/macro.py,sha256=uE29ftjdr2HdlFVa9SS-1uBU8Di4W3PwquhI75LnvhM,13307
|
|
6
|
-
tecplot/version.py,sha256=
|
|
6
|
+
tecplot/version.py,sha256=4UuHbgyO35GNcD18udMY95wD3BPnaCXT_iZyOKKtuMw,1545
|
|
7
7
|
tecplot/annotation/__init__.py,sha256=FfL8JhlO6T9NTajVRtgXHp6A6PhjpO51gnVKlHMkzWA,333
|
|
8
8
|
tecplot/annotation/annotation.py,sha256=B7G-BkrQ4lYBpak9RR3u7Pvdci5MGLUvNo_MnJidyY4,8481
|
|
9
9
|
tecplot/annotation/geometry.py,sha256=3jnp_Ut1AQdhSUCMAJ1yFuL_epoGUoTny03cv0kl09k,12516
|
|
@@ -12,7 +12,7 @@ tecplot/annotation/image.py,sha256=6v_EUYQ1gUoHIqMlJXO68S8nSuvwSnPHePwRKmtmYM4,5
|
|
|
12
12
|
tecplot/annotation/iter.py,sha256=s9rFJLhKgJKApxxTghRFBjT6Pmu6BAEfvB5QgBI4mNI,3709
|
|
13
13
|
tecplot/annotation/polyline.py,sha256=bw-1LfpjfcHK7VZGTf7xrvHtzjlFJAegIYrU5GVdse0,12390
|
|
14
14
|
tecplot/annotation/text.py,sha256=JFaaOJR1h6LyLt9vUVanQmakXtGZOguVdA-3oT8tWhQ,26471
|
|
15
|
-
tecplot/data/__init__.py,sha256=
|
|
15
|
+
tecplot/data/__init__.py,sha256=_fc25c9cRzTROoxSg0t6OqwKH9fwePVed-dvX8mXU4E,1968
|
|
16
16
|
tecplot/data/array.py,sha256=wcGIaoVbSjSdwQP3DpXAOECHAmjTBurbmZvTodF5h1E,24246
|
|
17
17
|
tecplot/data/create.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
|
18
18
|
tecplot/data/dataset.py,sha256=MvM1vVf5NlHaDc3rI6mQV_mjNxOaGVuBsGGRtLXSG3I,81909
|
|
@@ -20,9 +20,9 @@ tecplot/data/extract.py,sha256=VqDqe_-VcQSKD-rRo4DSqohZElUan2dxuNlLRM_qE54,21891
|
|
|
20
20
|
tecplot/data/face_neighbors.py,sha256=Bm77F87qtDcw2u1BWFNE9cRTc8FI9MS3Cw8YlaJsdkc,19440
|
|
21
21
|
tecplot/data/facemap.py,sha256=Xhn77cZndfgUA9U014I4M_ecwj8bI98_A7DZC24-Jwk,31287
|
|
22
22
|
tecplot/data/fe_cell_type.py,sha256=G2U0c1RBHvUP03_YjHGHaMk1JOkF-g9SlBlLkWXH2Yg,3911
|
|
23
|
-
tecplot/data/load.py,sha256=
|
|
23
|
+
tecplot/data/load.py,sha256=eKbscSG3HxPxz_N0EbR2lz5ScbZSrkGQx3Ppd5lGFrI,114141
|
|
24
24
|
tecplot/data/nodemap.py,sha256=AhSGO_Bmw3OB01UYKmjldTOci5rlUMGK_eiDrDHWrxk,36209
|
|
25
|
-
tecplot/data/operate.py,sha256=
|
|
25
|
+
tecplot/data/operate.py,sha256=pRmFVFgUbxp07mtG_mLo8LKeQwuYYg6IUl8tWkg0PPU,42659
|
|
26
26
|
tecplot/data/query.py,sha256=Ocr9h1I2bFuJFLVOFEqiCUnuxTzD4wnToNzYk996GhY,14807
|
|
27
27
|
tecplot/data/save.py,sha256=iTmR7DJL3iUDgHOikFRPkMRejmZrNaeX7BHpZqhI4aY,16991
|
|
28
28
|
tecplot/data/variable.py,sha256=xJCOO5ZeXCAFWKJYnC_mMxWKoy-oe3pE0EnHytZOwro,9437
|
|
@@ -45,23 +45,23 @@ tecplot/legend/legend.py,sha256=FTx03o54awsytUUI2fu8db2oCWvG9L8_D6fymS-gd-Q,4022
|
|
|
45
45
|
tecplot/legend/line_legend.py,sha256=qim_xoNHB7gk-Hn7x6d5Yttd_zfFAaoA2KKqpD0S94Q,2121
|
|
46
46
|
tecplot/legend/rgb_coloring_legend.py,sha256=pDgPaQBtdV99Qz2tDkxc-FGXHmpBSfwZvtDrKXf3gus,9740
|
|
47
47
|
tecplot/legend/scatter_legend.py,sha256=_td5uXO2u3PxT-cCYfGlMVZWHuA4k9i75YYzvLdHv6E,4013
|
|
48
|
-
tecplot/plot/__init__.py,sha256=
|
|
48
|
+
tecplot/plot/__init__.py,sha256=kyez7N6l_bSdd3JodLS8BBxP9W_tfwCcuOBdYOjqxYo,3995
|
|
49
49
|
tecplot/plot/axes.py,sha256=ix_rANTSZdMXWfrBDeR5Zq4AWkJ1hXkog1ply6oSbPI,26962
|
|
50
50
|
tecplot/plot/axis.py,sha256=3cgOPbgQdCAWueqfjOpZUbPdhYLsw3bqw4Apm7vEaRQ,43264
|
|
51
51
|
tecplot/plot/blanking.py,sha256=j7iwZsiN78DiFzExR83iLk8m6LPFWTQx2ev7s_On3d8,20237
|
|
52
52
|
tecplot/plot/contour.py,sha256=tw-7YW27uwr-V17Ip5zvQtZXsbbG4ca-oILB2bCPu1k,44240
|
|
53
|
-
tecplot/plot/effects.py,sha256=
|
|
54
|
-
tecplot/plot/fieldmap.py,sha256=
|
|
53
|
+
tecplot/plot/effects.py,sha256=z6wUe7XmumsQ-PlUtm1bOtKPoDpSUNuUTjy058XM11A,11169
|
|
54
|
+
tecplot/plot/fieldmap.py,sha256=GcwxDN_TyBcdUquV3T5g0k1jXEeCkY3ZL16yGLgngCw,77023
|
|
55
55
|
tecplot/plot/grid.py,sha256=p8h2Tmu93aVunOww6VXSuK8onjf1HkYZRQEyApTJr_c,22463
|
|
56
56
|
tecplot/plot/hoe_settings.py,sha256=r_ZFwhWa0pes3bQwqcX6kpMWp7Q7_tLalCIHdIAUw8Y,1931
|
|
57
|
-
tecplot/plot/isosurface.py,sha256=
|
|
57
|
+
tecplot/plot/isosurface.py,sha256=Y8leSqYnqg-e_YHQ4ZMp4djOwZaLMfBJBE1QWBm13ms,41856
|
|
58
58
|
tecplot/plot/labels.py,sha256=ac8Dl37lGbkY78cJJo_aCuN9zslYZthSZqriTHGkPOs,10578
|
|
59
59
|
tecplot/plot/linemap.py,sha256=NHb83QTY1OzI2PO5D_HSlaAxuTrLJxH4fEpE-YQKPgY,63631
|
|
60
60
|
tecplot/plot/linking.py,sha256=HyetVeDsnUsGJtmWLURg6ylyCom0zR-0UubrVynB_fs,16775
|
|
61
|
-
tecplot/plot/plot.py,sha256=
|
|
61
|
+
tecplot/plot/plot.py,sha256=AxerHBcbVdk_K8wMkEtQ3Yulfii6rXFHggpjDPiMauE,61751
|
|
62
62
|
tecplot/plot/rgb_coloring.py,sha256=OfcIvhQ9Tm5TQylOUttX7QcNu3CHtETBpIz7gqa9GwY,9417
|
|
63
63
|
tecplot/plot/scatter.py,sha256=_Z7Kte2XSruGcDxEDETD3-4-ynYPvc85_W5jNSzG9lE,12610
|
|
64
|
-
tecplot/plot/slice.py,sha256=
|
|
64
|
+
tecplot/plot/slice.py,sha256=364P2jyWE-Qovgr6Lii_bU6G2fRNKhQH-NRBHryc5ZQ,53897
|
|
65
65
|
tecplot/plot/streamtrace.py,sha256=6x6yJgMgmtUAGUjqqaWWyMvIPjbRdvKjkqE6LKbDf_o,65581
|
|
66
66
|
tecplot/plot/symbol.py,sha256=6p28udpGG-rOKCAb9bgsk6kWHqXYPfAQ7W-jBrtmPaA,18422
|
|
67
67
|
tecplot/plot/ticks.py,sha256=Wx3myMFWJYqeE8uefTv3sZYBBAAcaK2Pg6v-0pBk56M,19252
|
|
@@ -74,26 +74,26 @@ tecplot/session/config.py,sha256=UrKiaP1HIZSO1J-eV-SEPZa0LvxK80eDcQanEZNeMtw,295
|
|
|
74
74
|
tecplot/session/session.py,sha256=xBvfy90k6WBbUTQEFBWLm4F53_DtKp14gC-uMO8q5Xs,17908
|
|
75
75
|
tecplot/session/state_changed.py,sha256=qefZrJDIO5gT8hvkrrRmq75rQwIFXKA12qrXx6TPiD4,7961
|
|
76
76
|
tecplot/session/style.py,sha256=djEwXG3H8_izU1Zsk5b7FlJo-WsxgLzb3N78YHCC7Us,17619
|
|
77
|
-
tecplot/tecutil/__init__.py,sha256=
|
|
77
|
+
tecplot/tecutil/__init__.py,sha256=5jki45DrpyEnes5lJr1lxIlfa17KEMX9yL7rvx8p7qc,783
|
|
78
78
|
tecplot/tecutil/arglist.py,sha256=Ls2PIplqW2mpjPEyUryeiGcKJrrAZNFHRupBHF3mOp4,9071
|
|
79
79
|
tecplot/tecutil/captured_output.py,sha256=_q4pFzQvQ736AO_PAVNxlEhzIaxgZV19sBrMuLkiCB4,6373
|
|
80
|
-
tecplot/tecutil/constant.py,sha256=
|
|
80
|
+
tecplot/tecutil/constant.py,sha256=P1bwpHlwAtOLw4Kdz1zHipEjVTEtKIy0Nv_5b3nmLQA,21935
|
|
81
81
|
tecplot/tecutil/index_set.py,sha256=oF4nLpeNOu0-F7RIQUO33WWKGIvK9O6T7lQBIALxRg0,3984
|
|
82
82
|
tecplot/tecutil/lock.py,sha256=rVa7hekZ7ZFZnvYgRGsWxZUty9JUbC2EZ-eO4vHzqlU,967
|
|
83
83
|
tecplot/tecutil/message_pb2.py,sha256=5LLHkC4o1hiXYx7FGPLFkPvN2YzVhPT7gfVNVJg_sEU,3668
|
|
84
84
|
tecplot/tecutil/preamble.py,sha256=wzpTPY3xyv8-cnWpp5q1ay0jlXRNmMEmC0UXN-xu0aU,2142
|
|
85
85
|
tecplot/tecutil/stringlist.py,sha256=GMuwiP0scuyLxEUbcJFIz4DU9TLAhNdjGHDWawGGT-o,3533
|
|
86
|
-
tecplot/tecutil/sv.py,sha256=
|
|
87
|
-
tecplot/tecutil/tecutil.py,sha256=
|
|
86
|
+
tecplot/tecutil/sv.py,sha256=2fWRyOzIMCLYFT7e0uLHVPTHBo-yhJeOENxh15jwmKo,55091
|
|
87
|
+
tecplot/tecutil/tecutil.py,sha256=1Gk0piCrUyhcEv04VQ0Pmw3YZxbAjg69gwQILYlFn_4,697201
|
|
88
88
|
tecplot/tecutil/tecutil_client.py,sha256=2ELrTJG2hlPoOMp6ud0bb6ciTSQTEhFpkA50QrMVB6c,23754
|
|
89
|
-
tecplot/tecutil/tecutil_connector.py,sha256=
|
|
90
|
-
tecplot/tecutil/tecutil_rpc.py,sha256=
|
|
91
|
-
tecplot/tecutil/util.py,sha256=
|
|
89
|
+
tecplot/tecutil/tecutil_connector.py,sha256=GzmdZ2yBn6HFzD-qB1ICz-dduocFnjkV6mmBvkn5qtc,37148
|
|
90
|
+
tecplot/tecutil/tecutil_rpc.py,sha256=bei8gcQPHRS1OgBZQdLSYdX6SF_M1WzAqhSp3kQK_sk,288068
|
|
91
|
+
tecplot/tecutil/util.py,sha256=wtcK1_tO4_6pKBsqYopoM5RJl35kPcYFY23kvn1tJZU,12559
|
|
92
92
|
tecplot/text/__init__.py,sha256=hXk-XwewRyS-yxif3Wx5FS1wO5Uh6WQpRgtUiUfjNo0,112
|
|
93
93
|
tecplot/text/font.py,sha256=tHMT2NGJC8rLCVCUdmxK0YN_f4hZpTevWIofwjAp7cs,6722
|
|
94
94
|
tecplot/text/label_format.py,sha256=24MOvWtVZ_SKdcU16i5yEfxC-hBipmNOLQwJ_kzDr3k,12328
|
|
95
95
|
tecplot/text/textbox.py,sha256=nwr0ReRC56MY5gB7Ie6UdDxrd_Os_ZI1_3n4bmOzalU,2882
|
|
96
|
-
pytecplot-1.
|
|
97
|
-
pytecplot-1.
|
|
98
|
-
pytecplot-1.
|
|
99
|
-
pytecplot-1.
|
|
96
|
+
pytecplot-1.8.0.dist-info/METADATA,sha256=gvwJlY-I2CjNQUlcF9QNlfRYtUTfM2tWUjJ8UmOTods,24173
|
|
97
|
+
pytecplot-1.8.0.dist-info/WHEEL,sha256=mOdXR9C3wMVov7cSY8PY-XCzo3SmmWCHvGQr5csJoao,91
|
|
98
|
+
pytecplot-1.8.0.dist-info/top_level.txt,sha256=gU7HYnAb3AVBIKRUOASdYO0QRI6hg1raLt8aN5E4o7s,8
|
|
99
|
+
pytecplot-1.8.0.dist-info/RECORD,,
|
tecplot/constant.py
CHANGED
tecplot/data/__init__.py
CHANGED
|
@@ -28,7 +28,8 @@ from .fe_cell_type import FECellType
|
|
|
28
28
|
from .load import (load_cfx, load_tecplot, load_tecplot_szl, load_cgns,
|
|
29
29
|
load_converge_cgns, load_converge_hdf5, load_converge_output,
|
|
30
30
|
load_ensight, load_fluent, load_fluent_cff, load_fvcom,
|
|
31
|
-
load_openfoam, load_plot3d, load_stl, load_telemac,
|
|
31
|
+
load_openfoam, load_plot3d, load_stl, load_telemac,
|
|
32
|
+
load_ugrid, load_vtk)
|
|
32
33
|
from .nodemap import (ClassicNodemap, ClassicNodemapArray, Nodemap,
|
|
33
34
|
NodemapSection, NodemapSectionArray)
|
|
34
35
|
from .save import save_tecplot_ascii, save_tecplot_plt, save_tecplot_szl
|
tecplot/data/load.py
CHANGED
|
@@ -996,6 +996,96 @@ def load_telemac(filenames=None,
|
|
|
996
996
|
assign_strand_ids=True)
|
|
997
997
|
|
|
998
998
|
|
|
999
|
+
@lock()
|
|
1000
|
+
def load_ugrid(filename,
|
|
1001
|
+
frame=None,
|
|
1002
|
+
read_data_option=ReadDataOption.Append,
|
|
1003
|
+
mapbc_filename=None,
|
|
1004
|
+
initial_plot_type=None):
|
|
1005
|
+
"""Read a UGRID data file.
|
|
1006
|
+
|
|
1007
|
+
Parameters:
|
|
1008
|
+
filename (`pathlib.Path` or `str`): Path to exactly one UGRID file to be
|
|
1009
|
+
read. The filename must end with ``.b8.ugrid`` or ``.lb8.ugrid``.
|
|
1010
|
+
(See note below concerning absolute and relative paths.)
|
|
1011
|
+
frame (`Frame <tecplot.layout.Frame>`, optional): The `Frame
|
|
1012
|
+
<tecplot.layout.Frame>` to attach the resulting `Dataset`. If
|
|
1013
|
+
`None`, the currently active `Frame <tecplot.layout.Frame>` is used
|
|
1014
|
+
and the zones are appended by default.
|
|
1015
|
+
read_data_option (`ReadDataOption`, optional): Specify how the data
|
|
1016
|
+
is loaded into Tecplot. (default: `ReadDataOption.Append`)
|
|
1017
|
+
|
|
1018
|
+
Possible values are:
|
|
1019
|
+
* `ReadDataOption.ReplaceInActiveFrame`
|
|
1020
|
+
Remove the dataset from the active frame prior to reading in the
|
|
1021
|
+
new dataset. If other frames use the same `Dataset
|
|
1022
|
+
<tecplot.data.Dataset>` in the active frame, they will continue to
|
|
1023
|
+
use the old one.
|
|
1024
|
+
* `ReadDataOption.Append`
|
|
1025
|
+
Append to the existing `Dataset <tecplot.data.Dataset>`.
|
|
1026
|
+
* `ReadDataOption.Replace`
|
|
1027
|
+
Replace the `Dataset <tecplot.data.Dataset>` attached to the active
|
|
1028
|
+
frame and to all other frames that use the same `Dataset
|
|
1029
|
+
<tecplot.data.Dataset>`.
|
|
1030
|
+
mapbc_filename (`pathlib.Path` or `str`, optional): Optional MAPBC file
|
|
1031
|
+
used for boundary metadata. If provided, that file is used. If
|
|
1032
|
+
`None` (default), the loader looks for an exact companion
|
|
1033
|
+
``.mapbc`` file with the same base name in the same directory.
|
|
1034
|
+
If the selected or auto-detected ``.mapbc`` file is malformed or its
|
|
1035
|
+
boundary IDs do not match the UGRID file, the loader warns and
|
|
1036
|
+
continues loading UGRID data without applying MAPBC metadata.
|
|
1037
|
+
initial_plot_type (`PlotType`, optional): Forces a specific type of
|
|
1038
|
+
plot upon loading of the data. To have |Tecplot 360| determine the
|
|
1039
|
+
most appropriate plot type for the data, use
|
|
1040
|
+
`PlotType.Automatic`. Possible values are: `PlotType.Automatic`
|
|
1041
|
+
(default), `Cartesian3D`, `Cartesian2D`, `XYLine`,
|
|
1042
|
+
`PlotType.Sketch`, `PolarLine`.
|
|
1043
|
+
|
|
1044
|
+
Returns:
|
|
1045
|
+
`Dataset <tecplot.data.Dataset>`: The `Dataset <tecplot.data.Dataset>` holding
|
|
1046
|
+
the loaded data.
|
|
1047
|
+
|
|
1048
|
+
.. note:: **Absolute and relative paths with PyTecplot**
|
|
1049
|
+
|
|
1050
|
+
Relative paths, when used within the PyTecplot API are always from
|
|
1051
|
+
Python's current working directory which can be obtained by calling
|
|
1052
|
+
:func:`os.getcwd()`. This is true for batch and `connected
|
|
1053
|
+
<tecplot.session.connect()>` modes. One exception to this is paths
|
|
1054
|
+
within a macro command or file which will be relative to the |Tecplot
|
|
1055
|
+
Engine|'s home directory, which is typically the |Tecplot 360|
|
|
1056
|
+
installation directory. Finally, when connected to a remote (non-local)
|
|
1057
|
+
instance of Tecplot 360, only absolute paths are allowed.
|
|
1058
|
+
|
|
1059
|
+
Note that backslashes must be escaped which is especially important for
|
|
1060
|
+
windows paths such as ``"C:\\\\Users"`` or ``"\\\\\\\\server\\\\path"``
|
|
1061
|
+
which will resolve to ``"C:\\Users"`` and ``"\\\\server\\path"``
|
|
1062
|
+
respectively. Alternatively, one may use Python's raw strings:
|
|
1063
|
+
``r"C:\\Users"`` and ``r"\\\\server\\path"``
|
|
1064
|
+
|
|
1065
|
+
Load one UGRID file, or explicitly provide a MAPBC file::
|
|
1066
|
+
|
|
1067
|
+
>>> dataset = tecplot.data.load_ugrid('surface.b8.ugrid')
|
|
1068
|
+
>>> dataset = tecplot.data.load_ugrid(
|
|
1069
|
+
... 'surface.b8.ugrid',
|
|
1070
|
+
... mapbc_filename='surface.mapbc')
|
|
1071
|
+
|
|
1072
|
+
.. versionadded:: 2026.1
|
|
1073
|
+
Loading UGRID data requires Tecplot 360 2026 R1 or later.
|
|
1074
|
+
|
|
1075
|
+
.. versionadded:: 1.7.5
|
|
1076
|
+
"""
|
|
1077
|
+
with StringList('STANDARDSYNTAX', '1.0') as instr:
|
|
1078
|
+
with tecutil.ArgList() as arglist:
|
|
1079
|
+
arglist[sv.DATASETREADER] = 'UGRID Loader'
|
|
1080
|
+
instr += ['FILENAME_UGRID', tecutil.normalize_path(filename)]
|
|
1081
|
+
if mapbc_filename is not None:
|
|
1082
|
+
instr += ['FILENAME_MAPBC', tecutil.normalize_path(mapbc_filename)]
|
|
1083
|
+
arglist[sv.FILENAMESORINSTRUCTIONS] = instr
|
|
1084
|
+
return _tecplot_loader_load_data(
|
|
1085
|
+
arglist, frame=frame, read_data_option=read_data_option,
|
|
1086
|
+
initial_plot_type=initial_plot_type)
|
|
1087
|
+
|
|
1088
|
+
|
|
999
1089
|
@lock()
|
|
1000
1090
|
def load_plot3d(grid_filenames=None,
|
|
1001
1091
|
solution_filenames=None,
|
tecplot/data/operate.py
CHANGED
|
@@ -151,7 +151,8 @@ def execute_equation(equation, zones=None, i_range=None, j_range=None,
|
|
|
151
151
|
|
|
152
152
|
arglist[sv.VALUELOCATION] = value_location
|
|
153
153
|
arglist[sv.VARDATATYPE] = variable_data_type
|
|
154
|
-
|
|
154
|
+
if ignore_divide_by_zero is not None:
|
|
155
|
+
arglist[sv.IGNOREDIVIDEBYZERO] = 1 if ignore_divide_by_zero else 0
|
|
155
156
|
|
|
156
157
|
if not _tecutil.DataAlterX(arglist):
|
|
157
158
|
raise TecplotSystemError()
|
tecplot/plot/__init__.py
CHANGED
|
@@ -11,7 +11,7 @@ from .blanking import IJKBlanking
|
|
|
11
11
|
from .contour import (ContourGroup, ContourColorCutoff, ContourColormapFilter,
|
|
12
12
|
ContourColormapOverride, ContourColormapZebraShade,
|
|
13
13
|
ContourLabels, ContourLevels, ContourLines)
|
|
14
|
-
from .effects import LightSource
|
|
14
|
+
from .effects import LightSource, LineIntegralConvolution, SurfaceFlowEffects
|
|
15
15
|
from .fieldmap import (FieldmapContour, FieldmapEdge, FieldmapEffects,
|
|
16
16
|
FieldmapEffects3D, Fieldmap, Cartesian2DFieldmap,
|
|
17
17
|
Cartesian2DFieldmapCollection, Cartesian3DFieldmap,
|
tecplot/plot/effects.py
CHANGED
|
@@ -1,7 +1,182 @@
|
|
|
1
1
|
from builtins import super
|
|
2
2
|
|
|
3
3
|
from ..tecutil import sv
|
|
4
|
+
from ..constant import *
|
|
4
5
|
from .. import session, tecutil, version
|
|
6
|
+
from ..exception import *
|
|
7
|
+
from ..tecutil import _require_surface_flow_effects_sdk
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class SurfaceFlowEffects(session.Style):
|
|
11
|
+
"""Shared surface-flow effect settings for field-plot surfaces.
|
|
12
|
+
|
|
13
|
+
.. versionadded:: 1.7, Tecplot 360 2026.1
|
|
14
|
+
Surface-flow effects require Tecplot 360 2026 R1 or later.
|
|
15
|
+
"""
|
|
16
|
+
|
|
17
|
+
def __init__(self, plot):
|
|
18
|
+
_require_surface_flow_effects_sdk()
|
|
19
|
+
self.plot = plot
|
|
20
|
+
super().__init__(sv.GLOBALSURFACEFLOWEFFECTS,
|
|
21
|
+
uniqueid=self.plot.frame.uid)
|
|
22
|
+
|
|
23
|
+
@property
|
|
24
|
+
def line_integral_convolution(self):
|
|
25
|
+
"""`LineIntegralConvolution`: Line integral convolution parameter settings.
|
|
26
|
+
|
|
27
|
+
Example usage::
|
|
28
|
+
|
|
29
|
+
>>> lic = plot.surface_flow_effects.line_integral_convolution
|
|
30
|
+
>>> lic.step_size = 0.9
|
|
31
|
+
"""
|
|
32
|
+
return LineIntegralConvolution(self)
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
class LineIntegralConvolution(session.Style):
|
|
36
|
+
"""Shared line integral convolution settings for field-plot surfaces.
|
|
37
|
+
|
|
38
|
+
.. versionadded:: 1.7, Tecplot 360 2026.1
|
|
39
|
+
Line integral convolution requires Tecplot 360 2026 R1 or later.
|
|
40
|
+
|
|
41
|
+
.. code-block:: python
|
|
42
|
+
:emphasize-lines: 18-24
|
|
43
|
+
|
|
44
|
+
import os
|
|
45
|
+
import tecplot
|
|
46
|
+
from tecplot.constant import *
|
|
47
|
+
|
|
48
|
+
examples_dir = tecplot.session.tecplot_examples_directory()
|
|
49
|
+
datafile = os.path.join(examples_dir, 'SimpleData', 'VortexShedding.plt')
|
|
50
|
+
dataset = tecplot.data.load_tecplot(datafile)
|
|
51
|
+
frame = dataset.frame
|
|
52
|
+
frame.plot_type = PlotType.Cartesian2D
|
|
53
|
+
|
|
54
|
+
plot = frame.plot()
|
|
55
|
+
|
|
56
|
+
plot.axes.x_axis.min = -0.004
|
|
57
|
+
plot.axes.x_axis.max = 0.004
|
|
58
|
+
plot.axes.y_axis.min = -0.004
|
|
59
|
+
plot.axes.y_axis.max = 0.004
|
|
60
|
+
|
|
61
|
+
plot.use_surface_flow_effect = True
|
|
62
|
+
|
|
63
|
+
fmap = plot.fieldmap(1)
|
|
64
|
+
fmap.effects.surface_flow_effect = SurfaceFlowEffect.LIC
|
|
65
|
+
|
|
66
|
+
lic = plot.surface_flow_effects.line_integral_convolution
|
|
67
|
+
lic.intensity = 0.95
|
|
68
|
+
|
|
69
|
+
tecplot.export.save_png('line_integral_convolution.png')
|
|
70
|
+
|
|
71
|
+
.. figure:: /_static/images/line_integral_convolution.png
|
|
72
|
+
:width: 300px
|
|
73
|
+
:figwidth: 300px
|
|
74
|
+
"""
|
|
75
|
+
|
|
76
|
+
def __init__(self, surface_flow_effects):
|
|
77
|
+
self.surface_flow_effects = surface_flow_effects
|
|
78
|
+
self.plot = surface_flow_effects.plot
|
|
79
|
+
super().__init__(surface_flow_effects._sv, sv.LINEINTEGRALCONVOLUTION,
|
|
80
|
+
**surface_flow_effects._kw)
|
|
81
|
+
|
|
82
|
+
@property
|
|
83
|
+
def step_size(self):
|
|
84
|
+
"""`float`: Convolution step size."""
|
|
85
|
+
return self._get_style(float, sv.STEPSIZE)
|
|
86
|
+
|
|
87
|
+
@step_size.setter
|
|
88
|
+
def step_size(self, value):
|
|
89
|
+
self._set_style(float(value), sv.STEPSIZE)
|
|
90
|
+
|
|
91
|
+
@property
|
|
92
|
+
def num_steps(self):
|
|
93
|
+
"""`int`: Number of convolution steps."""
|
|
94
|
+
return self._get_style(int, sv.NUMSTEPS)
|
|
95
|
+
|
|
96
|
+
@num_steps.setter
|
|
97
|
+
def num_steps(self, value):
|
|
98
|
+
self._set_style(int(value), sv.NUMSTEPS)
|
|
99
|
+
|
|
100
|
+
@property
|
|
101
|
+
def intensity(self):
|
|
102
|
+
"""`float`: Line integral convolution intensity."""
|
|
103
|
+
return self._get_style(float, sv.INTENSITY)
|
|
104
|
+
|
|
105
|
+
@intensity.setter
|
|
106
|
+
def intensity(self, value):
|
|
107
|
+
self._set_style(float(value), sv.INTENSITY)
|
|
108
|
+
|
|
109
|
+
@property
|
|
110
|
+
def smoothing(self):
|
|
111
|
+
"""`int`: Smoothing pass count."""
|
|
112
|
+
return self._get_style(int, sv.SMOOTHING)
|
|
113
|
+
|
|
114
|
+
@smoothing.setter
|
|
115
|
+
def smoothing(self, value):
|
|
116
|
+
self._set_style(int(value), sv.SMOOTHING)
|
|
117
|
+
|
|
118
|
+
@property
|
|
119
|
+
def contrast_boost(self):
|
|
120
|
+
"""`float`: Line integral convolution contrast boost amount."""
|
|
121
|
+
return self._get_style(float, sv.CONTRASTBOOST)
|
|
122
|
+
|
|
123
|
+
@contrast_boost.setter
|
|
124
|
+
def contrast_boost(self, value):
|
|
125
|
+
self._set_style(float(value), sv.CONTRASTBOOST)
|
|
126
|
+
|
|
127
|
+
@property
|
|
128
|
+
def shading(self):
|
|
129
|
+
"""`float`: Line integral convolution surface shading amount."""
|
|
130
|
+
return self._get_style(float, sv.SHADING)
|
|
131
|
+
|
|
132
|
+
@shading.setter
|
|
133
|
+
def shading(self, value):
|
|
134
|
+
self._set_style(float(value), sv.SHADING)
|
|
135
|
+
|
|
136
|
+
@property
|
|
137
|
+
def color_mode(self):
|
|
138
|
+
"""`LICColorMode`: Line integral convolution compositing mode."""
|
|
139
|
+
return self._get_style(LICColorMode, sv.COLORMODE)
|
|
140
|
+
|
|
141
|
+
@color_mode.setter
|
|
142
|
+
def color_mode(self, value):
|
|
143
|
+
self._set_style(LICColorMode(value), sv.COLORMODE)
|
|
144
|
+
|
|
145
|
+
@property
|
|
146
|
+
def mask_threshold(self):
|
|
147
|
+
"""`float`: Line integral convolution mask threshold."""
|
|
148
|
+
return self._get_style(float, sv.LICMASKTHRESHOLD)
|
|
149
|
+
|
|
150
|
+
@mask_threshold.setter
|
|
151
|
+
def mask_threshold(self, value):
|
|
152
|
+
self._set_style(float(value), sv.LICMASKTHRESHOLD)
|
|
153
|
+
|
|
154
|
+
@property
|
|
155
|
+
def mask_fade_size(self):
|
|
156
|
+
"""`float`: Line integral convolution mask fade size."""
|
|
157
|
+
return self._get_style(float, sv.LICMASKFADESIZE)
|
|
158
|
+
|
|
159
|
+
@mask_fade_size.setter
|
|
160
|
+
def mask_fade_size(self, value):
|
|
161
|
+
self._set_style(float(value), sv.LICMASKFADESIZE)
|
|
162
|
+
|
|
163
|
+
@property
|
|
164
|
+
def use_mask_threshold(self):
|
|
165
|
+
"""`bool`: Enable the Line integral convolution mask threshold."""
|
|
166
|
+
return self._get_style(bool, sv.USELICMASKTHRESHOLD)
|
|
167
|
+
|
|
168
|
+
@use_mask_threshold.setter
|
|
169
|
+
def use_mask_threshold(self, value):
|
|
170
|
+
self._set_style(bool(value), sv.USELICMASKTHRESHOLD)
|
|
171
|
+
|
|
172
|
+
@property
|
|
173
|
+
def overlay_color(self):
|
|
174
|
+
"""`Color`: Line integral convolution overlay color used when color mode is Overlay."""
|
|
175
|
+
return self._get_style(Color, sv.OVERLAYCOLOR)
|
|
176
|
+
|
|
177
|
+
@overlay_color.setter
|
|
178
|
+
def overlay_color(self, value):
|
|
179
|
+
self._set_style(Color(value), sv.OVERLAYCOLOR)
|
|
5
180
|
|
|
6
181
|
|
|
7
182
|
class LightSource(session.Style):
|
tecplot/plot/fieldmap.py
CHANGED
|
@@ -11,7 +11,8 @@ from textwrap import dedent
|
|
|
11
11
|
from ..tecutil import _tecutil
|
|
12
12
|
from ..constant import *
|
|
13
13
|
from ..exception import *
|
|
14
|
-
from ..tecutil import Index, IndexSet,
|
|
14
|
+
from ..tecutil import (Index, IndexSet, _require_surface_flow_effects_sdk,
|
|
15
|
+
color_spec, flatten_args, sv)
|
|
15
16
|
from .. import session, tecutil
|
|
16
17
|
from . import symbol
|
|
17
18
|
|
|
@@ -1587,10 +1588,10 @@ class Fieldmap(FieldmapCollection):
|
|
|
1587
1588
|
|
|
1588
1589
|
|
|
1589
1590
|
class FieldmapEffects(session.SubStyle):
|
|
1590
|
-
"""Clipping and
|
|
1591
|
+
"""Clipping, blanking, and surface-flow style control.
|
|
1591
1592
|
|
|
1592
|
-
This object controls value blanking
|
|
1593
|
-
this fieldmap.
|
|
1593
|
+
This object controls value blanking, clipping from plane slices, and
|
|
1594
|
+
the ``surface_flow_effect`` setting for this fieldmap.
|
|
1594
1595
|
"""
|
|
1595
1596
|
def __init__(self, fieldmap):
|
|
1596
1597
|
self.fieldmap = fieldmap
|
|
@@ -1610,6 +1611,21 @@ class FieldmapEffects(session.SubStyle):
|
|
|
1610
1611
|
def value_blanking(self, value):
|
|
1611
1612
|
self._set_style(bool(value), sv.USEVALUEBLANKING)
|
|
1612
1613
|
|
|
1614
|
+
@property
|
|
1615
|
+
def surface_flow_effect(self):
|
|
1616
|
+
"""`SurfaceFlowEffect`: Surface-flow effect for this fieldmap.
|
|
1617
|
+
|
|
1618
|
+
.. versionadded:: 1.7, Tecplot 360 2026.1
|
|
1619
|
+
Surface-flow effects require Tecplot 360 2026 R1 or later.
|
|
1620
|
+
"""
|
|
1621
|
+
_require_surface_flow_effects_sdk()
|
|
1622
|
+
return self._get_style(SurfaceFlowEffect, sv.SURFACEFLOWEFFECT)
|
|
1623
|
+
|
|
1624
|
+
@surface_flow_effect.setter
|
|
1625
|
+
def surface_flow_effect(self, value):
|
|
1626
|
+
_require_surface_flow_effects_sdk()
|
|
1627
|
+
self._set_style(SurfaceFlowEffect(value), sv.SURFACEFLOWEFFECT)
|
|
1628
|
+
|
|
1613
1629
|
@property
|
|
1614
1630
|
def clip_planes(self):
|
|
1615
1631
|
tecutil.api_moved('FieldmapEffects.clip_planes',
|
|
@@ -1626,7 +1642,7 @@ class FieldmapEffects(session.SubStyle):
|
|
|
1626
1642
|
|
|
1627
1643
|
|
|
1628
1644
|
class FieldmapEffects3D(FieldmapEffects):
|
|
1629
|
-
"""Lighting and
|
|
1645
|
+
"""Lighting, translucency and surface-flow style control.
|
|
1630
1646
|
|
|
1631
1647
|
.. code-block:: python
|
|
1632
1648
|
:emphasize-lines: 24-26
|
|
@@ -1958,7 +1974,7 @@ class Cartesian2DFieldmapCollection(FieldmapCollection):
|
|
|
1958
1974
|
|
|
1959
1975
|
@property
|
|
1960
1976
|
def effects(self):
|
|
1961
|
-
"""`FieldmapEffects`: Style control for clipping and
|
|
1977
|
+
"""`FieldmapEffects`: Style control for clipping, blanking, and surface-flow effects.
|
|
1962
1978
|
"""
|
|
1963
1979
|
return FieldmapEffects(self)
|
|
1964
1980
|
|
|
@@ -2091,7 +2107,7 @@ class Cartesian3DFieldmapCollection(FieldmapCollection):
|
|
|
2091
2107
|
|
|
2092
2108
|
@property
|
|
2093
2109
|
def effects(self):
|
|
2094
|
-
"""`FieldmapEffects3D`: Style control for blanking and lighting
|
|
2110
|
+
"""`FieldmapEffects3D`: Style control for surface-flow, blanking, and lighting.
|
|
2095
2111
|
"""
|
|
2096
2112
|
return FieldmapEffects3D(self)
|
|
2097
2113
|
|
tecplot/plot/isosurface.py
CHANGED
|
@@ -5,8 +5,8 @@ from collections.abc import Iterable
|
|
|
5
5
|
from ..tecutil import _tecutil
|
|
6
6
|
from ..constant import *
|
|
7
7
|
from ..exception import *
|
|
8
|
-
from .. import session, tecutil
|
|
9
|
-
from ..tecutil import Index,
|
|
8
|
+
from .. import session, tecutil
|
|
9
|
+
from ..tecutil import Index, _require_surface_flow_effects_sdk, color_spec, sv
|
|
10
10
|
|
|
11
11
|
|
|
12
12
|
class IsosurfaceGroupStyle(session.Style):
|
|
@@ -362,7 +362,7 @@ class IsosurfaceContour(IsosurfaceGroupStyle):
|
|
|
362
362
|
|
|
363
363
|
|
|
364
364
|
class IsosurfaceEffects(IsosurfaceGroupStyle):
|
|
365
|
-
"""Effects of the isosurface group.
|
|
365
|
+
"""Effects of the isosurface group, including surface-flow effects.
|
|
366
366
|
|
|
367
367
|
.. code-block:: python
|
|
368
368
|
:emphasize-lines: 21-23
|
|
@@ -451,6 +451,21 @@ class IsosurfaceEffects(IsosurfaceGroupStyle):
|
|
|
451
451
|
def lighting_effect(self, value):
|
|
452
452
|
self._set_style(LightingEffect(value), sv.LIGHTINGEFFECT)
|
|
453
453
|
|
|
454
|
+
@property
|
|
455
|
+
def surface_flow_effect(self):
|
|
456
|
+
"""`SurfaceFlowEffect`: Surface-flow mode for this isosurface group.
|
|
457
|
+
|
|
458
|
+
.. versionadded:: 1.7, Tecplot 360 2026.1
|
|
459
|
+
Surface-flow effects require Tecplot 360 2026 R1 or later.
|
|
460
|
+
"""
|
|
461
|
+
_require_surface_flow_effects_sdk()
|
|
462
|
+
return self._get_style(SurfaceFlowEffect, sv.SURFACEFLOWEFFECT)
|
|
463
|
+
|
|
464
|
+
@surface_flow_effect.setter
|
|
465
|
+
def surface_flow_effect(self, value):
|
|
466
|
+
_require_surface_flow_effects_sdk()
|
|
467
|
+
self._set_style(SurfaceFlowEffect(value), sv.SURFACEFLOWEFFECT)
|
|
468
|
+
|
|
454
469
|
@property
|
|
455
470
|
def surface_translucency(self):
|
|
456
471
|
"""`int`: Surface translucency of the isosurface group.
|
|
@@ -733,6 +748,8 @@ class IsosurfaceGroup(session.Style):
|
|
|
733
748
|
def effects(self):
|
|
734
749
|
"""`IsosurfaceEffects`: Settings for isosurface effects.
|
|
735
750
|
|
|
751
|
+
This includes ``surface_flow_effect``, translucency, and lighting.
|
|
752
|
+
|
|
736
753
|
Example usage::
|
|
737
754
|
|
|
738
755
|
>>> plot.isosurface(0).show = True
|
tecplot/plot/plot.py
CHANGED
|
@@ -341,6 +341,39 @@ class FieldPlot(Plot):
|
|
|
341
341
|
session.set_style(bool(show), sv.STREAMTRACELAYERS, sv.SHOW,
|
|
342
342
|
uniqueid=self.frame.uid)
|
|
343
343
|
|
|
344
|
+
@property
|
|
345
|
+
def use_surface_flow_effect(self):
|
|
346
|
+
"""`bool`: Enable field-layer surface-flow rendering for this frame.
|
|
347
|
+
|
|
348
|
+
Example usage::
|
|
349
|
+
|
|
350
|
+
>>> plot.use_surface_flow_effect = True
|
|
351
|
+
|
|
352
|
+
.. versionadded:: 1.7, Tecplot 360 2026.1
|
|
353
|
+
Surface-flow effects require Tecplot 360 2026 R1 or later.
|
|
354
|
+
"""
|
|
355
|
+
tecutil._require_surface_flow_effects_sdk()
|
|
356
|
+
return self._get_style(bool, sv.USESURFACEFLOWEFFECT)
|
|
357
|
+
|
|
358
|
+
@use_surface_flow_effect.setter
|
|
359
|
+
def use_surface_flow_effect(self, value):
|
|
360
|
+
tecutil._require_surface_flow_effects_sdk()
|
|
361
|
+
self._set_style(bool(value), sv.USESURFACEFLOWEFFECT)
|
|
362
|
+
|
|
363
|
+
@property
|
|
364
|
+
def surface_flow_effects(self):
|
|
365
|
+
"""`SurfaceFlowEffects`: Shared surface-flow effect settings.
|
|
366
|
+
|
|
367
|
+
Example usage::
|
|
368
|
+
|
|
369
|
+
>>> lic = plot.surface_flow_effects.line_integral_convolution
|
|
370
|
+
>>> lic.step_size = 0.9
|
|
371
|
+
|
|
372
|
+
.. versionadded:: 1.7, Tecplot 360 2026.1
|
|
373
|
+
Surface-flow effects require Tecplot 360 2026 R1 or later.
|
|
374
|
+
"""
|
|
375
|
+
return effects.SurfaceFlowEffects(self)
|
|
376
|
+
|
|
344
377
|
@property
|
|
345
378
|
def show_vector(self):
|
|
346
379
|
"""`bool`: Enable drawing of vectors.
|