5-) Döşeme

Köprü döşemesi (tabliyesi), motorlu taşıtların köprüye temas ettiği yüzeydir. Araç trafiğinden kaynaklanan hareketli yükler bu yüzey aracılığıyla düzgün bir şekilde ana taşıyıcı kirişlere dağılır. Betonarme köprü döşemesi, yerinde dökme ya da prekast olabilir. 


Kullanıcı Parametreleri

Input Parameters
<O N="GeometricParameters" T="Project">
    <P N="girder" V="[Kiris3,Kiris1,Kiris2]" T="KBYS_OngerilmeliIKiris" D="Kiriş Listesi" Role="Input" Category="Geometri" />
    <O T="ParamInfo" Min="2" Max="100" Required="1" Param="girder" Pick="1" List="1" />
    <P N="OverhangLeft" V="4000" D="Döşeme Sağ Taraf Çıkıntısı" Role="Input" Category="Geometri" UT="Length" UC="CM_KGF" />
    <P N="OverhangRight" V="4000" D="Döşeme Sol Taraf Çıkıntısı" Role="Input" Category="Geometri" UT="Length" UC="CM_KGF" />
    <P N="SlabThickness" V="250" D="Döşeme Yüksekliği" Role="Input" Category="Geometri" UT="Length" UC="CM_KGF" />
   
</O>
<O N="FEMParameters" T="Group">
    <P N="SlabMat" V="NULL" T="Material" D="Malzeme Özelliği" Role="Input" Category="FEM" />
    <P N="Beam_Mesh" V="10" D="Kirislerdeki Mesh Sayisi" Role="Input" Category="FEM" />
    <P N="runMesh" V="2" D="Sonlu Eleman Modeli[Olustur=1/Olusturma=2]" Role="Input" Category="FEM" />
</O>
  • Kiriş Listesi (girder)

          Döşemenin oluşabilmesi için kullanılan kirişleri gösteren input parametredir. Proje kurulurken seçilecek kirişler bu listeye dahil olacaktır.

  • ParamInfo

          Döşeme objesinin projede oluşturulurken, kirişleri "pick"leme özelliği getiren parametredir. Ayrıca döşeme oluşurken minimum ve maksimum kaç kiriş olması gerektiğini belirlediğimiz parametredir. Kod içerisinde görüldüğü üzere, döşeme oluşturabilmek için minimum 2 adet kirişe ihtiyaç olduğu gösterilmiştir.

  • Döşeme Sol Taraf Çıkıntısı (OverhangLeft)

          Döşeme objesi kirişin üzerine güzergah yönüne bakıldığında en soldaki kirişin sol çizgisinden başlayıp, en sağdaki kirişin sağ çizgisinde sonlanacak şekilde kendini oluşturmaktadır. Döşemeyi kirişlerden çıkıntı verilmek istenildiği zaman bu input parametre, güzergah yönüne doğru bakıldığında sol kirişin çizgisinden çıkıntı vermektedir.

  • Döşeme Sağ Taraf Çıkıntısı (OverhangRight)

          Güzergah yönüne doğru bakıldığında, döşemenin sağ çizgisinden çıkıntı vermesini sağlayan input parametredir.

 

 

  • Döşeme Yüksekliği (SlabThickness) 

          Döşeme yüksekliği, isminden anlaşıldığı üzere kirişlerin üzerine gelen döşemenin kalınlığını belirten input parametredir. Kiriş üst yüzeyi ile döşemenin üst yüzeyi arasındaki mesafeye eşittir.

 

  • Malzeme Özelliği (Slabmat) 

          Hesaplamalarda kullanılacak malzeme özelliklerinin atamasının yapıldığı input parametredir. Malzeme veri tabanından gerekli değerleri çekmektedir. 

Detaylı bilgi için bkz. Malzeme Veritabanı

  • Kirişlerdeki Mesh Sayısı (Beam_Mesh)

          Ön germeli I kirişte bahsedildiği üzere, kirişler üzerine döşeme geldiği zaman bu parametre kirişin kaç adet FELine'dan oluşacağını belirlemektedir. Döşeme de finite modelini bu parametreye göre ayarlamaktadır.

  • runMesh

          "runMesh" input parametresi döşeme objesi içinde kodlanmış olan finite modelin görünüp görünmemesini sağlayan parametredir.

3D Geometri

Döşeme KoordinatlarıColor parametresi döşemenin renginin ayarlandığı parametredir.

Opacity parametresi döşemenin şeffaflığını ayarlayan parametredir.

          3D geometri oluşturulurken hesaplanan bütün koordinat listeleri export grubunun içerisinde olmasına rağmen 3D geometri oluşurken çok fazla koordinat hesabı döndüğü için koordinatların nereden geldiği düzgünce sıralanmalıdır. Bu doğrultuda 3D geometriyi oluşturan StartSlabList, FinishSlabList, StartBottomPTs ve FinishBottomPTs nihai listelerine kadar yapılan tüm işlemler ve sonucunda oluşturulan listeler bu kısımda incelenecektir. Harici exportlanan parametreler ilgili olduğu kısımda açıklanacaktır.

3D Geometry
<O N="Geometry" T="Project">
    <O N="Coordinates_Deck" T="Group">
        <O N="Surface_Points" T="Group">
            <O N="TopSurface" T="Group">
              
                <O N="Top" T="Repeat" S="0" E="length(StartBeamPTs)-2" I="1" CTRL="p" p="4">
                 
                    <P N="LeftMidPoint" V="onliner([StartBeamPTs[p],StartBeamPTs[p+1]],0.5)" />
             
                    <P N="RightMidPoint" V="onliner([FinishBeamPTs[p],FinishBeamPTs[p+1]],0.5)" />
                </O>
            </O>
   
            <P N="StartBottomPTs" V="reverse(sort(concat(map(Top,x.LeftMidPoint),[StList_over_L],[StList_over_R]),x[1]))" />
            <P N="FinishBottomPTs" V="reverse(sort(concat(map(Top,x.RightMidPoint),[FnshList_over_L],[FnshList_over_R]),x[1]))" />
        </O>
    </O>
    <O N="Slab" T="Volume" Alignment="SlabRoute" AlignH="Warp" AlignV="Warp" AlignT="Warp">
        <P N="Color" V="#109025" T="Text" />
        <P N="Opacity" V="0.3" />
        <O T="Surface">
            <O T="Repeat" S="0" E="length(StartSlabList)-1" I="1" CTRL="i" i="0">
                <O T="Point" X="StartSlabList[i][0]" Y="StartSlabList[i][1]" Z="StartSlabList[i][2]" AlignTB="0" />
            </O>
            <O T="Repeat" S="0" E="length(StartBottomPTs)-1" I="1" CTRL="k" k="0">
                <O T="Point" X="StartBottomPTs[k][0]" Y="StartBottomPTs[k][1]" Z="StartBottomPTs[k][2]+SlabThickness" />
            </O>
        </O>
        <O T="Surface">
            <O T="Repeat" S="0" E="length(FinishSlabList)-1" I="1" CTRL="i" i="0">
                <O T="Point" X="FinishSlabList[i][0]" Y="FinishSlabList[i][1]" Z="FinishSlabList[i][2]" AlignTB="0" />
            </O>
            <O T="Repeat" S="0" E="length(FinishBottomPTs)-1" I="1" CTRL="p" p="0">
                <O T="Point" X="FinishBottomPTs[p][0]" Y="FinishBottomPTs[p][1]" Z="FinishBottomPTs[p][2]+SlabThickness" />
            </O>
        </O>
    </O>
</O>

-SortedBeamPTs parametresi, döşeme altında bulunan bütün kirişleri başlangıç Y koordinatlarına göre sıralayan parametredir.

-BeamRefPT_L1 parametresi,  güzergah bitişinden güzergah başlangıcına doğru bakıldığında döşeme altında ne kadar kiriş objesi varsa hepsinin sol reflinelarının başlangıç koordinatlarını sıralı bir şekilde listeleyen parametredir.

-BeamRefPT_L2 parametresi, güzergah bitişinden güzergah başlangıcına doğru bakıldığında döşeme altında ne kadar kiriş objesi varsa hepsinin sol relinelarının bitiş koordinatlarını sıralı bir şekilde listeleyen parametredir.

-BeamRefPT_R1 parametresi, güzergah bitişinden güzergah başlangıcına doğru bakıldığında döşeme altında ne kadar kiriş objesi varsa hepsinin sağ reflinelarının başlangıç koordinatlarını sıralı bir şekilde listeleyen parametredir.

-BeamRefPT_R2 parametresi, güzergah bitişinden güzergah başlangıcına doğru bakıldığında döşeme altında ne kadar kiriş objesi varsa hepsinin sağ reflinelarının bitiş koordinatlarını sıralı bir şekilde listeleyen parametredir.

-StartBeamPTs parametresi, BeamRefPT_L1 ve BeamRefPT_R1 listelerinin birleşiminden oluşan, kirişlerin sağ ve sol reflinelarının başlangıç koordinatlarının sıralı listesidir.

-FinishBeamPTs parametresi, BeamRefPT_L2 ve BeamRefPT_R2 listelerinin birleşiminden oluşan, kirişlerin sağ ve sol bitiş koordinatlarının sıralı listesidir.

-StartList parametresi, kirişlerin başlangıç koordinatlarının en sağındaki ve en solundaki noktalarından oluşan line çizgisini veren parametredir.

-StList_over_L parametresi, döşemeye çıkıntı verilmesi durumunda güzergah bitişinden bakıldığında solda oluşacak point koordinatlarını online fonksiyonu ile hesaplayan parametredir.

-StList_over_R parametresi, döşemeye çıkıntı verilmesi durumunda güzergah bitişinden bakıldığında sağda oluşacak point koordinatlarını online fonksiyonu ile hesaplayan parametredir.

-FinishList parametresi, kirişlerin bitiş koordinatlarının en sağındaki ve en solundaki noktalarından oluşan line çizgisini veren parametredir.

-FnshList_over_L parametresi, döşemeye çıkıntı verilmesi durumunda güzergah bitişinden bakıldığında solda oluşacak point koordinatlarını online fonksiyonu ile hesaplayan parametredir.

-FnshList_over_R parametresi, döşemeye çıkıntı verilmesi durumunda güzergah bitişinden bakıldığında sağda oluşacak point koordinatlarını online fonksiyonu ile hesaplayan parametredir.

-StartSlabList parametresi, tüm kirişlerin reflinelarının başlangıç noktalarını içeren StartBeamPTs parametresi, StList_over_L  parametresi ve StList_over_R parametresinin birleşiminden oluşan listeyi gösteren parametredir. Döşeme alt yüzey başlangıcının koordinatları bu listeden oluşacaktır.

-FinishSlabList parametresi, tüm kirişlerin reflinelarının başlangıç noktalarını içeren FinishBeamPTs parametresi, FnshList_over_L parametresi ve FnshList_over_R parametresinin birleşiminden oluşan listeyi gösteren parametredir. Döşeme alt yüzey bitişinin koordinatları bu listeden oluşacaktır. 

-LeftMidPoint parametresi, tüm kirişlerin sol ve sağ refline başlangıç koordinatlarının onliner fonksiyonu ile orta noktasını hesaplayan ve bu koordinatları listeli bir şekilde gösteren parametredir.

-RightMidPoint parametresi, tüm kirişlerin sol ve sağ refline bitiş koordinatlarının onliner fonksiyonu ile orta noktasını hesaplayan ve bu koordinatları listeli bir şekilde gösteren parametredir.

-StartBottomPTs parametresi, kirişlerin başlangıç orta noktaları olan LeftMidPoint point listesi ile StList_over_L ve StList_over_R pointlerinden oluşan koordinat listesidir. Döşeme üst yüzeyinin başlangıç koordinatları bu listeden oluşacaktır. Bulunan koordinatlar Z yönünde döşeme alt yüzeyine karşılık gelmektedir. Bu noktalar üst yüzeyi oluşturacağı için geometri ayarlanırken, kot farkı döşeme kalınlığı arttırılarak yapılacaktır. Ayrıca, geometri oluşturulurken saat yönünde nokta tanımı yapıldığından dolayı reverse fonksiyonu kullanılarak liste ters çevrilmiştir. Bu sayede sıralı bir şekilde pointler oluşmaktadır.

-FinishBottomPTs parametresi, kirişlerin bitiş orta noktaları olan RightMidPoint point listesi ile FnshList_over_L ve FnshList_over_R pointlerinden oluşan koordinat listesidir.Döşeme üst yüzeyinin bitiş koordinatları bu listeden oluşacaktır. Bulunan koordinatlar Z yönünde döşeme alt yüzeyine karşılık gelmektedir. Bu noktalar üst yüzeyi oluşturacağı için geometri ayarlanırken, kot farkı döşeme kalınlığı arttırılarak yapılacaktır. Ayrıca, geometri oluşturulurken saat yönünde nokta tanımı yapıldığından dolayı reverse fonksiyonu kullanılarak liste ters çevrilmiştir. Bu sayede sıralı bir şekilde pointler oluşmaktadır.

  • Döşeme Alignment Hesapları

          Döşeme objesinin alignment değerlerinin tamamı "Warp" durumdadır. Dolayısı ile döşeme objesi, alignment ne davranış gösterirse aynı şekilde davranacaktır.

Finite Element Model DOC-57 - Getting issue details... STATUS


Kullanici FEM
<O N="FiniteElement" T="Project">
    <P N="Guard" V="runMesh.EQ.1" />
    <!-- BeamConsole parametreleri kirişte konsol olması durumunda finite element nodelarının doğru yerde oluşması için hesaplanmıştır.-->
    <P N="BeamConsole1" V="filter(SortedBeamPTs,x.console_1 .NE. 0 )" />
    <P N="BeamConsole2" V="filter(SortedBeamPTs,x.console_1 .NE. 0 )" />
    <O N="Midpoints" T="Repeat" S="0" E="length(SortedBeamPTs)-2" I="1" CTRL="i" i="0">
        <!-- Kirislerin ve Kirislerin orta noktalarının meshlenmesi -->
        <!-- Transverse yönüne göre Y koordinatları küçükten büyüğe sıralanan kirislerin küçük olanının başlangıç noktası -->
        <P N="LeftBeamSt" V="online(SortedBeamPTs[i].MidRef,SortedBeamPTs[i].console_1)" />
        <P N="DistanceL" V="linel(SortedBeamPTs[i].MidRef)-SortedBeamPTs[i].console_2" />
        <!-- Transverse yönüne göre Y koordinatları küçükten büyüğe sıralanan kirislerin küçük olanının bitiş noktası -->
        <P N="LeftBeamFnsh" V="online(SortedBeamPTs[i].MidRef,DistanceL)" />
        <!-- Transverse yönüne göre Y koordinatları küçükten büyüğe sıralanan kirislerin büyük olanının başlangıç noktası -->
        <P N="RightBeamSt" V="online(SortedBeamPTs[i+1].MidRef,SortedBeamPTs[i+1].console_1)" />
        <P N="DistanceR" V="linel(SortedBeamPTs[i+1].MidRef)-SortedBeamPTs[i+1].console_2" />
        <!-- Transverse yönüne Y koordinatları göre küçükten büyüğe sıralanan kirislerin büyük olanının bitiş noktası -->
        <P N="RightBeamFnsh" V="online(SortedBeamPTs[i+1].MidRef,DistanceR)" />
        <!-- İki kirişin başlangıç noktalarının orta noktası -->
        <P N="MidSt" V="onliner([LeftBeamSt,RightBeamSt],0.5)" />
        <!-- İki kirişin bitiş noktalarının orta noktası -->
        <P N="MidFnsh" V="onliner([LeftBeamFnsh,RightBeamFnsh],0.5)" />
        <P N="MidpointSt" V="onliner([SortedBeamPTs[i].MidRef[0],SortedBeamPTs[i+1].MidRef[0]],0.5)" />
        <P N="MidpointFnsh" V="onliner([SortedBeamPTs[i].MidRef[1],SortedBeamPTs[i+1].MidRef[1]],0.5)" />
        <!-- Kirislerin orta noktalarından olusan Line -->
        <P N="MidLine" V="[MidpointSt,MidpointFnsh]" />
        <!-- Konsol bırakılan kirislerin mesnetlerle baglantısını saglayacak olan liste -->
        <P N="Beam_L" V="[LeftBeamSt,LeftBeamFnsh]" />
        <P N="Beam_R" V="[RightBeamSt,RightBeamFnsh]" />
        <P N="Mid_Coordinate" V="[MidSt,MidFnsh]" />
    </O>
    <O N="InputsforRepeats" T="Group">
        <!-- External ve Internal Repeatlerine girecek olan listeler bu grup altında toplanmıstır.  -->
        <!-- Dosemelerin reflinelarının birlestigi liste -->
        <P N="References_Line" V="sort(concat([SlabRef_L],[SlabRef_R]),x[1])" />
        <P N="M_Coordinates" V="map(Midpoints , x.Mid_Coordinate)" />
        <P N="Beam_CoorL" V="map(Midpoints , x.Beam_L)" />
        <P N="Beam_CoorR" V="map(Midpoints , x.Beam_R)" />
        <!-- Internal Repeatine girecek olan tum koordinatların listesi -->
        <P N="Beam_Mid" V="removedup(sort(concat(M_Coordinates,Beam_CoorL,Beam_CoorR),x[0][1]),x[0][1])" />
        <!-- Internal Repeatinin kac kere doneceginin hesaplanması -->
        <P N="number" V="2*length(SortedBeamPTs)-1" />
        <O N="Bearing_Distance" T="Group">
            <!-- Kirislerin doseme ile baglantısını saglayacak liste -->
            <P N="GirderPoints" V="map(SortedBeamPTs,x.MidRef ) " />
            <!-- Kirislerin ortalarındaki mesheleme -->
            <P N="Midpoint_Coordinate1" V="map(Midpoints, x.MidLine)" />
            <!-- Dosemede bulunan butun nodeların koordinat listesi -->
            <P N="GeneralCoordinates" V="sort(concat(GirderPoints,Midpoint_Coordinate1,[SlabRefline_L],[SlabRefline_R]),x[0][1])" />
            <O N="Split1" T="Repeat" S="0" E="number+1" I="1" CTRL="k" k="0">
                <!-- Surfacelar olusurken mesnetlenme bolgesindeki surfaceların koordinatları -->
                <P N="Start_Point1" V="GeneralCoordinates[k][0]" />
                <P N="S_PointX1" V="alignHX(SlabRoute,Start_Point1[0],Start_Point1[1])" />
                <P N="S_PointY1" V="alignHY(SlabRoute,Start_Point1[0],Start_Point1[1])" />
                <P N="S_PointZ1" V="Start_Point1[2]+alignV(SlabRoute,Start_Point1[0],Start_Point1[1])+alignT(SlabRoute,Start_Point1[0],Start_Point1[1])" />
                <P N="S1_PointAligned" V="[S_PointX1,S_PointY1,S_PointZ1]" />
                <P N="Final_Point1" V="GeneralCoordinates[k][1]" />
                <P N="F_PointX1" V="alignHX(SlabRoute,Final_Point1[0],Final_Point1[1])" />
                <P N="F_PointY1" V="alignHY(SlabRoute,Final_Point1[0],Final_Point1[1])" />
                <P N="F_PointZ1" V="Final_Point1[2]+alignV(SlabRoute,Final_Point1[0],Final_Point1[1])+alignT(SlabRoute,Final_Point1[0],Final_Point1[1])" />
                <P N="F1_PointAligned" V="[F_PointX1,F_PointY1,F_PointZ1]" />
            </O>
            <P N="Start_A_Points" V="map(Split1 ,x.S1_PointAligned)" />
            <P N="Final_A_Points" V="map(Split1 ,x.F1_PointAligned)" />
        </O>
    </O>
    <O N="External" T="Repeat" S="0" E="1" I="1" CTRL="j" j="0">
        <!-- Alignment'taki curvature'ı yakalaması icin dosemenin dıs kenarlarındaki reflineların alignment'a manuel bir sekilde yerlestirilmesi
                Line uzerindeki her bir node'un alignment'a girmesi icin uygulanan islem ( dıs kenarlar warp olması gerekiyor. ) -->
        <P N="integer" V="iif(j .EQ. 0 , 0 , length(SortedBeamPTs)-1)" />
        <P N="Offset_Point_S" V="online(References_Line[j],SortedBeamPTs[integer].console_1)" />
        <P N="Offset_distance" V="linel(References_Line[j])-SortedBeamPTs[integer].console_2" />
        <P N="Offset_Point_E" V="online(References_Line[j],Offset_distance)" />
        <P N="S_Line" V="[Offset_Point_S,Offset_Point_E]" />
        <P N="Splited_Line" V="linesplit(S_Line,Beam_Mesh)" />
        <P N="Splitted_All_Point" V="removedup(sort(concat([Offset_Point_S],Splited_Line,[Offset_Point_E]),x[0]),x[0])" />
        <O N="Split" T="Repeat" S="0" E="length(Splitted_All_Point)" I="1" CTRL="k" k="0">
            <!-- Doseme uzerindeki noktaların Station-Transverse-Elevation Koordinatları -->
            <P N="Start_Point" V="Splitted_All_Point[k]" />
            <!-- Dosemenin noktalarının Global X koordinatı -->
            <P N="S_PointX" V="alignHX(SlabRoute,Start_Point[0],Start_Point[1])" />
            <!-- Dosemenin noktalarının Global Y koordinatı -->
            <P N="S_PointY" V="alignHY(SlabRoute,Start_Point[0],Start_Point[1])" />
            <!-- Dosemenin noktalarının Global Z koordinatı -->
            <P N="S_PointZ" V="Start_Point[2]+alignV(SlabRoute,Start_Point[0],Start_Point[1])+alignT(SlabRoute,Start_Point[0],Start_Point[1])" />
            <!-- Dosemenin noktalarının Global XYZ Koordinat Listesi -->
            <P N="S_PointAligned" V="[S_PointX,S_PointY,S_PointZ]" />
        </O>
        <!-- Cift repeat dondugunden dolayı repeatten okunacak degerlerin adım adım listelenmesi -->
        <P N="Pre_External_Lines" V="map(Split , x.S_PointAligned )" />
    </O>
    <O N="Internal" T="Repeat" S="0" E="number-1" I="1" CTRL="t" t="0">
        <!-- Dosemenin ic yuzeyindeki nodeların olusturulması -->
        <!-- İc taraftaki lineların sadece baslangıc ve bitis noktası alignment'a girmesi gerektigi icin boyle bir islem uygulandı. -->
        <!-- Kirisin baslangıc noktasının Station-Transverse-Elevation Koordinatları -->
        <P N="First_Point" V="Beam_Mid[t][0]" />
        <!-- Kirisin Baslangıc Noktasının Global X Degeri -->
        <P N="First_PointX" V="alignHX(SlabRoute,First_Point[0],First_Point[1])" />
        <!-- Kirisin Baslangıc Noktasının Global Y Degeri -->
        <P N="First_PointY" V="alignHY(SlabRoute,First_Point[0],First_Point[1])" />
        <!-- Kirisin Baslangıc Noktasının Global Z Degeri -->
        <P N="First_PointZ" V="First_Point[2]+alignV(SlabRoute,First_Point[0],First_Point[1])+alignT(SlabRoute,First_Point[0],First_Point[1])" />
        <P N="FirstPoint_Aligned" V="[First_PointX,First_PointY,First_PointZ]" />
        <!-- Kirisin bitis noktasının Station-Transverse-Elevation Koordinatları -->
        <P N="Second_Point" V="Beam_Mid[t][1]" />
        <!-- Kirisin Bitis Noktasının Global X Degeri -->
        <P N="Second_PointX" V="alignHX(SlabRoute,Second_Point[0],Second_Point[1])" />
        <!-- Kirisin Bitis Noktasının Global Y Degeri -->
        <P N="Second_PointY" V="alignHY(SlabRoute,Second_Point[0],Second_Point[1])" />
        <!-- Kirisin Bitis Noktasının Global Z Degeri -->
        <P N="Second_PointZ" V="Second_Point[2]+alignV(SlabRoute,Second_Point[0],Second_Point[1])+alignT(SlabRoute,Second_Point[0],Second_Point[1])" />
        <P N="SecondPoint_Aligned" V="[Second_PointX,Second_PointY,Second_PointZ]" />
        <!-- İki noktası alignment'a girmis olan kirisin refline koordinatları -->
        <P N="AlignedLine" V="[FirstPoint_Aligned,SecondPoint_Aligned]" />
        <!-- Kirisin meshlenmesi -->
        <P N="Aligned_Splited_Line" V="linesplit(AlignedLine,Beam_Mesh)" />
    </O>
    <O N="List" T="Group">
        <!-- Dosemenin sonlu elemanlar modelini olusturacak butun nodeların listelenmesi -->
        <P N="external_lines" V="map(External , x.Pre_External_Lines)" />
        <P N="internal_lines" V="map(Internal, x.Aligned_Splited_Line)" />
        <P N="ALigned_All_List" V="concat([external_lines[0]],internal_lines,[external_lines[1]])" />
    </O>
    <O N="Longitudinal_Loop" T="Repeat" S="0" E="Beam_Mesh-1" I="1" CTRL="n" n="0">
        <O N="Transverse_Loop" T="Repeat" S="0" E="number" I="1" CTRL="m" m="0">
            <O N="Node_1" T="Node" X="ALigned_All_List[m][n][0]" Y="ALigned_All_List[m][n][1]" Z="ALigned_All_List[m][n][2]" />
            <O N="Node_2" T="Node" X="ALigned_All_List[m+1][n][0]" Y="ALigned_All_List[m+1][n][1]" Z="ALigned_All_List[m+1][n][2]" />
            <O N="Node_3" T="Node" X="ALigned_All_List[m][n+1][0]" Y="ALigned_All_List[m][n+1][1]" Z="ALigned_All_List[m][n+1][2]" />
            <O N="Node_4" T="Node" X="ALigned_All_List[m+1][n+1][0]" Y="ALigned_All_List[m+1][n+1][1]" Z="ALigned_All_List[m+1][n+1][2]" />
            <O N="S1" T="FESurface" Node1LocalOffZ="-SlabThickness/2" Node2LocalOffZ="-SlabThickness/2" Node3LocalOffZ="-SlabThickness/2" Node4LocalOffZ="-SlabThickness/2">
                <P N="Material" V="SlabMat" T="Material" />
                <P N="Node1" V="Node_1" T="Node" />
                <P N="Node2" V="Node_2" T="Node" />
                <P N="Node3" V="Node_4" T="Node" />
                <P N="Node4" V="Node_3" T="Node" />
                <P N="Thickness" V="SlabThickness" />
            </O>
            <O N="Boundary_Surface_1" T="Group">
                <!-- Kirisin baslangıcında bulunan mesnetlenme bolgesinin olması durumu -->
                <P N="Guard" V="n .EQ. 0 .AND. length(BeamConsole1) .NE. 0" />
                <O N="Node_S1" T="Node" X="Start_A_Points[m][0]" Y="Start_A_Points[m][1]" Z="Start_A_Points[m][2]-iif( m .EQ. 0 , +SlabThickness , 0 )" />
                <O N="Node_S2" T="Node" X="Start_A_Points[m+1][0]" Y="Start_A_Points[m+1][1]" Z="Start_A_Points[m+1][2]-iif( m .EQ. number , SlabThickness , 0 )  " />
                <O N="S2" T="FESurface" Node1LocalOffZ="-SlabThickness/2" Node2LocalOffZ="-SlabThickness/2" Node3LocalOffZ="-SlabThickness/2" Node4LocalOffZ="-SlabThickness/2">
                    <P N="Material" V="SlabMat" T="Material" />
                    <P N="Node1" V="Node_S1" T="Node" />
                    <P N="Node2" V="Node_S2" T="Node" />
                    <P N="Node3" V="Node_2" T="Node" />
                    <P N="Node4" V="Node_1" T="Node" />
                    <P N="Thickness" V="SlabThickness" />
                </O>
            </O>
            <O N="Boundary_Surface_2" T="Group">
                <!-- Kirisin sonunda bulunan mesnetlenme bolgesinin olması durumu -->
                <P N="Guard" V="n .EQ. Beam_Mesh-1 .AND. length(BeamConsole2) .NE. 0" />
                <O N="Node_F1" T="Node" X="Final_A_Points[m][0]" Y="Final_A_Points[m][1]" Z="Final_A_Points[m][2]-iif( m .EQ. 0 , SlabThickness , 0 )" />
                <O N="Node_F2" T="Node" X="Final_A_Points[m+1][0]" Y="Final_A_Points[m+1][1]" Z="Final_A_Points[m+1][2]-iif( m .EQ. number , SlabThickness , 0 )" />
                <O N="S3" T="FESurface" Node1LocalOffZ="-SlabThickness/2" Node2LocalOffZ="-SlabThickness/2" Node3LocalOffZ="-SlabThickness/2" Node4LocalOffZ="-SlabThickness/2">
                    <P N="Material" V="SlabMat" T="Material" />
                    <P N="Node1" V="Node_3" T="Node" />
                    <P N="Node2" V="Node_4" T="Node" />
                    <P N="Node3" V="Node_F2" T="Node" />
                    <P N="Node4" V="Node_F1" T="Node" />
                    <P N="Thickness" V="SlabThickness" />
                </O>
            </O>
        </O>
    </O>
 </O>

Export


Export
<O T="Export">
    <O N="Calculation_of_Reference_Coordinates" T="Group">
        <!-- BStart noktası kirişi mesnet üzerine yerleştirdiğimizde kirişin başlangıç noktasını ifade etmektedir.
                SortedBeamPTs parametresi transverse yönünde bütün kirişlerin başlangıç noktalarına göre sortlanrak sıralı liste elde edilmeye 
                çalışılmıştır. -->
        <P N="SortedBeamPTs" V="sort( girder ,x. BStart[1] )" />
        <!--Sortlanan listeden her kirisin ust yuzeyinde bulunan 2 refline'ın sırayla listelenmesi. 1 ibaresi başlangıcı,2 ibaresi bitişi simgelemektedir. -->
        <P N="BeamRefPT_L1" V="map(SortedBeamPTs,x.Beam_Ref_L1)" />
        <P N="BeamRefPT_L2" V="map(SortedBeamPTs,x.Beam_Ref_L2)" />
        <P N="BeamRefPT_R1" V="map(SortedBeamPTs,x.Beam_Ref_R1)" />
        <P N="BeamRefPT_R2" V="map(SortedBeamPTs,x.Beam_Ref_R2)" />
        <!-- Aşağıda kirişten gelen Refline point listesi kirişin başlangıç ve bitişine göre listelenmesi sortlanrak yapılmıştır.
                  Start kirişin başlangıç kısmını, finish kirişin bitiş point kısmını ifade etmektedir.  -->
        <P N="StartBeamPTs" V="sort(concat(BeamRefPT_L1,BeamRefPT_R1),x[1])" />
        <P N="FinishBeamPTs" V="sort(concat(BeamRefPT_L2,BeamRefPT_R2),x[1])" />
        <O N="Overhang" T="Group">
            <!-- StartList döşeme altında bulunan en soldaki kirişin ve en sağdaki kirişin  başlangıç noktalarının listelenmesidir. -->
            <P N="StartList" V="[StartBeamPTs[0],StartBeamPTs[length(StartBeamPTs)-1]]" />
            <!-- StList_over_L parametresi StartList isimli listenin döşemede çıkıntı(overhang) olması durumunda
                    sol döşeme noktasının doğru hesaplanması için oluşturulmuştur. -->
            <P N="StList_over_L" V="online(StartList,-OverhangRight)" />
            <!-- StList_over_R parametresi StartList isimli listenin döşemede çıkıntı(overhang) olması durumunda
                    sag döşeme noktasının doğru hesaplanması için oluşturulmuştur. -->
            <P N="StList_over_R" V="online(StartList,OverhangLeft+linel(StartList))" />
            <!-- FinishList döşeme altında bulunan en soldaki kirişin ve en sağdaki kirişin bitiş noktalarının listelenmesidir.
                    Başlangıç noktalarında yapılan işlemler bitiş içinde aynı olacak şekilde aşağıda yapılmıştır.-->
            <P N="FinishList" V="[FinishBeamPTs[0],FinishBeamPTs[length(FinishBeamPTs)-1]]" />
            <P N="FnshList_over_L" V="online(FinishList,-OverhangRight)" />
            <P N="FnshList_over_R" V="online(FinishList,OverhangLeft+linel(FinishList))" />
        </O>
        <!-- StartSlabList döşemeyi oluşturan başlangıç noktalarının sağdan sola (Y koordinatları eksiden artıya) listesidir.-->
        <P N="StartSlabList" V="sort(concat(StartBeamPTs,[StList_over_L],[StList_over_R]),x[1])" />
        <!-- FinishSlabList döşemeyi oluşturan bitiş noktalarının sağdan sola listesidir. -->
        <P N="FinishSlabList" V="sort(concat(FinishBeamPTs,[FnshList_over_L],[FnshList_over_R]),x[1])" />
    </O>
    <!-- ObjectType objenin döşeme mi ? yoksa döşeme derzi mi ? Olduğunu belirten parametredir.Döşeme üstüne gelen 
            objeler için exportlanmıştır. -->
    <P N="ObjectType" V="1" D="Döşeme Tipi" />
    <!-- SlabRoute app içerisinde döşemenin kenarayak veya başlık kirişinin aliynmanını otomatik alması için exportlanmıştır.-->
    <P N="SlabRoute" V="girder[0].bearings[0].support.Alignment_.YolAliynmani" />
    <O N="Reflines_Deck" T="Group">
        <!-- Aşağıdaki işlemler döşemenin orta reflinenının düzgün oluşması için yapılmış hesaplardır. -->
        <P N="SlabRef_R" V="[StartSlabList[0],FinishSlabList[0]]" />
        <P N="SlabRef_L" V="[StartSlabList[length(StartSlabList)-1],FinishSlabList[length(FinishSlabList)-1]]" />
        <P N="SlabRef_M1" V="onliner([SlabRef_R[0],SlabRef_L[0]],0.5)" />
        <P N="SlabRef_M2" V="onliner([SlabRef_R[1],SlabRef_L[1]],0.5)" />
        <O N="SlabRef_Right" T="Volume" Alignment="SlabRoute" AlignH="Warp" AlignV="Warp" AlignT="Warp">
            <O N="PT1" T="Point" X="StartSlabList[0][0]" Y="StartSlabList[0][1]" Z="StartSlabList[0][2]+SlabThickness" />
            <O N="PT2" T="Point" X="FinishSlabList[0][0]" Y="FinishSlabList[0][1]" Z="FinishSlabList[0][2]+SlabThickness" />
        </O>
        <O N="SlabRef_Left" T="Volume" Alignment="SlabRoute" AlignH="Warp" AlignV="Warp" AlignT="Warp">
            <O N="PT1" T="Point" X="StartSlabList[length(StartSlabList)-1][0]" Y="StartSlabList[length(StartSlabList)-1][1]" Z="StartSlabList[length(StartSlabList)-1][2]+SlabThickness" />
            <O N="PT2" T="Point" X="FinishSlabList[length(StartSlabList)-1][0]" Y="FinishSlabList[length(StartSlabList)-1][1]" Z="FinishSlabList[length(StartSlabList)-1][2]+SlabThickness" />
        </O>
        <O N="SlabRef_Mid" T="Volume" Alignment="SlabRoute" AlignH="Warp" AlignV="Warp" AlignT="Warp">
            <O N="PT1" T="Point" X="SlabRef_M1[0]" Y="SlabRef_M1[1]" Z="SlabRef_M1[2]+SlabThickness" />
            <O N="PT2" T="Point" X="SlabRef_M2[0]" Y="SlabRef_M2[1]" Z="SlabRef_M2[2]+SlabThickness" />
        </O>
        <!-- doseme reflinelarının to toglobal ile hesaplanması. Döşeme sonrası objelerin döşemeden gelecek pointleri 
                düzgün çekebilmesi için oluşturulup exportlanmıştır. -->
        <P N="SlabRefline_L" V="toglobal(SlabRef_Left)" />
        <P N="SlabRefline_R" V="toglobal(SlabRef_Right)" />
        <P N="SlabRefline_M" V="toglobal(SlabRef_Mid)" />
        <!-- BeamsSlabJoint parametresi döşemeden sonra gelen döşeme derzi objesine referans vermektedir. 
                  Akıllı köprü mantığının çalışması için bu parametrenin exportlanması gerekmektedir. -->
        <P N="BeamsSlabJoint" V="refs('KBYS_DosemeDerzi')" T="KBYS_DosemeDerzi" />
    </O>
    <O N="Decks_KerbsAndPavement" T="Group">
        <!-- Aşağıdaki hesaplamalar döşemeden sonra gelen bordürlerin listelenmesi ve Üstyapı Moment El Hesabı objesinin 
            döşeme objesinden referans aldığı değerlerdir. -->
        <P N="BeamsSlabJoint" V="refs('KBYS_DosemeDerzi')" />
        <P N="SlabsKerb" V="refs('KBYS_Bordur')" />
        <O N="KerbAboveSlab" T="Group">
            <P N="Guard" V="length(SlabsKerb) .NE. 0" />
            <!-- Bordür objesinin döşeme üzerindeki konumuna göre listelenmesi -->
            <P N="LeftKerb" V="filter(SlabsKerb , x. Location .EQ. 1 )" />
            <P N="RightKerb" V="filter(SlabsKerb , x. Location .EQ. 2 )" />
            <P N="MidKerb" V="filter(SlabsKerb , x. Location .EQ. 3 )" />
            <!-- Listelenen bordürlerin yüksekliklerinin ve genişliklerinin okunması.-->
            <P N="KerbThickLİst_L" V="map(LeftKerb , x.KerbH)" />
            <P N="KerbThickLİst_R" V="map(RightKerb , x.KerbH)" />
            <P N="KerbWidthLİst_L" V="map(LeftKerb , x.KerbW)" />
            <P N="KerbWidthLİst_R" V="map(RightKerb , x.KerbW)" />
            <P N="KerbThickLİst_M" V="map(MidKerb , x.KerbH)" />
            <P N="KerbWidthLİst_M" V="map(MidKerb , x.KerbW)" />
        </O>
        <!-- Dosemenin uzerine gelen asfalt objesinin parametreleri -->
        <O N="Pavement_Design" T="Group">
            <P N="Guard" V="length(SlabsKerb) .NE. 0" />
            <P N="Pavement_h" V="map(SlabsKerb,x.Pavement_thickness)" />
            <P N="PlatingThickness" V="filter(Pavement_h,x[0] .NE. 0)" />
        </O>
    </O>
</O>