ADN Club => VBA => Тема начата: DimkaCactus от 26-11-2017, 10:18:54
Название: Нужна помощь...Адаптация кода VBA для AutoCad 2016
Отправлено: DimkaCactus от 26-11-2017, 10:18:54
Добрый день.
Несколько лет назад на форумах скачал VBA программку нумерации атрибутов. Программка работала исправно до версии AutoCad 2011 х86. Недавно пришлось отказаться от 2011 Акада и перейти на версию AutoCad 2016 х64. После перехода приложение утратило частичную функциональность, а точнее при выборе опции "Change One By One" в разделе "Block Ref To Change Attributes" т.е. изменять номера атрибутов блоков по одному перестала работать. Приложение просто вылетает. При выборе других вариантов из раздела "Block Ref To Change Attributes" все прекрасно работает. В VBA я 100% чайник, сейчас делаю попытки разобраться немного с VBA но этого недостаточно что бы понять код. Могу только предположить что проблема кроется в том что акад не воспринимает команду ThisDrawing.SendCommand (Chr(vbKeyEscape)) в коде. Очень не хватает этой программки. Заранее благодарен помощи. Исходный код: https://drive.google.com/open?id=1EQy9JMCiSx6Ym66t2tQaEoV1OvJ3ABgw (https://drive.google.com/open?id=1EQy9JMCiSx6Ym66t2tQaEoV1OvJ3ABgw)
Название: Re: Нужна помощь...Адаптация кода VBA для AutoCad 2016
Отправлено: Александр Ривилис от 27-11-2017, 16:13:14
Приветствую на форуме. 1. Этот форум для разработчиков. Разбираться с чужим и достаточно длинным кодом, да еще и на VBA желающих будет не много. 2. Если вам нужно адаптировать этот код, и вы готовы оплатить эту работу, то создайте тему в разделе Работа для разработчиков (http://adn-cis.org/forum/index.php?board=38.0) Возможно кто-то и откликнется.
Название: Re: Нужна помощь...Адаптация кода VBA для AutoCad 2016
Отправлено: DimkaCactus от 27-11-2017, 18:22:23
Да я понял. К моему величайшему удивлению :o я нашел момент где вылетает код. Как я и предлагал это 3 строка ThisDrawing.SendCommand (Chr(vbKeyEscape)). Функционального назначения отправки команды esc я не понял (Неделю назад первый раз открыл книжку VBA для чайников). Но поставив тильду перед строкой (см. ниже) все заработало как и год назад....
На форумах что Autocad 2015 и выше не работает ThisDrawing.SendCommand (Chr(vbKeyEscape)) но решения не нашел. Связи с этим постоянная ошибка (https://s33.postimg.org/neu215rwr/image.png) (https://postimg.org/image/neu215rwr/)
Как оправлять команду Esc через VBA ?
Windows 10 AutoCad 2016 x64
Название: Re: Нужна помощь...Адаптация кода VBA для AutoCad 2016
Отправлено: Владимир Шу от 28-11-2017, 10:14:32
Если мне не изменяет память, то проблема с ThisDrawing.SendCommand (Chr(vbKeyEscape)) или так ThisDrawing.SendCommand Chr(27) тянется с 2015 автокада (vba версии 7 вроде бы...), внятного решения пока не встречал. Поищите по сети, возможно за последние пару лет, что то поменялось.
Название: Re: Нужна помощь...Адаптация кода VBA для AutoCad 2016
Отправлено: Алексей Кулик от 28-11-2017, 20:11:03
Я бы забил на VBA, наверное. В 2018 версии, кажется, еще сюрпризы появились (если мне не изменяет память, "исчезла" Chr).