Команда SendCommand с параметрами

Автор Тема: Команда SendCommand с параметрами  (Прочитано 6311 раз)

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

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

  • ADN OPEN
  • Сообщений: 9
  • Карма: 0
Добрый день!
В AutoCAD есть команда "НАЙТИ", с помощью которой можно выполнить замену текста по всему чертежу.
Я хочу с помощью VBA из Excel послать команду "НАЙТИ" с параметрами и выполнить функцию "Заменить все".
В справке есть пример:
ThisDrawing.SendCommand "_Circle" & vbCr & "2,2,0" & vbCr & "4" & vbCr
делаю по подобию:
ThisDrawing.SendCommand "НАЙТИ" & vbCr & "ВЗЛЕТ" & vbCr & "РАДУГА" & vbCr
команда "НАЙТИ" запускается, но параметры не передаются.
Как можно это сделать?

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Команда SendCommand с параметрами
« Ответ #1 : 20-12-2020, 20:53:22 »
Добрый день!
В AutoCAD есть команда "НАЙТИ", с помощью которой можно выполнить замену текста по всему чертежу.
Я хочу с помощью VBA из Excel послать команду "НАЙТИ" с параметрами и выполнить функцию "Заменить все".
В справке есть пример:
ThisDrawing.SendCommand "_Circle" & vbCr & "2,2,0" & vbCr & "4" & vbCr
делаю по подобию:
ThisDrawing.SendCommand "НАЙТИ" & vbCr & "ВЗЛЕТ" & vbCr & "РАДУГА" & vbCr
команда "НАЙТИ" запускается, но параметры не передаются.
Как можно это сделать?

Команд с параметрами не бывает. Некоторе команды запрашивают дополнительные настройки в командной строке и тогда можно послать их через SendCommand. Команде НАЙТИ (_FIND) так передать настройки нельзя - только через диалоговое окно.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • Сообщений: 9
  • Карма: 0
Re: Команда SendCommand с параметрами
« Ответ #2 : 21-12-2020, 09:29:08 »
Спасибо за ответ.

Хочу на VBA реализовать автоматическую замену текстов в чертеже AutoCAD. (аналог команды "НАЙТИ")
В файле Excel я создал таблицу пар замен: в первом столбце - что найти, во втором столбце - на что заменить.
Предполагаю в цикле выбирать пару и выполнять автозамену.
Может подскажите идею, как реализовать  автозамену текстов.

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

  • ADN OPEN
  • Сообщений: 9
  • Карма: 0
Re: Команда SendCommand с параметрами
« Ответ #3 : 21-12-2020, 09:33:24 »
Можно ли через VBA имитировать работу с диалоговым окном?

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Команда SendCommand с параметрами
« Ответ #4 : 21-12-2020, 14:25:36 »
Можно ли через VBA имитировать работу с диалоговым окном?
Теоретически можно, но чрезвычайно сложно. В особенности из другого процесса. Я бы не стал с этим заморачиваться. Вместо этого просто напиши программу замены текстов.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • Сообщений: 9
  • Карма: 0
Re: Команда SendCommand с параметрами
« Ответ #5 : 21-12-2020, 15:02:20 »
А как замену выполнять в таблицах?
Неужели перебирать все ячейки?
Или есть что порациональнее?

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Команда SendCommand с параметрами
« Ответ #6 : 21-12-2020, 15:56:38 »
Неужели перебирать все ячейки?
Именно.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Nutson

  • ADN OPEN
  • Сообщений: 43
  • Карма: 6
Re: Команда SendCommand с параметрами
« Ответ #7 : 14-01-2021, 07:49:31 »
Этот велосипед уже изобретен, может работать в том числе по всем чертежам в папке и подпапках
http://www.lee-mac.com/bfind.html

Оффлайн LLIAMAH

  • ADN OPEN
  • Сообщений: 3
  • Карма: 0
Re: Команда SendCommand с параметрами
« Ответ #8 : 31-01-2022, 08:37:35 »
А как замену выполнять в таблицах?
Неужели перебирать все ячейки?
Или есть что порациональнее?
В экселе есть понятие "умные таблицы", там есть команда Find... Она работает быстрее чем перебор ячеек в цикле