NodePointGround
A 3D point node fixed to ground which is similar to NodePoint, but it does not generate coordinates. Applied or reaction forces do not have any effect. This node can be used for ‘blind’ or ‘dummy’ ODE2 and ODE1 coordinates to which CoordinateSpringDamper or CoordinateConstraint objects are attached to.
Interface
Python names:
NodePointGroundorPointGround, andVPointGroundfor its visualizationProvides:
Position,Position2D,Orientation,GenericODE2,GroundNode markers that can be attached: MarkerNodePosition, MarkerNodeRigid, MarkerNodeRotationCoordinate
Objects that take this node: ObjectMassPoint, ObjectMassPoint2D, ObjectMass1D, ObjectRotationalMass1D, ObjectKinematicTree, ObjectBeamGeometricallyExact
Parameters
The parameters of the item; in a dictionary, its type is ‘PointGround’:
name |
type |
size |
default |
description |
|---|---|---|---|---|
name |
String |
‘’ |
node’s unique name |
|
referenceCoordinates |
Vector3D |
3 |
[0.,0.,0.] |
(symbol: \(\qv\cRef = [q_0,\,q_1,\,q_2]\tp\cRef = \pv\cRef = [r_0,\,r_1,\,r_2]\tp\)) reference coordinates of node ==> e.g. ref. coordinates for finite elements; global position of node without displacement |
visualization |
VNodePointGround |
parameters for visualization of item |
Visualization parameters
The parameters of VNodePointGround, given as visualization:
name |
type |
size |
default |
description |
|---|---|---|---|---|
show |
Bool |
True |
set true, if item is shown in visualization and false if it is not shown |
|
drawSize |
float |
-1. |
drawing size (diameter, dimensions of underlying cube, etc.) for item; size == -1.f means that default size is used |
|
color |
Float4 |
4 |
[-1.,-1.,-1.,-1.] |
Default RGBA color for nodes; 4th value is alpha-transparency; R=-1.f means, that default color is used |
Drawing
Drawn as all nodes.
Output variables
Available as OutputVariableType in sensors, Get...Output() and other functions:
output variable |
symbol |
description |
|---|---|---|
Position |
\(\pv\cConfig = [p_0,\,p_1,\,p_2]\cConfig\tp = \pv\cRef\) |
global 3D position vector of node (=reference position) |
Displacement |
\(\uv\cConfig = [0,\,0,\,0]\cConfig\tp\) |
zero 3D vector |
Velocity |
\(\vv\cConfig = [0,\,0,\,0]\cConfig\tp\) |
zero 3D vector |
CoordinatesTotal |
\(\cv\cConfig =[]\) |
vector of length zero |
Coordinates |
\(\cv\cConfig =[]\) |
vector of length zero |
Coordinates_t |
\(\dot\cv\cConfig =[]\) |
vector of length zero |
RotationMatrix |
identity matrix (only for completeness) |
|
Rotation |
\([0,0,0]\) |
(only for completeness) |
AngularVelocity |
\([0,0,0]\) |
(only for completeness) |
AngularVelocityLocal |
\([0,0,0]\) |
(only for completeness) |
Detailed description
Coordinates
None: the node is fixed at its reference position \(\pv\cRef\), and does not add a coordinate to the system. It provides a position (and, formally, an orientation) so that markers can be attached to it.
Frame and interpretation
The reference position is global. Forces applied to the node, and reaction forces of connectors or constraints attached to it, have no effect.
Use
The node is the ground for coordinate markers: a CoordinateSpringDamper or a CoordinateConstraint
between a coordinate of a node and the ground needs a marker on both sides, and MarkerNodeCoordinate
on a NodePointGround is that side. CreateCoordinateConstraint
creates it when one side is the ground.
Mini example
#a ground node: a fixed point that markers and connectors can use, without coordinates
node = mbs.AddNode(NodePoint(referenceCoordinates=[1,0,0]))
mbs.AddObject(ObjectMassPoint(nodeNumber=node, mass=1))
mNode = mbs.AddMarker(MarkerNodePosition(nodeNumber=node))
nFixed = mbs.AddNode(NodePointGround(referenceCoordinates=[0,0,0]))
mFixed = mbs.AddMarker(MarkerNodePosition(nodeNumber=nFixed))
mbs.AddObject(ObjectConnectorCartesianSpringDamper(markerNumbers=[mFixed, mNode], stiffness=[100,100,100],
offset=[1,0,0]))
mbs.AddLoad(LoadForceVector(markerNumber=mNode, loadVector=[10,0,0]))
mbs.Assemble()
mbs.SolveStatic()
#the spring is stretched by F/k
exu.sys['testResult'] = mbs.GetNodeOutput(node, exu.OutputVariableType.Displacement)[0] #0.1
Examples (Ex) and TestModels (TM) that show this item, with weblink to github: tutorialSpringDamper.py (Ex), coordinateSpringDamper.py (Ex), SliderCrank.py (Ex), plotSensorExamples.py (Ex), SpringDamperMassUserFunction.py (Ex)