AnyMan, Segment parameters

Hi, AnyBody Support

I used to modify my segment data from AnyMan in the main file where Scaling
parameters is, such as changing ThighLength, ShankLength…

But now I am using the new version and couldn’t find where to modify these
parameters.
Can you help me.

Thanks,
Yeh

Dear Yeh,

The best example would be the StandingModelScalingDisplay model. The new scaling works (as described in the tutorials as well) like that:

  /*------------- SCALING CONFIGURATION SECTION --------------------*/
  // Actual scaling law
  #define BM_SCALING CONST_SCALING_STANDARD

  // Scaling laws using joint to joint measures
//  #define BM_SCALING CONST_SCALING_UNIFORM
//  #define BM_SCALING CONST_SCALING_LENGTHMASS
//  #define BM_SCALING CONST_SCALING_LENGTHMASSFAT


  // Scaling laws using external measures
//  #define BM_SCALING CONST_SCALING_UNIFORM_EXTMEASUREMENTS 
//  #define BM_SCALING CONST_SCALING_LENGTHMASS_EXTMEASUREMENTS 
//  #define BM_SCALING CONST_SCALING_LENGTHMASSFAT_EXTMEASUREMENTS 
  
  // Anthropometric data file (unchanged files can be found in AAUHuman\Scaling\AnyFamily)
//  #path BM_SCALING_ANTHRO_FILE "Model\AnyFamily\AnyMan.any"

Where BM_SCALING_ANTHRO_FILE defines the file with Anthropometry. But please remember that not all scaling laws use this file. So you would need to set BM_SCALING to, for example, CONST_SCALING_LENGTHMASSFAT.

Please try to play with the example I mentioned - you will understand how everything works now.

Kind regards,
Pavel

Thank you, Pavel

It’s really helpful to me, and I just forgot that after update, there also a little changes in tutorials, and forgot to search first.
AnyWay thanks again and I’ll read it now.

Best regards,
Yeh

Hi, Pavel

Just a question, I can control the segment parameters in the StandingModelScalingDisplay with the AnyMan file.

But I can’t find where to modify in other models, such as FreePosture.
I had found that I can click into HumanModel.any and I can find the ScalingStandard, like the picture, but still couldn’t found AnyMan.any to modify the length of the body.

Best regards,
Yeh

Thank you, Pavel

It’s really helpful to me, and I just forgot that after update, there also a little changes in tutorials, and forgot to search first.

I just read it, I can control the segment parameters in the StandingModelScalingDisplay with the AnyMan file.
But I still can’t find where to modify in other models, such as FreePosture.
I found that I can click into HumanModel.any and found the ScalingStandard, like the picture,

But still couldn’t found AnyMan.any to modify the length of the body.
Thanks again.

Best regards,
Yeh

Dear Yeh,

As you correctly found the AnyMan file and all anthropometric scaling laws are specified in this part of the HumanModel.any. You could also see from the code that if the default value for BM_SCALING is used (CONST_SCALING_STANDARD) then no AnyMan is needed. As it is also explained in the tutorial in this and previous version - ScalingStandard is a way to specify and “average” man. So you cannot give him any segment lengths, whereas if you choose another scaling law - it provides with a set of options such as individual segment lengths, anthropometric parameters, etc.

So if you want to change the size of the human - please switch the BM_SCALING to one of alternative scaling laws and add AnyMan to the model. Please note that some models were built using CONST_SCALING_STANDARD and it may not be fully suitable for a different size human. Yet i think this model should just work.

Kind regards,
Pavel

Hi Pavel

I just tried it, add the AnyMan into it like the following.

But when I change the size in the AnyMan parameters, the model didn’t changed, if there’s anything wrong?

Thanks
Best regards,
Yeh

Dear Yeh,

Yes, that is a correct way to include an AnyMan file. Have you also changed the BM_SCALING? You need the following line:
#define BM_SCALING CONST_SCALING_UNIFORM

Regards,
Pavel

Hi, Pavel

It works! Thank you very much.
There still has a following question, which law is usually used, or maybe I should ask which law to use in what situation. Or just use UNIFORM will be OK.

Thanks
Best regards,
Yeh

Dear Yeh,

Well, it depends on the input data that you have and a strategy you want to adopt to change the human size.

As described in the tutorial we have the following options:

Currently there are seven scaling laws available in AnyBody™
ScalingStandard (do not scale; i.e. use standard model size)
ScalingUniform (scale equally in all directions; input is joint to joint distances)
ScalingLengthMass (scale taking mass into account; input is joint to joint distances and mass)
ScalingLengthMassFat (scale taking mass and fat into account; input is joint to joint distances)
ScalingUniformExt (scale equally in all directions; input is external measurements)
ScalingLengthMassExt (scale taking mass into account; input is external measurement)
ScalingLengthMassFatExt (scale taking mass and fat into account; input is external measurements).

So if you have measurements of the human bones (through palpation, x-ray-based or something like that) you might want to use ScalingLengthMassFat and its variations.

Kind regards,
Pavel

Dear Pavel,

Today, I just trying the “FreePostureFullBodyStatic” model, and scaling the human size, find out that why the path is belong to Model\AnyFamily…, in my memory, AnyFamily is in the Scaling isn’t it.
Or that is the new AMMR? I am using AMMR1.6.3.

So now I make a new AnyMan, but it couldn’t scale the size.

Last time it worked because I just scaling the model from the AnyMan folder without making a new one.
Do you know what’s the problem?

Dear Yeh,

The idea for these statements was that you would not need to change “humanmodel.any”.

The problem that you are having is due to the fact that you are defining something after the check for this definition happened.

The proper workflow would be:
a) add #define BM_SCALING CONST_SCALING_LENGTHMASSFAT
in your main file before #include “<ANYBODY_PATH_BODY>\HumanModel.any”
b) add #path BM_SCALING_ANTHRO_FILE “Model\AnyFamily\AnyManTest20141201” also before the #include

This way you do not need to modify repository files and it should do the job for you.

Kind regards,
Pavel

Dear Pavel,

Thanks for the reply, now I write it in the main file.

But the new problem is the error :

“Path does not exist”, I think that’s because my AnyMan is not in the Application…, it’s in the Body\AAuHuman\Scaling…
If my guess is right, how to change the path?

Yes, this is exactly the problem. We do not recommend to modify the repository without a need, which is not the case here. The proper way is to make an application folder somewhere in your working folder, connect it to the repository by means of libdef.any file, that you could also find next to the example or through model creation dialogs. Then what needs to be done is to add subject-specific details to your application folder and have everything study related in the same place. If you add or change something in the repository it might affect existing examples and your other models and we would not be able to help you any further.

So please copy your AnyMan file to the application folder - it should automatically pick it up.

Kind regards,
Pavel