Skip to content

v0.11.0

Compare
Choose a tag to compare
@MartinOtter MartinOtter released this 08 Jul 03:50
· 100 commits to main since this release
e6a0431

Modia3D 0.11.0

Diff since v0.10.4

  • Requires Modia 0.9.1 or later.

  • Additional keyword arguments of Object3D: Object3D(..., fixedInParent=true, velocity=[0.0, 0.0, 0.0], angularVelocity=[0.0, 0.0, 0.0]), besides the existing parent, translation, rotation, feature. A freely moving Object3D is defined with Object3D(..., fixedInParent=false, ...), where velocity=.., angularVelocity=.. are the initial conditions (resolved in the parent frame). For more details, see Object3D.
    The states and other code for such Object3Ds are not part of the generated code (so compilation is faster, and the objects can be changed after code generation).

  • The FreeMotion joints in all test models have been removed and replaced by Object3Ds with fixedInParent=false. A new test model test/Basic/FreeShaftAdaptiveRotSequenceWithFreeMotion.jl has been introduced with a FreeMotion joint, to still have one test for a FreeMotion joint.

  • Revolute(..) and Prismatic(..) joints can define axis of rotation/translation optionally as vector, e.g., axis = [1.0, 2.0, 3.0].

  • New function Modia3D.rot1(angle,v) which is an efficient implementation of Modia3D.rot1(angle)*v where rot1(angle) returns a transformation matrix and v is a vector and rot1(angle,v) returns the product of the transformation matrix and a vector in an efficient way. Correspondingly, there are new functions Modia3D.rot2(angle,v), Modia3D.rot3(angle,v), Modia3D.resolve1(rotation,v2), Modia3D.resolve2(rotation,v1).

  • Simulation speed improved, if contact of FileMesh objects.

  • contactPairMaterials.json updated with more material pairs (e.g. results in less warning messages for runtests).

  • New file Modia3D.create_Modia3D_sysimage.jl to create a sysimage. Using this sysimage has the advantage that using Modia3D is nearly immediately executed (instead of > 30 seconds). For details, see README.md file.

  • Internal: Timer included in Scene (scene.timer), so that a timer is more easily accessible for debugging.

  • Internal: Cleanup and improvements of Modia3D/src/Frames.jl

Deprecated

  • Joint FreeMotion is deprecated. Use instead Object3D(..., fixedInParent=false, ...). Note, Object3D has variables translation, rotation, velocity, angularVelocity, rotationXYZ instead of r, rot, v, w, isrot123 of FreeMotion. Furthermore, angularVelocity is resolved in the parent Object3D whereas w in FreeMotion(obj1=.., obj2=..., ..) is resolved in obj2 and not in obj1. This means in particular that the init/start value FreeMotion(.., w=Var(start=w_start)...) needs to be transformed in Object3D with Object3D(..., fixedInParent=false, rotation=XXX, angularVelocity = Modia3D.resolve1(XXX,w_start)) and the results of angularVelocity will be different to w because resolved in different coordinate systems.

Non-backwards compatible changes

  • Since Modia3D 0.11.0 is based on Modia 0.9.0, the non-backwards compatible changes of Modia have also an effect on Modia3D (for details, see the release notes of Modia 0.9.0). Typically, this should give problems only in seldom occurring corner cases.