I’m trying to define a line load on beam elements (or structural lines) and would like to calculate the load intensity based on the cross-section height or width. Since the height of the cross section varies along a GAX and is interpolated within AQUA, I’d like to access the height of each beam element, multiply it with a certain area load (eg. wind pressure, live load) to obtain the line load to be applied on the respective element. Is this possible in TEDDY or Sofiplus?
In other words, can I access the interpolated section variables (height, width etc.) along a GAX within SOFILOAD?
Below is the SOFILOAD code I’d like to use with #HEIGHT defined as a TVAR in AQUA and interpolated along a GAX.
LOOP#i SP
LC 10+#i TYPE Q_A DLZ 1.0 TITL ‘LL’
BEAM SLN 10000+#i*1000 TYPE PG PA 10.0 *#HEIGHT
ENDLOOP
As far as I know it is not possible to access a TVAR (defined in SOFiMSHC and AQUA) in SOFiLOAD.
I would suggest to use a #LET variable to create the cross-section. This has the consequence that you can use this variable in SOFiLOAD as well.
Another possible solution could be to read the cross-section values with an @key command. (see container 9 - cross-sections). But this procedure is only suitable for advanced SOFiSTiK user.
Best regards
Frederik Höller
Your SOFiSTiK Support Team
I’m happy to define my section variables with #LET, but:
Will I then be able to interpolate these section variables along a GAX?
Can I access these interpolated values of the variable? (Ie. not the ones I manually defined, but the ones interpolated by AQUA’s INTE ALL command)
Regarding the @key command, could you please refer me to a manual where I can read more about this? I’m happy to write a script to access the CDB if that’s what it takes.
I had a go at defining my section variables with LET (and STO) but as expected the interpolated section variables are still not available in SOFILOAD, only the value that I initially defined.
Perhaps I didn’t clarify the problem at hand well enough.
I have a parametric cross-section defined in AQUA.
I then define the variation of the cross-section variables along an axis in SOFIMSHC.
Then I have AQUA interpolate all the cross-section variables along the axis with the command INTE ALL.
Now, can I access these interpolated values easily within Teddy to define loads based on the variable cross-section width for example? Or I have to dive into CDB interfaces?
I do not think you can access the variables via teddy easily/directly
I suggest you save the variables locally via let/sto and interpolate them yourself (probably easiest)
You can access the variable or the section height of each beam via cadinp and @key
(Although accessing the variable might be a pain, since the record is defined as literal. I would probably go for the beam properties)
Either way you will probably end up scripting your own interpolation scheme.
A word to the sofistik developers: Extending the interface examples with access schemes/examples for records with a literal would be nice (e.g. gaxv, secondary groups etc)
As for 2., if I do this, I’ll lose the great functionality provided by GAXV and would end up doing a lot of manual labour. Would like to avoid this
As for 3., I came up with the code below. This is supposed to print the cros-section variables of section no. 125 (a cross-section created by the sofistik interpolation INTE ALL). It works alright except that it gives me the initial values of the cross-section variables, not the interpolated ones.
I’m sure I’m missing something here. Any suggestion would be much appreciated. Many thanks.
Check the cdb for what is actually stored (->database tools->database information, check record 9/sectionnr and scroll until you hit the variables)
When I check a small example file the variables are actually stored under SECT_VAD (in my case, read the “There are two sources of variables:” bit in the picture you posted)
Then this code should work: @key Sect_VAD 180$ checking section 180 Loop 7$ checking a total of 7 variables Let#temp1 @(id); prt#temp1 Let#temp2 @(NAME); prt#temp2 Let#temp3 @(rval); prt#temp3 EndLoop
Since you are using the @name format, you only need @SECT_VAD/@SECT_VAR.
If you would be using the @key format, you would use the 97/98 (i.e. the id)
Thanks a lot. I was under the impression that SECT_VAR contains the variables and SECT_VAD the default stored values, but the opposite seems to be the case. The code works now after changing to SECT_VAD, and I was able to extract the variable I needed, plus the corresponding beam number. So in the end I could apply to loading based on the section variable.
I’m surprised though that this is such a painful process, and there’s no easier way to do it.