How to add ligaments to the model in the right way

Provide easy-to-use, extensible software for modeling, simulating, controlling, and analyzing the neuromusculoskeletal system.
POST REPLY
User avatar
Caterina Passini
Posts: 23
Joined: Fri Feb 24, 2012 11:48 am

How to add ligaments to the model in the right way

Post by Caterina Passini » Wed Jul 11, 2012 2:19 pm

Hi everyone! I read a lot of other topics about this, but unfortunately I didn’t find a complete reply to all my doubts, so I decided to open this new topic hoping to put all the answer together and maybe to find some new answer :)
(Maybe there is already a guide or a topic where everything has already been explained, so please, in that case, could you be so kind to tell me where I can find that, because the web is so big that I could have miss it!)

-- I’m using the 2.4 version of Opensim, modegait2354 and I understand that to add ligaments to my model I have to select in the Opensim menu
Help->Available Objects... then selecting Ligament from the drop down I’ll see:
Code:
<Ligament>
<isDisabled>false</isDisabled>
<GeometryPath>Object</GeometryPath>
<!--resting length of the ligament-->
<resting_length>0</resting_length>
<!--force magnitude that scales the force-length curve-->
<pcsa_force>0</pcsa_force>
<!--Function representing the force-length behavior of the ligament--> <force_length_curve>ObjectPointer</force_length_curve>
</Ligament>

-- I have to correctly*** complete this XML code and put it in my .osim file under <Force set>
Then does anybody know what should happen? I mean the name of my ligament has to appear in the Navigator Window under the menu “forces” --> “Other forces” in my model? Or it has not?
Because in my case I put the xml “code” in my model, I load it and the model is shown correctly, but I can’t find the name of my ligament anywhere, so I’m not sure I put it correctly.

--I would like to add just another thing, since I’m working on a Knee project involving the main ligaments, after some motor task I’ll need to investigate the length of my ligaments, does anybody know if on condition that I succeeded in adding ligament in the correct way on my model, it will be possible to me to see their length after a task?
Thank you so much to everyone
Caterina

***I used this code to represent ligament; does anybody know if there is a good way to find the coordinates of the ligament attachment point?
Thanks again :)
Caterina

<Ligament name="pmPCL_r">
<isDisabled> false </isDisabled>
<GeometryPath name="">
<PathPointSet name="">
<objects>
<PathPoint name="pmPCL_r-P1">
<location> -0.00900000 -0.04700000 -0.00200000 </location>
<VisibleObject name="">
<!--Set of geometry files and associated attributes, allow .vtp, .stl,
.obj-->
<GeometrySet name="">
<objects/>
<groups/>
</GeometrySet>
<!--Three scale factors for display purposes: scaleX scaleY scaleZ-->
<scale_factors> 1.00000000 1.00000000 1.00000000 </scale_factors>
<!--transform relative to owner specified as 3 rotations (rad) followed by
3 translations rX rY rZ tx ty tz-->
<transform> -0.00000000 0.00000000 -0.00000000 0.00000000 0.00000000 0.00000000 </transform>
<!--Whether to show a coordinate frame-->
<show_axes> false </show_axes>
<!--Display Pref. 0:Hide 1:Wire 3:Flat 4:Shaded Can be overriden for
individual geometries-->
<display_preference> 4 </display_preference>
</VisibleObject>
<body> tibia_r </body>
</PathPoint>
<PathPoint name="pmPCL_r-P2">
<location> -0.00300000 -0.41000000 -0.00900000 </location>
<VisibleObject name="">
<!--Set of geometry files and associated attributes, allow .vtp, .stl,
.obj-->
<GeometrySet name="">
<objects/>
<groups/>
</GeometrySet>
<!--Three scale factors for display purposes: scaleX scaleY scaleZ-->
<scale_factors> 1.00000000 1.00000000 1.00000000 </scale_factors>
<!--transform relative to owner specified as 3 rotations (rad) followed by
3 translations rX rY rZ tx ty tz-->
<transform> -0.00000000 0.00000000 -0.00000000 0.00000000 0.00000000 0.00000000 </transform>
<!--Whether to show a coordinate frame-->
<show_axes> false </show_axes>
<!--Display Pref. 0:Hide 1:Wire 3:Flat 4:Shaded Can be overriden for
individual geometries-->
<display_preference> 4 </display_preference>
</VisibleObject>
<body> femur_r </body>
</PathPoint>
</objects>
<groups/>
</PathPointSet>
<VisibleObject name="">
<!--Set of geometry files and associated attributes, allow .vtp, .stl,
.obj-->
<GeometrySet name="">
<objects/>
<groups/>
</GeometrySet>
<!--Three scale factors for display purposes: scaleX scaleY scaleZ-->
<scale_factors> 1.00000000 1.00000000 1.00000000 </scale_factors>
<!--transform relative to owner specified as 3 rotations (rad) followed by
3 translations rX rY rZ tx ty tz-->
<transform> -0.00000000 0.00000000 -0.00000000 0.00000000 0.00000000 0.00000000 </transform>
<!--Whether to show a coordinate frame-->
<show_axes> false </show_axes>
<!--Display Pref. 0:Hide 1:Wire 3:Flat 4:Shaded Can be overriden for
individual geometries-->
<display_preference> 4 </display_preference>
</VisibleObject>
<PathWrapSet name="">
<objects/>
<groups/>
</PathWrapSet>
</GeometryPath>
<!--resting length of the ligament-->
<resting_length> 0.03000000 </resting_length>
<!--force magnitude that scales the force-length curve-->
<pcsa_force> 1900.00000000 </pcsa_force>
<!--Function representing the force-length behavior of the ligament-->
<force_length_curve>
<NaturalCubicSpline name="">
<x> -5.00000000 0.99800000 0.99900000 1.00000000 1.03000000 1.06000000 1.07000000 1.10000000 2.00000000 </x>
<y> 0.00000000 0.00000000 0.00000000 0.00000000 0.00750000 0.03000000 0.04000000 0.07000000 0.97000000 </y>
</NaturalCubicSpline>
</force_length_curve>
</Ligament>
</ForceSet>

User avatar
Caterina Passini
Posts: 23
Joined: Fri Feb 24, 2012 11:48 am

Re: How to add ligaments to the model in the right way

Post by Caterina Passini » Fri Jul 13, 2012 6:26 am

Well, fine ;) I don't know why I had a missing word <ObjectGroup> in my code, so my ligament weren't probably read in the right way, now I edit that, I put the code of my ligaments in the Force set and now I can see my ligament under Forces--> other forces ;)

<ForceSet name="">
<objects>
<Ligament name="PCL_r">
...

POST REPLY