Versions Compared

Key

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

...

...

...

...

...

...

...

...

...

...

...

...

https://youtu.be/L3XyiqHwClo

ALIGNMENT

  • Bu eğitimde önceki yaptığımız döşeme, kolon ve temel objelerini Alignment fonksiyonlarıyla bir yola nasıl uyumlu hale getireceğini anlatacağız.

...

  • Alignmentta ilk girişte Start Station ve Azimuth değerlerini alıyoruz. Kuzeyi 0 derece kabul edersek Azimut pi/2 giriyoruz. Köprü boyuna aksımızı X’e eşitlemek için. Horizontalda Straight ve circular kurgularıyla yolumuzda düz ve kurpta olan bölgeleri ekleyebiliyoruz. Bu 2 objede de station parametresiyle beraber, circularda direction ve radius parametrelerini de ekleyebiliyoruz.

  • Vertical data ise profilden oluşuyor. Bir köprüye yandan bakıldığında görülen görüntüye profil diyoruz. Bir köprü tanımı için başlangıç ve bitiş mesafelerinde ve aralıklı istasyonlarda yükseklik tanımı gereklidir. Bu yüzden vertical datada bunları girebiliyoruz.

  • Transverse data ise aynı şekilde station parametresi topluyor ve yolun centerlineının yolun sol kenarına olan uzaklığını alıyoruz. Bu noktadan sonra altında oluşturduğumuz çizgilerde slope ve length alıyoruz. Left Edge to PGL verdiğimiz konumda oluşacak noktadan yolun sağına gidecek şekilde slope ve length kurgusuyla ilerliyoruz.

  • Önceki eğitimde yaptığımız döşeme objesini private ile getirdiğimiz alignment objesine göre aşağıdaki fonksiyonları kullanarak değiştireceğiz.

    • alignH

    • alignV

    • alignT

    • aligHX

    • alignHY

    • alignHA

DOSEME

Code Block
<O N="Day3-Doseme" T="Project">
    <P N="pick_align" V="" T="Alignment" D="Pick Alignment" Role="Input" />
    <P N="t_dos" V="20" D="Thickness of deck" Role="Input" />
    <P N="l_deck" V="3000" D="Length of the Deck" Role="Input" />
    <P N="w_deck" V="300" D="Width of the Deck" Role="Input" />
    <P N="startSta" V="100" D="Start Station" Role="Input" />
    <O T="Volume" X="startSta" Y="0" Z="-t_dos" Color="#F933FF" Opacity="0.5" Alignment="al1" AlignH="Warp" AlignT="Warp" AlignV="Warp">
        <O T="Surface">
            <O T="Point" X="0" Y="-w_deck/2" Z="t_dos" />
            <O T="Point" X="0" Y="w_deck/2" Z="t_dos" />
            <O T="Point" X="0" Y="w_deck/2" Z="0" />
            <O T="Point" X="0" Y="-w_deck/2" Z="0" />
        </O>
        <O T="Surface">
            <O T="Point" X="l_deck" Y="-w_deck/2" Z="t_dos" />
            <O T="Point" X="l_deck" Y="w_deck/2" Z="t_dos" />
            <O T="Point" X="l_deck" Y="w_deck/2" Z="0" />
            <O T="Point" X="l_deck" Y="-w_deck/2" Z="0" />
        </O>
    </O>
    <O T="Export" Alignment="al1" AlignH="Warp" AlignT="Warp" AlignV="Warp">
        <O N="RightRef" T="Line" X="startSta" Z="-t_dos">
            <O T="Point" X="0" Y="-w_deck/2" Z="0" />
            <O T="Point" X="l_deck" Y="-w_deck/2" Z="0" />
        </O>
        <O N="LeftRef" T="Line" X="startSta" Z="-t_dos">
            <O T="Point" X="0" Y="w_deck/2" Z="0" />
            <O T="Point" X="l_deck" Y="w_deck/2" Z="0" />
        </O>
        <P N="coords_RightRef" V="toglobal(RightRef)" />
        <P N="startRight" V="map(coords_RightRef,x[0])" />
        <P N="length_RefR" V="linel(RightRef)" />
        <P N="coords_LeftRef" V="toglobal(LeftRef)" />
        <P N="length_RefL" V="linel(LeftRef)" />
    </O>
    <O T="Private">
        <O N="al1" T="Alignment" Station="0" Azimuth="1.57079632679">
            <O T="Straight" Length="4000" />
            <O T="Circular" Length="12000" Radius="12000" Direction="@LEFT" />
            <O T="CrossSection" Station="0" LeftEdgeToHCL="240">
                <O T="CrossSectionSegment" Width="240" Slope="0.02" />
                <O T="CrossSectionSegment" Width="240" Slope="-0.02" />
            </O>
            <O T="ElevationPoint" Station="0" Elevation="0" />
        </O>
    </O>
</O>

KOLON

Code Block
<O N="Day3-Kolon" T="Project" TransAlignRule="Right">
    <P N="w_col" V="30" D="Width of the Column" Role="Input" />
    <P N="l_col" V="30" D="Length of the Column" Role="Input" />
    <P N="h_col" V="100" D="Height of the Column" Role="Input" />
    <P N="number_cols" V="3" D="Number of Columns" Role="Input" />
    <P N="orient_cols" V="0" D="Side of the Column[Left=0/Right=1]" Role="Input" />
    <P N="pick_deck" V="DD1" T="Day3-Doseme" D="Pick a Deck" Role="Input" />
    <O T="ParamInfo" Min="1" Max="1" Required="0" Param="pick_deck" />
    <O T="Export">
        <P N="lcoord_cols" V="linesplit(pick_deck.coords_LeftRef,(number_cols-1))" />
        <P N="rcoord_cols" V="linesplit(pick_deck.coords_RightRef,(number_cols-1))" />
    </O>
    <P N="sortdeneme" V="sort(lcoord_cols)" />
    <P N="reversedeneme" V="reverse(sortdeneme)" />
    <O N="OrientationLeft" T="Group" Guard="orient_cols .EQ. 0" Color="#F7FF4B" Alignment="al1" AlignH="Warp" AlignT="Warp" AlignV="Warp">
        <O N="Rep_Left" T="Repeat" S="0" E="number_cols-1" I="1" CTRL="i" i="0">
            <O T="Volume" X="lcoord_cols[i][0]" Y="lcoord_cols[i][1]-w_col/2" Z="lcoord_cols[i][2]">
                <O T="Surface">
                    <O T="Point" X="l_col/2" Y="-w_col/2" Z="0" />
                    <O T="Point" X="-l_col/2" Y="-w_col/2" Z="0" />
                    <O T="Point" X="-l_col/2" Y="w_col/2" Z="0" />
                    <O T="Point" X="l_col/2" Y="w_col/2" Z="0" />
                </O>
                <O T="Surface">
                    <O T="Point" X="l_col/2" Y="-w_col/2" Z="-h_col" AlignT="None" />
                    <O T="Point" X="-l_col/2" Y="-w_col/2" Z="-h_col" AlignT="None" />
                    <O T="Point" X="-l_col/2" Y="w_col/2" Z="-h_col" AlignT="None" />
                    <O T="Point" X="l_col/2" Y="w_col/2" Z="-h_col" AlignT="None" />
                </O>
            </O>
        </O>
    </O>
    <O N="OrientationRight" T="Group" Guard="orient_cols .EQ. 1" Color="#F7FF4B" Alignment="al1" AlignH="Warp" AlignT="Warp" AlignV="Warp">
        <O N="Rep_Right" T="Repeat" S="0" E="number_cols-1" I="1" CTRL="i" i="0">
            <O T="Volume" X="rcoord_cols[i][0]" Y="rcoord_cols[i][1]+w_col/2" Z="rcoord_cols[i][2]">
                <O T="Surface">
                    <O T="Point" X="l_col/2" Y="-w_col/2" Z="0" />
                    <O T="Point" X="-l_col/2" Y="-w_col/2" Z="0" />
                    <O T="Point" X="-l_col/2" Y="w_col/2" Z="0" />
                    <O T="Point" X="l_col/2" Y="w_col/2" Z="0" />
                </O>
                <O T="Surface">
                    <O T="Point" X="l_col/2" Y="-w_col/2" Z="-h_col" AlignT="Warp" />
                    <O T="Point" X="-l_col/2" Y="-w_col/2" Z="-h_col" AlignT="Warp" />
                    <O T="Point" X="-l_col/2" Y="w_col/2" Z="-h_col" AlignT="Warp" />
                    <O T="Point" X="l_col/2" Y="w_col/2" Z="-h_col" AlignT="Warp" />
                </O>
            </O>
        </O>
    </O>
    <O T="Private">
        <O N="al1" T="Alignment" Station="0" Azimuth="1.57079632679">
            <O T="Straight" Length="4000" />
            <O T="Circular" Length="12000" Radius="12000" Direction="@LEFT" />
            <O T="CrossSection" Station="0" LeftEdgeToHCL="240">
                <O T="CrossSectionSegment" Width="240" Slope="0.02" />
                <O T="CrossSectionSegment" Width="240" Slope="-0.02" />
            </O>
            <O T="ElevationPoint" Station="0" Elevation="0" />
        </O>
        <O N="DD1" T="Day3-Doseme" Alignment="al1" AlignH="Warp" AlignT="Warp" AlignV="Warp">
            <P N="pick_align" V="" T="Alignment" D="Pick Alignment" />
            <P N="t_dos" V="20" D="Thickness of deck" />
            <P N="l_deck" V="3000" D="Length of the Deck" />
            <P N="w_deck" V="300" D="Width of the Deck" />
            <P N="startSta" V="100" D="Start Station" />
            <P N="coords_RightRef" V="toglobal(RightRef)" />
            <P N="startRight" V="map(coords_RightRef,x[0])" />
            <P N="length_RefR" V="linel(RightRef)" />
            <P N="coords_LeftRef" V="toglobal(LeftRef)" />
            <P N="length_RefL" V="linel(LeftRef)" />
            <O N="RightRef" T="Line" X="startSta" Z="-t_dos" Exported="1">
                <O T="Point" X="0" Y="-w_deck/2" Z="0" />
                <O T="Point" X="l_deck" Y="-w_deck/2" Z="0" />
            </O>
            <O N="LeftRef" T="Line" X="startSta" Z="-t_dos" Exported="1">
                <O T="Point" X="0" Y="w_deck/2" Z="0" />
                <O T="Point" X="l_deck" Y="w_deck/2" Z="0" />
            </O>
        </O>
    </O>
</O>

TEMEL

Code Block
<O N="Day3-Temel" T="Project" TransAlignRule="Right">
    <!-- created by Özer Gündüz on 23.05.2022 -->
    <P N="t_fnd" V="30" D="Thickness of Foundation" Role="Input" />
    <P N="pick_columns" V="[DK1,DK2]" T="Day3-Kolon" D="Select a Column" Role="Input" />
    <O T="ParamInfo" Min="2" Max="2" Required="0" Pick="1" Param="pick_columns" List="1" RefParam="@temel" />
    <P N="mapdeneme" V="map(pick_columns,a=>a.lcoord_cols)" />
    <P N="Col_endl" V="pick_columns.lcoord_cols" />
    <P N="Col_endr" V="pick_columns[0].rcoord_cols" />
    <P N="all_coords" V="concat(Col_endl,Col_endr)" />
    <P N="sort_coords" V="sort(all_coords)" />
    <P N="start_coord" V="map(sort_coords, c => iif(c[0] .EQ. pick_columns[0].pick_deck.startSta, c , NULL))" />
    <P N="StartCoord1" V="filter(start_coord, x .NE. NULL)" />
    <P N="end_coord" V="map(sort_coords, c => iif(c[0] .EQ. pick_columns[0].pick_deck.l_deck+pick_columns[0].pick_deck.startSta, c , NULL))" />
    <P N="EndCoord1" V="filter(end_coord, x .NE. NULL)" />
    <O T="Volume" Z="0" Alignment="al1" AlignH="Warp" AlignT="Warp" AlignV="Warp">
        <O T="Surface">
            <O T="Point" X="StartCoord1[0][0]" Y="StartCoord1[0][1]" Z="StartCoord1[0][2]-pick_columns[0].h_col" />
            <O T="Point" X="StartCoord1[0][0]" Y="StartCoord1[1][1]" Z="StartCoord1[1][2]-pick_columns[1].h_col" />
            <O T="Point" X="StartCoord1[0][0]" Y="StartCoord1[1][1]" Z="StartCoord1[1][2]-t_fnd-pick_columns[1].h_col" />
            <O T="Point" X="StartCoord1[0][0]" Y="StartCoord1[0][1]" Z="StartCoord1[0][2]-t_fnd-pick_columns[0].h_col" />
        </O>
        <O T="Surface">
            <O T="Point" X="EndCoord1[0][0]" Y="EndCoord1[0][1]" Z="EndCoord1[0][2]-pick_columns[0].h_col" />
            <O T="Point" X="EndCoord1[0][0]" Y="EndCoord1[1][1]" Z="EndCoord1[1][2]-pick_columns[1].h_col" />
            <O T="Point" X="EndCoord1[0][0]" Y="EndCoord1[1][1]" Z="EndCoord1[1][2]-t_fnd-pick_columns[1].h_col" />
            <O T="Point" X="EndCoord1[0][0]" Y="EndCoord1[0][1]" Z="EndCoord1[0][2]-t_fnd-pick_columns[0].h_col" />
        </O>
    </O>
    <O T="Private">
        <O N="al1" T="Alignment" Station="0" Azimuth="1.57079632679">
            <O T="Straight" Length="4000" />
            <O T="Circular" Length="12000" Radius="12000" Direction="@LEFT" />
            <O T="CrossSection" Station="0" LeftEdgeToHCL="240">
                <O T="CrossSectionSegment" Width="240" Slope="0.02" />
                <O T="CrossSectionSegment" Width="240" Slope="-0.02" />
            </O>
            <O T="ElevationPoint" Station="0" Elevation="0" />
        </O>
        <O N="DD1" T="Day3-Doseme">
            <P N="t_dos" V="20" D="Thickness of deck" />
            <P N="l_deck" V="3000" D="Length of the Deck" />
            <P N="w_deck" V="300" D="Width of the Deck" />
            <P N="startSta" V="100" D="Start Station" />
            <P N="coords_RightRef" V="toglobal(RightRef)" />
            <P N="startRight" V="map(coords_RightRef,x[0])" />
            <P N="length_RefR" V="linel(RightRef)" />
            <P N="coords_LeftRef" V="toglobal(LeftRef)" />
            <P N="length_RefL" V="linel(LeftRef)" />
            <O N="RightRef" T="Line" X="startSta" Z="-t_dos" Exported="1">
                <O T="Point" X="0" Y="-w_deck/2" Z="0" />
                <O T="Point" X="l_deck" Y="-w_deck/2" Z="0" />
            </O>
            <O N="LeftRef" T="Line" X="startSta" Z="-t_dos" Exported="1">
                <O T="Point" X="0" Y="w_deck/2" Z="0" />
                <O T="Point" X="l_deck" Y="w_deck/2" Z="0" />
            </O>
        </O>
        <O N="DK1" T="Day3-Kolon">
            <P N="w_col" V="30" D="Width of the Column" />
            <P N="l_col" V="30" D="Length of the Column" />
            <P N="h_col" V="100" D="Height of the Column" />
            <P N="number_cols" V="3" D="Number of Columns" />
            <P N="orient_cols" V="1" D="Side of the Column[Left=0/Right=1]" />
            <P N="pick_deck" V="DD1" T="Day3-Doseme" D="Pick a Deck" />
            <P N="lcoord_cols" V="linesplit(pick_deck.coords_LeftRef,(number_cols-1))" />
            <P N="rcoord_cols" V="linesplit(pick_deck.coords_RightRef,(number_cols-1))" />
        </O>
        <O N="DK2" T="Day3-Kolon">
            <P N="w_col" V="30" D="Width of the Column" />
            <P N="l_col" V="30" D="Length of the Column" />
            <P N="h_col" V="100" D="Height of the Column" />
            <P N="number_cols" V="3" D="Number of Columns" />
            <P N="orient_cols" V="0" D="Side of the Column[Left=0/Right=1]" />
            <P N="pick_deck" V="DD1" T="Day3-Doseme" D="Pick a Deck" />
            <P N="lcoord_cols" V="linesplit(pick_deck.coords_LeftRef,(number_cols-1))" />
            <P N="rcoord_cols" V="linesplit(pick_deck.coords_RightRef,(number_cols-1))" />
        </O>
    </O>
</O>

...