|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
|
||||
КЖ; C# Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,589
|
Цитата:
ЗЫ. Я со стороны C# смотрю. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,850
|
Offtop: Boxa, вот зря ты это написал Сейчас на тебя насядут: ну так сделай, раз не сложно!
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 20.03.2013
Сообщений: 54
|
Ок, уточню: есть ли энтузиасты, недавно изучившие как писать программы для автокада, жаждущие попрактиковаться и получить творческое удовольствие, и создать полезную для людей программу?
Если есть - сделайте пожалуйста, и если всё будет хорошо - похвалим и вам будет приятно, если нет - узнаете что надо повысить квалификацию) В другой раз для вас тоже что-нибудь хорошее сделают. |
|||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,052
|
А разве так работать не будет:
Код:
Перебираете подшивку, получаете листы в цикле. Из листа получаете имя привязанного файла *.dwg, проверяете - нет ли такого уже файла во вспомогательном списке имен файлов. Если нет - добавляете. Если используется древовидную структуру листов в подшивке, то будут еще субнаборы (в .Net это AcSmSubset) листов. Обрабатываете листы в этих субнаборах с помощью рекурсии. |
|||
|
||||
КЖ; C# Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,589
|
|
|||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,052
|
Тут на форуме есть все, как в Греции) За правильность не ручаюсь - лень вчитываться)
|
|||
|
||||
Регистрация: 07.12.2010
Уфа
Сообщений: 425
|
Заклинание непинания: "Я не программист! Я делаю свою работу удобнее и быстрее!"
Для чего эта программа? Если надо отправить на печать (на плоттер или в пдф) документ с подписями и печатями, то данная программа включает слой "Печать_подписи" (у меня именно в этом слое находятся подписи и печати) во всех листах подшивки. Если надо этот слой выключить, то по месту (1) см.код вместо True надо поставить False. Вот что получилось: Код:
У меня некоторые листы подшивки ссылаются на один и тот же файл. Прога каждый раз открывает файл листа подшивки делает своё дело и закрывает его. Ускорить работу данного кода можно открыв все файлы листов подшивки, потом по очереди менять значение plotable и закрывать файлы. Для этого надо сделать проверку "если файл уже открыт, то не открывать его". Допустим у меня есть подшивка, в которой десять листов ссылаются на один файл. Вот так вот. |
|||
|
||||
КЖ; C# Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,589
|
Если Вы все равно используете On Error Resume Next, то зачем вот это:
Код:
Код:
Хотя я бы конструцию On Error Resume Next и условия не использовал, а обошелся бы конструкцией Код:
В .NET проще, там можно напрямую спросить, есть ли слой с заданным именем.... |
|||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,052
|
Общие замечания и рекомендации:
1. В начале программы вставить запрос - включить и выключить слой через функцию GetKeyword. 2. Использовать логирование в комстроку акада, закрывать каждый раз MsgBox - не совсем френдли интерфейс. 3. Сначала перебрать все подшивки, собрать оттуда имена файлов, а потом уже обрабатывать файлы. Попробуйте для создания списка уникальных имен файлов использовать Scripting.Dictionary с поздним связыванием (если админы не отключили скрипты, конечно). 4. Выводить имена обрабатываемых файлов в комстроку акада и статус обработки типа: ОК, не удалось открыть, не найден слой. 5. Сделайте счетчики для разных состояний статуса обработки и выводите в комстроке в конце суммарную информацию: всего файлов, из них успешно и т.д. |
|||
|
|||||
Регистрация: 07.12.2010
Уфа
Сообщений: 425
|
Цитата:
Цитата:
Цитата:
Цитата:
Надо заморочиться на это. |
||||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,052
|
Цитата:
Цитата:
это внутри кода 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 |