Skip to content
LIBRARY
PlanarMechanics.FrameVisualizer2D.md

PlanarMechanics.FrameVisualizer2D

Visualizes a 2D frame as three colored axis cylinders (red=x, green=y, blue=z).

Attach to any Frame2D connector to display its coordinate axes. The z-axis is not part of the 2D frame but is drawn perpendicular to the plane for visual reference.

This component extends from MultibodyComponents.Renderable

Usage

MultibodyComponents.PlanarMechanics.FrameVisualizer2D(render=true, color=[0.5, 0.5, 0.5, 1.0], specular_coefficient=1.5, axis_length=MultibodyComponents.world_default_joint_length(), axis_radius=axis_length / 20, z_position=0)

Parameters:

NameDescriptionUnitsDefault value
rendertrue
color[0.5, 0.5, 0.5, 1.0]
specular_coefficient1.5
axis_lengthLength of the axis arrowsMultibodyCo...nt_length()
axis_radiusRadius of the axis cylindersaxis_length / 20
z_positionz-position in animations0

Connectors

  • frame_a - Coordinate system (2-dim.) fixed to the component with one cut-force and cut-torque.

All variables are resolved in the planar world frame. (Frame2D)

Variables

NameDescriptionUnits
phiFrame anglerad

Behavior

Dict{MIME{Symbol("text/plain")}, String} with 1 entry: MIME type text/plain => "Error displaying result"

Source

dyad
"""
Visualizes a 2D frame as three colored axis cylinders (red=x, green=y, blue=z).

Attach to any Frame2D connector to display its coordinate axes. The z-axis
is not part of the 2D frame but is drawn perpendicular to the plane for
visual reference.
"""
component FrameVisualizer2D
  extends MultibodyComponents.Renderable
  frame_a = Frame2D() {}
  "X-axis shape (red)"
  x_shape = MultibodyComponents.CylinderShape(color = [1, 0, 0, 1], r = [frame_a.x, frame_a.y, z_position], R = MultibodyComponents.RR(MultibodyComponents.axis_rotation(3, phi)), width_direction = [0, 0, 1], length = axis_length, width = 2 * axis_radius, height = 2 * axis_radius)
  "Y-axis shape (green)"
  y_shape = MultibodyComponents.CylinderShape(color = [0, 1, 0, 1], r = [frame_a.x, frame_a.y, z_position], R = MultibodyComponents.RR(MultibodyComponents.axis_rotation(3, phi)), length_direction = [0, 1, 0], width_direction = [0, 0, 1], length = axis_length, width = 2 * axis_radius, height = 2 * axis_radius)
  "Z-axis shape (blue)"
  z_shape = MultibodyComponents.CylinderShape(color = [0, 0, 1, 1], r = [frame_a.x, frame_a.y, z_position], R = MultibodyComponents.RR(MultibodyComponents.axis_rotation(3, phi)), length_direction = [0, 0, 1], width_direction = [1, 0, 0], length = axis_length, width = 2 * axis_radius, height = 2 * axis_radius)
  "Length of the axis arrows"
  parameter axis_length::Real = MultibodyComponents.world_default_joint_length()
  "Radius of the axis cylinders"
  parameter axis_radius::Real = axis_length / 20
  "z-position in animations"
  parameter z_position::Real = 0
  "Frame angle"
  variable phi::Angle
relations
  phi = frame_a.phi
end
Flattened Source
dyad
"""
Visualizes a 2D frame as three colored axis cylinders (red=x, green=y, blue=z).

Attach to any Frame2D connector to display its coordinate axes. The z-axis
is not part of the 2D frame but is drawn perpendicular to the plane for
visual reference.
"""
component FrameVisualizer2D
  parameter render::Boolean = true
  parameter color::Real[4] = [0.5, 0.5, 0.5, 1.0]
  parameter specular_coefficient::Real = 1.5
  frame_a = Frame2D() {}
  "X-axis shape (red)"
  x_shape = MultibodyComponents.CylinderShape(color = [1, 0, 0, 1], r = [frame_a.x, frame_a.y, z_position], R = MultibodyComponents.RR(MultibodyComponents.axis_rotation(3, phi)), width_direction = [0, 0, 1], length = axis_length, width = 2 * axis_radius, height = 2 * axis_radius)
  "Y-axis shape (green)"
  y_shape = MultibodyComponents.CylinderShape(color = [0, 1, 0, 1], r = [frame_a.x, frame_a.y, z_position], R = MultibodyComponents.RR(MultibodyComponents.axis_rotation(3, phi)), length_direction = [0, 1, 0], width_direction = [0, 0, 1], length = axis_length, width = 2 * axis_radius, height = 2 * axis_radius)
  "Z-axis shape (blue)"
  z_shape = MultibodyComponents.CylinderShape(color = [0, 0, 1, 1], r = [frame_a.x, frame_a.y, z_position], R = MultibodyComponents.RR(MultibodyComponents.axis_rotation(3, phi)), length_direction = [0, 0, 1], width_direction = [1, 0, 0], length = axis_length, width = 2 * axis_radius, height = 2 * axis_radius)
  "Length of the axis arrows"
  parameter axis_length::Real = MultibodyComponents.world_default_joint_length()
  "Radius of the axis cylinders"
  parameter axis_radius::Real = axis_length / 20
  "z-position in animations"
  parameter z_position::Real = 0
  "Frame angle"
  variable phi::Angle
relations
  phi = frame_a.phi
metadata {}
end


Test Cases

No test cases defined.

  • Examples

  • Experiments

  • Analyses