| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > .NET > .net ошибки при разбиении таблиц методом explode

.net ошибки при разбиении таблиц методом explode

Ответ
Поиск в этой теме
Непрочитано 11.06.2013, 12:54 #1
.net ошибки при разбиении таблиц методом explode
xsakabsx
 
Регистрация: 18.04.2010
Сообщений: 46

имеем код
Код:
[Выделить все]
 
 public static void ExplodeTable(ObjectId entId)
        {
            Document acDoc = Application.DocumentManager.MdiActiveDocument;
            Database acDB = acDoc.Database;

            using (Transaction acTrans = acDB.TransactionManager.StartTransaction())
            {

                Entity currEnt = acTrans.GetObject(entId, OpenMode.ForWrite) as Entity;
                BlockTableRecord ownerBTR = acTrans.GetObject(currEnt.OwnerId, OpenMode.ForWrite) as BlockTableRecord;
                #region работа с таблицей
                if (currEnt.GetType() == typeof(Table))
                {
                    Table currTable = (Table)currEnt;
                    DBObjectCollection tableExplodedobjects = new DBObjectCollection();
                    currTable.Explode(tableExplodedobjects);
                    foreach (DBObject tableEntite in tableExplodedobjects)
                    {
                        bool add = true;
                        if (tableEntite.GetType() == typeof(Line))
                        {
                            Line acLine = (Line)tableEntite;
                            if (acLine.ColorIndex == 8 || !acLine.Visible) // проверка обьекта на видимость
                            {
                                add = false;
                            }
                        }

                        Entity addedEnt = (Entity)tableEntite;
                        ownerBTR.AppendEntity(addedEnt);
                        Debug.WriteLine("Обьект " + addedEnt.GetType().Name+":"+addedEnt.Id);
                        acTrans.AddNewlyCreatedDBObject(addedEnt, add);


                    }
                    Debug.WriteLine("ExplodeTableFinish");
                    BlockTableRecord acTablerecord = acTrans.GetObject(((BlockReference)currEnt).BlockTableRecord, OpenMode.ForWrite) as BlockTableRecord;
                    currEnt.Erase();
                    acTablerecord.Erase();
                }
                #endregion
                #region Разбитие блока
                else if (currEnt.GetType() == typeof(BlockReference))
                { }
                #endregion

                
                acTrans.Commit();
            }

        }
при разбитии таблицы возникает ошибка невозможности сохранить фаил
о том что один или несколько обьектов на чертеже, невозможно сохранить !

аудит не находит ошибок в файле но, после этого дает сохранить
Просмотров: 871
 
Непрочитано 11.06.2013, 18:28
#2
Александр Ривилис

программист, рыцарь ObjectARX
 
Регистрация: 09.05.2005
Киев
Сообщений: 2,274
Отправить сообщение для Александр Ривилис с помощью Skype™


А если вместо:
Код:
[Выделить все]
 acTrans.AddNewlyCreatedDBObject(addedEnt, add);
будет
Код:
[Выделить все]
 acTrans.AddNewlyCreatedDBObject(addedEnt, true);
?
Александр Ривилис вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > .NET > .net ошибки при разбиении таблиц методом explode

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
AUTOCAD 2010 перестал переключаться в многооконный режим. Проблемы с переменными Андрей Х. AutoCAD 24 27.05.2015 10:17