Skip to content
Beta.adm@modelscript/adams 9 diagnostic rules
Parser WASM GLR
Diagnostics 9 rules
DAE Arena Lowering
Simulation Native Solvers
Projections Modelica, SIMPACK
Live ExampleSliderCrankMechanism.adm

MSC Adams Slider-Crank & Suspension Multibody Dataset

ADAMS/Solver dataset defining ground, crankshaft, connecting rod, and piston rigid bodies linked by revolute and translational joints.

Playground
Source (17 lines)
1ADAMS/View Four-Body Slider-Crank Mechanism
2PART/1, GROUND
3PART/2, MASS = 3.8, CM = 20, IP = 0.045, 0.045, 0.082
4PART/3, MASS = 1.9, CM = 30, IP = 0.022, 0.022, 0.038
5PART/4, MASS = 2.4, CM = 40, IP = 0.015, 0.015, 0.015
6MARKER/10, PART = 1, QP = 0.0, 0.0, 0.0
7MARKER/20, PART = 2, QP = 0.0, 0.08, 0.0
8MARKER/21, PART = 2, QP = 0.0, 0.16, 0.0
9MARKER/30, PART = 3, QP = 0.0, 0.16, 0.0
10MARKER/31, PART = 3, QP = 0.35, 0.0, 0.0
11MARKER/40, PART = 4, QP = 0.35, 0.0, 0.0
12JOINT/1, REVOLUTE, I = 10, J = 20
13JOINT/2, REVOLUTE, I = 21, J = 30
14JOINT/3, REVOLUTE, I = 31, J = 40
15JOINT/4, TRANSLATIONAL, I = 40, J = 10
16ACCGRAV/JGRAV = -9.80665
17END
MSC Adams Multibody Kinematic Graph
View Four-Body Slider-Crank Mechanism ground 0.0 kg part_2 3.8 kg part_3 1.9 kg part_4 2.4 kg ↻ joint_1 ↻ joint_2 ↻ joint_3 ↔ joint_4
Drag to pan · Click % to reset

MSC Adams Multibody Dynamics ​

ModelScript features comprehensive, native support for MSC Adams (.adm, .cmd), the classic industrial standard for mechanical systems simulation and multibody dynamics (MBD). Engineers can parse legacy Adams View command files and solver datasets, perform Grübler-Kutzbach spatial mobility analysis, evaluate 3D joint constraint residuals, and project mechanisms to modern SIMPACK and Modelica formats.


Capabilities & Supported Formats ​

FormatExtensionDescription
Adams Solver Dataset.admNumerical dataset specifying rigid parts (PART), marker frames (MARKER), kinematic joints (JOINT), force elements (SPRINGDAMPER, BUSHING), and constraints.
Adams View Command File.cmdInteractive parametric command scripts defining mechanism geometry, design variables, and simulation runs.

Key Architectural Features ​

  • Lexer & Parser:
    • Robust deck ingestion supporting scientific notation (1.5D-03), inline comments (!), line continuations (...), and block cards.
    • Lossless serialization back to standardized .adm solver format via serializeAdams().
  • Spatial 3D Kinematics:
    • Full evaluation of Euler 3-1-3 and Tait-Bryan 1-2-3 rotation matrices.
    • Analytical joint constraint formulation for standard spatial joint primitives (Revolute, Spherical, Prismatic, Cylindrical, Planar, Universal).
  • Grübler-Kutzbach Mobility Analysis:
    • Calculates mechanism degrees of freedom (M=6(n−1)−∑ci).
    • Identifies redundant kinematic constraints and overconstrained multi-loop linkages.
  • Multibody Linters (M7301–M7310):
    • Flags missing ground parts, dangling marker references, unphysical inertia tensors violating the triangle inequality (Ixx+Iyy≥Izz), massless moving parts, and negative spring/damping parameters.
  • Cross-Domain Projections:
    • SIMPACK MBD: Maps parts, markers, and spatial joints to SIMPACK .spck XML models.
    • Modelica MultiBody: Synthesizes standard Modelica.Mechanics.MultiBody parts and joint components.

Command Line Interface (msx adams) ​

bash
msx adams <action> [files...] [options]
ActionDescriptionKey Options
lintRuns structural validation, inertia verification, and kinematic sanity checks.—
mobilityEvaluates spatial degrees of freedom and overconstrained loops.—
to-simpackProjects Adams mechanism to SIMPACK XML (.spck).--out=<file.spck>
to-modelicaProjects Adams mechanism to Modelica.Mechanics.MultiBody.--out=<file.mo>
simulateLowers to a DAE and integrates it in time.--stop-time, --step, --stabilization=baumgarte|algebraic

Examples ​

bash
# Calculate mechanism spatial degrees of freedom
msx adams mobility FourBarLinkage.adm

# Validate inertia tensors and marker references
msx adams lint LandingGear.adm

# Convert Adams dataset into SIMPACK XML format
msx adams to-simpack RobotArm.adm --out=RobotArm.spck

# Compute mechanism mobility (degrees of freedom)
msx adams mobility ExcavatorMechanism.adm

Multibody Linters & Diagnostic Rules ​

9 rules6 error3 warning Run with msx adams lint

CodeRuleSeverityMessage
M7301overconstrained-mobilityerrorMechanism is overconstrained according to Grübler-Kutzbach criterion (Mobility = <mobility> < 0).
M7302gimbal-lock-orientationwarningEuler orientation angles for marker '<markerId>' indicate near-gimbal-lock singularity (psi = <value>\xB0).
M7303dangling-marker-referenceerror<source> references non-existent marker '<targetId>'.
M7304non-physical-inertia-tensorerrorPart '<partId>' has non-physical inertia tensor: <reason>.
M7305massless-part-floatingerrorMoving part '<partId>' has zero or negative mass without kinematic grounding.
M7307coincident-joint-markerswarningJoint '<jointId>' uses identical I and J markers ('<iMarker>').
M7308negative-spring-dampingerrorSpring-damper '<springId>' defines non-physical negative <param> (<value>).
M7309missing-ground-parterrorDataset does not define a ground reference body ('PART/... GROUND').
M7310unconstrained-partwarningPart '<partId>' is completely disconnected from joints or force elements (floating rigid body).

Generated from languages/adams/src/errors.ts. All languages →

Open-Core under the GNU AGPL v3 License; Enterprise Edition (ee/) under the ModelScript Enterprise License. • Trademark Policy