Тема: Как задать вес линии для отдельной строки или ячейки

День добрый.

Имею таблицу на чертеже. Хочу задать вес для некоторых линий LineWeight050. С помощью функции SetGridLineWeight не получается - нет возможности выбора определенных линий (например, хочу изменить вес у верхней линии строки 3 в таблице).

В таблице не настроены типы строк (если их настраивать программно, то все-равно по логике необходимо указывать конкретные строки, но опять же, как это сделать?)

Нет логичных функций у таких объектов, как CellRange, Row, Column или Cell.

Может кто-нибудь знает, как задать вес линии в таблице определенным строкам, столбцам, ячейкам?

Re: Как задать вес линии для отдельной строки или ячейки

Например так (тестировал только в А2010)

       [CommandMethod("tad")]

        public void testaddtablex()
        {
            Document doc = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument;

            Database db = doc.Database;

            Editor ed = doc.Editor;

            using (Transaction tr = db.TransactionManager.StartTransaction())
            {

                BlockTable bt = (BlockTable)tr.GetObject(db.BlockTableId, OpenMode.ForRead);

                BlockTableRecord btr = (BlockTableRecord)tr.GetObject(db.CurrentSpaceId, OpenMode.ForWrite);

                // create a table

                Table tb = new Table();

                tb.TableStyle = db.Tablestyle;

                tb.SuppressRegenerateTable(true);

                // row number

                Int32 RowsNum = 10;// number of data rows only

                // column number

                Int32 ColumnsNum = 5;

                // row height

                double rowheight = 3;

                // column width

                double columnwidth = 30;

                // insert rows and columns

                tb.InsertRows(0, rowheight, RowsNum + 1);// first one is already created

                tb.Cells[0, 0].TextString = "The Title";

                tb.Rows[0].IsMergeAllEnabled = true;

                tb.InsertColumns(0, columnwidth, ColumnsNum);

                tb.SetRowHeight(rowheight);

                tb.SetColumnWidth(columnwidth);

                tb.Position = ed.GetPoint("\nInsertion Point: ").Value;

                // fill in the cell one by one

                for (int i = 1; i < RowsNum + 2; i++)
                {

                    for (int j = 0; j <= ColumnsNum; j++)
                    {

                        tb.Cells[i, j].TextHeight = 1;

                        if (i == 1)

                            tb.Cells[i, j].TextString = "Header " + (j + 1).ToString();

                        else

                            tb.Cells[i, j].TextString = (i - 1).ToString() + "." + j.ToString();

                        tb.Cells[i, j].Alignment = CellAlignment.MiddleCenter;
                        //tb.Cells[i, j].d
                        tb.Cells[i, j].DataFormat = "Whole Number";

                    }

                }
                int a = 0;

                tb.Rows[a].Style = "Title";

                tb.Rows[a + 1].Style = "Header";

                for (a = 2; a < RowsNum + 2; a++)
                {
                    tb.Rows[a].Style = "Data";
                }
                // get third row of the table
                Row rw = tb.Rows[3];

                rw.Borders.Top.LineWeight= LineWeight.LineWeight050;
              
                tb.SuppressRegenerateTable(false);

                tb.GenerateLayout();

                btr.AppendEntity(tb);

                tr.AddNewlyCreatedDBObject(tb, true);

                tr.Commit();

                Autodesk.AutoCAD.ApplicationServices.Application.SetSystemVariable("lwdisplay", 1);

            }

        }

(изменено: Виталич Круглов, 19 июля 2013г. 12:23:53)

Re: Как задать вес линии для отдельной строки или ячейки

Благодарю. пробовал так раньше, но видимо я плохо пробовал. Сейчас все отл работает.

Точнее пробовал именно так:

rw.Borders.Top.LineWeight= LineWeight.LineWeight050;

Re: Как задать вес линии для отдельной строки или ячейки

Пожалуйста,
Успехов :)