| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Кнопка на запуск макроса с вызовом .dvb

Кнопка на запуск макроса с вызовом .dvb

Ответ
Поиск в этой теме
Непрочитано 26.02.2018, 15:33 #1
Кнопка на запуск макроса с вызовом .dvb
sergey12
 
Регистрация: 29.08.2009
Сообщений: 86

Нашел как на кнопку повесит команду на запуск команды из лиспа, если лисп не загружен. Например, "^C^C(if (null UNF-MText)(load "change text styles (cts) 1.9.LSP"));UNF-MText;"

А какую команду надо записать на кнопку, чтоб запустить макрос из проекта, чтоб сперва запустился проект, а потом макрос обратился к этому проекту.
Например, пишу: "^C^C(if (null _-vbarun Other.Quick_calc_select)(_-vbaload "Project.dvb"));_-vbarun Other.Quick_calc_select;". Пишет ошибка: слишком много аргументов.

Команду "^C^C_-vbarun Project.dvb!Other.Quick_calc_select" не предлагать. При запуске данной команды, диалоговое окно макроса висит где-то сбоку и большое не настроенное по габаритам, видимо, с размерами по умолчанию. Если же я сперва загружу файл "Project.dvb" через "загрузка/выгрузка приложений", и потом выполню "_-vbarun Project.dvb!Other.Quick_calc_select", то диалоговое окно нормально открывается (с нужными размерами и в нужном месте).
Просмотров: 10850
 
Непрочитано 26.02.2018, 16:09
#2
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,004


автозагрузка проекта VBA?
Сергей812 вне форума  
 
Автор темы   Непрочитано 27.02.2018, 15:18
#3
sergey12


 
Регистрация: 29.08.2009
Сообщений: 86


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
автозагрузка проекта VBA?
Вроде проект VBA. Этот .dvb взял на просторах интернета.
sergey12 вне форума  
 
Непрочитано 27.02.2018, 15:41
#4
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,004


имел в виду, что запихнуть проект vba в автозагрузку акада) Правда, при этом могут быть побочные эффекты в виде снижения производительности.
Сергей812 вне форума  
 
Автор темы   Непрочитано 27.02.2018, 15:48
#5
sergey12


 
Регистрация: 29.08.2009
Сообщений: 86


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
имел в виду, что запихнуть проект vba в автозагрузку акада) Правда, при этом могут быть побочные эффекты в виде снижения производительности.
Изначально так и делал. Проект VBA был в автозагрузке Аcad, в нем пара специфических калькуляторов. Чтоб не грузить память, решил загружать этот проект через кнопку, и тут появилась загвоздка..
sergey12 вне форума  
 
Непрочитано 27.02.2018, 15:59
#6
Boxa

КЖ; C#
 
Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,588


Как я понял, Вам не нравиться что настойки окна не сохраняются между сеансами автокада, однако я не понимаю, что Вам запрещает сохранять и загружать эти настройки... не понял я в чем проблема... код для кнопки вы и так привели... Странный топик.

Offtop: Практически всегда, при использовании VBA появляются проблемы и два возможных решения:
1. Смириться
2. Не использовать VBA
Boxa вне форума  
 
Непрочитано 27.02.2018, 16:12
#7
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,004


кстати, интересный вопрос - сколько выжирает среда исполнения VBA при загрузке проекта VBA - сомневаюсь, что экономия на памяти настолько существенна.
Сергей812 вне форума  
 
Автор темы   Непрочитано 27.02.2018, 20:35
#8
sergey12


 
Регистрация: 29.08.2009
Сообщений: 86


Цитата:
Сообщение от Boxa Посмотреть сообщение
Как я понял, Вам не нравиться что настойки окна не сохраняются между сеансами автокада, однако я не понимаю, что Вам запрещает сохранять и загружать эти настройки... не понял я в чем проблема... код для кнопки вы и так привели... Странный топик.

Offtop: Практически всегда, при использовании VBA появляются проблемы и два возможных решения:
1. Смириться
2. Не использовать VBA
Да, не нравится, что окно непонятно где выскакивает.
Поясню проблему. Offtop: Извините за мой немецкий, мож не совсем точно выразился ранее.

Ситуация #1.
В автозагрузке приложений Autocad'а стоит программа Project.dvb. Запускаю AutoCAD. Через кнопку запускаю макрос "^C^C_-vbarun Other.Quick_calc_select". Запускается спец_калькулятор в нужном месте с нужными настройками.

Ситуация #2.
Из автозагрузки приложений Autocad'а убрал программу Project.dvb. Через кнопку запускаю макрос "^C^C_-vbarun Project.dvb!Other.Quick_calc_select". Окно открывается сбоку и больших габаритов.

Поэтому подскажите команду на кнопку, чтоб проект VBA сперва загрузился, потом только сработал макрос.
Ибо команда "^C^C(if (null _-vbarun Other.Quick_calc_select)(_-vbaload "Project.dvb"));_-vbarun Other.Quick_calc_select;", пишет ошибку: слишком много аргументов. И далее пишет: "vbarun Other.Quick_calc_select" - не найден макрос.

Цитата:
Сообщение от Сергей812 Посмотреть сообщение
кстати, интересный вопрос - сколько выжирает среда исполнения VBA при загрузке проекта VBA - сомневаюсь, что экономия на памяти настолько существенна.
По сравнению с ACAD'ом, конечно, малó. Но как-то некошерно загружать то, что щас не используется.
sergey12 вне форума  
 
Непрочитано 27.02.2018, 20:56
#9
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,004


Цитата:
Сообщение от sergey12 Посмотреть сообщение
Но как-то некошерно загружать то, что щас не используется.
ну уж что-нибудь одно - либо интерфейс, либо эстетика)

Цитата:
Сообщение от sergey12 Посмотреть сообщение
Ибо команда "^C^C(if (null _-vbarun Other.Quick_calc_select)(_-vbaload "Project.dvb"));_-vbarun Other.Quick_calc_select;", пишет ошибку: слишком много аргументов. И далее пишет: "vbarun Other.Quick_calc_select" - не найден макрос.
а если запускать через посредника-лиспа?
Сергей812 вне форума  
 
Автор темы   Непрочитано 27.02.2018, 21:01
#10
sergey12


 
Регистрация: 29.08.2009
Сообщений: 86


Цитата:
Сообщение от Сергей812 Посмотреть сообщение


а если запускать через посредника-лиспа?
В лиспе я профан. Не подскажите код?
sergey12 вне форума  
 
Непрочитано 27.02.2018, 21:06
#11
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,787


Я бы поменял код, и сохранял в реестре положение и размеры окна. А при вызове диалога восстанавливал бы.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 27.02.2018, 21:12
#12
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,004


я не лисповец) в Net Api таких проблем нет обычно)

если разбираетесь в VBA, попробуйте сохранять координаты окна: left, top, width & height во внешнем текстовом файле, и потом при старте считывать оттуда значения и задавать размеры и положение окна. О чем, собственно, выше и писал Boxa:
Цитата:
Сообщение от Boxa Посмотреть сообщение
однако я не понимаю, что Вам запрещает сохранять и загружать эти настройки...
----- добавлено через ~2 мин. -----
ну или в реестре, как предлагает Алексей - что будет проще для вас в реализации.
Сергей812 вне форума  
 
Непрочитано 27.02.2018, 21:22
#13
Boxa

КЖ; C#
 
Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,588


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Я бы поменял код, и сохранял в реестре положение и размеры окна. А при вызове диалога восстанавливал бы.
Собственно я это и предлагал, но видимо автору это не подходит.
Boxa вне форума  
 
Автор темы   Непрочитано 27.02.2018, 22:04
#14
sergey12


 
Регистрация: 29.08.2009
Сообщений: 86


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Я бы поменял код, и сохранял в реестре положение и размеры окна. А при вызове диалога восстанавливал бы.
DVB-файл не мой. Взят с просторов интернета. Код VBA не поменять.
sergey12 вне форума  
 
Непрочитано 27.02.2018, 22:09
#15
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,004


Цитата:
Сообщение от sergey12 Посмотреть сообщение
Код VBA не поменять.
запоролен?
Сергей812 вне форума  
 
Непрочитано 27.02.2018, 22:11
#16
Boxa

КЖ; C#
 
Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,588


Цитата:
Сообщение от sergey12 Посмотреть сообщение
Код VBA не поменять.
Почему? Вы не пишите на VBA?
Boxa вне форума  
 
Автор темы   Непрочитано 27.02.2018, 22:15
#17
sergey12


 
Регистрация: 29.08.2009
Сообщений: 86


Цитата:
Сообщение от Boxa Посмотреть сообщение
Почему? Вы не пишите на VBA?
Не пишу на VBA (.

Только на уровне школы%).


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
запоролен?
Да.
sergey12 вне форума  
 
Непрочитано 27.02.2018, 22:17
#18
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,004


Цитата:
Сообщение от sergey12 Посмотреть сообщение
Да.
тогда сделайте, как раньше работало и не трогайте)
Сергей812 вне форума  
 
Непрочитано 27.02.2018, 22:21
| 1 #19
Boxa

КЖ; C#
 
Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,588


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
запоролен?
когда это останавливало =о)))

Как обычно... Кончилось рекомендацией смириться =о)))))))
Boxa вне форума  
 
Непрочитано 27.02.2018, 22:42
| 1 #20
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,004


Цитата:
Сообщение от Boxa Посмотреть сообщение
Как обычно... Кончилось рекомендацией смириться =о)))))))
c VBA в акаде можно только смириться)
Сергей812 вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Кнопка на запуск макроса с вызовом .dvb

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Кнопка "смещение объектов" не активна, когда выделяю грани детали RaaV SolidWorks 0 09.02.2018 11:53
Предвыбор слоя для кнопки СПДС путем изменения макроса самой кнопки dextron3 Программирование 3 27.09.2017 21:29
Линии электрических соединений Shoorup Программирование 23 07.02.2015 15:13
перестала работать кнопка выполнения макроса LAmyk AutoCAD 6 26.09.2014 12:56
запуск макроса с панели инструмента в Bricscad ArtemYa Программирование 1 22.01.2010 18:43