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.