import typing
from abaqusConstants import *
from .Path import Path
from .Spectrum import Spectrum
from .Stream import Stream
from ..Session.SessionBase import SessionBase
[docs]class PathSession(SessionBase):
[docs] def Path(self, name: str, type: SymbolicConstant, expression: tuple,
circleDefinition: SymbolicConstant, numSegments: int, startAngle: float,
endAngle: float, radius: typing.Union[SymbolicConstant, float], radialAngle: float,
startRadius: typing.Union[SymbolicConstant, float],
endRadius: typing.Union[SymbolicConstant, float]) -> Path:
"""This method creates a Path object.
Notes
-----
This function can be accessed by:
.. code-block:: python
session.Path
Parameters
----------
name
A String specifying the repository key.
type
A SymbolicConstant specifying the type of path being created. Possible values are
NODE_LIST, POINT_LIST, EDGE_LIST, CIRCUMFERENTIAL, and RADIAL.
expression
A sequence specifying the nodes or points that make up the path. The definition of the
path expression depends on the *type* argument.
- If *type*=NODE_LIST, *expression* must be a sequence of sequences. Each inner sequence
contains two items, the first item is a String specifying the name of a part instance,
and the second item can be either a sequence of Ints or a sequence of Strings, each
specifying a range of Ints.
- If *type*=POINT_LIST, *expression* must be a sequence of tuples of three Floats,
specifying the coordinates of each point.
- If *type*=EDGE_LIST, *expression* must be a sequence of sequences. Each inner sequence
contains two items, the first item is a String specifying the name of the part instance,
and the second item is a sequence of tuples of four Ints that uniquely identify an
element edge. The four Ints are:
1. The element label.
2. The element face index (one-based).
3. The face edge index (one-based).
4. The edge direction. A positive number specifies that the edge direction runs from the
edge start node to the edge end node. A negative number specifies the opposite.
- When *type*=CIRCUMFERENTIAL or RADIAL, *expression* must be a sequence of three tuples
of three Floats, specifying the coordinates of the points used to define a coordinate
system.
circleDefinition
A SymbolicConstant specifying the method in which the circle is being defined. This
argument is valid only when *type*=CIRCUMFERENTIAL or RADIAL. Possible values are
ORIGIN_AXIS and POINT_ARC.When the value is ORIGIN_AXIS, the first two points in
*expression* are points on the rotational axis and the third point lies on the x-axis.
When the value is POINT_ARC, the three points in *expression* are points lying on the
arc of the circle.
numSegments
An Int specifying the number of equal segments in the path. This argument is valid only
when *type*=CIRCUMFERENTIAL or RADIAL.
startAngle
A Float specifying the start angle of the circumferential path. This argument is valid
only when *type*=CIRCUMFERENTIAL.
endAngle
A Float specifying the end angle of the circumferential path. This argument is valid
only when *type*=CIRCUMFERENTIAL.
radius
The SymbolicConstant CIRCLE_RADIUS or a Float specifying the radius of the
circumferential path. This argument is valid only when *type*=CIRCUMFERENTIAL.
radialAngle
A Float specifying the angle between the radial path and the *X*-axis of the specified
coordinate system. This argument is valid only when *type*=RADIAL.
startRadius
The SymbolicConstant CIRCLE_RADIUS or a Float specifying the start radius of the radial
path. This argument is valid only when *type*=RADIAL.
endRadius
The SymbolicConstant CIRCLE_RADIUS or a Float specifying the end radius of the radial
path. This argument is valid only when *type*=RADIAL.
Returns
-------
A Path object.
Raises
------
ModelError, ErrorUnsupportedNodeData, ErrorUnsupportedPointData, ErrorIncorrectPathData,
KeyError, ErrorEmptyPathName, ErrorPathNotFound, and ErrorNoOdbPathDisplay.
ValueError: When *type*=CIRCUMFERENTIAL or RADIAL, the three points specified in
*expression* are collinear.
"""
self.paths[name] = path = Path(name, type, expression, circleDefinition, numSegments, startAngle, endAngle,
radius, radialAngle, startRadius, endRadius)
return path
[docs] def Spectrum(self, name: str, colors: tuple) -> Spectrum:
"""This method creates a Spectrum object and places it in the spectrums repository.
Notes
-----
This function can be accessed by:
.. code-block:: python
session.Spectrum
Parameters
----------
name
A string name for the spectrum.
colors
A sequence of strings indicating the colors of the spectrum.
Returns
-------
A Spectrum object.
"""
self.spectrums[name] = spectrum = Spectrum(name, colors)
return spectrum
[docs] def Stream(self, name: str, numPointsOnRake: str, pointA: tuple = (), pointB: tuple = (), path: str = '') -> Stream:
"""This method creates aStream object and places it in the streams repository.
Notes
-----
This function can be accessed by:
.. code-block:: python
session.Stream
Parameters
----------
name
A string name for the stream.
numPointsOnRake
An integer specifying the number of points along the rake.
pointA
A tuple of 3 floats specifying the starting point of the rake. Alternatively, a string
representation of the node selected in the viewport.
pointB
A tuple of 3 floats specifying the end point of the rake. Alternatively, a string
representation of the node selected in the viewport.
path
APath object that specifies the rake.
Returns
-------
A Stream object.
"""
self.streams[name] = stream = Stream(name, numPointsOnRake, pointA, pointB, path)
return stream