[Bug Report] Axis Variable doesn't work at all?

First of all, here is the Teddy .dat file link: three span box girder bridge.dat (4.8 KB)

Basiclly it’s a 3-span concrete single box with two cells girder bridge.

The cross section has 26 independent variables, like ‘H’ - box total height, ‘Wt’ - top slab width, ‘Tt’ - top slab thickness, etc

The cross section also has 38 derived variables.

The cross section can be drived by previous mention 26 independent variables,
e.g. H=1.5m 1

H=3.0m 1

I create an axis variable H (box height) in SofimshC


the result looks correct to me

BUT, the generated bridge has constant sections, NO variation along the axis

I find the reason why axis variable doesn’t work: If you use derived variable, then axis variable is not able to work.

I strongly suggest Sofstik allowing derived variable, cause derived variable will make defining parameterized cross section more convenient.

Hello,

First: It is possible to use derived variables.

These variables have to marked as variables in the formulas with a #: e.g. Yrt ‘=0.5*#Wt-#Wf

Regarding the second issue with the variable H in SOFiMSHC (or in SOFiPLUS): For an interpolation of the cross section, it is necessary to set the reference on the axis. If only the structural lines are input in SOFiMSC (or in SOFiPLUS) no interpolation of the cross section is done.

If the problems persist, please contact support@sofistik.com and send the input file.

With kind regards
Sabine Fahrendholz
Product Management

Hello Sabine,

I know that derived variable can work. But if derived variable works together with axis variable, then the axis variable will NOT work.

E.g.
I want to define an Axis Variable “H”, which is the height of a rectangule section.

I find that if the vertices of the section doesn’t EXPLICITLY includes “H”, then the Axis Variable “H” doesn’t work.

I define such section as below
TVAR ‘B’ 1
TVAR ‘H’ 1
TVAR ‘a’ ‘=#H+1-1’ $ derived variable

POLY    TYPE    MNO
    O   1
VERT    NO  Y   Z   REFP
    0   0   0
    1   '=#B/2' 0   0
    2   0   '=-#a'  1
    3   '=-#B'  0   2
    4   0   '=#a'   3
END   

Although ‘a’ equals to ‘H’ mathematically (TVAR ‘a’ ‘=#H+1-1’), the Axis Variable “H” doesn’t work, because ‘a’ doesn’t EXPLICITLY includes ‘H’

Teddy dat file is attached.
1.dat (1.8 KB)

Hello,
thank you for the response and the data file.
The interpolation of the cross sections depends on several requirements.
At first, in your master section 1 the polygonal points 1,2,3,4 are referred to the point 0. The point 0 is defined as a static point because it does not have variables. No interpolation is done.

The variables TVAR are defined in program SOFiMSHC at the axis. AQUA does not used formulas in record TVAR which are defined in AQUA. The solution is to use the formula with the variable H at the polygonal point. I have modified the cross section definition.
To understand the behaviour of the interpolation I have defined the section 11. Here the variable H is defined with TVAR ‘H’ 0. Then the master cross section 11 has following definition:
e.g. for point 2 2 ‘=#B/2’ ‘=-#H+1-1,-1.3’ -> Z coordinate ist defined twice -> first part with the formula using H and the second part -1.3 only for the master cross section. The first part with the formula is only calculated after SOFiMSHC with the second AQUA. The master cross section is not used for the system and not used for design.

I hope it helps.
With kind regards
Sabine
1.dat (2.2 KB)

Thank you SabineF, for detailed explanation.

If I do not misunderstand, the key point for axis variable to work is “The solution is to use the formula with the variable H at the polygonal point.” as you said in the above post.

Therefore using DERIVED VARIABLES, such as TVAR ‘A’ ‘=#H+1-1’ at the polygonal point is NOT possible

SECT 11

STO#B 1
TVAR    'H' 0       ! only H is defined in SOFiMSHC
TVAR    'A'  '=#H+1-1'

POLY    TYPE    MNO
    O   1
VERT    NO  Y               Z
         1   '=#B/2'        0
         2   '=#B/2'        '=#A,1.3'  $ A is derived variable
         3   '=-#B/2'       '=#A,1.3' $ A is derived variable
         4   '=-#B/2'       0

The above code doesn’t work.

If axis variable could work with DERIVED VARIABLES, it will simplify user’s input as shown below:
The variables in the red frame are derived variables.


If I don’t use derived variables, it looks like this, very messy:

The biggest problem of not using derived variables is, the formular may exceeds 255 charactors limit.

Hello,

TVAR ‘H’ 0 ! only H is defined in SOFiMSHC

TVAR ‘A’ ‘=#H+1-1’

The TVAR variables are only evalutated later in the 2nd AQUA run for the section interpolation after defining the system with the axis and TVAR variables in SOFiMSHC! That’s why in the 1st AQUA the value of the TVAR variable which is defined in SOFiMSHC is not known and not used for the master cross section.

In CADINP several variables are available:
TVAR – for the variables of the cross section along an axis
LET and STO variables – please not the basic manual ‘SOFiSTiK Basics’ chapter 9.2.14
LET variables are only valid within the current program, whereby STO variables are saved and can be used in several programs of the input file.

The limitation of a formula is 255 characters! Why do you need such long formulas?
Please send the input file with a description to our support: support@sofistik.com

With kind regards
Sabine

Dear Sabine,

I’m struggling with a similar issue as discussed above and would be grateful to receive some guidance.

I’m also trying to make use of derived variables in my cross-section definition, but found that these derived variables will not be evaluated correctly at the interpolation stage during the second AQUA run. Is there a workaround?

To be specific, in my case, I’m defining the web inclination based on TVAR variables as shown below. As mentioned, this will not work correctly during interpolation. In my cross-section definition I need t use the web inclination to define some stiffeners on the web. Now, I can’t use the long formula directly as REFD, because it’s simply too long, hence why I need to make use of the derived variable.

Many thanks for any suggestions.

Best regards,
Marcell

TVAR HEIGHT     6000[mm]      $Main cross section dimensions
TVAR BTOP       7600[mm]
TVAR BBOT       4500[mm]
TVAR TTOP         30[mm]
TVAR TBOT         40[mm]
TVAR TW           20[mm]
TVAR INCW    '=ARC(ATN((#BTOP-#BBOT)/2/#HEIGHT))'

Dear Marcell,

it is not allowed to use TVAR variables which are defined in SOFiMSHC record GAVX for generation of a new TVAR using a formula.
E.g. TVAR A and TVAR B and then TVAR C ‘=#A+#B’ is not possible in AQUA

You can use a STO variable in AQUA:
e.g. TVAR A and TVAR B and then sto#C ‘=#A+#B’

With kind regards
Sabine

Small example (version 2020):

+PROG AQUA urs:1
HEAD
UNIT 5
NORM ‘EN’ ‘1992-2004’ COUN 0 CAT ‘AN’ SNOW ‘1’ UNIT 5
CONC 1 C ‘25’ TYPR B TITL “=C 25/30 (EN 1992)”
STEE 2 B ‘500B’ TMAX 32 TITL “=B 500 B (EN 1992)”

CTRL FACE -1

SECT 1 MNO 1 MRF 2 FSYM NONE BTYP BEAM TITL “master 100”

TVAR ‘A’ VAL 500[mm]
TVAR ‘B’ VAL 500[mm]

!tvar ‘C’ val ‘=#A+#B’ ! interpolation not correct
sto#C ‘=#A+#B’

LAY 1 TYPE MIN MRF 2
LAY 2 TYPE MIN MRF 2
LAY 3 TYPE MIN MRF 2
LAY 4 TYPE MIN MRF 2
POLY TYPE O MNO 1
VERT ‘0100’ Y -250 Z 0 EXP 1
VERT ‘0101’ Y 250 Z 0 EXP 1
VERT ‘0102’ Y 250 Z #C EXP 1
VERT ‘0103’ Y -250 Z #C EXP 1
VERT ‘0100’ Y -250 Z 0 EXP 1
CUT ‘ZS’ ZB ‘S’ NS 0 MS 0 MNO 1 MRF 2 LAY 1 TYPE WEB INCL 90
END

+PROG SOFIMSHC urs:2
HEAD
UNIT 5
SYST SLAB GDIV 10000 GDIR NEGZ
CTRL TOPO 0
CTRL TOLG VAL 0.010000[m]
CTRL MESH 1
CTRL EDRL 1
CTRL HMIN VAL 1.250000[m]
CTRL FINE VAL -0.325000
CTRL PROG VAL 1.238000
CTRL EFAC VAL 1.398600

GAX ‘A1’ TYPC AXIS TITL “A1”
GAXA S 0.0 X 0.0 0.0 SX 1.00000 0.0
GAXA L 10.0000 R 0.0 RA 0.0 RE 0.0
GAXV ‘A1’ NAME ‘A’ S 0.0 V 500.000[mm] DV 0.05000 TYPE POLY
GAXV ‘A1’ NAME ‘A’ S 10.0000 V 1000.000[mm] DV 0.0 TYPE POLY
GAXV ‘A1’ NAME ‘B’ S 0.0 V 500.000[mm] DV 0.05000 TYPE POLY
GAXV ‘A1’ NAME ‘B’ S 10.0000 V 1000.000[mm] DV 0.0 TYPE POLY
GAXP ‘A1’ IDS 0 S 10.0000 TYPE ‘S’ IDP ‘P2’
GAXP ‘A1’ IDS 0 S 0.0 TYPE ‘S’ IDP ‘P1’
SPT 1 X 10.0000 0.0 0.0 NX 0 0 -1 SX 1 0 0
SPT 2 X 0.0 0.0 0.0 NX 0 0 -1 SX 1 0 0
SLN 1 NPA 2 1 REF ‘A1’ GRP 1 STYP ‘B’ SNO 1 DRX 0 0 -1
END

+prog aqua urs:3
head
inte 0
end

Hi SabineF

Can we use derived variavle “C” in GAXV?

The purpose of Marcell and mine is to use derived variables (like C=A+B) in GAXV.

Hello,

following definition in SOFiMSHC GAXV is not possible: V ‘=#A+#B’
When defining the variable C in GAXV, this is possible:

+PROG AQUA urs:1
HEAD
UNIT 5
NORM ‘EN’ ‘1992-2004’ COUN 0 CAT ‘AN’ SNOW ‘1’ UNIT 5
CONC 1 C ‘25’ TYPR B TITL “=C 25/30 (EN 1992)”
STEE 2 B ‘500B’ TMAX 32 TITL “=B 500 B (EN 1992)”

CTRL FACE -1

SECT 1 MNO 1 MRF 2 FSYM NONE BTYP BEAM TITL “master 100”

TVAR ‘C’ VAL 500[mm]

LAY 1 TYPE MIN MRF 2
LAY 2 TYPE MIN MRF 2
LAY 3 TYPE MIN MRF 2
LAY 4 TYPE MIN MRF 2
POLY TYPE O MNO 1
VERT ‘0100’ Y -250 Z 0 EXP 1
VERT ‘0101’ Y 250 Z 0 EXP 1
VERT ‘0102’ Y 250 Z #C EXP 1
VERT ‘0103’ Y -250 Z #C EXP 1
VERT ‘0100’ Y -250 Z 0 EXP 1
CUT ‘ZS’ ZB ‘S’ NS 0 MS 0 MNO 1 MRF 2 LAY 1 TYPE WEB INCL 90
END

+PROG SOFIMSHC urs:2
HEAD
UNIT 5
SYST SLAB GDIV 10000 GDIR NEGZ
CTRL TOPO 0
CTRL TOLG VAL 0.010000[m]
CTRL MESH 1
CTRL EDRL 1
CTRL HMIN VAL 1.250000[m]
CTRL FINE VAL -0.325000
CTRL PROG VAL 1.238000
CTRL EFAC VAL 1.398600

GAX ‘A1’ TYPC AXIS TITL “A1”
GAXA S 0.0 X 0.0 0.0 SX 1.00000 0.0
GAXA L 10.0000 R 0.0 RA 0.0 RE 0.0
GAXV ‘A1’ NAME ‘C’ S 0.0 V ‘=500.+500.’ DV 0.05000 TYPE POLY
GAXV ‘A1’ NAME ‘C’ S 10.0000 V ‘=1000.+1000.’ DV 0.0 TYPE POLY
GAXP ‘A1’ IDS 0 S 10.0000 TYPE ‘S’ IDP ‘P2’
GAXP ‘A1’ IDS 0 S 0.0 TYPE ‘S’ IDP ‘P1’
SPT 1 X 10.0000 0.0 0.0 NX 0 0 -1 SX 1 0 0
SPT 2 X 0.0 0.0 0.0 NX 0 0 -1 SX 1 0 0
SLN 1 NPA 2 1 REF ‘A1’ GRP 1 STYP ‘B’ SNO 1 DRX 0 0 -1
END

+prog aqua urs:3
head
inte 0
end

With kind regards
Sabine