MdlLikeMethods#

This module contains functions that can be helpful during the construction of simple models.

Orientation(angles=None, degrees=False, rm=None, axis_type=None, axis=None, origin=Point(0.0, 0.0, 0.0), plane_type=None, plane=None, mirror=False)#

Returns the orientation for all supported MDL methods.

This includes:

  1. One Axis - ‘axis_type’ points to ‘axis’, where:

  • axis_type can be “X”, “Y” or “Z”,

  • axis can be Point, Vector or list [DxDyDz] or (Dx,Dy,Dz).

  1. Two Axes - ‘axis_type’ points to ‘axis’, ‘plane_type’ lies in ‘plane’, where:

  • plane_type can be “XY”, “XZ”, “YX”, “YZ”, “ZX”, “ZY”,

  • plane can be Point, Vector or list [DxDyDz] or (Dx,Dy,Dz).

  1. Angles

  • angles are the euler angles with respect to the rm marker in Deg or Rad.

Parameters
  • angles – Euler angles that define the orientation.

  • degrees (bool) – Specify whether Euler angles are specified in radian or degree.

  • rm (Marker) – Reference marker upon which the orientation is defined.

  • axis_type (Enum) – Specify which axis is defined by the argument axis.

  • axis – Define the direction of the axis. Choose from “X”, “Y”, “Z”.

  • origin (Point) – Define the origin. It is only used when axis or plane is defined by Point.

  • plane_type (Enum) – Specify the second axis defined by the argument plane. Choose from “XY”, “XZ”, “YX”, “YZ”, “ZX”, “ZY”.

  • plane – Define the direction of the second axis.

  • mirror

Returns

Two Points specifying the z-axis and x-axis of the Orientation.

createBeam(id, i, j, label='', type='arbitrary', length=1, E=1, G=1, CRatio=1, AS2=1, AS3=1, OD=1, ID=1, AS=1, P2_DIM=1, P3_DIM=1, Area=1, I11=1, I22=1, I33=1, Fx=0, Fy=0, Fz=0, Tx=0, Ty=0, Tz=0)#

Create a Beam between markers i and j. The Beam object maintains its designability.

Parameters
  • id (bool) – ID of Beam

  • i (Marker) – Marker i of Beam.

  • j (Marker) – Marker j of Beam.

  • label (str) – Label of Beam.

  • type (Enum) – Type of Beam. Choose from “arbitrary”, “rectangular”, “circular”.

  • length (Double) – Length of Beam.

  • E (Double) – Young’s modulus.

  • G (Double) – Shear modulus.

  • CRatio (Double) – Damping ratio of Beam.

  • AS2 (Double) – Shear area ratio in the y direction.

  • AS3 (Double) – Shear area ratio in the z direction.

  • OD (Double) – Outer diameter of circular beam.

  • ID (Double) – Inner diameter of circular beam.

  • AS (Double) – Shear area ratio of circular beam.

  • P2_DIM (Double) – Y dimension of rectangular beam.

  • P3_DIM (Double) – Z dimension of rectangular beam.

  • Area (Double) – Cross sectional area of arbitrary beam.

  • I11 (Double) – Torsional stiffness shape factor for the cross-section of arbitrary beam.

  • I22 (Double) – The second moment of inertia about the y axis of arbitrary beam.

  • I33 (Double) – The second moment of inertia about the z axis of arbitrary beam.

  • Fx (Double) – Translational preload force along x,y,z axes.

  • Fy (Double) – Translational preload force along x,y,z axes.

  • Fz (Double) – Translational preload force along x,y,z axes.

  • Tx (Double) – Rotational preload torque along x,y,z axes.

  • Ty (Double) – Rotational preload torque along x,y,z axes.

  • Tz (Double) – Rotational preload torque along x,y,z axes.

Returns

A Beam entity.

createCurveFor2DContact(paramCurveI, paramCurveJ, designableIndexI=[], boundsI=[], designableIndexJ=[], boundsJ=[])#

Create 2 curves that can be used to define a 2D Contact. The user can specify which points need to be made designable in the new curves created.

Parameters
  • paramCurveI (Curve) – The first parametric curve upon which 2D contact is defined.

  • paramCurveJ (Curve) – The second parametric curve upon which 2D contact is defined.

  • designableIndexI – Specify the points in Curve I that should be made designable.

  • designableIndexJ – Specify the points in Curve J that should be made designable.

  • boundsI – Specify the upper and lower bounds of designable points in Curve I.

  • boundsJ – Specify the upper and lower bounds of designable points in Curve J.

Returns

Two Curve entities that are equivalent to paramCurveI, paramCurveJ, and can be used for 2D Contact.

createNewCurve(paramCurve, normal, designableIndex, bounds)#

Create a new Curve that can be used for 2D Contact.

Parameters
  • paramCurve (Curve) – The original Curve entity.

  • normal (Vector) – The normal vector determined by the same strategy as MV.

  • designableIndex – Specify the points in Curve that should be made designable.

  • bounds – Specify the upper and lower bounds of the designable points.

Returns

The new Curve entity created.

generateExpression(request, component=1)#

Generate the solver expression for request object when its type is in:

  • DISPLACEMENT

  • VELOCITY

  • ACCELERATION

  • FORCE

Parameters
  • request (Request) – A Request object. All properties of that request must be specified and they cannot be changed afterwards.

  • component (Int) – An integer between 1 and 8 and corresponds to the f1-f8 in mrf file.

Returns

A string containing the specified expression.

getCurveNormal(paramCurve)#

Computes the normal vector of a planar curve. The calculation is done in the local reference frame and then converted to the global coordinate system.

Parameters

paramCurve (Curve) – The Curve entity.

Returns

  1. The normal Vector when paramCurve is a planar curve.

  2. Zero vector when paramCurve is a line.

  3. Raise an exception when the curve is not planar.

getCurveTangential(paramCurve)#

Get the tangential vector of a Curve entity.

Parameters

paramCurve – (Curve) Curve object which represents a straight line.

Returns

The normalized tangential Vector of paramCurve.

get_dc(marker)#

Returns three vectors parallel to the x, y, z axes of a Marker in the global reference frame.

get_xaxis(marker)#

Returns a vector parallel to the x-axis of a Marker in the global reference frame.

get_yaxis(marker)#

Returns a vector parallel to the y-axis of a Marker in the global reference frame.

get_zaxis(marker)#

Returns a vector parallel to the z-axis of a Marker in the global reference frame.

loc_along_dir(origin, vector, distance)#

Returns a set of three coordinate values in the Global Frame, to locate a point along the direction of a vector at a certain distance from an origin point.

Parameters
  • origin (Point) – The start point for calculating the distance.

  • vector (Vector) – Specify the direction of the line that connects the new point and the origin.

  • distance (Double) – The distance between origin and the new point.

Returns

A Point located in the specified distance, direction.

loc_between(first_point, end_point, dist_ratio)#

Returns a set of three coordinate values in the Global Frame, to locate a point between two points at a certain distance ratio.

Parameters
  • first_point (Point) – Point that defines the start of the line.

  • end_point (Point) – Point that defines the end of the line.

  • dist_ratio (Double) – Distance ratio used to compute the new point.

Returns

A Point located at the specified location.

loc_cylindrical(coord, rm, degrees=True)#

Returns a set of three coordinate values in the Global Frame, to locate a given set of cylindrical coordinate values in a given reference frame.

Parameters
  • coord (Point) – A point in Cartesian coordinates to be expressed in cylindrical coordinates with respect to the rm marker.

  • rm (Marker) – The relative reference frame used in the transformation of the point coordinates.

Returns

A set of cylindrical values.

loc_mirror(master_point, ref_marker, plane)#

Returns a set of three coordinate values in the Global Frame, to locate a point symmetric with respect to a reference marker about its specified plane.

Parameters
  • master_point (Point) – Point to be reflected.

  • ref_marker (Marker) – Marker that defines the reference frame.

  • plane (Enum) – Define the plane to which master_point is reflected. Choose from “XY”,”YX”,”XZ”,”ZX”,”YZ”,”ZY”.

Returns

The Point that satisfies the requirement.

loc_rel_to(point, marker)#

Returns a set of three coordinate values in the Global Frame, to locate a given set of coordinate values, or a point or marker in a given reference frame.

Parameters
  • point (Point) – The point to be expressed relative to the Marker argument.

  • marker (Marker) – The relative reference frame used in the transformation of the point coordinates.

Returns

A Point located at the specified location.