85 lines
2.1 KiB
Protocol Buffer
Executable File
85 lines
2.1 KiB
Protocol Buffer
Executable File
#VRML_SIM R2023b utf8
|
|
# template language: javascript
|
|
|
|
PROTO MotorAssembly [
|
|
field SFString name ""
|
|
field SFVec3f translation 0 0 0
|
|
field SFRotation rotation 0 0 1 0
|
|
field SFFloat maxVelocity 25
|
|
field SFBool reversed FALSE
|
|
] {
|
|
Pose {
|
|
translation IS translation
|
|
rotation IS rotation
|
|
children [
|
|
Solid {
|
|
translation 0 0.04 0
|
|
rotation -1 0 0 1.5708
|
|
name %<= "\"" + fields.name.value + " housing\"" >%
|
|
children [
|
|
Shape {
|
|
appearance PBRAppearance {
|
|
baseColor 0.36 0.36 0.36
|
|
roughness 0.3
|
|
metalness 0
|
|
}
|
|
geometry Cylinder {
|
|
height 0.07
|
|
radius 0.015
|
|
subdivision 12
|
|
}
|
|
}
|
|
]
|
|
boundingObject Box {
|
|
size 0.03 0.03 0.07
|
|
}
|
|
physics Physics {
|
|
density 8000 # steel
|
|
}
|
|
}
|
|
HingeJoint {
|
|
jointParameters HingeJointParameters {
|
|
position 0
|
|
%< if (fields.reversed.value) { >%
|
|
axis 0 -1 0
|
|
%< } else { >%
|
|
axis 0 1 0
|
|
%< } >%
|
|
}
|
|
device [
|
|
RotationalMotor {
|
|
name IS name
|
|
maxVelocity IS maxVelocity
|
|
sound ""
|
|
}
|
|
PositionSensor {
|
|
name %<= "\"" + fields.name.value + " sensor\"" >%
|
|
}
|
|
]
|
|
endPoint Solid {
|
|
translation 0 0 0
|
|
rotation -1 0 0 1.5708
|
|
children [
|
|
DEF WHEEL_GEO Shape {
|
|
appearance PBRAppearance {
|
|
baseColor 0 0.0051864 0
|
|
roughness 0.3
|
|
metalness 0
|
|
}
|
|
geometry Cylinder {
|
|
height 0.021
|
|
radius 0.05
|
|
subdivision 24
|
|
}
|
|
}
|
|
]
|
|
name IS name
|
|
boundingObject USE WHEEL_GEO
|
|
physics Physics {
|
|
density 2000
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
} |