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.
- ansys/mechanical/core/embedding/app.py +26 -20
- ansys/mechanical/core/embedding/background.py +106 -0
- ansys/mechanical/core/embedding/shims.py +8 -7
- ansys/mechanical/core/embedding/viz/{pyvista_plotter.py → embedding_plotter.py} +7 -10
- ansys/mechanical/core/embedding/viz/usd_converter.py +40 -16
- ansys/mechanical/core/embedding/viz/utils.py +29 -0
- {ansys_mechanical_core-0.11.3.dist-info → ansys_mechanical_core-0.11.5.dist-info}/METADATA +17 -17
- {ansys_mechanical_core-0.11.3.dist-info → ansys_mechanical_core-0.11.5.dist-info}/RECORD +11 -10
- {ansys_mechanical_core-0.11.3.dist-info → ansys_mechanical_core-0.11.5.dist-info}/LICENSE +0 -0
- {ansys_mechanical_core-0.11.3.dist-info → ansys_mechanical_core-0.11.5.dist-info}/WHEEL +0 -0
- {ansys_mechanical_core-0.11.3.dist-info → ansys_mechanical_core-0.11.5.dist-info}/entry_points.txt +0 -0
@@ -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
|
37
|
+
import ansys.tools.visualization_interface # noqa: F401
|
38
38
|
|
39
|
-
|
39
|
+
HAS_ANSYS_VIZ = True
|
40
40
|
"""Whether or not PyVista exists."""
|
41
41
|
except:
|
42
42
|
|
43
|
-
|
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
|
233
|
-
"""
|
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
|
-
|
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
|
-
|
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.
|
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.
|
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
|
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
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
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
|
72
|
-
"""Convert the app's geometry to
|
73
|
-
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.
|
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
|
-
|
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
|
105
|
-
"
|
106
|
-
stage
|
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
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
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
|
+
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==
|
31
|
-
Requires-Dist: ansys-sphinx-theme[autoapi]==0.
|
32
|
-
Requires-Dist: grpcio==1.
|
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.
|
39
|
-
Requires-Dist: numpydoc==1.
|
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.
|
42
|
-
Requires-Dist: plotly==5.
|
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.
|
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.
|
51
|
-
Requires-Dist: sphinx-gallery==0.
|
52
|
-
Requires-Dist: sphinx-notfound-page==1.0.
|
53
|
-
Requires-Dist: sphinxcontrib-websupport==
|
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.
|
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:
|
59
|
-
Requires-Dist: usd-core==24.
|
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=
|
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=
|
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/
|
33
|
-
ansys/mechanical/core/embedding/viz/usd_converter.py,sha256=
|
34
|
-
ansys/mechanical/core/embedding/viz/utils.py,sha256=
|
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.
|
38
|
-
ansys_mechanical_core-0.11.
|
39
|
-
ansys_mechanical_core-0.11.
|
40
|
-
ansys_mechanical_core-0.11.
|
41
|
-
ansys_mechanical_core-0.11.
|
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,,
|
File without changes
|
File without changes
|
{ansys_mechanical_core-0.11.3.dist-info → ansys_mechanical_core-0.11.5.dist-info}/entry_points.txt
RENAMED
File without changes
|