Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
languagexml
themeEclipse
title3D Geometry
collapsetrue
<O N="Geometry" T="Project">
    <O N="Coordinates_Deck" T="Group">
        <O N="Surface_Points" T="Group">
            <O N="TopSurface" T="Group">
                <!-- Doseme ust yuzeyinin olusturulması -->
                <O N="Top" T="Repeat" S="0" E="length(StartBeamPTs)-2" I="1" CTRL="p" p="4">
                    <!-- Dosemenin baslangıc noktası -->
                    <P N="LeftMidPoint" V="onliner([StartBeamPTs[p],StartBeamPTs[p+1]],0.5)" />
                    <!-- Dosemenin bitis noktası -->
                    <P N="RightMidPoint" V="onliner([FinishBeamPTs[p],FinishBeamPTs[p+1]],0.5)" />
                </O>
            </O>
            <!-- Volume olustururken saat yonunde tanımlama yapılması icin Alt Yuzeydeki noktaların listesi ters cevirildi -->
            <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>



Finite Element Model
Jira Legacy
showSummaryfalse
serverSystem JIRA
serverId12184a62-cd2a-3b23-8878-0a21493ef13f
keyDOC-57


Code Block
languagexml
themeEclipse
titleKullanici FEM
collapsetrue
<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 N="Load_Definition" T="Group">
        <!-- Dosemede bulunan nodeların sayısı -->
        <P N="nodeCount" V="(Beam_Mesh)*(number-1)*4" />
        <!-- Dosemedeki nodeların listelenmesi -->
        <P N="nodes" V="objs('',parent(myself), 'Node')" />
        <P N="Loading" V="objs('',NULL,'KBYS_YuklemeSablonu')" />
        <O N="Load_Case" T="Group">
            <P N="Guard" V="length(Loading) .NE. 0  " />
            <!-- Yukleme Sablonunda breaking effect tanımlaması yapmak istenildigi zaman "Deck" listesi paraminfo ile doseme objesini pickleyecek. -->
            <P N="BreakingEffect" V="filter(Loading , x. Deck .NE. NULL)" />
            <!-- Yukleme Sablonunda kerb effect tanımlaması yapmak istenildigi zaman "Curb" listesi paraminfo ile Kerb objesini pickleyecek. -->
            <P N="Curb_Loading" V="filter(Loading , x. Curb .NE. NULL  )" />
            <O N="BreakingEffectCondition" T="Group">
                <P N="Guard" V="length(BreakingEffect) .NE. 0" />
                <O N="Breaking_Loop" T="Repeat" S="0" E="length(BreakingEffect)-1" I="1" CTRL="e" e="0">
                    <O N="Geometri" T="Group">
                        <P N="weigth" V="30" D="Tasarım Kamyonunun Dingil Yükü" />
                        <P N="tandem" V="0" D="Tandem Aks Yükü" />
                        <P N="lane_load" V="15" D="Şerit Yükü" />
                        <P N="TireThickness" V="75" D="Tasarım Kamyonunun Lastik Kalınlığı" />
                        <P N="span" V="linel(SlabRef_Mid)" />
                        <P N="srt_width" V="3000" D="Şerit Genişliği" />
                    </O>
                    <!-- Doseme uzerindeki her bir Node'a hesaplanan Breaking Force'un etkitilmesi -->
                    <P N="breaking_force" V="0.05*(lane_load)*(span)*(srt_width)" />
                    <P N="effective_force" V="breaking_force/(nodeCount)" />
                    <P N="breaking_moment" V="1.83*effective_force" />
                    <O N="Breaking_Loop" T="Repeat" S="0" E="nodeCount-1" I="1" CTRL="s" s="0">
                        <O N="Breaking" T="NodeLoad">
                            <P N="LC" V="BreakingEffect[e].Breaking_Force" T="AnalysisCase" />
                            <P N="Node" V="nodes[s]" T="Node" />
                            <P N="Fx" V="effective_force" />
                            <P N="My" V="breaking_moment" />
                        </O>
                    </O>
                </O>
            </O>
            <O N="Curb_Surface_Load_Definition" T="Group">
                <P N="Guard" V="length(Curb_Loading) .NE. 0" />
                <O N="Curb_Loop" T="Repeat" S="0" E="length(SlabsKerb)-1" I="1" CTRL="r" r="0">
                    <P N="height" V="SlabsKerb[r].KerbH" />
                    <O N="Load_Calculation" T="Group">
                        <P N="distance" V="linel([SlabsKerb[r].CRCoordinates[0][0],SlabsKerb[r].CRCoordinates[length(CRCoordinates)-1][0]])" />
                        <P N="surface_Area" V="surfarea(SlabsKerb[r].KerbSurface)*distance/height" />
                        <P N="LiveLoad" V="surface_Area*3/1000000" />
                    </O>
                    <O T="SurfaceLoad" Extends="SlabsKerb[r].KerbSurface" LC="@Curb_Loading[0].Sidewalk_Curb_RailingandLoading|AnalysisCase" Obj="@SlabsKerb[r]|KBYS_Bordur" Fz="-LiveLoad" />
                    <O N="Text_Part" T="Group">
                        <P N="center_x" V="onliner([SlabsKerb[r].GeneralList1[i][0],SlabsKerb[r].GeneralList1[i][1]],0.5)" />
                        <P N="center_y" V="onliner([SlabsKerb[r].GeneralList1[i][0],SlabsKerb[r].GeneralList2[i][0]],0.5)" />
                        <O N="Article" T="Text3D" Label="Surface Load" FontSize="6" X="center_x[0]" Y="center_y[1]" Z="center_x[2]+bor_h">
                            <O T="Point" Y="0" />
                            <O T="Point" X="500" />
                            <O T="Point" X="-500" />
                        </O>
                        <O T="Text3D" Extends="Article" Label="Mag: |withunits(-LiveLoad,'Internal','Stress')|" X="-6" />
                        <O T="Text3D" Extends="Article" Label="Area: |withunits(surface_area,'Internal','Area')|" X="-6*3" />
                        <O T="Text3D" Extends="Article" Label="Total: |withunits(surface_area*LiveLoad,'Internal','Force')|" X="-6*5" />
                    </O>
                </O>
            </O>
        </O>
    </O>
</O>

...