|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
21.03.2014, 00:57 | #1 | |
Как удалить неиспользуемый слой? (.NET API AutoCAD C#)
Изучение .NET ACAD2010/BRICS14
Москва
Регистрация: 26.01.2014
Сообщений: 30
|
||
Просмотров: 6019
|
|
||||
Есть метод Erase у LayerTableRecord, как впрочем и у любого другого наследника DBObject
лузер, надеюсь ты убедился что слой действительно не используется (Database.Purge тебе в помощь) и это не один из встроенных слоев (типа "0", "DEFPOINTS")
__________________
Сообщество программистов Autodesk в СНГ - техническая поддержка |
||||
|
||||
Изучение .NET ACAD2010/BRICS14 Регистрация: 26.01.2014
Москва
Сообщений: 30
|
Код Олега еще не смотрел, пока что Purge() пробовал. Почему-то слои не удаляются, хотя должны:
_AcAp.Application.ShowAlertDialog("убедиться что массив не пустой: " + oid[0].Length); ObjectIdCollection oidc = new ObjectIdCollection(oid[0]); database2.Purge(oidc); Здесь oid[1][] - массив ObjectId, слои из LayerTable |
|||
|
||||
Кому должны? Описание метода Purge смотрел? Этот метод ничего не удаляет!!! Он только позволяет узнать можно ли безболезненно удалить объект/примитив или нет.
__________________
Сообщество программистов Autodesk в СНГ - техническая поддержка |
||||
|
||||
Изучение .NET ACAD2010/BRICS14 Регистрация: 26.01.2014
Москва
Сообщений: 30
|
В описании про метод Purge ничего нет (см. приложенный скриншот). Я посмотрел просто в Intellisense, этот метод принимает аргумент типа ObjectIdCollection. Как понимаю, после применения Purge(oidc) в каком-то поле или свойстве LayerTableRecord должна отобразиться информация bool о взоможности удалить слой? В брикскаде не очень подробная справка
Но я уже решил проблему, просто скопировал код который Олег выкладывал выше. Там проверяется свойство IsUsed и если оно false то слой удаляется. Все нормально, работает. Только добавил к этому список с именами слоев - кандидатов на удаление. Не все там понимаю, но главное уметь применить, а не понять. Например что означает "List<string> lays = new List<string>();" , эти скобки <>, не знаю что это такое |
|||
|
||||
Цитата:
Я хоть слово говорил о брикскаде? Или вопрос звучал применительно к брикскад? Если бы это было так, то я бы вообще не стал бы вмешиваться, так как понятия не имею что в нем есть и чего в нем нет.
__________________
Сообщество программистов Autodesk в СНГ - техническая поддержка |
||||
|
||||
Изучение .NET ACAD2010/BRICS14 Регистрация: 26.01.2014
Москва
Сообщений: 30
|
Будут какие-либо опасности, если удалять слой только полагаясь на свойство layaerTableRecord.IsUsed? Применение Purge() дает более надежный результат? Если Программа.cs такая, что под удаление никак не могут попасть слои "0" и "Defpoints", а удаляются только лишние сгенерированные слои. Сам сгенерировал и сам потом удалил.
"Я хоть слово говорил о брикскаде? Или вопрос звучал применительно к брикскад? Если бы это было так, то я бы вообще не стал бы вмешиваться, так как понятия не имею что в нем есть и чего в нем нет." Вот видите как хорошо, что Я о Брикскаде ничего не говорил. А то бы Вы и не ответили. На будущее так и буду делать. Брикскад почти ничем не отличается от Автокада по части .NET Api |
|||
|
||||
Как я могу ответить на этот вопрос если ты используешь Брикскад? В AutoCAD - да.
Ну теперь буду знать и не буду отвечать. Внешне - возможно, хотя "почти" очень условно. А вот что там внутри и насколько одинаково будут себя вести AutoCAD и Брикскад - понятия не имею. Тем более что у меня Брискад не установлен и проверить я не могу.
__________________
Сообщество программистов Autodesk в СНГ - техническая поддержка |
||||
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
не выключается слой в Autocad | Ермак@ | AutoCAD | 15 | 06.11.2018 14:12 |
Копировать лист, удалить слой | Пионер | AutoCAD | 5 | 22.09.2009 17:31 |
Удалить слой из фильтра слоев | Kotsar | AutoCAD | 2 | 13.04.2007 10:27 |
Помогите удалить слой! | Dim@ | AutoCAD | 14 | 27.10.2006 14:57 |
Как удалить слой? | дрейк | AutoCAD | 4 | 13.07.2005 23:55 |