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.
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.
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.
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.
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.
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?
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.
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.