symbrim.utilities.plotting.PlotConnection

class symbrim.utilities.plotting.PlotConnection(inertial_frame: ReferenceFrame, zero_point: Point, connection: ConnectionBase, plot_submodels: bool = True, plot_load_groups: bool = True)

Bases: PlotBrimMixin, MplPlotBase

Plot object of a SymBRiM connection.

Attributes

annot_coords

Coordinate where the annotation text is displayed.

artists

Artists used to plot the object.

children

Child objects in the plot hierarchy.

connection

The SymBRiM connection, which is being plotted.

inertial_frame

The reference frame with respect to which the object is oriented.

load_groups

Plot objects of the load groups.

name

Name of the plot object.

plot_objects

Plot objects.

submodels

Plot objects of the submodels.

sympy_object

The absolute origin with respect to which the object is positioned.

values

List of evaluated values for the object's variables.

visible

If the object is be visible in the plot.

zero_point

The absolute origin with respect to which the object is positioned.

Methods

__init__

Initialize a plot object of a connection.

add_artist

Add an artist to the plot object.

add_body

Add a sympy body to the scene.

add_frame

Add a sympy ReferenceFrame to the scene.

add_line

Add a sympy Vector to the scene.

add_plot_object

Add a plot object to the scene.

add_point

Add a sympy Vector to the scene.

add_vector

Add a sympy Vector to the scene.

contains

Boolean whether one of the artists contains the event.

get_expressions_to_evaluate

Return a tuple of the necessary expressions for plotting.

get_plot_object

Return the plot_object based on a sympy object.

get_sympy_object_exprs

Get coordinate of the point as expressions.

plot

Plot the associated plot objects.

update

Update the objects on the scene, based on the currect values.

__init__(inertial_frame: ReferenceFrame, zero_point: Point, connection: ConnectionBase, plot_submodels: bool = True, plot_load_groups: bool = True) None

Initialize a plot object of a connection.

Parameters:
  • inertial_frame (ReferenceFrame) – The reference frame with respect to which all objects will be oriented.

  • zero_point (Point) – The absolute origin with respect to which all objects will be positioned.

  • connection (ConnectionBase) – The SymBRiM connection, which is being plotted.

  • plot_submodels (bool, optional) – Whether to plot the submodels, by default True.

  • plot_load_groups (bool, optional) – Whether to plot the load groups, by default True.

__repr__()

Representation showing some basic information of the instance.

__str__()

Return str(self).

__weakref__

list of weak references to the object (if defined)

add_artist(artist: ArtistBase, exprs: Expr | tuple[Expr, ...])

Add an artist to the plot object.

Parameters:
  • artist (ArtistBase) – The artist to be added.

  • exprs (expression or tuple of expressions) – Args used to update the artist in the form of expressions.

add_body(body, **kwargs)

Add a sympy body to the scene.

Parameters:
  • body (RigidBody or Particle) – The body that should be plotted.

  • **kwargs (dict, optional) – Kwargs that are parsed to both internally used plot objects.

Returns:

The added plot object.

Return type:

PlotBody

add_frame(frame: ReferenceFrame, origin: Point | Vector | None = None, **kwargs)

Add a sympy ReferenceFrame to the scene.

Parameters:
  • frame (ReferenceFrame) – The reference frame that should be plotted.

  • origin (Point, Vector, optional) – The origin of the reference frame. Default is the zero_point.

  • **kwargs (dict, optional) – Kwargs that are parsed to plot object.

Returns:

The added plot object.

Return type:

PlotFrame

add_line(points: Iterable[Point | Vector], name: str | None = None, **kwargs)

Add a sympy Vector to the scene.

Parameters:
  • points (list of Point or Vector) – The points or vectors through which the line should be plotted.

  • name (str, optional) – The name of the line. Default is None.

  • **kwargs – Kwargs that are parsed to plot object.

Returns:

The added plot object.

Return type:

PlotLine

add_plot_object(plot_object: PlotBase)

Add a plot object to the scene.

Parameters:

plot_object (PlotBase) – The plot object that should be added.

add_point(point: Point | Vector, **kwargs) type[PlotBase]

Add a sympy Vector to the scene.

Parameters:
  • point (Point or Vector) – The point or vector to be plotted as point in space.

  • **kwargs – Keyword arguments are parsed to the plot object.

Returns:

The added plot object.

Return type:

PlotPoint

add_vector(vector: Vector, origin: Point | Vector | None = None, **kwargs)

Add a sympy Vector to the scene.

Parameters:
  • vector (Vector) – The vector that should be plotted with respect to the zero_point.

  • origin (Point, Vector, optional) – The origin of the reference frame. Default is the zero_point.

  • **kwargs (dict, optional) – Kwargs that are parsed to the plot object.

Returns:

The added plot object.

Return type:

PlotVector

property annot_coords: ndarray[float64]

Coordinate where the annotation text is displayed.

property artists: tuple[ArtistBase, ...]

Artists used to plot the object.

property children: tuple[PlotBase, ...]

Child objects in the plot hierarchy.

property connection: ConnectionBase

The SymBRiM connection, which is being plotted.

contains(event)

Boolean whether one of the artists contains the event.

get_expressions_to_evaluate() tuple

Return a tuple of the necessary expressions for plotting.

get_plot_object(sympy_object: Any | str) PlotBase | None

Return the plot_object based on a sympy object.

Explanation

Return the plot_object based on a provided sympy object. For example ReferenceFrame('N') will give the PlotFrame of that reference frame. If the plot_object has not been added it will return None.

Parameters:

sympy_object (Any or str) – SymPy object to search for. If it is a string it will search for the name.

Returns:

Retrieved plot object.

Return type:

PlotBase or None

get_sympy_object_exprs() tuple[Expr, Expr, Expr]

Get coordinate of the point as expressions.

property inertial_frame: ReferenceFrame

The reference frame with respect to which the object is oriented.

property load_groups: tuple[PlotLoadGroup, ...]

Plot objects of the load groups.

property name: str

Name of the plot object. Default is the name of the object being plotted.

plot(ax=None)

Plot the associated plot objects.

Explanation

Add the objects artists to the matplotlib axes. Note that the object should be evaluated before plotting.

Parameters:

ax (matplotlib.axes._subplots.Axes3DSubplot, optional) – Axes on which the artist should be added. The default is the active axes.

property plot_objects: tuple[PlotBase, ...]

Plot objects.

property submodels: tuple[PlotModel, ...]

Plot objects of the submodels.

property sympy_object: Any

The absolute origin with respect to which the object is positioned.

update() None

Update the objects on the scene, based on the currect values.

property values: tuple

List of evaluated values for the object’s variables.

property visible: bool

If the object is be visible in the plot.

property zero_point: Point

The absolute origin with respect to which the object is positioned.