Skip to content

Commit 14d0f3e

Browse files
committed
Release notes introduced + docu of Prismatic/Revolute joint improved
1 parent 6400730 commit 14d0f3e

File tree

4 files changed

+31
-13
lines changed

4 files changed

+31
-13
lines changed

docs/src/index.md

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,31 @@ There are the following operations on an instance of an assembly:
120120

121121
### Version 0.3.0
122122

123+
- The first version that requires Julia >= 1.0 (all Julia 0.6 and 0.7 code was removed).
124+
125+
- Adapted to ModiaMath 0.5.0 (earlier versions of ModiaMath are no longer supported).
126+
127+
- Prismatic and Revolute joints have a new keyword `axis` with possible values 1,2,3,-1,-2,-3,
128+
to define the axis of movement / rotation.
129+
130+
- All joints have a new keyword `canCollide` (default = `false`).
131+
If `false`, collision detection will not occur to the `Object3D`s that are rigidly fixed
132+
to each other and connected by the joint.
133+
134+
- Before a simulation is performed, the internal structure is optimized for the computation:
135+
136+
* For all objects that are rigidly connected, the common mass, center-of-mass, inertia tensor
137+
are computed and used during simulation. All frames with mass property objects are ignored
138+
during simulation (if not needed for other purposes).
139+
140+
* Collision detection is switched off for `Object3D`s that are rigidly connected to each other.
141+
142+
* The spanning tree of the `Object3D`s is simplified, so that during simulation only
143+
the minimum number of frames must be traversed and position, velocity, acceleration of these
144+
frames are computed.
145+
`Object3D`s that are only used for visualization are only evaluated at communication points
146+
and only the position is computed (not velocity or acceleration).
147+
123148

124149

125150
### Version 0.2.1

docs/src/man/GettingStarted.md

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,9 @@
33

44
## Installation
55

6-
**Modia3D** is registered in METADATA.jl and can be installed with Pkg.add:
6+
**Modia3D** is registered in METADATA.jl and can be installed in the following way (Julia >= 1.0 is required):
77

88
```julia
9-
# Julia 0.6:
10-
julia> Pkg.add("Modia3D")
11-
julia> Pkg.add("ModiaMath") # in order to use simulate!(..) and plot(..)
12-
julia> Pkg.add("PyPlot") # in order that plots are shown
13-
14-
# Julia 0.7 and 1.0 (registration is pending)
159
julia> ]add Modia3D
1610
add ModiaMath # in order to use simulate!(..) and plot(..)
1711
add PyPlot # in order that plots are shown
@@ -35,8 +29,7 @@ are supported. To install the free version for *Windows* or for *Linux* perform
3529
provide your contact information and click on *Request download* for *Community Edition*.
3630
Afterwards, you get a link to download the library and you need to unzip the file.
3731

38-
2. In your Julia **startup file** (Julia 0.6: `HOME/.juliarc.jl`, Julia 0.7 and 1.0:
39-
`HOME/.julia/config/startup.jl`), include the environment variable
32+
2. In your Julia **startup file** (`HOME/.julia/config/startup.jl`), include the environment variable
4033
`ENV["DLR_VISUALIZATION"] = "<path-to-library>/Visualization/Extras/SimVis"`.
4134
Make sure that the SimVis executable under this directory has execution rights.
4235
For example in Linux with command:

src/Composition/joints/Prismatic.jl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ get_eAxis(axis::Int) = axis== 1 ? ModiaMath.Vector3D( 1.0, 0.0, 0.0) :
9595
9696
Return a `joint` object that constrains the movement of `obj2::`[`Object3D`](@ref)
9797
with respect to `obj1::`[`Object3D`](@ref) along
98-
coordinate axis `axis` (`axis = 1,2,3`). The initial position/velocity of `obj2` with respect
98+
coordinate axis `axis` (`axis = 1,2,3,-1,-2,-3`). The initial position/velocity of `obj2` with respect
9999
to `obj1` along `axis` is `s_start` [m] and `v_start` [m/s], respectively.
100100
If `canCollide=false`, no collision detection will occur between `obj1` and `obj2`
101101
(and `Object3D`s that are directly or indirectly rigidly fixed to `obj1` or `obj2`).
@@ -132,7 +132,7 @@ function Prismatic(obj1::Object3D, obj2::Object3D;
132132
rs_start = Float64(s_start)
133133
rv_start = Float64(v_start)
134134
(obj_a,obj_b,cutJoint) = attach(obj1, obj2)
135-
@assert(1 <= axis <= 3)
135+
@assert(1 <= abs(axis) <= 3)
136136
if obj_b === obj2
137137
axis2 = axis
138138
else

src/Composition/joints/Revolute.jl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ end
8888
joint = Modia3D.Revolute(obj1, obj2; axis=3, phi_start=0, w_start=0, canCollide=false)
8989
9090
Return a Revolute `joint` that rotates `obj1::`[`Object3D`](@ref) into
91-
`obj2::`[`Object3D`](@ref) along the z-axis of `obj1`.
91+
`obj2::`[`Object3D`](@ref) along the axis `axis` of `obj1` (`axis = 1,2,3,-1,-2,-3`).
9292
The initial start angle is `phi_start` and the initial angular velocity
9393
is `w_start`. If `canCollide=false`, no collision detection will occur between `obj1` and `obj2`
9494
(and `Object3D`s that are directly or indirectly rigidly fixed to `obj1` or `obj2`).
@@ -124,7 +124,7 @@ function Revolute(obj1::Object3D, obj2::Object3D;
124124
rphi_start = Float64(phi_start)
125125
rw_start = Float64(w_start)
126126
(obj_a,obj_b,cutJoint) = attach(obj1, obj2)
127-
@assert(1 <= axis <= 3)
127+
@assert(1 <= abs(axis) <= 3)
128128
axis = obj_b===obj2 ? axis : -axis
129129
if cutJoint
130130
println("... Revolute joint connecting ", ModiaMath.fullName(obj1), " with ", ModiaMath.fullName(obj2), " is a cut-joint")

0 commit comments

Comments
 (0)