TCL Command ABAELEM
Syntax
array set eshape [ABAELEM elemid GET SHAPE]
array set eprop [ABAELEM elemid GET PROPERTY]
array set econstr [ABAELEM elemid GET CONSTRUCTION]
array set enode [ABAELEM elemid GET NODE k]
Beschreibung
Abfrage der geometrischen Daten eines Elements.
Abfrage von physikalischen und anderen Eigenschaften eines Elements
Abfrage der Konstruktionsdaten eines Elements.
Abfrage der Daten eines Elementknotens.
|
Argument |
Dimension |
Bedeutung |
|
elemid |
OBJID |
Objekt-ID des ELements |
|
GET |
KEYWORD |
Daten abfragen |
|
SHAPE |
KEYWORD |
Geometrische Daten abfragen |
|
PROPERTY |
KEYWORD |
Physikalische und andere Eigenschaften abfragen |
|
CONSTRUCTION |
KEYWORD |
Bauplandaten abfragen |
|
NODE |
KEYWORD |
Knotendaten abfragen |
|
k |
INT |
Lokale Knotennummer, 1-basierend |
Rückgabefeld für [ABAELEM elemid GET SHAPE]
|
Feldargument |
Dimension |
Bedeutung |
|
error |
INT |
Fehlerstatus |
|
info |
TEXT |
Objekt- oder Fehlerinformation |
|
id |
OBJID |
Objekt-ID |
|
number |
INT |
Elementnummer |
|
type |
ENUM |
Elementtyp {"NULL", "BEAM_TIMOSHENKO", "BEAM_BERNOULLI", "SUPPORT", "SLINEAR", "VOLHEX8", "EXTTEND"} |
|
nn |
INT |
Knotenanzahl |
|
nc |
INT |
Koordinatenanzahl |
|
coords |
LIST |
Liste der Knotenkoordinaten {x1, y1, z1, x2, y2, z2, ...}; Länge der Liste: 3*nc |
Rückgabefeld für [ABAELEM elemid GET PROPERTY]
|
Feldargument |
Dimension |
Bedeutung |
|
error |
INT |
Fehlerstatus |
|
info |
TEXT |
Objekt- oder Fehlerinformation |
|
id |
OBJID |
Objekt-ID |
|
group |
INT |
Elementnummer |
|
humidity |
% |
Luftfeuchtigkeit |
|
mat |
INT |
Materialname |
|
matid |
INT |
Material-ID |
|
imat |
INT |
Materialnummer |
|
tshrink |
INT |
Schwindzeit |
|
tmean |
TEMP |
Mittlere Temperatur |
|
bmode |
ENUM |
Richtungsdefinition {"", "DECK", "PIER"} für Stäbe und Federn |
|
ap |
ANGLED |
Grundrisswinkel; bmode = "DECK" oder bmode = "PIER" |
|
ae |
ANGLED |
Aufrisswinkel; bmode = "DECK" oder bmode = "PIER" |
|
phi |
ANGLED |
Definitionwinkel um die Elementachse; bmode = "DECK" oder bmode = "PIER" |
|
phia |
ANGLED |
Berechneter Winkel um die Elementachse; bmode = "DECK" oder bmode = "PIER" |
|
ybuckle |
LSTRUCTD |
Knicklänge in y; nur type = "BEAM_*" |
|
zbuckle |
LSTRUCTD |
Knicklänge in z; nur type = "BEAM_*" |
|
nchild |
INT |
Anzahl der Teilstäbe im Verbund; nur type = "BEAM_*" |
|
children |
LIST |
Teilstäbe; nur type = "BEAM_*" |
|
section1 |
TEXT |
Querschnittsname am Stabanfang; nur type = "BEAM_*" |
|
section2 |
TEXT |
Querschnittsname am Stabende; nur type = "BEAM_*" |
|
section1ID |
OBJID |
Querschnitt-ID am Stabanfang; nur type = "BEAM_*" |
|
section2ID |
OBJID |
Querschnitt-ID am Stabende; nur type = "BEAM_*" |
|
isection1 |
INT |
Nummer des Querschnitts am Stabanfang; nur type = "BEAM_*" |
|
isection2 |
INT |
Nummer des Querschnitts am Stabende; nur type = "BEAM_*" |
|
unit1 |
INT |
Teilnummer im Querschnitt am Stabanfang; nur type = "BEAM_*" |
|
unit2 |
INT |
Teilnummer im Querschnitt am Stabende; nur type = "BEAM_*" |
|
vy1 |
LIST |
Querschnittsrichtung in y am Stabanfang, normierter 3D-Vektor; nur type = "BEAM_*" |
|
vz1 |
LIST |
Querschnittsrichtung in z am Stabanfang, normierter 3D-Vektor; nur type = "BEAM_*" |
|
vy2 |
LIST |
Querschnittsrichtung in y am Stabende, normierter 3D-Vektor; nur type = "BEAM_*" |
|
vz2 |
LIST |
Querschnittsrichtung in z am Stabende, normierter 3D-Vektor; nur type = "BEAM_*" |
|
C |
LIST |
6 Federkonstanten Cx, Cy, Cz (Einheit FORCE/LSTRUCT), CMx, CMy, CMz (Einheit MOMENT/ANGLE); nur für Federelemente |
|
diam |
LSTRUCTD |
Durchmesser des externen Vorspannkabels; type = "EXTTEND" |
|
area |
ASTRAND |
Querschnittsfläche des externen Vorspannkabels; type = "EXTTEND" |
|
itend |
INT |
Nummer des externen Vorspannkabels; type = "EXTTEND" |
Rückgabefeld für [ABAELEM elemid GET CONSTRUCTION]
|
Feldargument |
Dimension |
Bedeutung |
|
error |
INT |
Fehlerstatus |
|
info |
TEXT |
Objekt- oder Fehlerinformation |
|
id |
OBJID |
Objekt-ID |
|
cast |
ENUM |
Konstructionstyp {"", "CIP_FWORK", "CIP_MSS", "CIP_FCM", "DIFFERENT", "PBM_FULLSPAN", "PBM_SBSFWORK", "PBM_SBSCRANE", "PSM_SBSGANTR", "PSM_SBSFSHOR", "PSM_BCLGANTR", "PSM_BCLLIFTF", "PSM_BCLCRANE"}; siehe TCL Command CASTTYPE |
|
ifc |
TEXT |
IFC-Typ |
|
dbirth |
INT |
"Geburtstag" des Elements; Das Betonelement wird gegossen. |
|
dact |
INT |
Aktivierungstag des Elements; Das Element wird Teil der Struktur. |
|
ddeath |
INT |
Ein temporäres Element wird deaktiviert. |
|
ref1 |
TEXT |
Referenztext (z.B. Position des Elementanfangs am Bauteil) |
|
ref2 |
TEXT |
Referenztext (z.B. Position des Elementendes am Bauteil) |
Rückgabefeld für [ABAELEM elemid GET NODE k]
|
Feldargument |
Dimension |
Bedeutung |
|
error |
INT |
Fehlerstatus |
|
info |
TEXT |
Objekt- oder Fehlerinformation |
|
id |
OBJID |
Objekt-ID |
|
number |
INT |
Globale Knotennummer |
|
ex |
TEXT |
X-Exzenter zum globalen Knoten (X(k) = x - ex) |
|
ey |
LSTRUCTD |
Y-Exzenter zum globalen Knoten (Y(k) = y - ey) |
|
ez |
LSTRUCTD |
Z-Exzenter zum globalen Knoten (Z(k) = z - ez) |
|
x |
LSTRUCTD |
Globale X-Koordinate |
|
y |
LSTRUCTD |
Globale Y-Koordinate |
|
z |
LSTRUCTD |
Globale Z-Koordinate |
Scopes
All
Beispiele
# units
array set ul [ABMUNIT LSTRUCT GET]
array set ua [ABMUNIT ANGLED GET]
array set ut [ABMUNIT TEMP GET]
puts $outfile ""
puts $outfile " ------------------------"
puts $outfile " Angles in $ua(symb)"
puts $outfile " Coordinates in $ul(symb)"
puts $outfile " Temperature in $ut(symb)"
puts $outfile " ------------------------"
puts $outfile ""
puts $outfile " Element Type Nodes NC Coordinates"
puts $outfile " Material MatID Group Tshrink Tmean Humidity Mode Alpha-p Alpha-e Phi Phi-A"
puts $outfile " Section1 U1 Section2 U2 Composite units"
puts $outfile " vy1-x vy1-y vy1-z vz1-x vz1-y vz1-z vy1-x vy1-y vy1-z vz1-x vz1-y vz1-z"
puts $outfile " yBuckle zBuckle"
puts $outfile " Cx Cy Cz CMx CMy CMz"
puts $outfile " Cast-Type IFC Birth Active Death Reference1 Reference2"
puts $outfile " -----------------------------------------------------------------------------------------------------------------------------"
set format1 " %7d %-16s %5d %2d %s"
set format2a " %-24s %7d %-16s %8.1f %8.2f %8.2f"
set format2b " %-24s %7d %-16s %8.1f %8.2f %8.2f %4s %8.3f %8.3f %8.3f %8.3f"
set format3a " %12.5e %12.5e %12.5e %12.5e %12.5e %12.5e"
set format3b " %-24s %3d %-24s %3d %s"
set format3c " %6.3f %6.3f %6.3f %6.3f %6.3f %6.3f %6.3f %6.3f %6.3f %6.3f %6.3f %6.3f"
set format3d " %8.3f %8.3f"
set format4 " %-16s %-24s %8d %8d %8d %-24s %-24s"
# list of elements
array set elems [ABAELEMS GET LIST]
# element data
set ID $elems(first)
for { set ielem 0 } { $ielem < $elems(count) } { incr ielem } {
if { $ielem > 0 } { set ID [OBJNEXT $ID] }
array unset eshape
array set eshape [ABAELEM $ID GET SHAPE]
set coords ""
set k 0
for { set ic 0 } { $ic < $eshape(nc) } { incr ic } {
set x [lindex $eshape(coords) $k]
incr k
set y [lindex $eshape(coords) $k]
incr k
set z [lindex $eshape(coords) $k]
incr k
lappend coords [format "%10.3f %10.3f %10.3f" $x $y $z]
}
puts $outfile [format $format1 $eshape(number) $eshape(type) \
$eshape(nn) $eshape(nc) $coords]
array unset eprop
array set eprop [ABAELEM $ID GET PROPERTY]
if { $eprop(bmode) == "" } {
puts $outfile [format $format2a $eprop(mat) $eprop(matid) $eprop(group) \
$eprop(tshrink) $eprop(tmean) $eprop(humidity)]
} else {
puts $outfile [format $format2b $eprop(mat) $eprop(matid) $eprop(group) \
$eprop(tshrink) $eprop(tmean) $eprop(humidity) \
$eprop(bmode) $eprop(ap) $eprop(ae) \
$eprop(phi) $eprop(phia)]
}
if { $eshape(type) == "SUPPORT" || $eshape(type) == "SLINEAR" } {
puts $outfile " "
puts $outfile " "
puts $outfile " "
set Cx [lindex $eprop(C) 0]
set Cy [lindex $eprop(C) 1]
set Cz [lindex $eprop(C) 2]
set CMx [lindex $eprop(C) 3]
set CMy [lindex $eprop(C) 4]
set CMz [lindex $eprop(C) 5]
puts $outfile [format $format3a $Cx $Cy $Cz $CMx $CMy $CMz]
}
if { [string first "BEAM" $eshape(type)] == 0 } {
# composite
if { $eprop(nchild) > 0 } {
set children $eprop(children)
} else {
set children ""
}
puts $outfile [format $format3b $eprop(section1) $eprop(unit1) \
$eprop(section2) $eprop(unit2) $children]
set vy1x [lindex $eprop(vy1) 0]
set vy1y [lindex $eprop(vy1) 1]
set vy1z [lindex $eprop(vy1) 2]
set vz1x [lindex $eprop(vz1) 0]
set vz1y [lindex $eprop(vz1) 1]
set vz1z [lindex $eprop(vz1) 2]
set vy2x [lindex $eprop(vy2) 0]
set vy2y [lindex $eprop(vy2) 1]
set vy2z [lindex $eprop(vy2) 2]
set vz2x [lindex $eprop(vz2) 0]
set vz2y [lindex $eprop(vz2) 1]
set vz2z [lindex $eprop(vz2) 2]
puts $outfile [format $format3c $vy1x $vy1y $vy1z $vz1x $vz1y $vz1z $vy2x $vy2y $vy2z $vz2x $vz2y $vz2z]
puts $outfile [format $format3d $eprop(ybuckle) $eprop(zbuckle)]
puts $outfile " "
}
array unset econstr
array set econstr [ABAELEM $ID GET CONSTRUCTION]
puts $outfile [format $format4 $econstr(cast) $econstr(ifc) \
$econstr(dbirth) $econstr(dact) \
$econstr(ddeath) $econstr(ref1) $econstr(ref2)]
puts $outfile " -----------------------------------------------------------------------------------------------------------------------------"
}
Es wird angenommen, dass eine Textdatei outfile zum Schreiben geöffnet wurde. Die Strukturelemente werden durchlaufen und die Elementdaten werden formatiert in die Textdatei geschrieben.
Die Ausgaben sind projektabhängig und können zum Beispiel wie folgt aussehen:
------------------------
Angles in [deg]
Coordinates in [m]
Temperature in [°C]
------------------------
Element Type Nodes NC Coordinates
Material MatID Group Tshrink Tmean Humidity Mode Alpha-p Alpha-e Phi Phi-A
Section1 U1 Section2 U2 Composite units
vy1-x vy1-y vy1-z vz1-x vz1-y vz1-z vy1-x vy1-y vy1-z vz1-x vz1-y vz1-z
yBuckle zBuckle
Cx Cy Cz CMx CMy CMz
Cast-Type IFC Birth Active Death Reference1 Reference2
-----------------------------------------------------------------------------------------------------------------------------
101 BEAM_BERNOULLI 2 2 { 0.000 -1.419 -0.067} { 5.000 -1.342 -0.067}
EN:C40/50 6727 MG 0.0 20.00 75.00 DECK 0.000 0.881 0.000 1.473
MG-Box:v001:1 1 MG-Box:v002:1 1
0.000 1.000 0.000 0.000 0.000 1.000 0.000 1.000 0.000 0.000 0.000 1.000
0.000 0.000
IfcBeam:BEAM 36 49 2000000 MG-Box:0.00000[m]:1 MG-Box:0.00000[m]:1
-----------------------------------------------------------------------------------------------------------------------------
102 BEAM_BERNOULLI 2 2 { 5.000 -1.342 -0.067} { 10.000 -1.265 -0.067}
EN:C40/50 6727 MG 0.0 20.00 75.00 DECK 0.000 0.881 0.000 1.473
MG-Box:v002:1 1 MG-Box:v003:1 1
0.000 1.000 0.000 0.000 0.000 1.000 0.000 1.000 0.000 0.000 0.000 1.000
0.000 0.000
-----------------------------------------------------------------------------------------------------------------------------
......
-----------------------------------------------------------------------------------------------------------------------------
1100 SUPPORT 1 1 { 0.000 -3.700 0.000}
0 0.0 0.00 0.00 PIER 0.000 90.000 0.000 0.000
1.00000e+08 1.00000e+08 1.00000e+08 1.00000e+08 1.00000e+08 1.00000e+08
49 49 2000000 Abut1(C) -> 0
-----------------------------------------------------------------------------------------------------------------------------
1101 SLINEAR 2 1 { 0.000 -3.700 -2.743}
0 0.0 0.00 0.00 PIER 0.000 90.000 0.000 0.000
1.00000e+08 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00
49 49 2000000 Abut1(C) Abut1 -> MG-Box:0.00000[m]:1
-----------------------------------------------------------------------------------------------------------------------------
.....
Ausgaben zu obiger Script.
# element-node data
puts $outfile ""
puts $outfile " Element Type Node Number X Y Z EX EY EZ"
puts $outfile " ------------------------------------------------------------------------------------------------------------"
set format5a " %7d %-16s %4d %6d %12.5f %12.5f %12.5f %10.5f %10.5f %10.5f"
set format5b " %4d %6d %12.5f %12.5f %12.5f %10.5f %10.5f %10.5f"
set ID $elems(first)
for { set ielem 0 } { $ielem < $elems(count) } { incr ielem } {
if { $ielem > 0 } { set ID [OBJNEXT $ID] }
array unset eshape
array set eshape [ABAELEM $ID GET SHAPE]
set nn $eshape(nn)
for { set k 1 } { $k <= $nn } { incr k } {
array unset enode
array set enode [ABAELEM $ID GET NODE $k]
if { $k == 1 } {
puts $outfile [format $format5a $eshape(number) $eshape(type) $k \
$enode(number) $enode(x) $enode(y) $enode(z) \
$enode(ex) $enode(ey) $enode(ez)]
} else {
puts $outfile [format $format5b $k \
$enode(number) $enode(x) $enode(y) $enode(z) \
$enode(ex) $enode(ey) $enode(ez)]
}
}
}
Es wird angenommen, dass eine Textdatei outfile zum Schreiben geöffnet wurde. Die Strukturelemente werden durchlaufen und die Elementdaten werden formatiert in die Textdatei geschrieben.
Die Ausgaben sind projektabhängig und können zum Beispiel wie folgt aussehen:
Element Type Node Number X Y Z EX EY EZ
------------------------------------------------------------------------------------------------------------
101 BEAM_BERNOULLI 1 101 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000
2 102 5.00000 0.07692 0.00000 0.00000 0.00000 0.00000
102 BEAM_BERNOULLI 1 102 5.00000 0.07692 0.00000 0.00000 0.00000 0.00000
2 103 10.00000 0.15385 0.00000 0.00000 0.00000 0.00000
103 BEAM_BERNOULLI 1 103 10.00000 0.15385 0.00000 0.00000 0.00000 0.00000
2 104 15.00000 0.23077 0.00000 0.00000 0.00000 0.00000
104 BEAM_BERNOULLI 1 104 15.00000 0.23077 0.00000 0.00000 0.00000 0.00000
2 105 20.00000 0.30769 0.00160 0.00000 0.00000 0.00000
.....
Ausgaben zu obiger Script.
