Source code generation#
Source code is automatically generated from the name of the commands and the parameters defined in the documentation.
Here are the initial command and then the default Python code that this command generates:
ACEL,ACEL_X,ACEL_Y,ACEL_Z
def acel(self, acel_x="", acel_y="", acel_z="", **kwargs):
command = f"ACEL,{acel_x},{acel_y},{acel_z}"
return self.run(command, **kwargs)
Customized functions#
The converter can handle code generation for functions that require a
customized code. To specify the folder containing these files, you must
be specified the -f
or --func-path
arguments in the command for
generating the code:
pyconverter-xml2py package -x XML_directory_path -f customized_function_directory_path
In this configuration, the provided code is used for the conversion.
Additionally, any Returns and Examples sections are taken into account and added to the Python docstring:
L2ANG,NL1,NL2,ANG1,ANG2,PHIT1,PHIT2
import parse
def l2ang(self, nl1="", nl2="", ang1="", ang2="", phit1="", phit2="", **kwargs) -> int:
"""Generates a line at an angle with two existing lines.
APDL Command: L2ANG
Generates a straight line (PHIT1-PHIT2) at an angle (ANG1)
with an existing line NL1 (P1-P2) and which is also at an
angle (ANG2) with another existing line NL2 (P3-P4). If the
angles are zero the generated line is tangent to the two
lines. The PHIT1 and PHIT2 locations on the lines are
automatically calculated. Line P1-P2 becomes P1-PHIT1, P3-P4
becomes P3-PHIT2, and new lines PHIT1-P2, PHIT2-P4, and
PHIT1-PHIT2 are generated. Line divisions are set to zero
(use LESIZE, etc. to modify).
Parameters
----------
nl1
Number of the first line to be hit (touched by the end of
the new line). If negative, assume P1 (see below) is the
second keypoint of the line instead of the first.
nl2
Number of the second line to be hit. If negative, assume
P3 is the second keypoint of the line instead of the
first.
ang1
Angle of intersection (usually zero or 180) of generated
line with tangent to first line.
ang2
Angle of intersection (usually zero or 180) of generated
line with tangent to second line.
phit1
Number to be assigned to keypoint generated at hit
location on first line (defaults to lowest available
keypoint number [NUMSTR]).
phit2
Number to be assigned to keypoint generated at hit
location on second line (defaults to lowest available
keypoint number [NUMSTR]).
Returns
-------
int
Line number of the generated line.
Examples
--------
Create two circles and join them with a line.
>>> k0 = mapdl.k("", 0, 0, 0)
>>> k1 = mapdl.k("", 0, 0, 1)
>>> k2 = mapdl.k("", 0, 0, 0.5)
>>> carc0 = mapdl.circle(k0, 1, k1)
>>> carc1 = mapdl.circle(k2, 1, k1)
>>> lnum = mapdl.l2ang(carc0[0], carc1[0], 90, 90)
>>> lnum
9
"""
command = f"L2ANG,{nl1},{nl2},{ang1},{ang2},{phit1},{phit2}"
msg = self.run(command, **kwargs)
if msg:
return parse.parse_line_no(msg)
import parse
def l2ang(self, nl1="", nl2="", ang1="", ang2="", phit1="", phit2="", **kwargs):
r"""Generates a line at an angle with two existing lines.
Mechanical APDL Command: L2ANG <https://ansyshelp.ansys.com/Views/Secured/corp/v231/en//ans_cmd/Hlp_C_L2ANG.html>`_
Parameters
----------
nl1: str
Number of the first line to be hit (touched by the end of the new line). If negative, assume ``P1`` (see below) is the second keypoint of the line instead of the first
nl2: str
Number of the second line to be hit. If negative, assume ``P3`` is the second keypoint of the line instead of the first.
ang1: str
Angle of intersection (usually zero or 180) of generated line with tangent to first line.
ang2: str
Angle of intersection (usually zero or 180) of generated line with tangent to second line.
phit1: str
Number to be assigned to keypoint generated at hit location on first line (defaults to lowest available keypoint number ( :ref:`numstr` )).
phit2: str
Number to be assigned to keypoint generated at hit location on second line (defaults to lowest available keypoint number ( :ref:`numstr` )).
Returns
-------
int
Line number of the generated line.
Notes
-----
Generates a straight line ( ``PHIT1`` - ``PHIT2`` ) at an angle ( ``ANG1`` ) with an existing line ``NL1`` ( ``P1`` - ``P2`` ) and which is also at an angle ( ``ANG2`` ) with another existing line ``NL2`` ( ``P3`` - ``P4`` ). If the angles are zero the generated line is tangent to the two lines. The ``PHIT1`` and ``PHIT2`` locations on the lines are automatically calculated. Line ``P1`` - ``P2`` becomes ``P1`` - ``PHIT1``, ``P3`` - ``P4`` becomes ``P3`` - ``PHIT2``, and new lines ``PHIT1`` - ``P2``, ``PHIT2`` - ``P4``, and ``PHIT1`` - ``PHIT2`` are generated. Line divisions are set to zero (use :ref:`lesize`, etc. to modify).
Examples
--------
Create two circles and join them with a line.
>>> k0 = mapdl.k("", 0, 0, 0)
>>> k1 = mapdl.k("", 0, 0, 1)
>>> k2 = mapdl.k("", 0, 0, 0.5)
>>> carc0 = mapdl.circle(k0, 1, k1)
>>> carc1 = mapdl.circle(k2, 1, k1)
>>> lnum = mapdl.l2ang(carc0[0], carc1[0], 90, 90)
>>> lnum
9
"""
command = f"L2ANG,{nl1},{nl2},{ang1},{ang2},{phit1},{phit2}"
msg = self.run(command, **kwargs)
if msg:
return parse.parse_line_no(msg)