ansys-mechanical-core 0.11.2__py3-none-any.whl → 0.11.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.
@@ -34,13 +34,13 @@ from ansys.mechanical.core.embedding.poster import Poster
34
34
  from ansys.mechanical.core.embedding.warnings import connect_warnings, disconnect_warnings
35
35
 
36
36
  try:
37
- import pyvista # noqa: F401
37
+ import ansys.tools.visualization_interface # noqa: F401
38
38
 
39
- HAS_PYVISTA = True
39
+ HAS_ANSYS_VIZ = True
40
40
  """Whether or not PyVista exists."""
41
41
  except:
42
42
 
43
- HAS_PYVISTA = False
43
+ HAS_ANSYS_VIZ = False
44
44
 
45
45
 
46
46
  def _get_default_addin_configuration() -> AddinConfiguration:
@@ -229,13 +229,9 @@ class App:
229
229
  rets = None
230
230
  return self.script_engine.ExecuteCode(script, SCRIPT_SCOPE, light_mode, args, rets)
231
231
 
232
- def plot(self) -> None:
233
- """Visualize the model in 3d.
234
-
235
- Requires installation using the viz option. E.g.
236
- pip install ansys-mechanical-core[viz]
237
- """
238
- if not HAS_PYVISTA:
232
+ def plotter(self) -> None:
233
+ """Return ``ansys.tools.visualization_interface.Plotter`` object."""
234
+ if not HAS_ANSYS_VIZ:
239
235
  warnings.warn(
240
236
  "Installation of viz option required! Use pip install ansys-mechanical-core[viz]"
241
237
  )
@@ -245,9 +241,20 @@ class App:
245
241
  warnings.warn("Plotting is only supported with version 2024R2 and later!")
246
242
  return
247
243
 
248
- from ansys.mechanical.core.embedding.viz.pyvista_plotter import plot_model
244
+ # TODO Check if anything loaded inside app or else show warning and return
245
+
246
+ from ansys.mechanical.core.embedding.viz.embedding_plotter import to_plotter
247
+
248
+ return to_plotter(self)
249
249
 
250
- plot_model(self)
250
+ def plot(self) -> None:
251
+ """Visualize the model in 3d.
252
+
253
+ Requires installation using the viz option. E.g.
254
+ pip install ansys-mechanical-core[viz]
255
+ """
256
+ _plotter = self.plotter()
257
+ return _plotter.show()
251
258
 
252
259
  @property
253
260
  def poster(self) -> Poster:
@@ -328,8 +335,7 @@ class App:
328
335
  try:
329
336
  # This will throw an error when using pythonnet because
330
337
  # EventSource isn't defined on the IApplication interface
331
- self.ExtAPI.Application.EventSource.OnAfterNew += self._on_after_new
332
- self.ExtAPI.Application.EventSource.OnAfterDatabaseLoad += self._on_after_open
338
+ self.ExtAPI.Application.EventSource.OnWorkbenchReady += self._on_workbench_ready
333
339
  self._subscribed = True
334
340
  except:
335
341
  self._subscribed = False
@@ -338,13 +344,9 @@ class App:
338
344
  if not self._subscribed:
339
345
  return
340
346
  self._subscribed = False
341
- self.ExtAPI.Application.EventSource.OnAfterNew -= self._on_after_new
342
- self.ExtAPI.Application.EventSource.OnAfterDatabaseLoad -= self._on_after_open
343
-
344
- def _on_after_open(self, sender, args) -> None:
345
- self._update_all_globals()
347
+ self.ExtAPI.Application.EventSource.OnWorkbenchReady -= self._on_workbench_ready
346
348
 
347
- def _on_after_new(self, sender, args) -> None:
349
+ def _on_workbench_ready(self, sender, args) -> None:
348
350
  self._update_all_globals()
349
351
 
350
352
  def update_globals(
@@ -0,0 +1,106 @@
1
+ # Copyright (C) 2022 - 2024 ANSYS, Inc. and/or its affiliates.
2
+ # SPDX-License-Identifier: MIT
3
+ #
4
+ #
5
+ # Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ # of this software and associated documentation files (the "Software"), to deal
7
+ # in the Software without restriction, including without limitation the rights
8
+ # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ # copies of the Software, and to permit persons to whom the Software is
10
+ # furnished to do so, subject to the following conditions:
11
+ #
12
+ # The above copyright notice and this permission notice shall be included in all
13
+ # copies or substantial portions of the Software.
14
+ #
15
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ # SOFTWARE.
22
+
23
+ """Class for running Mechanical on a background thread."""
24
+
25
+ import atexit
26
+ import threading
27
+ import time
28
+ import typing
29
+
30
+ import ansys.mechanical.core as mech
31
+ from ansys.mechanical.core.embedding.poster import Poster
32
+ import ansys.mechanical.core.embedding.utils as utils
33
+
34
+
35
+ def _exit(background_app: "BackgroundApp"):
36
+ """Stop the thread serving the Background App."""
37
+ background_app.stop()
38
+ atexit.unregister(_exit)
39
+
40
+
41
+ class BackgroundApp:
42
+ """Background App."""
43
+
44
+ __app: mech.App = None
45
+ __app_thread: threading.Thread = None
46
+ __stopped: bool = False
47
+ __stop_signaled: bool = False
48
+ __poster: Poster = None
49
+
50
+ def __init__(self, **kwargs):
51
+ """Construct an instance of BackgroundApp."""
52
+ if BackgroundApp.__app_thread == None:
53
+ BackgroundApp.__app_thread = threading.Thread(
54
+ target=self._start_app, kwargs=kwargs, daemon=True
55
+ )
56
+ BackgroundApp.__app_thread.start()
57
+
58
+ while BackgroundApp.__poster is None:
59
+ time.sleep(0.05)
60
+ continue
61
+ else:
62
+ assert (
63
+ not BackgroundApp.__stopped
64
+ ), "Cannot initialize a BackgroundApp once it has been stopped!"
65
+
66
+ def new():
67
+ BackgroundApp.__app.new()
68
+
69
+ self.post(new)
70
+
71
+ atexit.register(_exit, self)
72
+
73
+ @property
74
+ def app(self) -> mech.App:
75
+ """Get the App instance of the background thread.
76
+
77
+ It is not meant to be used aside from passing to methods using `post`.
78
+ """
79
+ return BackgroundApp.__app
80
+
81
+ def post(self, callable: typing.Callable):
82
+ """Post callable method to the background app thread."""
83
+ assert not BackgroundApp.__stopped, "Cannot use background app after stopping it."
84
+ return BackgroundApp.__poster.post(callable)
85
+
86
+ def stop(self) -> None:
87
+ """Stop the background app thread."""
88
+ if BackgroundApp.__stopped:
89
+ return
90
+ BackgroundApp.__stop_signaled = True
91
+ while True:
92
+ time.sleep(0.05)
93
+ if BackgroundApp.__stopped:
94
+ break
95
+
96
+ def _start_app(self, **kwargs) -> None:
97
+ BackgroundApp.__app = mech.App(**kwargs)
98
+ BackgroundApp.__poster = BackgroundApp.__app.poster
99
+ while True:
100
+ if BackgroundApp.__stop_signaled:
101
+ break
102
+ try:
103
+ utils.sleep(40)
104
+ except:
105
+ pass
106
+ BackgroundApp.__stopped = True
@@ -37,8 +37,5 @@ def resolve(version):
37
37
  import Ansys # isort: skip
38
38
 
39
39
  assembly_resolver = Ansys.Mechanical.Embedding.AssemblyResolver
40
- if version == 231: # pragma: no cover
41
- resolve_handler = assembly_resolver.WindowsResolveEventHandler
42
- else:
43
- resolve_handler = assembly_resolver.MechanicalResolveEventHandler
40
+ resolve_handler = assembly_resolver.MechanicalResolveEventHandler
44
41
  System.AppDomain.CurrentDomain.AssemblyResolve += resolve_handler
@@ -25,16 +25,17 @@
25
25
  These shims are used when APIs are released in newer versions of Mechanical,
26
26
  but workarounds exist in an older release
27
27
  """
28
+ import warnings
28
29
 
29
30
 
30
31
  def import_materials(
31
32
  app: "ansys.mechanical.core.embedding.Application", material_file: str
32
33
  ) -> None:
33
34
  """Import material from matml file."""
34
- if app._version >= 232:
35
- materials = app.DataModel.Project.Model.Materials
36
- materials.Import(material_file)
37
- else: # pragma: no cover
38
- material_file = material_file.replace("\\", "\\\\")
39
- script = 'DS.Tree.Projects.Item(1).LoadEngrDataLibraryFromFile("' + material_file + '");'
40
- app.ExtAPI.Application.ScriptByName("jscript").ExecuteCommand(script)
35
+ warnings.warn(
36
+ "Use of this function is deprecated. Use Model.Materials.Import() directly.",
37
+ DeprecationWarning,
38
+ stacklevel=2,
39
+ )
40
+ materials = app.DataModel.Project.Model.Materials
41
+ materials.Import(material_file)
@@ -29,6 +29,7 @@ clr.AddReference("Ansys.ACT.Interfaces")
29
29
 
30
30
  import Ansys # isort: skip
31
31
 
32
+ from ansys.tools.visualization_interface import Plotter
32
33
  import numpy as np
33
34
  import pyvista as pv
34
35
 
@@ -68,9 +69,9 @@ def _get_nodes_and_coords(node: "Ansys.Mechanical.Scenegraph.Node"):
68
69
  return None, None
69
70
 
70
71
 
71
- def to_pyvista_plotter(app: "ansys.mechanical.core.embedding.App"):
72
- """Convert the app's geometry to a pyvista plotter instance."""
73
- plotter = pv.Plotter()
72
+ def to_plotter(app: "ansys.mechanical.core.embedding.App"):
73
+ """Convert the app's geometry to an ``ansys.tools.visualization_interface.Plotter`` instance."""
74
+ plotter = Plotter()
74
75
  for body in app.DataModel.GetObjectsByType(
75
76
  Ansys.Mechanical.DataModel.Enums.DataModelObjectCategory.Body
76
77
  ):
@@ -81,11 +82,5 @@ def to_pyvista_plotter(app: "ansys.mechanical.core.embedding.App"):
81
82
  pv_transform = _transform_to_pyvista(scenegraph_node.Transform)
82
83
  polydata = pv.PolyData(np_coordinates, np_indices).transform(pv_transform)
83
84
  color = pv.Color(bgr_to_rgb_tuple(body.Color))
84
- plotter.add_mesh(polydata, color=color, smooth_shading=True)
85
+ plotter.plot(polydata, color=color, smooth_shading=True)
85
86
  return plotter
86
-
87
-
88
- def plot_model(app: "ansys.mechanical.core.embedding.App"):
89
- """Plot the model."""
90
- plotter = to_pyvista_plotter(app)
91
- plotter.show()
@@ -246,7 +246,7 @@ def check_valid_mechanical():
246
246
  if mechanical_path == None:
247
247
  return False
248
248
  mechanical_version = atp.version_from_path("mechanical", mechanical_path)
249
- return not (mechanical_version < 231 and os.name != "posix")
249
+ return not (mechanical_version < 232 and os.name != "posix")
250
250
 
251
251
 
252
252
  def change_default_mechanical_path(exe_loc):
@@ -1913,8 +1913,8 @@ def launch_grpc(
1913
1913
 
1914
1914
  """
1915
1915
  # verify version
1916
- if atp.version_from_path("mechanical", exec_file) < 231:
1917
- raise VersionError("The Mechanical gRPC interface requires Mechanical 2023 R1 or later.")
1916
+ if atp.version_from_path("mechanical", exec_file) < 232:
1917
+ raise VersionError("The Mechanical gRPC interface requires Mechanical 2023 R2 or later.")
1918
1918
 
1919
1919
  # get the next available port
1920
1920
  local_ports = pymechanical.LOCAL_PORTS
@@ -170,7 +170,7 @@ class LocalMechanicalPool:
170
170
  self._spawn_kwargs = kwargs
171
171
  self._remote = False
172
172
 
173
- # verify that mechanical is 2023R1 or newer
173
+ # verify that mechanical is 2023R2 or newer
174
174
  exec_file = None
175
175
  if "exec_file" in kwargs:
176
176
  exec_file = kwargs["exec_file"]
@@ -191,8 +191,8 @@ class LocalMechanicalPool:
191
191
  )
192
192
 
193
193
  if not self._remote: # pragma: no cover
194
- if version_from_path("mechanical", exec_file) < 231:
195
- raise VersionError("A local Mechanical pool requires Mechanical 2023 R1 or later.")
194
+ if version_from_path("mechanical", exec_file) < 232:
195
+ raise VersionError("A local Mechanical pool requires Mechanical 2023 R2 or later.")
196
196
 
197
197
  ports = None
198
198
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ansys-mechanical-core
3
- Version: 0.11.2
3
+ Version: 0.11.4
4
4
  Summary: A python wrapper for Ansys Mechanical
5
5
  Keywords: pymechanical,mechanical,ansys,pyansys
6
6
  Author-email: "ANSYS, Inc." <pyansys.core@ansys.com>
@@ -27,36 +27,36 @@ Requires-Dist: clr-loader==0.2.6
27
27
  Requires-Dist: grpcio>=1.30.0
28
28
  Requires-Dist: protobuf>=3.12.2,<6
29
29
  Requires-Dist: tqdm>=4.45.0
30
- Requires-Dist: sphinx==7.4.4 ; extra == "doc"
30
+ Requires-Dist: sphinx==7.4.7 ; extra == "doc"
31
31
  Requires-Dist: ansys-sphinx-theme[autoapi]==0.16.6 ; extra == "doc"
32
- Requires-Dist: grpcio==1.64.1 ; extra == "doc"
32
+ Requires-Dist: grpcio==1.65.4 ; extra == "doc"
33
33
  Requires-Dist: imageio-ffmpeg==0.5.1 ; extra == "doc"
34
34
  Requires-Dist: imageio==2.34.2 ; extra == "doc"
35
35
  Requires-Dist: jupyter_sphinx==0.5.3 ; extra == "doc"
36
36
  Requires-Dist: jupyterlab>=3.2.8 ; extra == "doc"
37
37
  Requires-Dist: matplotlib==3.9.1 ; extra == "doc"
38
- Requires-Dist: numpy==2.0.0 ; extra == "doc"
38
+ Requires-Dist: numpy==2.0.1 ; extra == "doc"
39
39
  Requires-Dist: numpydoc==1.7.0 ; extra == "doc"
40
40
  Requires-Dist: pandas==2.2.2 ; extra == "doc"
41
41
  Requires-Dist: panel==1.4.4 ; extra == "doc"
42
- Requires-Dist: plotly==5.22.0 ; extra == "doc"
42
+ Requires-Dist: plotly==5.23.0 ; extra == "doc"
43
43
  Requires-Dist: pypandoc==1.13 ; extra == "doc"
44
44
  Requires-Dist: pytest-sphinx==0.6.3 ; extra == "doc"
45
45
  Requires-Dist: pythreejs==2.4.2 ; extra == "doc"
46
46
  Requires-Dist: pyvista>=0.39.1 ; extra == "doc"
47
47
  Requires-Dist: sphinx-autobuild==2024.4.16 ; extra == "doc"
48
- Requires-Dist: sphinx-autodoc-typehints==2.2.2 ; extra == "doc"
48
+ Requires-Dist: sphinx-autodoc-typehints==2.2.3 ; extra == "doc"
49
49
  Requires-Dist: sphinx-copybutton==0.5.2 ; extra == "doc"
50
50
  Requires-Dist: sphinx_design==0.6.0 ; extra == "doc"
51
- Requires-Dist: sphinx-gallery==0.16.0 ; extra == "doc"
51
+ Requires-Dist: sphinx-gallery==0.17.0 ; extra == "doc"
52
52
  Requires-Dist: sphinx-notfound-page==1.0.2 ; extra == "doc"
53
- Requires-Dist: sphinxcontrib-websupport==1.2.7 ; extra == "doc"
53
+ Requires-Dist: sphinxcontrib-websupport==2.0.0 ; extra == "doc"
54
54
  Requires-Dist: sphinxemoji==0.3.1 ; extra == "doc"
55
- Requires-Dist: pytest==8.2.2 ; extra == "tests"
55
+ Requires-Dist: pytest==8.3.2 ; extra == "tests"
56
56
  Requires-Dist: pytest-cov==5.0.0 ; extra == "tests"
57
57
  Requires-Dist: pytest-print==1.0.0 ; extra == "tests"
58
- Requires-Dist: pyvista>=0.39.1 ; extra == "viz"
59
- Requires-Dist: usd-core==24.3 ; extra == "viz"
58
+ Requires-Dist: ansys-tools-visualization-interface>=0.2.6 ; extra == "viz"
59
+ Requires-Dist: usd-core==24.8 ; extra == "viz"
60
60
  Project-URL: Changelog, https://mechanical.docs.pyansys.com/version/stable/changelog.html
61
61
  Project-URL: Documentation, https://mechanical.docs.pyansys.com
62
62
  Project-URL: Homepage, https://github.com/ansys/pymechanical
@@ -187,7 +187,8 @@ on Windows and Linux for version 2023 R2 and later. Here is an example:
187
187
  import ansys.mechanical.core as pymechanical
188
188
 
189
189
  app = pymechanical.App()
190
- project_dir = app.ExtAPI.DataModel.Project.ProjectDirectory
190
+ app.update_globals(globals())
191
+ project_dir = DataModel.Project.ProjectDirectory
191
192
 
192
193
  Documentation and issues
193
194
  ------------------------
@@ -4,23 +4,24 @@ ansys/mechanical/core/errors.py,sha256=oGaBH-QZxen3YV3IChAFv8bwW5rK_IXTYgDqbX5lp
4
4
  ansys/mechanical/core/feature_flags.py,sha256=L88vHrI2lRjZPPUTW5sqcdloeK3Ouh8vt1VPfZLs5Wc,2032
5
5
  ansys/mechanical/core/launcher.py,sha256=-I1hoscyc5HY8EHL07gPUeoeRgUJaW8agdQWOpqK30A,6659
6
6
  ansys/mechanical/core/logging.py,sha256=wQ8QwKd2k0R6SkN7cv2nHAO7V5-BrElEOespDNMpSLo,24554
7
- ansys/mechanical/core/mechanical.py,sha256=VK-pDd90a_ZYuZyP94-LQ2CRLmNBJr_LpyYL__8Imgs,79926
7
+ ansys/mechanical/core/mechanical.py,sha256=rh8vClBiUZRxEsI3asYbvIznGrwNZiUM64MRt8mSpPU,79926
8
8
  ansys/mechanical/core/misc.py,sha256=edm2UnklbooYW_hQUgk4n_UFCtlSGAVYJmC2gag74vw,5370
9
- ansys/mechanical/core/pool.py,sha256=XUR0RbGFbHRk0U3UV4LuDtKkQ_xaqaXmJY1WC9Sz3XE,26429
9
+ ansys/mechanical/core/pool.py,sha256=HzU64Ew5QgoKeoZkywdmS_lmuGSCwe-PvucI5y1Hqa0,26429
10
10
  ansys/mechanical/core/run.py,sha256=ScB-Ne8KkLuA0EQtquUa8JKFsA8Ert8nUUtxHTlQR4A,9814
11
11
  ansys/mechanical/core/embedding/__init__.py,sha256=y0yp3dnBW2oj9Jh_L_qfZstAbpON974EMmpV9w3kT3g,1356
12
12
  ansys/mechanical/core/embedding/addins.py,sha256=yRG8CT1f1MgQj0y_mP3ISePVp7t9erw0o5Sbn1tFNkc,2370
13
- ansys/mechanical/core/embedding/app.py,sha256=HrZlALKezKm04cMk9hq_LDatmEBBGH9Y-qNR1nOw7wI,16080
13
+ ansys/mechanical/core/embedding/app.py,sha256=KFYs4MEvxrzCP6IRBPeeZyGtVzVVochVfqWT5bS1eWI,16145
14
14
  ansys/mechanical/core/embedding/app_libraries.py,sha256=RiTO23AzjssAylIH2DaTa6mcJmxhfrlHW-yYvHpIkt0,2923
15
15
  ansys/mechanical/core/embedding/appdata.py,sha256=krcmcgHhraHIlORFr43QvUXlAiXg231g_2iOIxkW_aQ,4223
16
+ ansys/mechanical/core/embedding/background.py,sha256=ICm87gO6CDA4Ot_6Yf3-8YPNUEa3PHWieOECXeUfZmM,3650
16
17
  ansys/mechanical/core/embedding/enum_importer.py,sha256=3REw7SI_WmfPuzD0i9mdC7k53S-1jxhowqSxjzw7UGk,1543
17
18
  ansys/mechanical/core/embedding/imports.py,sha256=FcpePAi867YCuCH_lJotrLzYc1MW5VSAaLpYz7RejcA,4287
18
19
  ansys/mechanical/core/embedding/initializer.py,sha256=-LNJqDlxemHCggM5Ud5X7KDVpW4USoxc0djKcVAsdW0,6366
19
20
  ansys/mechanical/core/embedding/loader.py,sha256=UgWN7C4hGMWiHhoMUdRKRyWaOwcsgw5auoW1ZqLtZDs,2503
20
21
  ansys/mechanical/core/embedding/poster.py,sha256=V0-cm229HgpOgcYXa0bnz0U5BDGw8_AVE6LKXyPCEjo,2107
21
- ansys/mechanical/core/embedding/resolver.py,sha256=n-Eb-6XA-SmnshtIMRGcUfj8PqmYeSTDVgMgVWxdSpg,2006
22
+ ansys/mechanical/core/embedding/resolver.py,sha256=95jUvZhNFEJBlbAbclzpK1Wgk51KsnYOKa5HvC7Oeco,1878
22
23
  ansys/mechanical/core/embedding/runtime.py,sha256=zDxwKDTc23cR_kc63M9u4zDWVoJ2efEtF3djHGwicG4,2285
23
- ansys/mechanical/core/embedding/shims.py,sha256=2lm6vrqsCnxxYRIdw2bJx6LE2AcWGk99mm-CNhi_wM0,1857
24
+ ansys/mechanical/core/embedding/shims.py,sha256=IJHhUmfsCtYEUFmuf2LGgozTiu03D0OZn1Qq1nCxXiI,1732
24
25
  ansys/mechanical/core/embedding/utils.py,sha256=UObL4XBvx19aAYV8iVM4eCQR9vfqNSDsdwqkb1VFwTY,1900
25
26
  ansys/mechanical/core/embedding/warnings.py,sha256=igXfTCkDb8IDQqYP02Cynsqr7ewnueR12Dr0zpku7Kw,3071
26
27
  ansys/mechanical/core/embedding/logger/__init__.py,sha256=XgC05i7r-YzotLtcZ5_rGtA0jDKzeuZiDB88d2pIL7o,7986
@@ -29,13 +30,13 @@ ansys/mechanical/core/embedding/logger/linux_api.py,sha256=VrsO9F4NwHFWYJJE6F7bi
29
30
  ansys/mechanical/core/embedding/logger/sinks.py,sha256=FYmV2iWt-7KuGw40E5WcNm4AnDsWqw6aQKSMKlivYoo,1392
30
31
  ansys/mechanical/core/embedding/logger/windows_api.py,sha256=OCJ-SJEY7EjigZiW6H5qufQ39N_mL7sXeoivOVl9FHc,5248
31
32
  ansys/mechanical/core/embedding/viz/__init__.py,sha256=xgpBdf3yfEq3sn0bNewLwtje-SCH6vVWEmHfCdh6078,1206
32
- ansys/mechanical/core/embedding/viz/pyvista_plotter.py,sha256=Eecl2KgoIcgUIAdCwNc7e8ABTTwxdGfp4jHeG-0Zyus,3675
33
+ ansys/mechanical/core/embedding/viz/embedding_plotter.py,sha256=JgitPNYanqUImqT1gEtaUIDGmPk99mhuoi0ZTAkuoQ8,3604
33
34
  ansys/mechanical/core/embedding/viz/usd_converter.py,sha256=5fjbUq9-nNtKBF5e7Z3Yxgs7jzmTUayWcRANrsIHM-A,4657
34
35
  ansys/mechanical/core/embedding/viz/utils.py,sha256=pIROh87BI_OxJtkM8To9KYulpygdQ6I3g1f1BJQ-SBE,2441
35
36
  ansys/mechanical/core/examples/__init__.py,sha256=A1iS8nknTU1ylafHZpYC9LQJ0sY83x8m1cDXsgvFOBo,1267
36
37
  ansys/mechanical/core/examples/downloads.py,sha256=lJ2SrX9Qs0t2FSmMwUBB4UgSpk6Qb2-coY1PLlzPzHU,4144
37
- ansys_mechanical_core-0.11.2.dist-info/entry_points.txt,sha256=wRXPv0eRXSmodweJHjF_Y3x5wmeSmjWcY3Bo6B4tAiM,66
38
- ansys_mechanical_core-0.11.2.dist-info/LICENSE,sha256=gBJ2GQ6oDJwAWxcxmjx_0uXc-N0P4sHhA7BXsdPTfco,1098
39
- ansys_mechanical_core-0.11.2.dist-info/WHEEL,sha256=EZbGkh7Ie4PoZfRQ8I0ZuP9VklN_TvcZ6DSE5Uar4z4,81
40
- ansys_mechanical_core-0.11.2.dist-info/METADATA,sha256=cSPCOLmw4U9kvebSnILHh3C6TC_120eDxpC4J0sO1GU,9722
41
- ansys_mechanical_core-0.11.2.dist-info/RECORD,,
38
+ ansys_mechanical_core-0.11.4.dist-info/entry_points.txt,sha256=wRXPv0eRXSmodweJHjF_Y3x5wmeSmjWcY3Bo6B4tAiM,66
39
+ ansys_mechanical_core-0.11.4.dist-info/LICENSE,sha256=gBJ2GQ6oDJwAWxcxmjx_0uXc-N0P4sHhA7BXsdPTfco,1098
40
+ ansys_mechanical_core-0.11.4.dist-info/WHEEL,sha256=EZbGkh7Ie4PoZfRQ8I0ZuP9VklN_TvcZ6DSE5Uar4z4,81
41
+ ansys_mechanical_core-0.11.4.dist-info/METADATA,sha256=9LG4h1VMmOL6W9xeLI8eZ4CzeP-7oqbM6lJSlrskS5Q,9771
42
+ ansys_mechanical_core-0.11.4.dist-info/RECORD,,