propopsed changes to python preprocessor
this merge request includes the following addition and changes:
- remove the assertions to check whether classes are given as arguments to nodes, total joints, etc.
- why? to allow more liberal definition of nodes inside logical loops, example:
nodeTuple = (
('R','A') + tuple(['B'+str(x)+'d' for x in range(0,N)])
+ tuple(['H'+str(x)+'d' for x in range(0,N)])
+ tuple(['S'+str(x)+'d' for x in range(0,5)])
)
for i in nodeTuple:
nodes.append(DynamicRefNode(i, i))
- creation of a placement class, to simplify the definition of positions and rotations for complex linkages, by allowing to define new references using their relative position and orientation with respect to another reference
- example and explanation::
## vector from global to airframe
GeA=MBPlacement(
'A',
'G',
( 0.,
-p.airframe['belowRotor'],
0.,
0.,
0.,
0. ))
## PLACEMENT DEFINITIONS
# name part for origin of direction vector
# name part for destination of direction vector
# x-component
# y-component
# z-component
# Euler123, angle 1 in degrees
# Euler123, angle 2 in degrees
# Euler123, angle 3 in degrees
##
- addition of a dimension multiplier to, for example, scale output for visualization or convert units
- example:
DimMult(0.1) # ie: i'm working in millimeters, but actually multiplying by (100 ie: 0.1) at the time to see joints in Blendyn to scale
- example:
- adding the following elements: Reference, StaticRefNode, DynamicRefNode, AxialRot, DeformDisp, RodJoint, DistJoint, RevHinge, SphereHinge
- MBIntList and MBIntAutoList to ease the definition of multiple variables -- example:
MBIntList({'R':100},'!')
MBIntAutoList(['A'],200,'!j')
MBIntAutoList(['AjR'],201,'!')
One I know which of the proposed changes you accept I will update the README and provide an example file.