pytecplot 1.7.2__py3-none-any.whl → 1.7.4__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.2.dist-info → pytecplot-1.7.4.dist-info}/METADATA +22 -1
- {pytecplot-1.7.2.dist-info → pytecplot-1.7.4.dist-info}/RECORD +23 -23
- {pytecplot-1.7.2.dist-info → pytecplot-1.7.4.dist-info}/WHEEL +1 -1
- tecplot/constant.py +10 -8
- tecplot/data/dataset.py +24 -34
- tecplot/data/load.py +8 -9
- tecplot/data/save.py +26 -29
- tecplot/layout/frame.py +3 -0
- tecplot/plot/effects.py +17 -9
- tecplot/plot/fieldmap.py +18 -9
- tecplot/plot/isosurface.py +20 -10
- tecplot/plot/scatter.py +1 -1
- tecplot/plot/slice.py +22 -11
- tecplot/plot/streamtrace.py +22 -11
- tecplot/tecutil/constant.py +18 -4
- tecplot/tecutil/sv.py +13 -1
- tecplot/tecutil/tecutil.py +78 -1
- tecplot/tecutil/tecutil_client.py +1 -1
- tecplot/tecutil/tecutil_rpc.py +35 -0
- tecplot/tecutil/util.py +10 -10
- tecplot/version.py +2 -2
- {pytecplot-1.7.2.dist-info → pytecplot-1.7.4.dist-info}/licenses/LICENSE.html +0 -0
- {pytecplot-1.7.2.dist-info → pytecplot-1.7.4.dist-info}/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pytecplot
|
|
3
|
-
Version: 1.7.
|
|
3
|
+
Version: 1.7.4
|
|
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
|
|
@@ -107,6 +107,27 @@ For more information, see |Tecplot 360s release notes|.
|
|
|
107
107
|
|
|
108
108
|
.. |Tecplot 360s release notes| replace:: `Tecplot 360's release notes <https://tecplot.com/products/tecplot-360/new-in-tecplot-360>`__
|
|
109
109
|
|
|
110
|
+
PyTecplot 1.7.4
|
|
111
|
+
^^^^^^^^^^^^^^^
|
|
112
|
+
|
|
113
|
+
* Fixed a bug where loading data files failed with the error:
|
|
114
|
+
`TypeError: Field tecrpc.Argument.int64: Expected an int, got a boolean.`
|
|
115
|
+
which was due to changes in the underlying RPC message system.
|
|
116
|
+
* Added `include_custom_labels` parameter to `save_tecplot_plt()` and
|
|
117
|
+
`save_tecplot_ascii()` to allow for writing out data files without custom labels.
|
|
118
|
+
|
|
119
|
+
PyTecplot 1.7.3
|
|
120
|
+
^^^^^^^^^^^^^^^
|
|
121
|
+
|
|
122
|
+
* Updated enums to reflect new changes in Tecplot 360 2025 R2:
|
|
123
|
+
* `tecplot.constant.LightingEffect.Gouraud` has been deprecated. Scripts should now
|
|
124
|
+
use `LightingEffect.Smooth` or `LightingEffect.SmoothWithCreases`.
|
|
125
|
+
* `tecplot.constant.SphereScatterRenderQuality.Fast` is now default and should be
|
|
126
|
+
favored over all other options.
|
|
127
|
+
* Deprecated `LightSource.force_gouraud_for_contour_flood`. Use the `LightingEffect`
|
|
128
|
+
enum to set the lighting effects directly on the individual fieldmaps, slices,
|
|
129
|
+
isosurfaces, or streamtraces as desired.
|
|
130
|
+
|
|
110
131
|
PyTecplot 1.7.2
|
|
111
132
|
^^^^^^^^^^^^^^^
|
|
112
133
|
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
pytecplot-1.7.
|
|
1
|
+
pytecplot-1.7.4.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=DJ641ugRqAQNd8uQITFbhbyEK3JwR9QhfG_CteUn5s4,8686
|
|
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=m28NzZOI2Idf7k94m2r0_AtcJ-BqtkqGyc1LpvMdhvU,1544
|
|
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
|
|
@@ -15,16 +15,16 @@ tecplot/annotation/text.py,sha256=JFaaOJR1h6LyLt9vUVanQmakXtGZOguVdA-3oT8tWhQ,26
|
|
|
15
15
|
tecplot/data/__init__.py,sha256=apkztrNGBSS5cfyYSIYkrwU1eeRiO0GP4sHvryPJfVA,1937
|
|
16
16
|
tecplot/data/array.py,sha256=wcGIaoVbSjSdwQP3DpXAOECHAmjTBurbmZvTodF5h1E,24246
|
|
17
17
|
tecplot/data/create.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
|
18
|
-
tecplot/data/dataset.py,sha256=
|
|
18
|
+
tecplot/data/dataset.py,sha256=MvM1vVf5NlHaDc3rI6mQV_mjNxOaGVuBsGGRtLXSG3I,81909
|
|
19
19
|
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=mTZ-c3k-adQKYxm2tMRnzuQNwFLTOHCYYhKGwe4kd3o,109473
|
|
24
24
|
tecplot/data/nodemap.py,sha256=AhSGO_Bmw3OB01UYKmjldTOci5rlUMGK_eiDrDHWrxk,36209
|
|
25
25
|
tecplot/data/operate.py,sha256=oFBOzLPYnA8hUCaeiTdpPXdFlLZNLoQCb-EHcPE5iDA,42593
|
|
26
26
|
tecplot/data/query.py,sha256=Ocr9h1I2bFuJFLVOFEqiCUnuxTzD4wnToNzYk996GhY,14807
|
|
27
|
-
tecplot/data/save.py,sha256=
|
|
27
|
+
tecplot/data/save.py,sha256=iTmR7DJL3iUDgHOikFRPkMRejmZrNaeX7BHpZqhI4aY,16991
|
|
28
28
|
tecplot/data/variable.py,sha256=xJCOO5ZeXCAFWKJYnC_mMxWKoy-oe3pE0EnHytZOwro,9437
|
|
29
29
|
tecplot/data/zone.py,sha256=LxtlinZ2ejq9UnOvapQ2wZfkMdjjRTR6wCi-lzXVa6M,35207
|
|
30
30
|
tecplot/export/__init__.py,sha256=eX3hx-FX9zEE-D3Nnfm_5rEG-jq6XufUDZmmRaLnKFw,781
|
|
@@ -36,7 +36,7 @@ tecplot/export/time_animation.py,sha256=lpy7mq4zQG0Wj5Q3pezHSqGbdaiX2fTOdqf3-s9t
|
|
|
36
36
|
tecplot/extension/__init__.py,sha256=3bDQNm1kqkiWsU7MkbturRl7YuRGSv4fjvGIN_XW5no,425
|
|
37
37
|
tecplot/extension/ipython.py,sha256=glcANfhj8pG5Pv_kF4NSfuyQXwgBKowQ1-nJbJGepgc,2229
|
|
38
38
|
tecplot/layout/__init__.py,sha256=HvlOnhPIsFHSRDACEPN3rlOUmk9tpLNPttReGq3P3_8,1218
|
|
39
|
-
tecplot/layout/frame.py,sha256=
|
|
39
|
+
tecplot/layout/frame.py,sha256=m6Z1JQ96k4CloN_qmvPJwOIfhPrIwnJ_1NzQK8kTv-4,51917
|
|
40
40
|
tecplot/layout/layout.py,sha256=vcrqWgOkcEW90VCbLG2-7xSWajPhP3cRsLnRIrcuO4c,16025
|
|
41
41
|
tecplot/layout/page.py,sha256=MqX3jJAd3o2xkfaSGXU7TD4gnXv-9CQcDj5WJnlIisU,18264
|
|
42
42
|
tecplot/legend/__init__.py,sha256=zj94bHuUKvgWxn5dddEuahKCXVDMOFonQNgKxtuNSTQ,185
|
|
@@ -50,19 +50,19 @@ 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=wsj0EhnXEQePq7SRxLogcUClDWNVFaFyUSf20yuKTF4,5691
|
|
54
|
+
tecplot/plot/fieldmap.py,sha256=o5XjjUDcUK55dieSSWYv7NzzMN0kXArFV2UuP86AFzE,76312
|
|
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=1QUCakVNMD2diThLnRJW7xsFfsy-RMLYmncGdv-P4Co,41154
|
|
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
61
|
tecplot/plot/plot.py,sha256=WB2S4cHc0JB2wQrZSoEISpjvuXuQRZ_QXLuFaBNJuhk,60658
|
|
62
62
|
tecplot/plot/rgb_coloring.py,sha256=OfcIvhQ9Tm5TQylOUttX7QcNu3CHtETBpIz7gqa9GwY,9417
|
|
63
|
-
tecplot/plot/scatter.py,sha256=
|
|
64
|
-
tecplot/plot/slice.py,sha256=
|
|
65
|
-
tecplot/plot/streamtrace.py,sha256=
|
|
63
|
+
tecplot/plot/scatter.py,sha256=_Z7Kte2XSruGcDxEDETD3-4-ynYPvc85_W5jNSzG9lE,12610
|
|
64
|
+
tecplot/plot/slice.py,sha256=C2yUnta-ls0oN_7vM_qaXbZczFS4jWNsSypZX6CV3wk,53179
|
|
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
|
|
68
68
|
tecplot/plot/title.py,sha256=Eg4T5i_Z_thuISW8CJi0gh_tGwfQ84zD6J0VZcaUnP8,11162
|
|
@@ -77,23 +77,23 @@ tecplot/session/style.py,sha256=djEwXG3H8_izU1Zsk5b7FlJo-WsxgLzb3N78YHCC7Us,1761
|
|
|
77
77
|
tecplot/tecutil/__init__.py,sha256=tvHnjGACyMsVN7WbYrtp8Lo9qRBQymYZlQ5BuyiBMQg,748
|
|
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=XeUIJRNVhQ6yQHPkpztnkAJQu-GytGG90FMXjZepKgk,19402
|
|
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=
|
|
88
|
-
tecplot/tecutil/tecutil_client.py,sha256=
|
|
86
|
+
tecplot/tecutil/sv.py,sha256=v6vBV_dCtZ6E-J3K4l27NCLF-eAlQddCqY3dgJ16ztE,54618
|
|
87
|
+
tecplot/tecutil/tecutil.py,sha256=RkVV3MLDd38sXHO9wqNkk-LPIW_qG8vZFST8455rKnM,696363
|
|
88
|
+
tecplot/tecutil/tecutil_client.py,sha256=2ELrTJG2hlPoOMp6ud0bb6ciTSQTEhFpkA50QrMVB6c,23754
|
|
89
89
|
tecplot/tecutil/tecutil_connector.py,sha256=HW05xfxIbSrnnpXic3DNUkXmMmo0e9Z-HhT3EoC_Mzg,37059
|
|
90
|
-
tecplot/tecutil/tecutil_rpc.py,sha256=
|
|
91
|
-
tecplot/tecutil/util.py,sha256=
|
|
90
|
+
tecplot/tecutil/tecutil_rpc.py,sha256=ypGDA5ktXNClT9trdK1ElGnhrsO-oTABncT2CdQkRDU,287428
|
|
91
|
+
tecplot/tecutil/util.py,sha256=JgNpjE3J7Uz_QHqPrOxmHCwNnIojkZVfdKftVw_WUdo,12055
|
|
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.7.
|
|
97
|
-
pytecplot-1.7.
|
|
98
|
-
pytecplot-1.7.
|
|
99
|
-
pytecplot-1.7.
|
|
96
|
+
pytecplot-1.7.4.dist-info/METADATA,sha256=kq8Y9ArAbkVPkrLVzXQyG9x7FLZXkqeBSrp6jOop6ks,23443
|
|
97
|
+
pytecplot-1.7.4.dist-info/WHEEL,sha256=YCfwYGOYMi5Jhw2fU4yNgwErybb2IX5PEwBKV4ZbdBo,91
|
|
98
|
+
pytecplot-1.7.4.dist-info/top_level.txt,sha256=gU7HYnAb3AVBIKRUOASdYO0QRI6hg1raLt8aN5E4o7s,8
|
|
99
|
+
pytecplot-1.7.4.dist-info/RECORD,,
|
tecplot/constant.py
CHANGED
|
@@ -193,6 +193,16 @@ class AuxDataObjectType(_Enum):
|
|
|
193
193
|
Zone = 6
|
|
194
194
|
|
|
195
195
|
|
|
196
|
+
_LightingEffect = LightingEffect
|
|
197
|
+
|
|
198
|
+
|
|
199
|
+
class LightingEffect(_Enum):
|
|
200
|
+
Paneled = _LightingEffect.Paneled.value
|
|
201
|
+
SmoothWithCreases = _LightingEffect.SmoothWithCreases.value
|
|
202
|
+
Smooth = _LightingEffect.Smooth.value
|
|
203
|
+
Gouraud = SmoothWithCreases
|
|
204
|
+
|
|
205
|
+
|
|
196
206
|
class SymbolType(_Enum):
|
|
197
207
|
Text = 0
|
|
198
208
|
Geometry = 1
|
|
@@ -231,7 +241,6 @@ assert len(StepMode) == len(SkipMode), 'tecplot/constant.py requires update'
|
|
|
231
241
|
|
|
232
242
|
_FunctionDependency = FunctionDependency
|
|
233
243
|
|
|
234
|
-
|
|
235
244
|
class FunctionDependency(_Enum):
|
|
236
245
|
XIndependent = _FunctionDependency.XIndependent.value
|
|
237
246
|
YIndependent = _FunctionDependency.YIndependent.value
|
|
@@ -293,13 +302,6 @@ class SliceSurface(_Enum):
|
|
|
293
302
|
Arbitrary = 7
|
|
294
303
|
|
|
295
304
|
|
|
296
|
-
class SphereScatterRenderQuality(_Enum):
|
|
297
|
-
Low = 0
|
|
298
|
-
Medium = 1
|
|
299
|
-
High = 2
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
305
|
class TecUtilServerProcessingMode(_Enum):
|
|
304
306
|
Unspecified = 0
|
|
305
307
|
Single = 1
|
tecplot/data/dataset.py
CHANGED
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
import collections
|
|
2
2
|
import ctypes
|
|
3
3
|
import fnmatch
|
|
4
|
-
|
|
4
|
+
|
|
5
5
|
import logging
|
|
6
6
|
import re
|
|
7
7
|
import warnings
|
|
8
8
|
|
|
9
9
|
from collections.abc import Iterable
|
|
10
|
-
from functools import reduce
|
|
11
10
|
from keyword import iskeyword
|
|
12
|
-
from textwrap import dedent
|
|
11
|
+
from textwrap import dedent
|
|
13
12
|
|
|
14
13
|
from ..tecutil import _tecutil, _tecutil_connector
|
|
15
14
|
from ..constant import *
|
|
@@ -386,8 +385,7 @@ class Dataset(object):
|
|
|
386
385
|
ZoneType.FEPolygon: PolyFEZone,
|
|
387
386
|
ZoneType.FEPolyhedron: PolyFEZone,
|
|
388
387
|
ZoneType.FEMixed: MixedFEZone}
|
|
389
|
-
|
|
390
|
-
if isinstance(pattern, (str, pattern_type)):
|
|
388
|
+
if isinstance(pattern, (str, re.Pattern)):
|
|
391
389
|
try:
|
|
392
390
|
return next(self.zones(pattern))
|
|
393
391
|
except StopIteration:
|
|
@@ -412,7 +410,7 @@ class Dataset(object):
|
|
|
412
410
|
def _zone_indices(self):
|
|
413
411
|
"""Zero-based indices of all enabled zones in the dataset."""
|
|
414
412
|
success, ptr = _tecutil.ZoneGetEnabledByDataSetID(self.uid)
|
|
415
|
-
if not success:
|
|
413
|
+
if not success or not ptr:
|
|
416
414
|
raise TecplotSystemError()
|
|
417
415
|
indices = ctypes.cast(ptr, IndexSet)
|
|
418
416
|
try:
|
|
@@ -436,7 +434,7 @@ class Dataset(object):
|
|
|
436
434
|
try:
|
|
437
435
|
return [_tecutil.ZoneGetUniqueIDByDataSetID(self.uid, zone_index + 1)
|
|
438
436
|
for zone_index in self._zone_indices]
|
|
439
|
-
except:
|
|
437
|
+
except Exception as _:
|
|
440
438
|
raise err
|
|
441
439
|
|
|
442
440
|
@property
|
|
@@ -455,12 +453,12 @@ class Dataset(object):
|
|
|
455
453
|
try:
|
|
456
454
|
return [_tecutil.ZoneGetTypeByDataSetID(self.uid, zone_index + 1)
|
|
457
455
|
for zone_index in self._zone_indices]
|
|
458
|
-
except:
|
|
456
|
+
except Exception as _:
|
|
459
457
|
try:
|
|
460
458
|
with self.frame.activated():
|
|
461
459
|
return [_tecutil.ZoneGetType(zone_index + 1)
|
|
462
460
|
for zone_index in self._zone_indices]
|
|
463
|
-
except:
|
|
461
|
+
except Exception as _:
|
|
464
462
|
raise err
|
|
465
463
|
|
|
466
464
|
@property
|
|
@@ -484,7 +482,7 @@ class Dataset(object):
|
|
|
484
482
|
"""
|
|
485
483
|
try:
|
|
486
484
|
success, ptr = _tecutil.ZoneGetNamesByDataSetID(self.uid)
|
|
487
|
-
if not success:
|
|
485
|
+
if not success or not ptr:
|
|
488
486
|
raise TecplotSystemError()
|
|
489
487
|
names = ctypes.cast(ptr, StringList)
|
|
490
488
|
try:
|
|
@@ -494,17 +492,17 @@ class Dataset(object):
|
|
|
494
492
|
except (AttributeError, TecplotSystemError) as err:
|
|
495
493
|
try:
|
|
496
494
|
success, ptr = _tecutil.ZoneGetEnabledNamesByDataSetID(self.uid)
|
|
497
|
-
if not success:
|
|
495
|
+
if not success or not ptr:
|
|
498
496
|
raise TecplotSystemError()
|
|
499
497
|
names = ctypes.cast(ptr, StringList)
|
|
500
498
|
try:
|
|
501
499
|
return list(names)
|
|
502
500
|
finally:
|
|
503
501
|
names.dealloc()
|
|
504
|
-
except:
|
|
502
|
+
except Exception as _:
|
|
505
503
|
try:
|
|
506
504
|
return [z.name for z in self.zones()]
|
|
507
|
-
except:
|
|
505
|
+
except Exception as _:
|
|
508
506
|
raise err
|
|
509
507
|
|
|
510
508
|
def zones(self, pattern=None):
|
|
@@ -563,18 +561,15 @@ class Dataset(object):
|
|
|
563
561
|
ZoneType.FEMixed: MixedFEZone}
|
|
564
562
|
|
|
565
563
|
if pattern:
|
|
566
|
-
|
|
567
|
-
if not isinstance(pattern, pattern_type):
|
|
564
|
+
if not isinstance(pattern, re.Pattern):
|
|
568
565
|
regex = re.compile(fnmatch.translate(pattern), re.IGNORECASE)
|
|
569
566
|
else:
|
|
570
567
|
regex = pattern
|
|
571
568
|
|
|
572
|
-
|
|
573
|
-
found = False
|
|
569
|
+
found = False
|
|
574
570
|
for uid, typ, name in zip(self._zone_uids, self._zone_types, self.zone_names):
|
|
575
571
|
if regex.match(name):
|
|
576
|
-
|
|
577
|
-
found = True
|
|
572
|
+
found = True
|
|
578
573
|
yield _dispatch[typ](uid, self)
|
|
579
574
|
|
|
580
575
|
if __debug__:
|
|
@@ -647,8 +642,7 @@ class Dataset(object):
|
|
|
647
642
|
"""
|
|
648
643
|
if isinstance(pattern, Variable):
|
|
649
644
|
return pattern
|
|
650
|
-
|
|
651
|
-
if isinstance(pattern, (str, pattern_type)):
|
|
645
|
+
if isinstance(pattern, (str, re.Pattern)):
|
|
652
646
|
try:
|
|
653
647
|
return next(self.variables(pattern))
|
|
654
648
|
except StopIteration:
|
|
@@ -669,7 +663,7 @@ class Dataset(object):
|
|
|
669
663
|
def _variable_indices(self):
|
|
670
664
|
"""Yields zero-based indices for all enabled variables in the dataset."""
|
|
671
665
|
success, ptr = _tecutil.VarGetEnabledByDataSetID(self.uid)
|
|
672
|
-
if not success:
|
|
666
|
+
if not success or not ptr:
|
|
673
667
|
raise TecplotSystemError()
|
|
674
668
|
indices = ctypes.cast(ptr, IndexSet)
|
|
675
669
|
try:
|
|
@@ -694,7 +688,7 @@ class Dataset(object):
|
|
|
694
688
|
try:
|
|
695
689
|
return [_tecutil.VarGetUniqueIDByDataSetID(self.uid, variable_index + 1)
|
|
696
690
|
for variable_index in self._variable_indices]
|
|
697
|
-
except:
|
|
691
|
+
except Exception as _:
|
|
698
692
|
raise err
|
|
699
693
|
|
|
700
694
|
@property
|
|
@@ -718,7 +712,7 @@ class Dataset(object):
|
|
|
718
712
|
"""
|
|
719
713
|
try:
|
|
720
714
|
success, ptr = _tecutil.VarGetNamesByDataSetID(self.uid)
|
|
721
|
-
if not success:
|
|
715
|
+
if not success or not ptr:
|
|
722
716
|
raise TecplotSystemError()
|
|
723
717
|
names = ctypes.cast(ptr, StringList)
|
|
724
718
|
try:
|
|
@@ -735,10 +729,10 @@ class Dataset(object):
|
|
|
735
729
|
return list(names)
|
|
736
730
|
finally:
|
|
737
731
|
names.dealloc()
|
|
738
|
-
except:
|
|
732
|
+
except Exception as _:
|
|
739
733
|
try:
|
|
740
734
|
return [z.name for z in self.variables()]
|
|
741
|
-
except:
|
|
735
|
+
except Exception as _:
|
|
742
736
|
raise err
|
|
743
737
|
|
|
744
738
|
def variables(self, pattern=None):
|
|
@@ -773,18 +767,15 @@ class Dataset(object):
|
|
|
773
767
|
reference zones and variables **by name** instead of by index.
|
|
774
768
|
"""
|
|
775
769
|
if pattern:
|
|
776
|
-
|
|
777
|
-
if not isinstance(pattern, pattern_type):
|
|
770
|
+
if not isinstance(pattern, re.Pattern):
|
|
778
771
|
regex = re.compile(fnmatch.translate(pattern), re.IGNORECASE)
|
|
779
772
|
else:
|
|
780
773
|
regex = pattern
|
|
781
774
|
|
|
782
|
-
|
|
783
|
-
found = False
|
|
775
|
+
found = False
|
|
784
776
|
for uid, name in zip(self._variable_uids, self.variable_names):
|
|
785
777
|
if regex.match(name):
|
|
786
|
-
|
|
787
|
-
found = True
|
|
778
|
+
found = True
|
|
788
779
|
yield Variable(uid, self)
|
|
789
780
|
|
|
790
781
|
if __debug__:
|
|
@@ -1011,8 +1002,7 @@ class Dataset(object):
|
|
|
1011
1002
|
):
|
|
1012
1003
|
mirror_variables = [mirror_variables]
|
|
1013
1004
|
|
|
1014
|
-
mvars = (
|
|
1015
|
-
for v in mirror_variables)
|
|
1005
|
+
mvars = map(self.variable, mirror_variables)
|
|
1016
1006
|
mvars = ','.join([str(v.index + 1) for v in mvars])
|
|
1017
1007
|
|
|
1018
1008
|
if not zones:
|
tecplot/data/load.py
CHANGED
|
@@ -1,15 +1,13 @@
|
|
|
1
1
|
import getpass
|
|
2
2
|
import logging
|
|
3
|
-
import os
|
|
4
3
|
import pathlib
|
|
5
4
|
import platform
|
|
6
5
|
import textwrap
|
|
7
|
-
import warnings
|
|
8
6
|
|
|
9
7
|
from ..tecutil import _tecutil, _tecutil_connector
|
|
10
8
|
from ..constant import *
|
|
11
9
|
from ..exception import *
|
|
12
|
-
from .. import layout,
|
|
10
|
+
from .. import layout, tecutil
|
|
13
11
|
from ..tecutil import IndexSet, StringList, lock, sv
|
|
14
12
|
|
|
15
13
|
|
|
@@ -26,6 +24,7 @@ def _tecplot_loader_load_data(arglist,
|
|
|
26
24
|
assign_strand_ids=None,
|
|
27
25
|
add_zones_to_existing_strands=None):
|
|
28
26
|
frame = frame or layout.active_frame()
|
|
27
|
+
assert frame, 'Invalid Frame'
|
|
29
28
|
|
|
30
29
|
# If read_data_option is append and there is no data, we
|
|
31
30
|
# need to silently change it to "Replace in Active Frame"
|
|
@@ -1823,7 +1822,7 @@ def load_tecplot(filenames,
|
|
|
1823
1822
|
variables (`set` of `strings <str>` or `integers <int>`, optional):
|
|
1824
1823
|
Set of `Variables <Variable>` to load. If variable names are
|
|
1825
1824
|
specified as strings and appending then variables will be aligned
|
|
1826
|
-
with existing variables. If variable offsets are supplied then
|
|
1825
|
+
with existing variables. If variable offsets are supplied then
|
|
1827
1826
|
the variables at those offsets will be loaded and aligned based
|
|
1828
1827
|
on the value of the collapse parameter. Use `None` to load all
|
|
1829
1828
|
variables. (default: `None`)
|
|
@@ -1937,19 +1936,19 @@ def load_tecplot_szl(filenames,
|
|
|
1937
1936
|
szlserver_path=None):
|
|
1938
1937
|
|
|
1939
1938
|
#
|
|
1940
|
-
# Possible Future Enhancement.
|
|
1939
|
+
# Possible Future Enhancement.
|
|
1941
1940
|
# As it stands the szl loader is hardcoded to load variables by name when
|
|
1942
1941
|
# appending to an existing dataset. If we want the szl loader to behave
|
|
1943
1942
|
# similar to the internal tecplot loader then we need to add the ability
|
|
1944
|
-
# to specify a "variables" like paramter (but should not be named
|
|
1943
|
+
# to specify a "variables" like paramter (but should not be named
|
|
1945
1944
|
# "variables" because of conflicts with other V3 loaders that already use
|
|
1946
1945
|
# that for their primary load instructions.
|
|
1947
|
-
# This will apply ONLY to the VarNameList and VarPositionList for the
|
|
1946
|
+
# This will apply ONLY to the VarNameList and VarPositionList for the
|
|
1948
1947
|
# $!READDATASET command (i.e. only applied to appending for V3 Loaders)
|
|
1949
1948
|
#
|
|
1950
1949
|
# Proposed is to add:
|
|
1951
1950
|
#
|
|
1952
|
-
# appending_variables=None,
|
|
1951
|
+
# appending_variables=None,
|
|
1953
1952
|
#
|
|
1954
1953
|
# Documentation then will include:
|
|
1955
1954
|
#
|
|
@@ -1957,7 +1956,7 @@ def load_tecplot_szl(filenames,
|
|
|
1957
1956
|
# Set of `Variables <Variable>` to load. If variable names are
|
|
1958
1957
|
# specified as strings and **read_data_option** is set to
|
|
1959
1958
|
# `ReadDataOption.Append` then variables will be aligned with
|
|
1960
|
-
# existing variables. If variable offsets are supplied then
|
|
1959
|
+
# existing variables. If variable offsets are supplied then
|
|
1961
1960
|
# the variables at those offsets will be loaded.
|
|
1962
1961
|
# Use `None` to load all variables. (default: `None`)
|
|
1963
1962
|
|
tecplot/data/save.py
CHANGED
|
@@ -13,8 +13,9 @@ log = logging.getLogger(__name__)
|
|
|
13
13
|
@lock()
|
|
14
14
|
def _save_tecplot(binary, frame, dataset, filename, include_text, include_geom,
|
|
15
15
|
include_data, include_data_share_linkage,
|
|
16
|
-
include_autogen_face_neighbors,
|
|
17
|
-
associate_with_layout, zones, variables, precision,
|
|
16
|
+
include_autogen_face_neighbors, include_custom_labels,
|
|
17
|
+
use_point_format, associate_with_layout, zones, variables, precision,
|
|
18
|
+
version):
|
|
18
19
|
if dataset is None:
|
|
19
20
|
if frame is None:
|
|
20
21
|
frame = layout.active_frame()
|
|
@@ -47,6 +48,7 @@ def _save_tecplot(binary, frame, dataset, filename, include_text, include_geom,
|
|
|
47
48
|
arglist[sv.INCLUDEDATASHARELINKAGE] = include_data_share_linkage
|
|
48
49
|
arglist[sv.INCLUDEAUTOGENFACENEIGHBORS] = \
|
|
49
50
|
include_autogen_face_neighbors
|
|
51
|
+
arglist[sv.INCLUDECUSTOMLABELS] = include_custom_labels
|
|
50
52
|
arglist[sv.ASSOCIATELAYOUTWITHDATAFILE] = associate_with_layout
|
|
51
53
|
if version is not None:
|
|
52
54
|
arglist[sv.TECPLOTVERSIONTOWRITE] = BinaryFileVersion(version)
|
|
@@ -67,8 +69,8 @@ def save_tecplot_ascii(filename, frame=None, dataset=None, zones=None,
|
|
|
67
69
|
variables=None, include_text=None, precision=None,
|
|
68
70
|
include_geom=None, include_data=None,
|
|
69
71
|
include_data_share_linkage=None,
|
|
70
|
-
include_autogen_face_neighbors=None,
|
|
71
|
-
|
|
72
|
+
include_autogen_face_neighbors=None, use_point_format=None,
|
|
73
|
+
include_custom_labels=None):
|
|
72
74
|
"""Write Tecplot ASCII data file.
|
|
73
75
|
|
|
74
76
|
Parameters:
|
|
@@ -82,8 +84,7 @@ def save_tecplot_ascii(filename, frame=None, dataset=None, zones=None,
|
|
|
82
84
|
<tecplot.data.Dataset>` to write out. If this and *frame* are both `None`,
|
|
83
85
|
the `Dataset <tecplot.data.Dataset>` of the currently active `Frame
|
|
84
86
|
<layout.Frame>` is used. (default: `None`)
|
|
85
|
-
include_text (`bool`, optional): Write out all text
|
|
86
|
-
geometries and custom labels. (default: `True`)
|
|
87
|
+
include_text (`bool`, optional): Write out all text (default: `True`)
|
|
87
88
|
include_geom (`bool`, optional): Write out all geometries.
|
|
88
89
|
(default: `True`)
|
|
89
90
|
include_data (`bool`, optional): Write out the data. Set
|
|
@@ -97,6 +98,8 @@ def save_tecplot_ascii(filename, frame=None, dataset=None, zones=None,
|
|
|
97
98
|
include_autogen_face_neighbors (`bool`, optional): Save the
|
|
98
99
|
face neighbor connectivity. This may produce very large data
|
|
99
100
|
files. (default: `False`)
|
|
101
|
+
include_custom_labels (`bool`, optional): Write out any custom labels
|
|
102
|
+
in the dataset to the output data file. (default: `True`)
|
|
100
103
|
use_point_format (`bool`, optional): Write out point format,
|
|
101
104
|
otherwise use block format.
|
|
102
105
|
(default: `False`)
|
|
@@ -157,24 +160,20 @@ def save_tecplot_ascii(filename, frame=None, dataset=None, zones=None,
|
|
|
157
160
|
zones=[zone_to_save])
|
|
158
161
|
"""
|
|
159
162
|
return _save_tecplot(
|
|
160
|
-
binary=False, frame=frame, dataset=dataset,
|
|
161
|
-
|
|
162
|
-
include_geom=include_geom, include_data=include_data,
|
|
163
|
+
binary=False, frame=frame, dataset=dataset, filename=filename,
|
|
164
|
+
include_text=include_text, include_geom=include_geom, include_data=include_data,
|
|
163
165
|
include_data_share_linkage=include_data_share_linkage,
|
|
164
166
|
include_autogen_face_neighbors=include_autogen_face_neighbors,
|
|
165
|
-
use_point_format=use_point_format,
|
|
166
|
-
associate_with_layout=None,
|
|
167
|
-
|
|
168
|
-
zones=zones, variables=variables,
|
|
169
|
-
version=None)
|
|
167
|
+
include_custom_labels=include_custom_labels, use_point_format=use_point_format,
|
|
168
|
+
associate_with_layout=None, precision=precision, zones=zones,
|
|
169
|
+
variables=variables, version=None)
|
|
170
170
|
|
|
171
171
|
|
|
172
172
|
def save_tecplot_plt(filename, frame=None, dataset=None, zones=None,
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
associate_with_layout=None):
|
|
173
|
+
variables=None, version=None, include_text=None, include_geom=None,
|
|
174
|
+
include_data=None, include_data_share_linkage=None,
|
|
175
|
+
include_autogen_face_neighbors=None, associate_with_layout=None,
|
|
176
|
+
include_custom_labels=None):
|
|
178
177
|
"""Write Tecplot binary PLT data file.
|
|
179
178
|
|
|
180
179
|
Parameters:
|
|
@@ -194,8 +193,7 @@ def save_tecplot_plt(filename, frame=None, dataset=None, zones=None,
|
|
|
194
193
|
variables (`list` of `Variables <Variable>`, optional):
|
|
195
194
|
`Variables <Variable>` to write out. If `None`, all `Variables
|
|
196
195
|
<Variable>` will be saved.
|
|
197
|
-
include_text (`bool`, optional): Write out all text
|
|
198
|
-
geometries and custom labels. (default: `True`)
|
|
196
|
+
include_text (`bool`, optional): Write out all text. (default: `True`)
|
|
199
197
|
include_geom (`bool`, optional): Write out all geometries.
|
|
200
198
|
(default: `True`)
|
|
201
199
|
include_data (`bool`, optional): Write out the data. Set
|
|
@@ -209,6 +207,8 @@ def save_tecplot_plt(filename, frame=None, dataset=None, zones=None,
|
|
|
209
207
|
include_autogen_face_neighbors (`bool`, optional): Save the
|
|
210
208
|
face neighbor connectivity. This may produce very large data
|
|
211
209
|
files. (default: `False`)
|
|
210
|
+
include_custom_labels (`bool`, optional): Write out any custom labels
|
|
211
|
+
in the dataset to the output data file. (default: `True`)
|
|
212
212
|
associate_with_layout (`bool`, optional): Associate this
|
|
213
213
|
data file with the current layout. Set to `False` to write the
|
|
214
214
|
datafile without modifying Tecplot's current data file to layout
|
|
@@ -271,16 +271,13 @@ def save_tecplot_plt(filename, frame=None, dataset=None, zones=None,
|
|
|
271
271
|
zones=[zone_to_save])
|
|
272
272
|
"""
|
|
273
273
|
return _save_tecplot(
|
|
274
|
-
binary=True, frame=frame, dataset=dataset,
|
|
275
|
-
|
|
276
|
-
include_geom=include_geom, include_data=include_data,
|
|
274
|
+
binary=True, frame=frame, dataset=dataset, filename=filename,
|
|
275
|
+
include_text=include_text, include_geom=include_geom, include_data=include_data,
|
|
277
276
|
include_data_share_linkage=include_data_share_linkage,
|
|
278
277
|
include_autogen_face_neighbors=include_autogen_face_neighbors,
|
|
279
|
-
use_point_format=None,
|
|
280
|
-
associate_with_layout=associate_with_layout,
|
|
281
|
-
|
|
282
|
-
zones=zones, variables=variables,
|
|
283
|
-
version=version)
|
|
278
|
+
include_custom_labels=include_custom_labels, use_point_format=None,
|
|
279
|
+
associate_with_layout=associate_with_layout, precision=None, zones=zones,
|
|
280
|
+
variables=variables, version=version)
|
|
284
281
|
|
|
285
282
|
|
|
286
283
|
def save_tecplot_szl(filename, frame=None, dataset=None):
|
tecplot/layout/frame.py
CHANGED
|
@@ -68,6 +68,9 @@ class Frame(session.Style):
|
|
|
68
68
|
dataset: Dataset = None
|
|
69
69
|
"""The `Dataset <tecplot.data.Dataset>` belonging to this Frame."""
|
|
70
70
|
|
|
71
|
+
has_dataset = None
|
|
72
|
+
"""Property indicating the Frame has a `Dataset <tecplot.data.Dataset>`."""
|
|
73
|
+
|
|
71
74
|
def __init__(self, uid, page):
|
|
72
75
|
self.page = page
|
|
73
76
|
self.uid = uid
|
tecplot/plot/effects.py
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
from builtins import super
|
|
2
2
|
|
|
3
3
|
from ..tecutil import sv
|
|
4
|
-
from .. import session
|
|
4
|
+
from .. import session, tecutil, version
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
class LightSource(session.Style):
|
|
@@ -135,17 +135,25 @@ class LightSource(session.Style):
|
|
|
135
135
|
|
|
136
136
|
@property
|
|
137
137
|
def force_gouraud_for_contour_flood(self):
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
138
|
+
if version.sdk_version_info < (2025, 2):
|
|
139
|
+
return self._get_style(bool, sv.FORCEGOURAUDFOR3DCONTFLOOD)
|
|
140
|
+
else:
|
|
141
|
+
tecutil.api_changed('''\
|
|
142
|
+
LightSource.force_gouraud_for_contour_flood property has been removed.
|
|
143
|
+
Set the lighting_effect property to LightingEffect.SmoothWithCreases
|
|
144
|
+
on fieldmap.effects, isosurface.effects, slice.effects, or
|
|
145
|
+
streamtrace.effects as desired.''', '1.7.3', '2025 R2', warning=True)
|
|
145
146
|
|
|
146
147
|
@force_gouraud_for_contour_flood.setter
|
|
147
148
|
def force_gouraud_for_contour_flood(self, value):
|
|
148
|
-
|
|
149
|
+
if version.sdk_version_info < (2025, 2):
|
|
150
|
+
self._set_style(bool(value), sv.FORCEGOURAUDFOR3DCONTFLOOD)
|
|
151
|
+
else:
|
|
152
|
+
tecutil.api_changed('''\
|
|
153
|
+
LightSource.force_gouraud_for_contour_flood property has been removed.
|
|
154
|
+
Set the lighting_effect property to LightingEffect.SmoothWithCreases
|
|
155
|
+
on fieldmap.effects, isosurface.effects, slice.effects, or
|
|
156
|
+
streamtrace.effects as desired.''', '1.7.3', '2025 R2', warning=True)
|
|
149
157
|
|
|
150
158
|
@property
|
|
151
159
|
def force_paneled_for_cell_flood(self):
|
tecplot/plot/fieldmap.py
CHANGED
|
@@ -1681,15 +1681,24 @@ class FieldmapEffects3D(FieldmapEffects):
|
|
|
1681
1681
|
This shade is based on the orientation of the cell relative to your
|
|
1682
1682
|
3D light source.
|
|
1683
1683
|
|
|
1684
|
-
`
|
|
1685
|
-
|
|
1686
|
-
|
|
1687
|
-
|
|
1688
|
-
|
|
1689
|
-
|
|
1690
|
-
not
|
|
1691
|
-
|
|
1692
|
-
|
|
1684
|
+
`Smooth <LightingEffect.Smooth>`
|
|
1685
|
+
Unlike `Paneled <LightingEffect.Paneled>` shading that colors the cell
|
|
1686
|
+
surface considering a constant angle to the light relative to the cell's
|
|
1687
|
+
surface normal, `Smooth <LightingEffect.Smooth>` computes the average normal
|
|
1688
|
+
around each cell node and interpolates the lighting influence smoothly
|
|
1689
|
+
across the cell face. `SmoothWithCreases <LightingEffect.SmoothWithCreases>`
|
|
1690
|
+
shading is not continuous across zone boundaries unless face neighbors are
|
|
1691
|
+
specified in the data.
|
|
1692
|
+
|
|
1693
|
+
`SmoothWithCreases <LightingEffect.SmoothWithCreases>`
|
|
1694
|
+
This option is similar to `Smooth <LightingEffect.Smooth>` but considers the
|
|
1695
|
+
crease angle between neighboring, connected cell faces. When the crease
|
|
1696
|
+
angle exceeds the specified amount the edge is considered creased and the
|
|
1697
|
+
lighting interpolation across the cell uses the cell's surface normal for
|
|
1698
|
+
the shared nodes along that edge instead of the average surface normal at
|
|
1699
|
+
those nodes. If the surface has many edges that exceed the crease angle,
|
|
1700
|
+
such as a very chaotic iso-surface, a significantly larger amount of data is
|
|
1701
|
+
required to render the surface.
|
|
1693
1702
|
|
|
1694
1703
|
If ``IJK``-ordered data with `FieldmapSurfaces.surfaces_to_plot` is set
|
|
1695
1704
|
to `SurfacesToPlot.ExposedCellFaces`, faces exposed by blanking will
|
tecplot/plot/isosurface.py
CHANGED
|
@@ -414,20 +414,31 @@ class IsosurfaceEffects(IsosurfaceGroupStyle):
|
|
|
414
414
|
Isosurface lighting effects must be enabled by setting
|
|
415
415
|
`IsosurfaceShade.use_lighting_effect` to `True` when setting this value.
|
|
416
416
|
|
|
417
|
-
There are
|
|
417
|
+
There are three types of lighting effects: Paneled, SmoothWithCreases and
|
|
418
|
+
Smooth:
|
|
418
419
|
|
|
419
420
|
* `Paneled`: Within each cell, the color assigned to each area by
|
|
420
421
|
shading or contour flooding is tinted by a shade constant
|
|
421
422
|
across the cell. This shade is based on the orientation
|
|
422
423
|
of the cell relative to your 3D light source.
|
|
423
|
-
* `
|
|
424
|
-
Paneled shading
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
424
|
+
* `Smooth <LightingEffect.Smooth>`
|
|
425
|
+
Unlike `Paneled <LightingEffect.Paneled>` shading that colors the cell
|
|
426
|
+
surface considering a constant angle to the light relative to the cell's
|
|
427
|
+
surface normal, `Smooth <LightingEffect.Smooth>` computes the average
|
|
428
|
+
normal around each cell node and interpolates the lighting influence
|
|
429
|
+
smoothly across the cell face. `SmoothWithCreases
|
|
430
|
+
<LightingEffect.SmoothWithCreases>` shading is not continuous across
|
|
431
|
+
zone boundaries unless face neighbors are specified in the data.
|
|
432
|
+
* `SmoothWithCreases <LightingEffect.SmoothWithCreases>`
|
|
433
|
+
This option is similar to `Smooth <LightingEffect.Smooth>` but considers
|
|
434
|
+
the crease angle between neighboring, connected cell faces. When the
|
|
435
|
+
crease angle exceeds the specified amount the edge is considered creased
|
|
436
|
+
and the lighting interpolation across the cell uses the cell's surface
|
|
437
|
+
normal for the shared nodes along that edge instead of the average
|
|
438
|
+
surface normal at those nodes. If the surface has many edges that exceed
|
|
439
|
+
the crease angle, such as a very chaotic iso-surface, a significantly
|
|
440
|
+
larger amount of data is required to render the surface.
|
|
441
|
+
|
|
431
442
|
|
|
432
443
|
Example usage::
|
|
433
444
|
|
|
@@ -447,7 +458,6 @@ class IsosurfaceEffects(IsosurfaceGroupStyle):
|
|
|
447
458
|
Iso-surface surface translucency must be enabled by setting
|
|
448
459
|
`IsosurfaceEffects.use_translucency` = `True` when setting this value.
|
|
449
460
|
|
|
450
|
-
|
|
451
461
|
Valid translucency values range from one (opaque) to 99 (translucent).
|
|
452
462
|
|
|
453
463
|
Example usage::
|
tecplot/plot/scatter.py
CHANGED
|
@@ -346,7 +346,7 @@ class Scatter(session.Style):
|
|
|
346
346
|
>>> from tecplot.constant import *
|
|
347
347
|
>>> plot.fieldmap(0).scatter.symbol().shape = GeomShape.Sphere
|
|
348
348
|
>>> scatter = plot.scatter
|
|
349
|
-
>>> scatter.sphere_render_quality = SphereScatterRenderQuality.
|
|
349
|
+
>>> scatter.sphere_render_quality = SphereScatterRenderQuality.Fast
|
|
350
350
|
"""
|
|
351
351
|
return self._get_style(SphereScatterRenderQuality,
|
|
352
352
|
sv.SPHERESCATTERRENDERQUALITY)
|
tecplot/plot/slice.py
CHANGED
|
@@ -226,20 +226,30 @@ class SliceEffects(session.SubStyle):
|
|
|
226
226
|
`SliceContour.use_lighting_effect` or
|
|
227
227
|
`SliceShade.use_lighting_effect` to `True` when setting this value.
|
|
228
228
|
|
|
229
|
-
There are
|
|
229
|
+
There are three types of lighting effects: Paneled, SmoothWithCreases and
|
|
230
|
+
Smooth:
|
|
230
231
|
|
|
231
232
|
* `Paneled`: Within each cell, the color assigned to each area by
|
|
232
233
|
shading or contour flooding is tinted by a shade constant
|
|
233
234
|
across the cell. This shade is based on the orientation
|
|
234
235
|
of the cell relative to your 3D light source.
|
|
235
|
-
* `
|
|
236
|
-
Paneled shading
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
236
|
+
* `Smooth <LightingEffect.Smooth>`
|
|
237
|
+
Unlike `Paneled <LightingEffect.Paneled>` shading that colors the cell
|
|
238
|
+
surface considering a constant angle to the light relative to the cell's
|
|
239
|
+
surface normal, `Smooth <LightingEffect.Smooth>` computes the average
|
|
240
|
+
normal around each cell node and interpolates the lighting influence
|
|
241
|
+
smoothly across the cell face. `SmoothWithCreases
|
|
242
|
+
<LightingEffect.SmoothWithCreases>` shading is not continuous across
|
|
243
|
+
zone boundaries unless face neighbors are specified in the data.
|
|
244
|
+
* `SmoothWithCreases <LightingEffect.SmoothWithCreases>`
|
|
245
|
+
This option is similar to `Smooth <LightingEffect.Smooth>` but considers
|
|
246
|
+
the crease angle between neighboring, connected cell faces. When the
|
|
247
|
+
crease angle exceeds the specified amount the edge is considered creased
|
|
248
|
+
and the lighting interpolation across the cell uses the cell's surface
|
|
249
|
+
normal for the shared nodes along that edge instead of the average
|
|
250
|
+
surface normal at those nodes. If the surface has many edges that exceed
|
|
251
|
+
the crease angle, such as a very chaotic iso-surface, a significantly
|
|
252
|
+
larger amount of data is required to render the surface.
|
|
243
253
|
|
|
244
254
|
Example usage::
|
|
245
255
|
|
|
@@ -754,8 +764,9 @@ class SliceContour(session.SubStyle):
|
|
|
754
764
|
the same value for `SliceShade.use_lighting_effect`,
|
|
755
765
|
and vice-versa.
|
|
756
766
|
|
|
757
|
-
The lighting effect is set with `SliceEffects.lighting_effect`, and may
|
|
758
|
-
|
|
767
|
+
The lighting effect is set with `SliceEffects.lighting_effect`, and may be one
|
|
768
|
+
of `LightingEffect.SmoothWithCreases`, `LightingEffect.Smooth`, or
|
|
769
|
+
`LightingEffect.Paneled`.
|
|
759
770
|
|
|
760
771
|
Example usage::
|
|
761
772
|
|
tecplot/plot/streamtrace.py
CHANGED
|
@@ -571,8 +571,9 @@ class StreamtraceRodRibbonContour(StreamtraceStyle):
|
|
|
571
571
|
the same value for `StreamtraceRodRibbonShade.use_lighting_effect`,
|
|
572
572
|
and vice-versa.
|
|
573
573
|
|
|
574
|
-
The lighting effect is set with `StreamtraceRodRibbonEffects.lighting_effect`,
|
|
575
|
-
be one of `LightingEffect.
|
|
574
|
+
The lighting effect is set with `StreamtraceRodRibbonEffects.lighting_effect`,
|
|
575
|
+
and may be one of `LightingEffect.SmoothWithCreases`, `LightingEffect.Smooth`,
|
|
576
|
+
or `LightingEffect.Paneled`.
|
|
576
577
|
|
|
577
578
|
Example usage::
|
|
578
579
|
|
|
@@ -809,20 +810,30 @@ class StreamtraceRodRibbonEffects(StreamtraceStyle):
|
|
|
809
810
|
Note that setting `StreamtraceRodRibbonShade.use_lighting_effect` will also set
|
|
810
811
|
this value for `ribbon contours <StreamtraceRodRibbonContour>`.
|
|
811
812
|
|
|
812
|
-
There are
|
|
813
|
+
There are three types of lighting effects: Paneled, SmoothWithCreases and
|
|
814
|
+
Smooth:
|
|
813
815
|
|
|
814
816
|
* `Paneled`: Within each cell, the color assigned to each area by
|
|
815
817
|
shading or contour flooding is tinted by a shade constant
|
|
816
818
|
across the cell. This shade is based on the orientation
|
|
817
819
|
of the cell relative to your 3D light source.
|
|
818
|
-
* `
|
|
819
|
-
Paneled shading
|
|
820
|
-
|
|
821
|
-
|
|
822
|
-
|
|
823
|
-
|
|
824
|
-
|
|
825
|
-
|
|
820
|
+
* `Smooth <LightingEffect.Smooth>`
|
|
821
|
+
Unlike `Paneled <LightingEffect.Paneled>` shading that colors the cell
|
|
822
|
+
surface considering a constant angle to the light relative to the cell's
|
|
823
|
+
surface normal, `Smooth <LightingEffect.Smooth>` computes the average
|
|
824
|
+
normal around each cell node and interpolates the lighting influence
|
|
825
|
+
smoothly across the cell face. `SmoothWithCreases
|
|
826
|
+
<LightingEffect.SmoothWithCreases>` shading is not continuous across
|
|
827
|
+
zone boundaries unless face neighbors are specified in the data.
|
|
828
|
+
* `SmoothWithCreases <LightingEffect.SmoothWithCreases>`
|
|
829
|
+
This option is similar to `Smooth <LightingEffect.Smooth>` but considers
|
|
830
|
+
the crease angle between neighboring, connected cell faces. When the
|
|
831
|
+
crease angle exceeds the specified amount the edge is considered creased
|
|
832
|
+
and the lighting interpolation across the cell uses the cell's surface
|
|
833
|
+
normal for the shared nodes along that edge instead of the average
|
|
834
|
+
surface normal at those nodes. If the surface has many edges that exceed
|
|
835
|
+
the crease angle, such as a very chaotic iso-surface, a significantly
|
|
836
|
+
larger amount of data is required to render the surface.
|
|
826
837
|
|
|
827
838
|
Example usage::
|
|
828
839
|
|
tecplot/tecutil/constant.py
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#
|
|
2
|
-
# This file was auto-generated on
|
|
2
|
+
# This file was auto-generated on 2025-12-15 by tecgen.
|
|
3
3
|
# IMPORTANT: DO NOT edit this file!
|
|
4
4
|
#
|
|
5
5
|
from enum import Enum as _Enum
|
|
@@ -407,7 +407,6 @@ class ExportFormat(_Enum):
|
|
|
407
407
|
Custom = 15
|
|
408
408
|
JPEG = 16
|
|
409
409
|
Flash = 17
|
|
410
|
-
X3D = 18
|
|
411
410
|
TecplotViewer = 19
|
|
412
411
|
FLV = 20
|
|
413
412
|
MPEG4 = 21
|
|
@@ -441,6 +440,10 @@ class FECellShape(_Enum):
|
|
|
441
440
|
Pyramid = 5
|
|
442
441
|
Prism = 6
|
|
443
442
|
|
|
443
|
+
class FEDerivativeMethod(_Enum):
|
|
444
|
+
GreenGauss = 0
|
|
445
|
+
MovingLeastSquares = 1
|
|
446
|
+
|
|
444
447
|
class FaceNeighborMode(_Enum):
|
|
445
448
|
LocalOneToOne = 0
|
|
446
449
|
LocalOneToMany = 1
|
|
@@ -558,6 +561,7 @@ class GeomShape(_Enum):
|
|
|
558
561
|
Point = 10
|
|
559
562
|
PieChart = 11
|
|
560
563
|
LineArt = 12
|
|
564
|
+
Plus = 13
|
|
561
565
|
|
|
562
566
|
class GetValueReturnCode(_Enum):
|
|
563
567
|
Ok = 0
|
|
@@ -642,7 +646,8 @@ class LegendShow(_Enum):
|
|
|
642
646
|
|
|
643
647
|
class LightingEffect(_Enum):
|
|
644
648
|
Paneled = 0
|
|
645
|
-
|
|
649
|
+
SmoothWithCreases = 1
|
|
650
|
+
Smooth = 3
|
|
646
651
|
|
|
647
652
|
class LineCap(_Enum):
|
|
648
653
|
Flat = 0
|
|
@@ -789,7 +794,6 @@ class PrinterDriver(_Enum):
|
|
|
789
794
|
EPS = 4
|
|
790
795
|
WINDOWS = 5
|
|
791
796
|
WMF = 6
|
|
792
|
-
X3D = 7
|
|
793
797
|
|
|
794
798
|
class ProbeNearest(_Enum):
|
|
795
799
|
Position = 0
|
|
@@ -834,6 +838,10 @@ class RelOp(_Enum):
|
|
|
834
838
|
EqualTo = 4
|
|
835
839
|
NotEqualTo = 5
|
|
836
840
|
|
|
841
|
+
class RenderAPI(_Enum):
|
|
842
|
+
OpenGL = 0
|
|
843
|
+
Vulkan = 1
|
|
844
|
+
|
|
837
845
|
class Resulting1DZoneType(_Enum):
|
|
838
846
|
IOrderedIfPossible = 0
|
|
839
847
|
FELineSegment = 1
|
|
@@ -895,6 +903,12 @@ class SliceSource(_Enum):
|
|
|
895
903
|
SurfacesOfVolumeZones = 2
|
|
896
904
|
LinearZones = 3
|
|
897
905
|
|
|
906
|
+
class SphereScatterRenderQuality(_Enum):
|
|
907
|
+
Low = 0
|
|
908
|
+
Medium = 1
|
|
909
|
+
High = 2
|
|
910
|
+
Fast = 3
|
|
911
|
+
|
|
898
912
|
class StateChange(_Enum):
|
|
899
913
|
VarsAltered = 0
|
|
900
914
|
VarsAdded = 1
|
tecplot/tecutil/sv.py
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#
|
|
2
|
-
# This file was auto-generated on
|
|
2
|
+
# This file was auto-generated on 2025-12-15 by tecgen.
|
|
3
3
|
# IMPORTANT: DO NOT edit this file!
|
|
4
4
|
#
|
|
5
5
|
|
|
@@ -351,6 +351,7 @@ DEFINITIONCONTOURGROUP = 'DEFINITIONCONTOURGROUP'
|
|
|
351
351
|
DEFNUMLEVELS = 'DEFNUMLEVELS'
|
|
352
352
|
DELETEVARIABLESDIALOG = 'DELETEVARIABLESDIALOG'
|
|
353
353
|
DELETEZONESDIALOG = 'DELETEZONESDIALOG'
|
|
354
|
+
DELIVERNORMALSFORPANELSHADING = 'DELIVERNORMALSFORPANELSHADING'
|
|
354
355
|
DELTATIME = 'DELTATIME'
|
|
355
356
|
DEPENDENTVARS = 'DEPENDENTVARS'
|
|
356
357
|
DEPTH = 'DEPTH'
|
|
@@ -410,6 +411,7 @@ ENABLEDELAYS = 'ENABLEDELAYS'
|
|
|
410
411
|
ENABLEERRORS = 'ENABLEERRORS'
|
|
411
412
|
ENABLEINTERRUPTS = 'ENABLEINTERRUPTS'
|
|
412
413
|
ENABLEPAUSES = 'ENABLEPAUSES'
|
|
414
|
+
ENABLERENDERSTATSOVERLAY = 'ENABLERENDERSTATSOVERLAY'
|
|
413
415
|
ENABLEWARNINGS = 'ENABLEWARNINGS'
|
|
414
416
|
END = 'END'
|
|
415
417
|
ENDLEVEL = 'ENDLEVEL'
|
|
@@ -463,6 +465,7 @@ FACENODECOUNTS = 'FACENODECOUNTS'
|
|
|
463
465
|
FACENODES = 'FACENODES'
|
|
464
466
|
FACERIGHTELEMS = 'FACERIGHTELEMS'
|
|
465
467
|
FASTLINEPATTERNSONSCREEN = 'FASTLINEPATTERNSONSCREEN'
|
|
468
|
+
FEDERIVATIVEMETHOD = 'FEDERIVATIVEMETHOD'
|
|
466
469
|
FFMPEGQSCALE = 'FFMPEGQSCALE'
|
|
467
470
|
FIELD = 'FIELD'
|
|
468
471
|
FIELDLAYERCONTROL = 'FIELDLAYERCONTROL'
|
|
@@ -514,6 +517,7 @@ FORMATTING = 'FORMATTING'
|
|
|
514
517
|
FOURIERTRANSFORMDIALOG = 'FOURIERTRANSFORMDIALOG'
|
|
515
518
|
FOURIERTRANSFORMRESULTINGVARS = 'FOURIERTRANSFORMRESULTINGVARS'
|
|
516
519
|
FOURIERTRANSFORMRESULTINGZONES = 'FOURIERTRANSFORMRESULTINGZONES'
|
|
520
|
+
FRAGMENTBUFFERSIZE = 'FRAGMENTBUFFERSIZE'
|
|
517
521
|
FRAME = 'FRAME'
|
|
518
522
|
FRAMEAXIS = 'FRAMEAXIS'
|
|
519
523
|
FRAMECOLLECTION = 'FRAMECOLLECTION'
|
|
@@ -558,6 +562,7 @@ GLOBALTHREEDVECTOR = 'GLOBALTHREEDVECTOR'
|
|
|
558
562
|
GLOBALTIME = 'GLOBALTIME'
|
|
559
563
|
GLOBALTWODVECTOR = 'GLOBALTWODVECTOR'
|
|
560
564
|
GLOBALXY = 'GLOBALXY'
|
|
565
|
+
GPUNUMBER = 'GPUNUMBER'
|
|
561
566
|
GRANCHOR = 'GRANCHOR'
|
|
562
567
|
GRAYSCALE = 'GRAYSCALE'
|
|
563
568
|
GRAYSCALEDEPTH = 'GRAYSCALEDEPTH'
|
|
@@ -850,6 +855,7 @@ MAGNITUDELABEL = 'MAGNITUDELABEL'
|
|
|
850
855
|
MAINTAINASPECTRATIO = 'MAINTAINASPECTRATIO'
|
|
851
856
|
MAJGRIDLINEPEN = 'MAJGRIDLINEPEN'
|
|
852
857
|
MAKEROUGHDRAFT = 'MAKEROUGHDRAFT'
|
|
858
|
+
MANUALLYREPAIRDAMAGEDDRAWAREA = 'MANUALLYREPAIRDAMAGEDDRAWAREA'
|
|
853
859
|
MAP = 'MAP'
|
|
854
860
|
MARCHINGCUBEALGORITHM = 'MARCHINGCUBEALGORITHM'
|
|
855
861
|
MARGIN = 'MARGIN'
|
|
@@ -878,6 +884,7 @@ MAXPTSINALINE = 'MAXPTSINALINE'
|
|
|
878
884
|
MAXRENDERTIMEBEFOREAPPROX = 'MAXRENDERTIMEBEFOREAPPROX'
|
|
879
885
|
MAXROTATELINES = 'MAXROTATELINES'
|
|
880
886
|
MAXSCREENSPEED = 'MAXSCREENSPEED'
|
|
887
|
+
MAXSORTEDFRAGMENTCOUNT = 'MAXSORTEDFRAGMENTCOUNT'
|
|
881
888
|
MAXSTEPS = 'MAXSTEPS'
|
|
882
889
|
MAXSTREAMLINES = 'MAXSTREAMLINES'
|
|
883
890
|
MAXSTRIPLENGTH = 'MAXSTRIPLENGTH'
|
|
@@ -910,6 +917,7 @@ MINORLENGTH = 'MINORLENGTH'
|
|
|
910
917
|
MINORLINETHICKNESS = 'MINORLINETHICKNESS'
|
|
911
918
|
MINORTICKS = 'MINORTICKS'
|
|
912
919
|
MINPIXELSFORDRAG = 'MINPIXELSFORDRAG'
|
|
920
|
+
MINSORTEDFRAGMENTCOUNT = 'MINSORTEDFRAGMENTCOUNT'
|
|
913
921
|
MINVISIBILITYPERCENTAGE = 'MINVISIBILITYPERCENTAGE'
|
|
914
922
|
MIRRORVAR = 'MIRRORVAR'
|
|
915
923
|
MIRRORVARS = 'MIRRORVARS'
|
|
@@ -978,11 +986,14 @@ OBEYCLIPPLANES = 'OBEYCLIPPLANES'
|
|
|
978
986
|
OBEYSOURCEZONEBLANKING = 'OBEYSOURCEZONEBLANKING'
|
|
979
987
|
OBJECTALIGN = 'OBJECTALIGN'
|
|
980
988
|
OBJECTSET = 'OBJECTSET'
|
|
989
|
+
OFFSCREENDEVICE = 'OFFSCREENDEVICE'
|
|
981
990
|
OFFSET = 'OFFSET'
|
|
982
991
|
OFFSET1 = 'OFFSET1'
|
|
983
992
|
OFFSET2 = 'OFFSET2'
|
|
984
993
|
OFFSETANGLE = 'OFFSETANGLE'
|
|
994
|
+
OITSETTINGS = 'OITSETTINGS'
|
|
985
995
|
OKTOEXECUTESYSTEMCOMMAND = 'OKTOEXECUTESYSTEMCOMMAND'
|
|
996
|
+
ONSCREENDEVICE = 'ONSCREENDEVICE'
|
|
986
997
|
OPENGLCONFIG = 'OPENGLCONFIG'
|
|
987
998
|
OPENLAYOUTDIALOG = 'OPENLAYOUTDIALOG'
|
|
988
999
|
OPPOSINGAXISVALUE = 'OPPOSINGAXISVALUE'
|
|
@@ -1572,6 +1583,7 @@ VISUALID = 'VISUALID'
|
|
|
1572
1583
|
VOLUMECELLINTERPOLATIONMODE = 'VOLUMECELLINTERPOLATIONMODE'
|
|
1573
1584
|
VOLUMEMODE = 'VOLUMEMODE'
|
|
1574
1585
|
VOLUMEOBJECTSTOPLOT = 'VOLUMEOBJECTSTOPLOT'
|
|
1586
|
+
VULKANCONFIG = 'VULKANCONFIG'
|
|
1575
1587
|
VVAR = 'VVAR'
|
|
1576
1588
|
VVARLIST = 'VVARLIST'
|
|
1577
1589
|
WAIT = 'WAIT'
|
tecplot/tecutil/tecutil.py
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#
|
|
2
|
-
# This file was auto-generated on
|
|
2
|
+
# This file was auto-generated on 2025-12-15 by tecgen.
|
|
3
3
|
# IMPORTANT: DO NOT edit this file!
|
|
4
4
|
#
|
|
5
5
|
import sys
|
|
@@ -3065,6 +3065,41 @@ class TecUtil(object):
|
|
|
3065
3065
|
self.handle.tecUtilLastErrorMessageType.restype = c_int
|
|
3066
3066
|
except AttributeError:
|
|
3067
3067
|
error_list.append('TecUtilLastErrorMessageType')
|
|
3068
|
+
# int32_t TecUtilLayoutDatasetCount(LayoutReadDataInfo_pa ReadDataInfo)
|
|
3069
|
+
try:
|
|
3070
|
+
self.handle.tecUtilLayoutDatasetCount.argtypes = [c_void_p]
|
|
3071
|
+
self.handle.tecUtilLayoutDatasetCount.restype = c_int32
|
|
3072
|
+
except AttributeError:
|
|
3073
|
+
error_list.append('TecUtilLayoutDatasetCount')
|
|
3074
|
+
# TP_GIVES LayoutReadDataInfo_pa TecUtilLayoutReadDataInfo(char const * FName)
|
|
3075
|
+
try:
|
|
3076
|
+
self.handle.tecUtilLayoutReadDataInfo.argtypes = [c_char_p]
|
|
3077
|
+
self.handle.tecUtilLayoutReadDataInfo.restype = c_void_p
|
|
3078
|
+
except AttributeError:
|
|
3079
|
+
error_list.append('TecUtilLayoutReadDataInfo')
|
|
3080
|
+
# void TecUtilLayoutReadDataInfoDealloc(TP_RECEIVES_GIVES LayoutReadDataInfo_pa * ReadDataInfo)
|
|
3081
|
+
try:
|
|
3082
|
+
self.handle.tecUtilLayoutReadDataInfoDealloc.argtypes = [POINTER(c_void_p)]
|
|
3083
|
+
except AttributeError:
|
|
3084
|
+
error_list.append('TecUtilLayoutReadDataInfoDealloc')
|
|
3085
|
+
# int32_t TecUtilLayoutReadDataInstructionCount(LayoutReadDataInfo_pa ReadDataInfo, int32_t DatasetNumber)
|
|
3086
|
+
try:
|
|
3087
|
+
self.handle.tecUtilLayoutReadDataInstructionCount.argtypes = [c_void_p, c_int32]
|
|
3088
|
+
self.handle.tecUtilLayoutReadDataInstructionCount.restype = c_int32
|
|
3089
|
+
except AttributeError:
|
|
3090
|
+
error_list.append('TecUtilLayoutReadDataInstructionCount')
|
|
3091
|
+
# TP_GIVES char * TecUtilLayoutReadDataInstructionLoader(LayoutReadDataInfo_pa ReadDataInfo, int32_t DatasetNumber, int32_t InstructionNumber)
|
|
3092
|
+
try:
|
|
3093
|
+
self.handle.tecUtilLayoutReadDataInstructionLoader.argtypes = [c_void_p, c_int32, c_int32]
|
|
3094
|
+
self.handle.tecUtilLayoutReadDataInstructionLoader.restype = POINTER(c_char)
|
|
3095
|
+
except AttributeError:
|
|
3096
|
+
error_list.append('TecUtilLayoutReadDataInstructionLoader')
|
|
3097
|
+
# TP_GIVES char * TecUtilLayoutReadDataInstructions(LayoutReadDataInfo_pa ReadDataInfo, int32_t DatasetNumber, int32_t InstructionNumber)
|
|
3098
|
+
try:
|
|
3099
|
+
self.handle.tecUtilLayoutReadDataInstructions.argtypes = [c_void_p, c_int32, c_int32]
|
|
3100
|
+
self.handle.tecUtilLayoutReadDataInstructions.restype = POINTER(c_char)
|
|
3101
|
+
except AttributeError:
|
|
3102
|
+
error_list.append('TecUtilLayoutReadDataInstructions')
|
|
3068
3103
|
# LgIndex_t TecUtilLimitGetValue(char const * LimitString)
|
|
3069
3104
|
try:
|
|
3070
3105
|
self.handle.tecUtilLimitGetValue.argtypes = [c_char_p]
|
|
@@ -9273,6 +9308,48 @@ class TecUtil(object):
|
|
|
9273
9308
|
result = self.handle.tecUtilLastErrorMessageType()
|
|
9274
9309
|
return MessageBoxType(result)
|
|
9275
9310
|
|
|
9311
|
+
# int32_t TecUtilLayoutDatasetCount(LayoutReadDataInfo_pa ReadDataInfo)
|
|
9312
|
+
@tecutil_preamble
|
|
9313
|
+
def LayoutDatasetCount(self, read_data_info):
|
|
9314
|
+
result = self.handle.tecUtilLayoutDatasetCount(read_data_info)
|
|
9315
|
+
return result
|
|
9316
|
+
|
|
9317
|
+
# LayoutReadDataInfo_pa TecUtilLayoutReadDataInfo(char const * FName)
|
|
9318
|
+
@tecutil_preamble
|
|
9319
|
+
def LayoutReadDataInfo(self, f_name):
|
|
9320
|
+
f_name_proxy = f_name.encode('utf-8') if f_name is not None else f_name
|
|
9321
|
+
result = self.handle.tecUtilLayoutReadDataInfo(f_name_proxy)
|
|
9322
|
+
return result
|
|
9323
|
+
|
|
9324
|
+
# void TecUtilLayoutReadDataInfoDealloc(TP_RECEIVES_GIVES LayoutReadDataInfo_pa * ReadDataInfo)
|
|
9325
|
+
@tecutil_preamble
|
|
9326
|
+
def LayoutReadDataInfoDealloc(self, read_data_info):
|
|
9327
|
+
self.handle.tecUtilLayoutReadDataInfoDealloc(read_data_info)
|
|
9328
|
+
|
|
9329
|
+
# int32_t TecUtilLayoutReadDataInstructionCount(LayoutReadDataInfo_pa ReadDataInfo, int32_t DatasetNumber)
|
|
9330
|
+
@tecutil_preamble
|
|
9331
|
+
def LayoutReadDataInstructionCount(self, read_data_info, dataset_number):
|
|
9332
|
+
result = self.handle.tecUtilLayoutReadDataInstructionCount(read_data_info, dataset_number)
|
|
9333
|
+
return result
|
|
9334
|
+
|
|
9335
|
+
# char * TecUtilLayoutReadDataInstructionLoader(LayoutReadDataInfo_pa ReadDataInfo, int32_t DatasetNumber, int32_t InstructionNumber)
|
|
9336
|
+
@tecutil_preamble
|
|
9337
|
+
def LayoutReadDataInstructionLoader(self, read_data_info, dataset_number, instruction_number):
|
|
9338
|
+
result_ptr = self.handle.tecUtilLayoutReadDataInstructionLoader(read_data_info, dataset_number, instruction_number)
|
|
9339
|
+
result_char_p = cast(result_ptr, c_char_p)
|
|
9340
|
+
result = None if (result_char_p is None or result_char_p.value is None) else result_char_p.value.decode('utf-8')
|
|
9341
|
+
self.handle.tecUtilStringDealloc(byref(result_char_p))
|
|
9342
|
+
return result
|
|
9343
|
+
|
|
9344
|
+
# char * TecUtilLayoutReadDataInstructions(LayoutReadDataInfo_pa ReadDataInfo, int32_t DatasetNumber, int32_t InstructionNumber)
|
|
9345
|
+
@tecutil_preamble
|
|
9346
|
+
def LayoutReadDataInstructions(self, read_data_info, dataset_number, instruction_number):
|
|
9347
|
+
result_ptr = self.handle.tecUtilLayoutReadDataInstructions(read_data_info, dataset_number, instruction_number)
|
|
9348
|
+
result_char_p = cast(result_ptr, c_char_p)
|
|
9349
|
+
result = None if (result_char_p is None or result_char_p.value is None) else result_char_p.value.decode('utf-8')
|
|
9350
|
+
self.handle.tecUtilStringDealloc(byref(result_char_p))
|
|
9351
|
+
return result
|
|
9352
|
+
|
|
9276
9353
|
# LgIndex_t TecUtilLimitGetValue(char const * LimitString)
|
|
9277
9354
|
@tecutil_preamble
|
|
9278
9355
|
def LimitGetValue(self, limit_string):
|
|
@@ -46,7 +46,7 @@ def set_arglist_item(item, key, val):
|
|
|
46
46
|
item.value.float64 = val[0]
|
|
47
47
|
|
|
48
48
|
elif isinstance(val, (int, bool)):
|
|
49
|
-
set_scalar(item.value, c_int64, val)
|
|
49
|
+
set_scalar(item.value, c_int64, int(val))
|
|
50
50
|
elif isinstance(val, Enum):
|
|
51
51
|
set_scalar(item.value, c_int64, val.value)
|
|
52
52
|
|
tecplot/tecutil/tecutil_rpc.py
CHANGED
|
@@ -3518,6 +3518,41 @@ class TecUtilRPC(object):
|
|
|
3518
3518
|
rep=self.sndrcv("LastErrorMessageType")
|
|
3519
3519
|
self.chk(rep)
|
|
3520
3520
|
return try_cast_to_enum(MessageBoxType, rep.args[0].int32)
|
|
3521
|
+
def LayoutDatasetCount(self,read_data_info):
|
|
3522
|
+
args=((ValueType.Address,c_uint64,getattr(read_data_info,'value',read_data_info)),)
|
|
3523
|
+
rep=self.sndrcv("LayoutDatasetCount",*args)
|
|
3524
|
+
self.chk(rep)
|
|
3525
|
+
return rep.args[0].int32
|
|
3526
|
+
def LayoutReadDataInfo(self,f_name):
|
|
3527
|
+
args=((ValueType.Text,None,f_name),)
|
|
3528
|
+
rep=self.sndrcv("LayoutReadDataInfo",*args)
|
|
3529
|
+
self.chk(rep)
|
|
3530
|
+
return rep.args[0].uint64
|
|
3531
|
+
def LayoutReadDataInfoDealloc(self,read_data_info):
|
|
3532
|
+
args=((ValueType.Address,c_uint64,read_data_info.contents.value),)
|
|
3533
|
+
rep=self.sndrcv("LayoutReadDataInfoDealloc",*args)
|
|
3534
|
+
self.chk(rep)
|
|
3535
|
+
return rep.args[0].uint64
|
|
3536
|
+
def LayoutReadDataInstructionCount(self,read_data_info,dataset_number):
|
|
3537
|
+
args=((ValueType.Address,c_uint64,getattr(read_data_info,'value',read_data_info)),
|
|
3538
|
+
(ValueType.Scalar,c_int32,dataset_number),)
|
|
3539
|
+
rep=self.sndrcv("LayoutReadDataInstructionCount",*args)
|
|
3540
|
+
self.chk(rep)
|
|
3541
|
+
return rep.args[0].int32
|
|
3542
|
+
def LayoutReadDataInstructionLoader(self,read_data_info,dataset_number,instruction_number):
|
|
3543
|
+
args=((ValueType.Address,c_uint64,getattr(read_data_info,'value',read_data_info)),
|
|
3544
|
+
(ValueType.Scalar,c_int32,dataset_number),
|
|
3545
|
+
(ValueType.Scalar,c_int32,instruction_number),)
|
|
3546
|
+
rep=self.sndrcv("LayoutReadDataInstructionLoader",*args)
|
|
3547
|
+
self.chk(rep)
|
|
3548
|
+
return self.read_text(rep.args[0])
|
|
3549
|
+
def LayoutReadDataInstructions(self,read_data_info,dataset_number,instruction_number):
|
|
3550
|
+
args=((ValueType.Address,c_uint64,getattr(read_data_info,'value',read_data_info)),
|
|
3551
|
+
(ValueType.Scalar,c_int32,dataset_number),
|
|
3552
|
+
(ValueType.Scalar,c_int32,instruction_number),)
|
|
3553
|
+
rep=self.sndrcv("LayoutReadDataInstructions",*args)
|
|
3554
|
+
self.chk(rep)
|
|
3555
|
+
return self.read_text(rep.args[0])
|
|
3521
3556
|
def LimitGetValue(self,limit_string):
|
|
3522
3557
|
args=((ValueType.Text,None,limit_string),)
|
|
3523
3558
|
rep=self.sndrcv("LimitGetValue",*args)
|
tecplot/tecutil/util.py
CHANGED
|
@@ -332,11 +332,11 @@ def temporary_closed_file(suffix=None):
|
|
|
332
332
|
|
|
333
333
|
|
|
334
334
|
def api_changed(msg, version_changed, sdk_version_changed, warning=False):
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
{}
|
|
339
|
-
''')
|
|
335
|
+
detail = textwrap.indent(textwrap.dedent(msg), ' ')
|
|
336
|
+
msg = textwrap.dedent(f'''\
|
|
337
|
+
PyTecplot API Change (version {version_changed})
|
|
338
|
+
Tecplot 360 version: {sdk_version_changed}
|
|
339
|
+
''') + detail
|
|
340
340
|
if warning:
|
|
341
341
|
if __debug__:
|
|
342
342
|
msg += 'Please update your code as the legacy interface will\n' \
|
|
@@ -347,11 +347,11 @@ def api_changed(msg, version_changed, sdk_version_changed, warning=False):
|
|
|
347
347
|
|
|
348
348
|
|
|
349
349
|
def api_moved(old, new, version_changed, sdk_version_changed, warning=False):
|
|
350
|
-
msg = textwrap.dedent('''\
|
|
351
|
-
PyTecplot API Change (version {})
|
|
352
|
-
Tecplot 360 version: {}
|
|
353
|
-
{} has been moved to {}
|
|
354
|
-
''')
|
|
350
|
+
msg = textwrap.dedent(f'''\
|
|
351
|
+
PyTecplot API Change (version {version_changed})
|
|
352
|
+
Tecplot 360 version: {sdk_version_changed}
|
|
353
|
+
{old} has been moved to {new}
|
|
354
|
+
''')
|
|
355
355
|
if warning:
|
|
356
356
|
if __debug__:
|
|
357
357
|
msg += 'Please update your code as the legacy interface will\n' \
|
tecplot/version.py
CHANGED
|
@@ -33,8 +33,8 @@ from .tecutil import _tecutil_connector
|
|
|
33
33
|
|
|
34
34
|
Version = collections.namedtuple('V', ['major', 'minor', 'patch', 'build'])
|
|
35
35
|
|
|
36
|
-
version = '1.7.
|
|
37
|
-
build = '
|
|
36
|
+
version = '1.7.4'
|
|
37
|
+
build = '6f7ff42'
|
|
38
38
|
version_info = Version(*[int(x) for x in version.split('.')], build=build or 0)
|
|
39
39
|
|
|
40
40
|
sdk_version_info = _tecutil_connector.sdk_version_info
|
|
File without changes
|
|
File without changes
|