![]() |
||
![]() |
![]() |
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
|
||||
КЖ; C# Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,389
|
Цитата:
ЗЫ. Я со стороны C# смотрю. |
|||
![]() |
|
||||
КЖ; C# Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,389
|
Offtop: Автор спрашивал: "Получится такое сделать?. Я написал, что получится. реализуемо != не сложно
|
|||
![]() |
|
||||
Регистрация: 20.03.2013
Сообщений: 50
|
Ок, уточню: есть ли энтузиасты, недавно изучившие как писать программы для автокада, жаждущие попрактиковаться и получить творческое удовольствие, и создать полезную для людей программу?
Если есть - сделайте пожалуйста, и если всё будет хорошо - похвалим и вам будет приятно, если нет - узнаете что надо повысить квалификацию) В другой раз для вас тоже что-нибудь хорошее сделают. |
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 8,986
|
А разве так работать не будет:
Код:
Перебираете подшивку, получаете листы в цикле. Из листа получаете имя привязанного файла *.dwg, проверяете - нет ли такого уже файла во вспомогательном списке имен файлов. Если нет - добавляете. Если используется древовидную структуру листов в подшивке, то будут еще субнаборы (в .Net это AcSmSubset) листов. Обрабатываете листы в этих субнаборах с помощью рекурсии. |
|||
![]() |
|
||||
КЖ; C# Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,389
|
Нда... неужели настолько лень документацию читать... C:\Program Files\Autodesk\AutoCAD 20ХХ\Sample\ActiveX\SheetSetVBA\
|
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 8,986
|
Тут на форуме есть все, как в Греции) За правильность не ручаюсь - лень вчитываться)
|
|||
![]() |
|
||||
Регистрация: 07.12.2010
Уфа
Сообщений: 400
![]() |
Заклинание непинания: "Я не программист! Я делаю свою работу удобнее и быстрее!"
Для чего эта программа? Если надо отправить на печать (на плоттер или в пдф) документ с подписями и печатями, то данная программа включает слой "Печать_подписи" (у меня именно в этом слое находятся подписи и печати) во всех листах подшивки. Если надо этот слой выключить, то по месту (1) см.код вместо True надо поставить False. Вот что получилось: Код:
У меня некоторые листы подшивки ссылаются на один и тот же файл. Прога каждый раз открывает файл листа подшивки делает своё дело и закрывает его. Ускорить работу данного кода можно открыв все файлы листов подшивки, потом по очереди менять значение plotable и закрывать файлы. Для этого надо сделать проверку "если файл уже открыт, то не открывать его". Допустим у меня есть подшивка, в которой десять листов ссылаются на один файл. Вот так вот. |
|||
![]() |
|
||||
КЖ; C# Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,389
|
Если Вы все равно используете On Error Resume Next, то зачем вот это:
Код:
Код:
Хотя я бы конструцию On Error Resume Next и условия не использовал, а обошелся бы конструкцией Код:
В .NET проще, там можно напрямую спросить, есть ли слой с заданным именем.... |
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 8,986
|
Общие замечания и рекомендации:
1. В начале программы вставить запрос - включить и выключить слой через функцию GetKeyword. 2. Использовать логирование в комстроку акада, закрывать каждый раз MsgBox - не совсем френдли интерфейс. 3. Сначала перебрать все подшивки, собрать оттуда имена файлов, а потом уже обрабатывать файлы. Попробуйте для создания списка уникальных имен файлов использовать Scripting.Dictionary с поздним связыванием (если админы не отключили скрипты, конечно). 4. Выводить имена обрабатываемых файлов в комстроку акада и статус обработки типа: ОК, не удалось открыть, не найден слой. 5. Сделайте счетчики для разных состояний статуса обработки и выводите в комстроке в конце суммарную информацию: всего файлов, из них успешно и т.д. |
|||
![]() |
|
|||||
Регистрация: 07.12.2010
Уфа
Сообщений: 400
![]() |
Цитата:
Цитата:
Цитата:
Цитата:
Надо заморочиться на это. |
||||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 8,986
|
Цитата:
Цитата:
это внутри кода VBA создаваемый объект, просто в отличие от встроенных в сам VBA коллекций более гибкий инструмент. |
|||
![]() |
|
||||
Регистрация: 01.02.2020
Сообщений: 3
|
В адаптации назначаете горячую клавишу и в ней пишите макрос
^C^C(setvar "CLAYER" "ИМЯСЛОЯ") Можете и в контекстное меню поставить и горячие клавиши назначить Последний раз редактировалось Кулик Алексей aka kpblc, 19.02.2021 в 07:43. |
|||
![]() |
![]() |
|
Опции темы | Поиск в этой теме |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
запуск программы из AutoCADа | kminas | Программирование | 19 | 15.06.2012 13:42 |
Работа со старыми чертежами с помощью AutoCAD и Photoshop | Shoorup | AutoCAD | 9 | 10.05.2007 23:41 |
Комбинации клавиш для команд в AutoCAD 2006 | Artiznov | AutoCAD | 3 | 03.03.2006 15:23 |
AUTOCAD 2006 | Aragorn | AutoCAD | 14 | 01.04.2005 00:55 |
Что нового в AutoCAD 2005 | ilka_t | AutoCAD | 40 | 19.05.2004 16:48 |