Showing results for 
Search instead for 
Did you mean: 





I'm trying to calculate the HIC with Diadem:

Actually I have to analyse the result of HIC in a table like XCRASH.


Thank you for your help

0 Kudos
Message 1 of 11


Hello klifoufou,


The HIC calculation is part of the DIAdem Crash Analysis toolkit. The function can be found here:




The SCRIPT command for the HIC calculation is ChnHICCalc. The results are stored in a variable matrix called HICRes(i,j).


There is a pretty good example in DIAdem that shows how to programatically run a HIC calcuation and embed results in a report:




Report example:




I am not sure whan a XCRASH table looks like, so you'll need to post a description or screenshot of that if you want more details on how to replicate that.


Best regards,



Otmar D. Foehner
0 Kudos
Message 2 of 11




 thank you for your help. I can not see the example of diadem, I always receive an error message.





 I was trying to do the same result that you show me in the example but in a table.

 the goal is to have a summary page of HIC

I hope that you understand my problems and you can help me.

 Thanks a lot

0 Kudos
Message 3 of 11


to explain better

you find attached the program I'm trying to write

the goal is to select the channels for the head (? 00 00 HEAD? AC X??? 00 00 HEAD? AC Y?? 00 00 HEAD? AC Z?) after, I must make the information in the table: Name, Description, filtering, the values ​​of HIC / HIC15 / HIC36
but for now I can not select the channels, all I can do is select some criterion and display the values ​​of HIC in a message


I hope that you understand what I want to do.

Thank you

0 Kudos
Message 4 of 11


Hello klifoufou,


I am still not sure what your exact goal is. When you mention "table" are you referring to the REPORT or to the SUD?


In the SUD, you can use a "ChnComboBox" to select channels from the DIAdem Data Portal.





In REPORT, you can create a table with values such as this:




The example to check for this is here in the help file:


Table 2.png


Sorry, I am not really sure what your goal is. A drawing or screenshot might make it easier for me to steer you in the right direction.



Otmar D. Foehner
0 Kudos
Message 5 of 11



 excuse me if I can not explain what I want to do


 You find the print screen of the result of X-CRASH, I try to do almost the same thing by programing.










 as I have  you told the last time;  I try to do a page that summarizes the results of the crash: HIC (36/15), RESULTING Acceeleration, cumulative 3ms, NIC, VC, ThCC ....

I hope that you understand what I want to do.

Thank you


0 Kudos
Message 6 of 11




Do you have any ideas to help me please , I'm stuck I can not advance in the program

0 Kudos
Message 7 of 11


Hello klifoufou,


Sorry, I had a busy week last week and didn't check the forums.


Here is a table with the parameters I have used to create this table:




The most important thing to to is to pick the "Text list" option in the table and then you can fill each line with a unique text or variable name.


The variable @str(HICRes(1,1),'d.d')@ means this:


The "@" character tells DIAdem that you are going to be displaying a variable vs. a static text.


The "str()" function is used to convert a number into a sting and give it some formatting. In my case the formatting is "d.d" which represents one digit after the decimal comma.


The "HICRes(1,1)" statement refers to the HIC result variable, and 1,1 refers to the actual HIC value.


I hope this puts on onto the right path ...



Otmar D. Foehner
0 Kudos
Message 8 of 11




 thank you for your reply.

 I'm in a period of internship and and I can not find the solution of the problem,
 you are the only people who supported me, Thanks


 About the program, I tried to do as you said, I have even try to change the manner of presentation of the results.

 My Tutor request a presentation as the presentation of X-Crash (the print screen that I showed you the last time) but I do not advance in this way so I change the way and I hope he will accept after.

 I calculate all the important criterion, but I can not put them in the table
 We must see each time the type and position of the mannequin in the car (front right, front left ...) and type of vehicle (vehicle 1, vehicle 2 ....) (it is necessary to test the channel code)

  So here I understood the system of X-crash but I do not know how to apply it with diadem

 you find attached my program that can best explain the manner of presentation and I thank you again for your help.

0 Kudos
Message 9 of 11


Hello klifoufou,


A few comments on what I have seen in your Script:


To calculate the HIC, you have to:

  1. Filter each head (XYZ) data channel using the CFC1000 filter (CFC1000 for the head, other filters are required for other body parts)
  2. Calculate the Resultant of the filtered signals (XYZ)
  3. Calculate the HIC for the Resultant, not for the individual head acceleration channels

Here is the code that will do this:


Call ChnCFCFiltCalc("[1]/00TIRS000000TI00","[1]/11HEAD0000H3ACXP","/FilteredSignal","CFC_1000",0,"EndPoints",10) '... XW,Y,E,CFCFiltType,Fir100RemoveBias,CFCPreEventType,CFCFreeValue 
Call ChnCFCFiltCalc("[1]/00TIRS000000TI00","[1]/11HEAD0000H3ACYP","/FilteredSignal1","CFC_1000",0,"EndPoints",10) '... XW,Y,E,CFCFiltType,Fir100RemoveBias,CFCPreEventType,CFCFreeValue 
Call ChnCFCFiltCalc("[1]/00TIRS000000TI00","[1]/11HEAD0000H3ACZP","/FilteredSignal2","CFC_1000",0,"EndPoints",10) '... XW,Y,E,CFCFiltType,Fir100RemoveBias,CFCPreEventType,CFCFreeValue 
Data.Root.ChannelGroups(1).Channels("FilteredSignal").Name = "11HEAD0000H3ACXA"
Data.Root.ChannelGroups(1).Channels("FilteredSignal1").Name = "11HEAD0000H3ACYA"
Data.Root.ChannelGroups(1).Channels("FilteredSignal2").Name = "11HEAD0000H3ACZA"
Call ChnXYZAbsValue("[1]/11HEAD0000H3ACXA","[1]/11HEAD0000H3ACYA","[1]/11HEAD0000H3ACZA","/ResultantXYZ") '... X,Y,Z,E 
Call ChnHICCalc("[1]/00TIRS000000TI00","[1]/ResultantXYZ",1,1,1,1,10,1) '... XW,Y,HIC36,HIC15,HICVar,HICUserDef,HICUser,HICd 


The X-Crash software has been designed over many years, by people with 10+ years of DIAdem experience. I don't think that that can easily be reproduced in a few weeks.


Coming back to your table question, what you need to do is add the variables into the tables. I have attached an example layout with some HIC values for your reference. The REPORT tables in DIAdem are unfortunately not as easy to manipulate as we would like them to be. There is a lot of experience that went into making the REPORT layouts for X-Crash, I doubt you will be able to easily recreate these without some major effort.


What you need to do to get all the correct entries in the tables is to store the results of your calculations into channel variables, and then reference these variables in the tables.


Here is some example code to store the HIC value into a customer property of the "Resultant" channel:


Call Data.Root.ChannelGroups(1).Channels("ResultantXYZ").Properties.Add("HIC", HICRes(1,1), DataTypeFloat64)


I have included the reference to that variable in the attached TDR file example.


I'm sorry I can't be of better help,




Otmar D. Foehner
0 Kudos
Message 10 of 11