Customizing EC3 buckling behavior of Cross-Sections

Dear experts,

I´m trying to manually customize the EC3 buckling behavior of a large list of Cross-Sections generated from the Cross Section component. However, whereas the alpha EC3 buckling coefficients can be set with Modify CroSec component, I can´t find the way to set the “Product” field:

The CS provided by the Cross-section Range Selector (e.g. for EU country, circular shape and CHS(EN10210-2) shape) are always Product = 2 (i.e. welded).

How would I change this value without writing, editing, and reading a cross-sections table?

Or perhaps the “Product” value is only intended to select alpha coefficients?

Sorry if this is as stupid question :slight_smile:

Dear @Vigardo,
at the moment (Karamba3D 2.2.0) the only possibility is to use a small script: (9.9 KB). In order to make it run you have to go to the component’s context menu and relink the assemblies via ‘Manage Assemblies…’.

Hi Clemens, thanks for keeping this issue in mind! I hope you´ve had a very nice holidays!

Your code partially works. It shows and changes the Product field of the “cs” variable. However, when I try to output it, e.g. into “CS”, an error es dumped in the next Disassemble Cross-section component:

1. Data conversion failed from Goo to CrossSection

I just tried here (26.0 KB)
to add any of the following lines to the end of your script without success:

CS = cs;


CS = (Karamba.CrossSections.CroSec) cs;

How should I output the modified cross-sections? What am I doing wrong?


Hi @Vigardo,

in order to get the cross section out you need to wrap it (see here: (13.6 KB)).

Setting the product type has a problem which I did not consider in the first version of the script: In order to get the alpha-values updated one needs to call calculateProperties() on the cross section.
However there is a pitfall: For I- and Box-profiles the product-type is automatically set to ‘welded’ in case that the fillet radius is zero, otherwise it is set to ‘rolled’. In the next service release of Karamba3D 2.2.0 this will change, and a user defined product type will not be overridden.


Hi Clemens, thanks for the rapid response!

Ok, so this line does the job:
crosecOut = new Karamba.GHopper.CrossSections.GH_CrossSection(cs);

Is Product variable just intended to change alphaY, alphaZ and alphaLT EC3 buckling parameters?

In other words, is manually setting up alphas (with Modify CroSec component) equivalent to change Product? (at least for CHS)

Thanks again for your help! I have a very close deadline :slight_smile:

Hi again,

I´ve been checking the alphas that your code sets. I´m sorry, but I think they are not right. (but I´m not an expert in Eurocode :slight_smile: )

Please, correct me if I´m wrong, but according to EN-1993.1.1:2005 (EC3), a cold formed CHS (EN10210-2) (Product = 0 “cold formed”) should use buckling curve “c” (i.e. alphaY = alphaZ = 0.49). However, your code sets alphaYZ values to 0.34 instead. (29.3 KB)

For hot finished (Product = 1), the curve “a” (alphaYZ = 0.21 and alphaLT = 0.76) seem correct.

(page 57 EC3)

In Table 6.2 “Selection of buckling curve for a cross-section” (page 58 EC3)

Please, would you check if I´m wrong? Thanks!!

Hi @Vigardo,
the product variable is used to set the alpha-values in the method calculateProperties() of the cross sections. For RHS it is used to determine the fillet-radius. Setting the alpha-values directly does not change the product-variable.

Hi @Vigardo,
thanks for the bug report regarding the alpha values for CHS according to EN10210-2. I will change that.
– Clemens