Сообщество программистов Autodesk в СНГ

ADN Club => VBA => Тема начата: Vitus66 от 20-12-2020, 16:54:53

Название: Команда SendCommand с параметрами
Отправлено: Vitus66 от 20-12-2020, 16:54:53
Добрый день!
В AutoCAD есть команда "НАЙТИ", с помощью которой можно выполнить замену текста по всему чертежу.
Я хочу с помощью VBA из Excel послать команду "НАЙТИ" с параметрами и выполнить функцию "Заменить все".
В справке есть пример:
ThisDrawing.SendCommand "_Circle" & vbCr & "2,2,0" & vbCr & "4" & vbCr
делаю по подобию:
ThisDrawing.SendCommand "НАЙТИ" & vbCr & "ВЗЛЕТ" & vbCr & "РАДУГА" & vbCr
команда "НАЙТИ" запускается, но параметры не передаются.
Как можно это сделать?
Название: Re: Команда SendCommand с параметрами
Отправлено: Александр Ривилис от 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) так передать настройки нельзя - только через диалоговое окно.
Название: Re: Команда SendCommand с параметрами
Отправлено: Vitus66 от 21-12-2020, 09:29:08
Спасибо за ответ.

Хочу на VBA реализовать автоматическую замену текстов в чертеже AutoCAD. (аналог команды "НАЙТИ")
В файле Excel я создал таблицу пар замен: в первом столбце - что найти, во втором столбце - на что заменить.
Предполагаю в цикле выбирать пару и выполнять автозамену.
Может подскажите идею, как реализовать  автозамену текстов.
Название: Re: Команда SendCommand с параметрами
Отправлено: Vitus66 от 21-12-2020, 09:33:24
Можно ли через VBA имитировать работу с диалоговым окном?
Название: Re: Команда SendCommand с параметрами
Отправлено: Александр Ривилис от 21-12-2020, 14:25:36
Можно ли через VBA имитировать работу с диалоговым окном?
Теоретически можно, но чрезвычайно сложно. В особенности из другого процесса. Я бы не стал с этим заморачиваться. Вместо этого просто напиши программу замены текстов.
Название: Re: Команда SendCommand с параметрами
Отправлено: Vitus66 от 21-12-2020, 15:02:20
А как замену выполнять в таблицах?
Неужели перебирать все ячейки?
Или есть что порациональнее?
Название: Re: Команда SendCommand с параметрами
Отправлено: Александр Ривилис от 21-12-2020, 15:56:38
Неужели перебирать все ячейки?
Именно.
Название: Re: Команда SendCommand с параметрами
Отправлено: Nutson от 14-01-2021, 07:49:31
Этот велосипед уже изобретен, может работать в том числе по всем чертежам в папке и подпапках
http://www.lee-mac.com/bfind.html
Название: Re: Команда SendCommand с параметрами
Отправлено: LLIAMAH от 31-01-2022, 08:37:35
А как замену выполнять в таблицах?
Неужели перебирать все ячейки?
Или есть что порациональнее?
В экселе есть понятие "умные таблицы", там есть команда Find... Она работает быстрее чем перебор ячеек в цикле