ansys-mechanical-core 0.11.3__py3-none-any.whl → 0.11.5__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,24 @@ 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
+
258
+ if _plotter is None:
259
+ return
260
+
261
+ return _plotter.show()
251
262
 
252
263
  @property
253
264
  def poster(self) -> Poster:
@@ -328,8 +339,7 @@ class App:
328
339
  try:
329
340
  # This will throw an error when using pythonnet because
330
341
  # 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
342
+ self.ExtAPI.Application.EventSource.OnWorkbenchReady += self._on_workbench_ready
333
343
  self._subscribed = True
334
344
  except:
335
345
  self._subscribed = False
@@ -338,13 +348,9 @@ class App:
338
348
  if not self._subscribed:
339
349
  return
340
350
  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()
351
+ self.ExtAPI.Application.EventSource.OnWorkbenchReady -= self._on_workbench_ready
346
352
 
347
- def _on_after_new(self, sender, args) -> None:
353
+ def _on_workbench_ready(self, sender, args) -> None:
348
354
  self._update_all_globals()
349
355
 
350
356
  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
@@ -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,11 @@ 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()
75
+
76
+ # TODO - use get_scene from utils instead of looping over bodies directly here.
74
77
  for body in app.DataModel.GetObjectsByType(
75
78
  Ansys.Mechanical.DataModel.Enums.DataModelObjectCategory.Body
76
79
  ):
@@ -81,11 +84,5 @@ def to_pyvista_plotter(app: "ansys.mechanical.core.embedding.App"):
81
84
  pv_transform = _transform_to_pyvista(scenegraph_node.Transform)
82
85
  polydata = pv.PolyData(np_coordinates, np_indices).transform(pv_transform)
83
86
  color = pv.Color(bgr_to_rgb_tuple(body.Color))
84
- plotter.add_mesh(polydata, color=color, smooth_shading=True)
87
+ plotter.plot(polydata, color=color, smooth_shading=True)
85
88
  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()
@@ -24,15 +24,9 @@
24
24
 
25
25
  import typing
26
26
 
27
- import clr
28
27
  from pxr import Gf, Usd, UsdGeom
29
28
 
30
- clr.AddReference("Ansys.Mechanical.DataModel")
31
- clr.AddReference("Ansys.ACT.Interfaces")
32
-
33
- import Ansys # isort: skip
34
-
35
- from .utils import bgr_to_rgb_tuple, get_nodes_and_coords
29
+ from .utils import bgr_to_rgb_tuple, get_nodes_and_coords, get_scene
36
30
 
37
31
 
38
32
  def _transform_to_rotation_translation(
@@ -94,6 +88,13 @@ def _convert_transform_node(
94
88
 
95
89
  Currently only supports transforms that contain a single tri tessellation node.
96
90
  """
91
+ import clr
92
+
93
+ clr.AddReference("Ansys.Mechanical.DataModel")
94
+ clr.AddReference("Ansys.ACT.Interfaces")
95
+
96
+ import Ansys # isort: skip
97
+
97
98
  child_node = node.Child
98
99
  if isinstance(child_node, Ansys.Mechanical.Scenegraph.TriTessellationNode):
99
100
  prim = _create_prim_with_transform(stage, path, node)
@@ -101,19 +102,42 @@ def _convert_transform_node(
101
102
  _convert_tri_tessellation_node(child_node, stage, child_path, rgb)
102
103
 
103
104
 
104
- def to_usd_stage(app: "ansys.mechanical.core.embedding.App", name: str) -> None:
105
- """Convert mechanical scene to usd stage."""
106
- stage = Usd.Stage.CreateNew(name)
105
+ def _convert_attribute_node(
106
+ node: "Ansys.Mechanical.Scenegraph.AttributeNode",
107
+ stage: Usd.Stage,
108
+ path: str,
109
+ ) -> None:
110
+ """Add a Usd Prim of the child node with the given attributes node.
107
111
 
112
+ Currently only supports color attributes.
113
+ """
114
+ import clr
115
+
116
+ clr.AddReference("Ansys.Mechanical.DataModel")
117
+ clr.AddReference("Ansys.ACT.Interfaces")
118
+
119
+ import Ansys # isort: skip
120
+
121
+ child_node = node.Child
122
+ color = node.Property(Ansys.Mechanical.Scenegraph.ScenegraphIntAttributes.Color)
123
+ _convert_transform_node(child_node, stage, path, bgr_to_rgb_tuple(color))
124
+
125
+
126
+ def load_into_usd_stage(scene: "Ansys.Mechanical.Scenegraph.GroupNode", stage: Usd.Stage) -> None:
127
+ """Load mechanical scene into usd stage `stage`."""
108
128
  root_prim = UsdGeom.Xform.Define(stage, "/root")
109
129
 
110
- category = Ansys.Mechanical.DataModel.Enums.DataModelObjectCategory.Body
111
- bodies = app.DataModel.GetObjectsByType(category)
112
- for body in bodies:
113
- scenegraph_node = Ansys.ACT.Mechanical.Tools.ScenegraphHelpers.GetScenegraph(body)
114
- body_path = root_prim.GetPath().AppendPath(f"body{body.ObjectId}")
115
- _convert_transform_node(scenegraph_node, stage, body_path, bgr_to_rgb_tuple(body.Color))
130
+ for child in scene.Children:
131
+ child: "Ansys.Mechanical.Scenegraph.AttributeNode" = child
132
+ child_path = root_prim.GetPath().AppendPath(child.Tag)
133
+ _convert_attribute_node(child, stage, child_path)
116
134
 
135
+
136
+ def to_usd_stage(app: "ansys.mechanical.core.embedding.App", name: str) -> Usd.Stage:
137
+ """Convert mechanical scene to new usd stage and return it."""
138
+ stage = Usd.Stage.CreateNew(name)
139
+ scene = get_scene(app)
140
+ load_into_usd_stage(scene, stage)
117
141
  return stage
118
142
 
119
143
 
@@ -59,3 +59,32 @@ def get_nodes_and_coords(tri_tessellation: "Ansys.Mechanical.Scenegraph.TriTesse
59
59
  )
60
60
  np_indices = _reshape_3cols(np.array(tri_tessellation.Indices, dtype=np.int32), "indices")
61
61
  return np_coordinates, np_indices
62
+
63
+
64
+ def get_scene(
65
+ app: "ansys.mechanical.core.embedding.App",
66
+ ) -> "Ansys.Mechanical.Scenegraph.GroupNode":
67
+ """Get the scene of the model."""
68
+ import clr
69
+
70
+ clr.AddReference("Ansys.Mechanical.DataModel")
71
+ clr.AddReference("Ansys.Mechanical.Scenegraph")
72
+ clr.AddReference("Ansys.ACT.Interfaces")
73
+
74
+ import Ansys # isort: skip
75
+
76
+ category = Ansys.Mechanical.DataModel.Enums.DataModelObjectCategory.Body
77
+ group_node = Ansys.Mechanical.Scenegraph.Builders.GroupNodeBuilder()
78
+ for body in app.DataModel.GetObjectsByType(category):
79
+ scenegraph_node = Ansys.ACT.Mechanical.Tools.ScenegraphHelpers.GetScenegraph(body)
80
+ # wrap the body node in an attribute node using the body color
81
+ attribute_node_builder = Ansys.Mechanical.Scenegraph.Builders.AttributeNodeBuilder()
82
+ attribute_node = (
83
+ attribute_node_builder.Tag(f"body{body.ObjectId}")
84
+ .Child(scenegraph_node)
85
+ # set the color, body.Color is a BGR uint bitfield
86
+ .Property(Ansys.Mechanical.Scenegraph.ScenegraphIntAttributes.Color, body.Color)
87
+ .Build()
88
+ )
89
+ group_node.AddChild(attribute_node)
90
+ return group_node.Build()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ansys-mechanical-core
3
- Version: 0.11.3
3
+ Version: 0.11.5
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"
31
- Requires-Dist: ansys-sphinx-theme[autoapi]==0.16.6 ; extra == "doc"
32
- Requires-Dist: grpcio==1.64.1 ; extra == "doc"
30
+ Requires-Dist: sphinx==8.0.2 ; extra == "doc"
31
+ Requires-Dist: ansys-sphinx-theme[autoapi]==1.0.3 ; 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
- Requires-Dist: matplotlib==3.9.1 ; extra == "doc"
38
- Requires-Dist: numpy==2.0.0 ; extra == "doc"
39
- Requires-Dist: numpydoc==1.7.0 ; extra == "doc"
37
+ Requires-Dist: matplotlib==3.9.1.post1 ; extra == "doc"
38
+ Requires-Dist: numpy==2.0.1 ; extra == "doc"
39
+ Requires-Dist: numpydoc==1.8.0 ; extra == "doc"
40
40
  Requires-Dist: pandas==2.2.2 ; extra == "doc"
41
- Requires-Dist: panel==1.4.4 ; extra == "doc"
42
- Requires-Dist: plotly==5.22.0 ; extra == "doc"
41
+ Requires-Dist: panel==1.4.5 ; 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
- Requires-Dist: sphinx_design==0.6.0 ; extra == "doc"
51
- Requires-Dist: sphinx-gallery==0.16.0 ; extra == "doc"
52
- Requires-Dist: sphinx-notfound-page==1.0.2 ; extra == "doc"
53
- Requires-Dist: sphinxcontrib-websupport==1.2.7 ; extra == "doc"
50
+ Requires-Dist: sphinx_design==0.6.1 ; extra == "doc"
51
+ Requires-Dist: sphinx-gallery==0.17.1 ; extra == "doc"
52
+ Requires-Dist: sphinx-notfound-page==1.0.4 ; 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
@@ -10,9 +10,10 @@ ansys/mechanical/core/pool.py,sha256=HzU64Ew5QgoKeoZkywdmS_lmuGSCwe-PvucI5y1Hqa0
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=hnP-eAFFekfHPuHxHc7wJraDa1DO7s2J65dWtKzRJ9U,16195
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
@@ -20,7 +21,7 @@ ansys/mechanical/core/embedding/loader.py,sha256=UgWN7C4hGMWiHhoMUdRKRyWaOwcsgw5
20
21
  ansys/mechanical/core/embedding/poster.py,sha256=V0-cm229HgpOgcYXa0bnz0U5BDGw8_AVE6LKXyPCEjo,2107
21
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/usd_converter.py,sha256=5fjbUq9-nNtKBF5e7Z3Yxgs7jzmTUayWcRANrsIHM-A,4657
34
- ansys/mechanical/core/embedding/viz/utils.py,sha256=pIROh87BI_OxJtkM8To9KYulpygdQ6I3g1f1BJQ-SBE,2441
33
+ ansys/mechanical/core/embedding/viz/embedding_plotter.py,sha256=ausbFhezwmLCGhu61JZJDM_uxwpRRuM-XWw9mk4i0GQ,3689
34
+ ansys/mechanical/core/embedding/viz/usd_converter.py,sha256=feDq2KrZhYL-RR1miECQL-y0VNDhnZQ9Wke5UOkYmp4,5329
35
+ ansys/mechanical/core/embedding/viz/utils.py,sha256=NWc18HLshIpO7wgZpwfduKG5wReaYtVtJPChOosKXLU,3638
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.3.dist-info/entry_points.txt,sha256=wRXPv0eRXSmodweJHjF_Y3x5wmeSmjWcY3Bo6B4tAiM,66
38
- ansys_mechanical_core-0.11.3.dist-info/LICENSE,sha256=gBJ2GQ6oDJwAWxcxmjx_0uXc-N0P4sHhA7BXsdPTfco,1098
39
- ansys_mechanical_core-0.11.3.dist-info/WHEEL,sha256=EZbGkh7Ie4PoZfRQ8I0ZuP9VklN_TvcZ6DSE5Uar4z4,81
40
- ansys_mechanical_core-0.11.3.dist-info/METADATA,sha256=T5av_2aczYMdArP_sqL4sdSA9k33-KcV8ToK6hwpQB0,9744
41
- ansys_mechanical_core-0.11.3.dist-info/RECORD,,
38
+ ansys_mechanical_core-0.11.5.dist-info/entry_points.txt,sha256=wRXPv0eRXSmodweJHjF_Y3x5wmeSmjWcY3Bo6B4tAiM,66
39
+ ansys_mechanical_core-0.11.5.dist-info/LICENSE,sha256=gBJ2GQ6oDJwAWxcxmjx_0uXc-N0P4sHhA7BXsdPTfco,1098
40
+ ansys_mechanical_core-0.11.5.dist-info/WHEEL,sha256=EZbGkh7Ie4PoZfRQ8I0ZuP9VklN_TvcZ6DSE5Uar4z4,81
41
+ ansys_mechanical_core-0.11.5.dist-info/METADATA,sha256=QYQc99eCeRJ-UXED0OJmcV9G6bEQJHAElvcClvCx9pk,9776
42
+ ansys_mechanical_core-0.11.5.dist-info/RECORD,,