示例#1
0
        static void Main(string[] args)
        {
            DxfDocument dxfDocument;

            dxfDocument = DxfDocument.Load(@"C:\Users\Николай\Desktop\шаблон_Эпюр.dxf");
            var test    = dxfDocument.Blocks.Items.Where(x => x.Name == "тест1").First().AttributeDefinitions.Where(x => x.Key == "ТЕСТОВЫЙ_АТРИБУТ").First().Value.Value;
            var epureM  = new EpureM(dxfDocument.Lines.Where(x => x.Layer.Name == "M").ToArray());
            var epureM1 = new EpureM(dxfDocument.Lines.Where(x => x.Layer.Name == "M1").ToArray());
            var epureM2 = new EpureM(dxfDocument.Lines.Where(x => x.Layer.Name == "M2").ToArray());
            var epureM3 = new EpureM(dxfDocument.Lines.Where(x => x.Layer.Name == "M3").ToArray());

            var d11 = EpureM.MultiplicationEpure(epureM1, epureM1);
            var d12 = EpureM.MultiplicationEpure(epureM1, epureM2);
            var d13 = EpureM.MultiplicationEpure(epureM1, epureM3);
            var d22 = EpureM.MultiplicationEpure(epureM2, epureM2);
            var d23 = EpureM.MultiplicationEpure(epureM2, epureM3);
            var d33 = EpureM.MultiplicationEpure(epureM3, epureM3);
            var d1p = EpureM.MultiplicationEpure(epureM, epureM1);
            var d2p = EpureM.MultiplicationEpure(epureM, epureM2);
            var d3p = EpureM.MultiplicationEpure(epureM, epureM3);

            Excel.Workbook  workbook;
            Excel.Worksheet worksheet;

            Excel.Application application = new Excel.Application();

            workbook = application.Workbooks.Open(@"e:\Програмирование\Перемножение эпюр\матрица.xlsx");

            worksheet             = workbook.Worksheets.get_Item(1);
            worksheet.Cells[3, 2] = d11;
            worksheet.Cells[4, 3] = d22;
            worksheet.Cells[5, 4] = d33;
            worksheet.Cells[3, 3] = d12;
            worksheet.Cells[3, 4] = d13;
            worksheet.Cells[4, 4] = d23;
            worksheet.Cells[3, 6] = -d1p;
            worksheet.Cells[4, 6] = -d2p;
            worksheet.Cells[5, 6] = -d3p;



            double.TryParse((worksheet.Cells[8, 6] as Excel.Range)?.Value.ToString(), out double x1);
            double.TryParse((worksheet.Cells[9, 6] as Excel.Range)?.Value.ToString(), out double x2);
            double.TryParse((worksheet.Cells[10, 6] as Excel.Range)?.Value.ToString(), out double x3);

            EpureM epureM1X = epureM1.MultiplicationEpure(x1);
            EpureM epureM2X = epureM2.MultiplicationEpure(x2);
            EpureM epureM3X = epureM3.MultiplicationEpure(x3);

            EpureM epureOk = EpureM.SumEpureM(epureM1X, epureM2X, epureM3X, epureM);

            epureOk.AddLoad(20, 1);

            epureOk.PrinyQ();
            //epureOk.PrintM();
            Point point = new Point();
        }
示例#2
0
        private void Button_Click_1(object sender, RoutedEventArgs e)
        {
            epureM  = new EpureM(dxfDocument.Lines.Where(x => x.Layer.Name == "M").ToArray());
            epureM1 = new EpureM(dxfDocument.Lines.Where(x => x.Layer.Name == "M1").ToArray());
            epureM2 = new EpureM(dxfDocument.Lines.Where(x => x.Layer.Name == "M2").ToArray());
            epureM3 = new EpureM(dxfDocument.Lines.Where(x => x.Layer.Name == "M3").ToArray());
            epureM.PlotEpure();



            #region  Coefficients

            var coefficients = new double[9];

            var d11 = EpureM.MultiplicationEpure(epureM1, epureM1);
            var d12 = EpureM.MultiplicationEpure(epureM1, epureM2);
            var d13 = EpureM.MultiplicationEpure(epureM1, epureM3);
            var d22 = EpureM.MultiplicationEpure(epureM2, epureM2);
            var d23 = EpureM.MultiplicationEpure(epureM2, epureM3);
            var d33 = EpureM.MultiplicationEpure(epureM3, epureM3);
            var d1p = EpureM.MultiplicationEpure(epureM, epureM1);
            var d2p = EpureM.MultiplicationEpure(epureM, epureM2);
            var d3p = EpureM.MultiplicationEpure(epureM, epureM3);

            coefficients[0] = d11;
            coefficients[1] = d12;
            coefficients[2] = d13;
            coefficients[3] = d22;
            coefficients[4] = d23;
            coefficients[5] = d33;
            coefficients[6] = d1p;
            coefficients[7] = d2p;
            coefficients[8] = d3p;

            #endregion



            Excel.Workbook  workbook;
            Excel.Worksheet worksheet;

            Excel.Application application = new Excel.Application();

            workbook = application.Workbooks.Open(@"e:\Програмирование\Перемножение эпюр\матрица.xlsx");

            worksheet             = workbook.Worksheets.get_Item(1);
            worksheet.Cells[3, 2] = d11;
            worksheet.Cells[4, 3] = d22;
            worksheet.Cells[5, 4] = d33;
            worksheet.Cells[3, 3] = d12;
            worksheet.Cells[3, 4] = d13;
            worksheet.Cells[4, 4] = d23;
            worksheet.Cells[3, 6] = -d1p;
            worksheet.Cells[4, 6] = -d2p;
            worksheet.Cells[5, 6] = -d3p;



            double.TryParse((worksheet.Cells[8, 6] as Excel.Range)?.Value.ToString(), out double x1);
            double.TryParse((worksheet.Cells[9, 6] as Excel.Range)?.Value.ToString(), out double x2);
            double.TryParse((worksheet.Cells[10, 6] as Excel.Range)?.Value.ToString(), out double x3);

            EpureM epureM1X = epureM1.MultiplicationEpure(x1);
            EpureM epureM2X = epureM2.MultiplicationEpure(x2);
            EpureM epureM3X = epureM3.MultiplicationEpure(x3);

            EpureM epureOk = EpureM.SumEpureM(epureM1X, epureM2X, epureM3X, epureM);

            Word.Application app = new Word.Application();

            var doc = app.Documents.Add(@"C:\Users\Николай\Desktop\Шаблон.docx");
            doc.Activate();

            var wBookmarks = doc.Bookmarks;

            foreach (Word.Bookmark mark in wBookmarks)
            {
                if (mark.Name == "d11" || mark.Name == "d11_")
                {
                    mark.Range.Text = d11.ToString("+#.###;-#.###");
                }

                if (mark.Name == "d12" || mark.Name == "d12_" || mark.Name == "d21_")
                {
                    mark.Range.Text = d12.ToString("+#.###;-#.###");
                }

                if (mark.Name == "d13" || mark.Name == "d13_" || mark.Name == "d31_")
                {
                    mark.Range.Text = d13.ToString("+#.###;-#.###");
                }

                if (mark.Name == "d22" || mark.Name == "d22_")
                {
                    mark.Range.Text = d22.ToString("+#.###;-#.###");
                }

                if (mark.Name == "d23" || mark.Name == "d23_" || mark.Name == "d32_")
                {
                    mark.Range.Text = d23.ToString("+#.###;-#.###");
                }

                if (mark.Name == "d33" || mark.Name == "d33_")
                {
                    mark.Range.Text = d33.ToString("+#.###;-#.###");
                }

                if (mark.Name == "d1p" || mark.Name == "d1p_")
                {
                    mark.Range.Text = d1p.ToString("+#.###;-#.###");
                }

                if (mark.Name == "d2p" || mark.Name == "d2p_")
                {
                    mark.Range.Text = d2p.ToString("+#.###;-#.###");
                }

                if (mark.Name == "d3p" || mark.Name == "d3p_")
                {
                    mark.Range.Text = d3p.ToString("+#.###;-#.###");
                }

                if (mark.Name == "x1")
                {
                    mark.Range.Text = x1.ToString("+#.###;-#.###");
                }

                if (mark.Name == "x2")
                {
                    mark.Range.Text = x2.ToString("+#.###;-#.###");
                }

                if (mark.Name == "x3")
                {
                    mark.Range.Text = x3.ToString("+#.###;-#.###");
                }
            }

            doc.SaveAs(@"e:\Програмирование\Перемножение эпюр\Шаблон.docx");
            doc.Close();
        }