Сообщество программистов Autodesk в СНГ

ADN Club => VBA => Тема начата: Anatoly от 19-09-2017, 16:32:28

Название: Очистка чертежа через ObjectDBX на VBA
Отправлено: Anatoly от 19-09-2017, 16:32:28
Вот тут
 http://forum.dwg.ru/showthread.php?t=13694 (http://forum.dwg.ru/showthread.php?t=13694)
насколько мои скромные знания лиспа позволяют понять, это делается.
А как на VBA?
Название: Re: Очистка чертежа через ObjectDBX на VBA
Отправлено: Александр Ривилис от 19-09-2017, 16:35:49
А как на VBA?
Зачем? Мало других способов?
Название: Re: Очистка чертежа через ObjectDBX на VBA
Отправлено: Anatoly от 19-09-2017, 16:53:46
Потому что надо поправить больше ста чертежей из подшивки: удалить блоки в каждом, очистить описание блока и вставить новый вариант.
Удаление и вставка есть, а с очисткой проблема.
Название: Re: Очистка чертежа через ObjectDBX на VBA
Отправлено: Александр Ривилис от 19-09-2017, 16:58:20
Удаление и вставка есть, а с очисткой проблема.
Чистить как будем? В AcadDocument есть метод PurgeALL, в AxDbDocument такого метода нет. Так что ObjectDBX для этой цели не подходит.
Название: Re: Очистка чертежа через ObjectDBX на VBA
Отправлено: Anatoly от 19-09-2017, 17:09:45
Понятно, спасибо.
Думал что лисп использует ObjectDBX  для очистки
Код - Auto/Visual Lisp [Выбрать]
  1. n_doc (vla-getinterfaceobject (vlax-get-acad-object) "ObjectDBX.AxDbDocument.16")

Название: Re: Очистка чертежа через ObjectDBX на VBA
Отправлено: Александр Ривилис от 19-09-2017, 17:16:42
Тебе придётся открывать чертеж не через ObjectDBX. Настоятельно рекомендую забыть VBA и писать на .NET (лучше C#, но в крайнем случае сойдёт VB.NET)
Название: Re: Очистка чертежа через ObjectDBX на VBA
Отправлено: Александр Ривилис от 19-09-2017, 17:24:02
И еще. Посмотри готовые: https://apps.autodesk.com/ACD/ru/List/Search?isAppSearch=True&searchboxstore=ACD&facet=&collection=&sort=&query=purge
Название: Re: Очистка чертежа через ObjectDBX на VBA
Отправлено: Anatoly от 19-09-2017, 17:33:40
Спасибо, посмотрю.
Название: Re: Очистка чертежа через ObjectDBX на VBA
Отправлено: Anatoly от 21-09-2017, 17:28:21
В итоге просто удалил описание блока
Код - Visual Basic [Выбрать]
  1. objDBX.Blocks("имя_блока").Delete
Название: Re: Очистка чертежа через ObjectDBX на VBA
Отправлено: Александр Ривилис от 21-09-2017, 17:29:37
В итоге просто удалил описание блока
Код - Visual Basic [Выбрать]
  1. objDBX.Blocks("имя_блока").Delete
Это можно делать только если нет вставок этого блока.
Название: Re: Очистка чертежа через ObjectDBX на VBA
Отправлено: Anatoly от 21-09-2017, 17:31:50
Ну да, перед этим удалил этот блок в модели и в листах.