コード例 #1
0
        private void saveDXFBtn_Click(object sender, RoutedEventArgs e)
        {
            DxfModel model = new DxfModel(DxfVersion.Dxf14);

            double thickness = Convert.ToDouble(ttxtBox.Text);

            /////////////

            ///////////
            //Comulative spanVals
            double[] comSpanVals = new double[nSpans + 1];
            comSpanVals[0] = 0;
            for (int i = 1; i < comSpanVals.Length; i++)
            {
                comSpanVals[i] = comSpanVals[i - 1] + spanValues[i];
            }

            /*---------*/
            //Points
            Point2D[] startPointsBot = DXFPoints.BottomStartPoints(nSpans, comSpanVals);
            Point2D[] endPointsBot   = DXFPoints.BottomEndPoints(nSpans, comSpanVals);

            Point2D[] startPointsTop = DXFPoints.TopStartPoints(nSpans, thickness, comSpanVals);
            Point2D[] endPointsTop   = DXFPoints.TopEndPoints(nSpans, thickness, comSpanVals);


            /*---------Lines---------*/
            DXFLines.ConstructBottomLines(model, nSpans, startPointsBot, endPointsBot);
            DXFLines.ConstructTopLines(model, nSpans, startPointsTop, endPointsTop);

            DXFLines.ConstructColLines(model, nSpans, thickness, startPointsBot, endPointsBot, startPointsTop, endPointsTop);
            DXFLines.ConstructGrids(model, nSpans, thickness, comSpanVals);

            /*---------Rebar---------*/
            DxfLine[] BottomRFT = DXFRebar.BotRFT(model, nSpans, startPointsBot, endPointsBot);

            double[] Ln = DXFRebar.Lnet(nSpans, startPointsTop, endPointsTop);

            DxfLine[] TopSpan = DXFRebar.TopSpanRFT(model, nSpans, thickness, Ln, startPointsTop, endPointsTop);

            DxfLine[] TopSupport = DXFRebar.TopSupportRFT(model, nSpans, thickness, Ln, startPointsTop, endPointsTop);

            DXFRebar.Legs(model, nSpans, thickness, BottomRFT, TopSpan);

            /*---------Stirrups-------*/
            DxfLine[,] stirrupsLeft = DXFRebar.StirrupsLeftSec(model, nSpans, thickness, startPointsBot);

            DxfLine[,] stirrupsMidspan = DXFRebar.StirrupsMidSpanSec(model, nSpans, thickness, startPointsBot, endPointsBot);

            DxfLine[,] stirrupsRight = DXFRebar.StirrupsRightSec(model, nSpans, thickness, endPointsBot);

            /*------------------------------Annotation------------------------------*/
            DXFAnnotation.AnnotationStirLeft(model, nSpans, thickness, stirrupsLeft);
            DXFAnnotation.AnnotationStirMidSpan(model, nSpans, thickness, stirrupsMidspan);
            DXFAnnotation.AnnotationStirRight(model, nSpans, thickness, stirrupsRight);

            /*------------------------------Dimensions------------------------------*/
            DXFDimClass.DrawGridDims(model, nSpans, comSpanVals);
            DXFDimClass.DrawLnetDims(model, nSpans, startPointsBot, endPointsBot, comSpanVals);
            DXFDimClass.DrawTopRFTRightDims(model, nSpans, thickness, Ln, startPointsTop, comSpanVals);
            DXFDimClass.DrawTopRFTLeftDims(model, nSpans, thickness, Ln, endPointsTop, comSpanVals);

            /*------------------------------Text------------------------------*/
            double fystr = Convert.ToDouble(fstirtxtBox.Text);

            //01. RFT bottom Text
            int[]    nRebarBot         = DXFTextClass.GetnRebarBotArr(xbeams);
            double[] chosenDiameterBot = DXFTextClass.GetChosenDiameterArr(xbeams);
            DXFTextClass.BottomRFTTxt(model, nSpans, nRebarBot, chosenDiameterBot, Ln, startPointsBot);

            //02. RFT Top Support Text
            int[]    nRebarTopSupportArr      = DXFTextClass.GetnRebarTopSupportArr(xbeams);
            double[] chosenDiameterTopSupport = DXFTextClass.GetChosenDiameterTopSupportArr(xbeams);
            DXFTextClass.TopRFTSupportTxt(model, nSpans, thickness, nRebarTopSupportArr, chosenDiameterTopSupport, TopSpan, TopSupport);

            //03. Stirrups Left Section
            {
                double[] spacingLeftArr     = DXFTextClass.GetSpacingLeftArr(xbeams, stirDiaArr240, stirDiaArr360, stirDiaArr400);
                int[]    spacingLeftIndexes = DXFTextClass.GetSpacingLeftArrIndexes(xbeams, stirDiaArr240, stirDiaArr360, stirDiaArr400);
                DXFTextClass.StirrupLeftTxt(model, nSpans, stirrupsLeft, spacingLeftArr, spacingLeftIndexes, stirDiaArr240, stirDiaArr360, stirDiaArr400);
            }
            //05. Stirrups Right Section
            {
                double[] spacingRightArr     = DXFTextClass.GetSpacingRightArr(xbeams, stirDiaArr240, stirDiaArr360, stirDiaArr400);
                int[]    spacingRightIndexes = DXFTextClass.GetSpacingLeftArrIndexes(xbeams, stirDiaArr240, stirDiaArr360, stirDiaArr400);
                DXFTextClass.StirrupRightTxt(model, nSpans, stirrupsRight, spacingRightArr, spacingRightIndexes, stirDiaArr240, stirDiaArr360, stirDiaArr400);
            }


            ////04. Stirrups MidSpan
            //DXFTextClass.StirrupMidSpanTxt(model, nSpans, stirrupsMidspan);

            ////05. Stirrups Right Section
            //double[] spacingRightSec = DXFTextClass.GetSpacingRightArr(xbeams);
            //DXFTextClass.StirrupRightTxt(model, nSpans, stirrupsRight, spacingRightSec);


            /*------------------------------Create DXF File------------------------------*/
            //Create DXF File
            DxfWriter.Write("Test12.dxf", model, true);
        }