Output model data as tikz code in latex#

opstool.vis.save_tikz(input_file, output_file='ModelData.tex', point_size=5, line_width=3, face_opacity=0.6, solid_opacity=0.6, point_opacity=0.8, line_opacity=1.0, azimuth=60, elevation=135, show_beam_sec=False, beam_sec_paras=None, color_dict=None)[source]#

Save the OpenSeesPy model data as a tikz command file in latex, and then you can open it in your local tex editor, or run it online in overleaf.

Tip

You can adjust the 3D perspective via parameters azimuth and elevation. Or find the following command \tdplotsetmaincoords{}{} in the .tex file, you can change it manually, the first is azimuth, the second is elevation.

Parameters#

input_filestr

The input model data file, e.g., “opstool_output/ModelData.hdf5”.

output_filestr, optional

The output tex file contains the tikz commands, by default “ModelData.tex”

point_sizefloat, optional

The point size in pt unit, by default 5

line_widthfloat, optional

The line width in pt unit, by default 3

face_opacityfloat, optional

The opacity of face elements, by default 0.75

solid_opacityfloat, optional

The opacity of solid elements, by default 0.75

point_opacityfloat, optional

The opacity of point, by default 0.75

line_opacityfloat, optional

The opacity of line elements, by default 1.0

azimuth: float = 60, optional

Set the azimuth of the camera, by default 60

elevation: float = 135, optional

Set the elevation of the camera, by default 135

show_beam_sec: bool default = False

Whether to render the 3d section of beam or truss elements. If True, the Arg beam_sec in opstool.vis.GetFEMdata.get_model_data() must be assigned in advance.

beam_sec_paras: dict defalut = None,

A dict to control beam section render, optional key: color, opacity.

color_dictdict, optional

The color of each type of element, by default None. The valid color string must be one of the xcolor package. If None, color_dict = dict(point=”Maroon”, line=”Blue”, face=”Green”, solid=”Violet”, truss=”pink”, link=”SkyBlue”, constraint=”Lime”)

Example#

import openseespy.opensees as ops
import opstool as opst

# opst.load_ops_examples("ArchBridge")
opst.load_ops_examples("CableStayedBridge")
# opst.load_ops_examples("Dam")
# opst.load_ops_examples("Frame3D")
# opst.load_ops_examples("Igloo")
# opst.load_ops_examples("Pier")
# opst.load_ops_examples("SuspensionBridge")

# ------------------------
# or your model code here
# ------------------------

ModelData = opst.GetFEMdata(results_dir="opstool_output")
ModelData.get_model_data(save_file="ModelData.hdf5")

opst.save_tikz("opstool_output/ModelData.hdf5", "ModelData.tex")

You can open and compile the generated file ModelData.tex in overleaf

../../_images/save_tikz.png