v0.11.0
Modia3D 0.11.0
-
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 existingparent, translation, rotation, feature
. A freely moving Object3D is defined withObject3D(..., fixedInParent=false, ...)
, wherevelocity=.., 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 withfixedInParent=false
. A new test model test/Basic/FreeShaftAdaptiveRotSequenceWithFreeMotion.jl has been introduced with aFreeMotion
joint, to still have one test for aFreeMotion
joint. -
Revolute(..)
andPrismatic(..)
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 ofModia3D.rot1(angle)*v
whererot1(angle)
returns a transformation matrix andv
is a vector androt1(angle,v)
returns the product of the transformation matrix and a vector in an efficient way. Correspondingly, there are new functionsModia3D.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 thatusing 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 insteadObject3D(..., fixedInParent=false, ...)
. Note, Object3D has variablestranslation, rotation, velocity, angularVelocity, rotationXYZ
instead ofr, rot, v, w, isrot123
ofFreeMotion
. Furthermore,angularVelocity
is resolved in the parentObject3D
whereasw
inFreeMotion(obj1=.., obj2=..., ..)
is resolved inobj2
and not inobj1
. This means in particular that the init/start valueFreeMotion(.., w=Var(start=w_start)...)
needs to be transformed in Object3D withObject3D(..., fixedInParent=false, rotation=XXX, angularVelocity = Modia3D.resolve1(XXX,w_start))
and the results ofangularVelocity
will be different tow
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.