[Bug Report] AQUA file generated by Grasshopper is INCORRECT

Sofistik 2020-8, Rhino 7
Bacically it’s a dumbbell shape cross section. The outside part is steel plate, concrete is filled in the two circles.

This is part of the original AQUA

+PROG AQUA
HEAD 拱肋
CTRL FACE NEG
UNIT 5 DIG 3
ECHO SECT EXTR
NORM GB 50010-2010
STEE NO TYPE CLAS
1 S 345
CONC NO TYPE FCN
2 C 40
SECT NO MNO
1 1
TVAR H 2400[mm]
TVAR DO 1000[mm]
TVAR TF 14[mm]
TVAR BW 650[mm]
TVAR TW 14[mm]
POLY TYPE MNO
O 1
VERT NO Y Z
101 ‘=DO/2SIN(0(180-ASIN(BW/DO))/20)’ ‘=(H-DO)/2+DO/2COS(0(180-ASIN(BW/DO))/20)’
102 ‘=DO/2SIN(1(180-ASIN(BW/DO))/20)’ ‘=(H-DO)/2+DO/2COS(1(180-ASIN(BW/DO))/20)’
103 ‘=DO/2SIN(2(180-ASIN(BW/DO))/20)’ ‘=(H-DO)/2+DO/2COS(2(180-ASIN(BW/DO))/20)’
CIRC NO Y Z
1 0 ‘=(H-DO)/2’
2 0 ‘=-(H-DO)/2’

The genarated cross section is correct

I use the generated AQUA.CDB file as input in Grasshopper and output the Aqua_out.dat file

Below is part of the AQUA_out.dat

+PROG AQUA urs:1
HEAD
PAGE UNII 6
CTRL REST 1

SECT 1 MNO 1

TVAR ‘H’ 2400.00009536743
TVAR ‘DO’ 1000
TVAR ‘TF’ 14.0000004321337
TVAR ‘BW’ 650.000035762787
TVAR ‘TW’ 14.0000004321337

VERT ‘221’ ‘=#DO/2SIN((0(180-ASIN(#BW/#DO)(180/Pi)))/20)’ '=-(#H-#DO)/2-#DO/2COS((0*(180-ASIN(#BW/#DO)*(180/Pi)))/20)’

CIRC NO ‘1’ MNO 1 Y 0 Z ‘=(#H-#DO)/2’ R ‘=#DO/2-#TF
CIRC NO ‘2’ MNO 1 Y 0 Z ‘=-(#H-#DO)/2’ R ‘=#DO/2-#TF


There are several mistakes in the grasshopper generated AQUA_out.dat

  • The original aqua has two materials, while the generated AQUA file has only one material
  • In the original aqua, “ASIN(BW/DO)” became to “ASIN(#BW/#DO)*(180/Pi)” in the generated AQUA file. Grasshopper add “(180/Pi)” by mistake.
  • The generated AQUA_out.dat can’t be run by Teddy.

The original Aqua is attached: Aqua.dat (17.9 KB)
The grasshopper generated Aqua is also attached: Aqua_OUT.dat (10.8 KB)

Hi,

the problems should be fixed with SOFiSTiK Rhino-Interface version 2020-10.

However, the section used might not create a valid Rhino geometry, as the thickness of the outer area could be below Rhino’s geometrical tolerance.

With kind regards

Emanuel

Thank you for the quick fix in version 2020-10.

the section used might not create a valid Rhino geometry

The section does create a valid Rhino geometry

But there are several issues:

  1. The definition of materials are missing in the output of Aqua from GH
    This is the definition of materials in the orignal Aqua
NORM GB 50010-2010
STEE NO TYPE CLAS
1 S 345
2 Y 1670
CONC NO TYPE FCN
11 C 40
12 C 50

But there is no materials in the output of Aqua from GH.

  1. The wrong material is applied to the section
    In the original Aqua, material 1 is applied to the steel pipe as below:
SECT NO MNO TITL
1 1 拱肋
TVAR H 2.4[m]
TVAR DO 1[m]
TVAR TF 0.014[m]
TVAR BW 0.65[m]
TVAR TW 0.014[m]
POLY TYPE MNO
O 1
VERT NO Y Z REFP REFD
101 ‘=DO/2SIN(0(180-ASIN(BW/DO))/20)’ ‘=(H-DO)/2+DO/2COS(0(180-ASIN(BW/DO))/20)’
102 ‘=DO/2SIN(1(180-ASIN(BW/DO))/20)’ ‘=(H-DO)/2+DO/2COS(1(180-ASIN(BW/DO))/20)’

But in the output of Aqua from GH, material 0 is applied to the steel pipe (SPT MNO 0) as below:

SECT 1 MNO 1 TITL ‘拱肋’

TVAR ‘H’ 2.40000009536743
TVAR ‘DO’ 1
TVAR ‘TF’ 0.0140000004321337
TVAR ‘BW’ 0.649999976158142
TVAR ‘TW’ 0.0140000004321337

SPT ‘XX0’ 0 1.20000004768372 MNO 0
SPT ‘XX1’ ‘=#DO/2SIN(1(180-ASIN(#BW/#DO))/20)’ ‘=(#H-#DO)/2+#DO/2COS(1(180-ASIN(#BW/#DO))/20)’ MNO 0
SPT ‘XX2’ ‘=#DO/2SIN(2(180-ASIN(#BW/#DO))/20)’ ‘=(#H-#DO)/2+#DO/2COS(2(180-ASIN(#BW/#DO))/20)’ MNO 0

Original Aqua:
Aqua.dat (10.7 KB)
output of Aqua from GH:
Aqua_Out.dat (8.8 KB)

Hi,

currently there is no support to create materials in the gh plugin.
(no components to create materials, no input/output gh->sofistik, sofistik->gh)
Only the material Ids are handled, eg. for structural element or sections.

If you have a SSD project you can create materials as usual and use the Ids of the created materials inside gh.
Another approach would be to use the “Additional Control” parameter of the AQUA component inside gh.

Coming to your second question:
The materials seem to be assigned correctly as the “Poly” and “Circ” statements determine the materials of the respective parts.
In the gh generated .dat the outer loop has no explicit material, so the material defined for the section is used (Id: 1).

I hope this was helpful.

With kind regards

Emanuel