cape.tricli: Interfaces to .tri and related files

This module includes functions to interface with triangulated surface files and provides interfaces accessible from the command line.

Many of these functions perform conversions, for example uh3d2tri() reads a UH3D file and converts it to Cart3D .tri format.

cape.tricli.main_step2crv()

CLI for step2crv()

Call:
>>> main_step2crv()
Versions:
  • 2021-10-15 @ddalle: Version 1.0

cape.tricli.main_steptri2crv()

CLI for steptri2crv()

Call:
>>> main_steptri2crv()
Versions:
  • 2021-10-15 @ddalle: Version 1.0

cape.tricli.main_tri2plt()

CLI for tri2plt()

Call:
>>> main_tri2plt()
Versions:
  • 2021-10-01 @ddalle: Version 1.0

cape.tricli.main_tri2surf()

CLI for tri2surf()

Call:
>>> main_tri2surf()
Versions:
  • 2021-10-12 @ddalle: Version 1.0

cape.tricli.main_tri2uh3d()

CLI for tri2uh3d()

Call:
>>> main_tri2uh3d()
Versions:
  • 2021-10-01 @ddalle: Version 1.0

cape.tricli.main_uh3d2tri()

CLI for uh3d2tri()

Call:
>>> main_uh3d2tri()
Versions:
  • 2021-10-01 @ddalle: Version 1.0

cape.tricli.step2crv(*a, **kw)

Write the curves from a STEP file to Plot3D multiple curve file

Call:
>>> step2crv(fstp, fcrv, **kw)
>>> step2crv(i=fstp, o=fcrv, **kw)
Inputs:
fstp: str

Name of input file

fcrv: str

Name of output file (defaults to value of fstp but with .crv in the place of .stp or .step)

n: int

Number of intervals to use

ds: float

Upper bound of uniform spacing

dth: float | {None}

Maximum allowed turning angle in degrees

da: float | {None}

Maximum allowed length-weighted turning angle

link: True | False | {"x"} | "-x"

Whether or not to link curves and if so using which axis to use for sorting

xtol: float | str

Tolerance for x-coordinates to be truncated to zero

ytol: float | str

Tolerance for y-coordinates to be truncated to zero

ztol: float | str

Tolerance for z-coordinates to be truncated to zero

Versions:
  • 2016-05-10 @ddalle: Version 1.0

  • 2021-10-15 @ddalle: Version 2.0; in cape.tricli

cape.tricli.steptri2crv(*a, **kw)

Write Plot3D curves of .tri nodes near .stp curves

Read curves from a STEP file and use these to subset nodes from a surface triangulation. Each curve is written as a series of points, and the combined output is written to a Plot3D multiple curve file.

Call:
>>> steptri2crv(fstp, **kw)
>>> steptri2crv(fstp, ftri, **kw)
>>> steptri2crv(fstp, ftri, fcrv, **kw)
>>> steptri2crv(stp=fstp, tri=ftri, o=fcrv, **kw)
Inputs:
fstp: str

Name of input STEP file

ftri: str

Name of input TRI file (defaults to fstp with .tri in place of .stp or .step)

fcrv: str

Name of output Plot3D curve file (defaults to fstp with .crv in place of .stp or .step)

sp: True | {False}

Write curves as single-precision file

ascii: True | {False}

Write curves as text file

endian: {None} | "big" | "little"

Byte order

r4, b4: True | {False}

Write single-precision big-endian

r8, b8: True | {False}

Write double-precision big-endian

lr4, lb4: True | {False}

Write single-precision little-endian

lr8, lb8: True | {False}

Write double-precision little-endian

Versions:
  • 2016-09-29 @ddalle: Version 1.0

  • 2021-10-15 @ddalle: Version 2.0

cape.tricli.tri2plt(*a, **kw)

Convert a UH3D triangulation file to Cart3D .tri format

Call:
>>> tri2plt(ftri, **kw)
>>> tri2plt(ftri, fplt, **kw)
>>> tri2plt(i=ftri, o=fplt, **kw)
Inputs:
ftri: str

Name of input file; can be any readable TRI or TRIQ format

fplt: {None} | str

Name of PLT file to create; defaults to tri with the .tri replaced by .plt

dat: {None} | True | False

Write output file as ASCII format

plt: {None} | true | False

Opposite of dat; default is to guess bases on fplt

c: str

Surface config file, guess type from file name

json: {None} | str

JSON surface config file

mixsur: {None} | str

MIXSUR/USURP surface config file

xml: {None} | str

XML surface config file

v: True | {False}

Verbose output while creating PLT instance

triq: True | False

Manually specify triq file input (default determined by file extension of ftri)

Versions:
  • 2016-04-05 @ddalle: Version 1.0

  • 2021-10-01 @ddalle: Version 2.0

cape.tricli.tri2surf(*a, **kw)

Convert a triangulated surface to AFLR3 .surf format

Call:
>>> Tri2Surf(tri, surf, bc=None)
>>> Tri2Surf(i=tri, o=surf, bc=None)
Inputs:
tri: str

Name of input file

surf: str

Name of output file (defaults to tri with .surf as the extension in the place of .tri)

bc: str

(Optional) name of boundary condition file to apply

Versions:
  • 2015-11-19 @ddalle: Version 1.0; Tri2Surf()

  • 2021-10-12 @ddalle: Version 2.0;
cape.tricli.tri2uh3d(*a, **kw)

Convert a UH3D triangulation file to Cart3D tri format

Call:
>>> tri2uh3d(ftri, **kw)
>>> tri2uh3d(ftri, fuh3d, **kw)
>>> tri2uh3d(i=ftri, o=fuh3d, **kw)
Inputs:
ftri: str

Name of input file

fuh3d: str

Name of output file

c: str

Surface config file, guess type from file name

json: {None} | str

JSON surface config file

mixsur: {None} | str

MIXSUR/USURP surface config file

xml: {None} | str

XML surface config file

h: True | {False}

Display help and exit if True

Versions:
  • 2015-04-17 @ddalle: Version 1.0

  • 2021-10-01 @ddalle: Version 2.0

cape.tricli.uh3d2tri(*a, **kw)

Convert a UH3D triangulation file to Cart3D .tri format

Call:
>>> uh3d2tri(uh3d, tri, c=None, **kw)
>>> uh3d2tri(i=uh3d, o=tri, c=None, **kw)
Inputs:
uh3d: str

Name of input file

tri: str

Name of output file (defaults to value of uh3d but with .tri as the extension in the place of .uh3d)

c: str

(Optional) name of configuration file to apply

ascii: {True} | False

Write tri as an ASCII file (default)

binary: True | {False}

Write tri as an unformatted Fortran binary file

byteorder: {None} | "big" | "little"

Override system byte order using either ‘big’ or ‘little’

bytecount: {4} | 8

Use a PREC of 4 for single- or 8 for double-precision

xtol: {None} | float

Tolerance for x-coordinates to be truncated to zero

ytol: {None} | float

Tolerance for y-coordinates to be truncated to zero

ztol: {None} | float

Tolerance for z-coordinates to be truncated to zero

dx: {None} | float

Distance to translate all nodes in x direction

dy: {None} | float

Distance to translate all nodes in y direction

dz: {None} | float

Distance to translate all nodes in z direction

Versions:
  • 2014-06-12 @ddalle: Version 1.0

  • 2015-10-09 @ddalle: Version 1.1; Config.xml and ytol

  • 2016-08-18 @ddalle: Version 1.2; Binary output option