Нужна помощь...Адаптация кода VBA для AutoCad 2016

Автор Тема: Нужна помощь...Адаптация кода VBA для AutoCad 2016  (Прочитано 2777 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн DimkaCactusАвтор темы

  • ADN OPEN
  • Сообщений: 9
  • Карма: 0
Добрый день.

Несколько лет назад на форумах скачал 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

 

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Приветствую на форуме.
1. Этот форум для разработчиков. Разбираться с чужим и достаточно длинным кодом, да еще и на VBA желающих будет не много.
2. Если вам нужно адаптировать этот код, и вы готовы оплатить эту работу, то создайте тему в разделе Работа для разработчиков
Возможно кто-то и откликнется.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн DimkaCactusАвтор темы

  • ADN OPEN
  • Сообщений: 9
  • Карма: 0
Да я понял.
К моему величайшему удивлению  :o я нашел момент где вылетает код. Как я и предлагал это 3 строка  ThisDrawing.SendCommand (Chr(vbKeyEscape)). Функционального назначения отправки команды esc я не понял (Неделю назад первый раз открыл книжку VBA для чайников). Но поставив тильду перед строкой (см. ниже) все заработало как и год назад....

Код - Visual Basic [Выбрать]
  1. Private Sub UserForm_Initialize()
  2. StopSelection = 0
  3. 'ThisDrawing.SendCommand (Chr(vbKeyEscape))
  4. End Sub

На форумах что Autocad 2015 и выше не работает ThisDrawing.SendCommand (Chr(vbKeyEscape)) но решения не нашел. Связи с этим постоянная ошибка


Как оправлять команду Esc через VBA ?


Windows 10
AutoCad 2016 x64
 

Оффлайн Владимир Шу

  • ADN Club
  • *****
  • Сообщений: 611
  • Карма: 155
    • ПГСу Бложик
Если мне не изменяет память, то проблема с ThisDrawing.SendCommand (Chr(vbKeyEscape)) или так ThisDrawing.SendCommand Chr(27) тянется с 2015 автокада (vba версии 7 вроде бы...), внятного решения пока не встречал.
Поищите по сети, возможно за последние пару лет, что то поменялось.

Оффлайн Алексей Кулик

  • Administrator
  • *****
  • Сообщений: 1097
  • Карма: 172
Я бы забил на VBA, наверное. В 2018 версии, кажется, еще сюрпризы появились (если мне не изменяет память, "исчезла" Chr).
Все, что сказано - личное мнение.

Правила форума существуют не просто так!

Приводя в сообщении код, не забывайте про его форматирование!