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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Чем в реакторе заменить команды STYLE и PURGE ?

Чем в реакторе заменить команды STYLE и PURGE ?

Ответ
 
Поиск в этой теме
Старый 12.02.2024, 15:31 #1
Чем в реакторе заменить команды STYLE и PURGE ?
===AAA===
 
г. Норильск
Регистрация: 15.08.2005
Сообщений: 616

Всем привет!

Сделал реактор, срабатывающий на открытие/создание файла.
Цель - автоматическая "подстройка" чертежа перед началом работы.
Всякие (getvar) => (setvar) работают без проблем, но в реакторе
не получается использовать командные методы.

А мне, как минимум, нужно создать предустановленные текстовые
стили и выборочно почистить чертёж от "лишних" элементов.
Потом - может быть - ещё чего-нибудь захочется...

Чем - для начала - можно заменить команды _style и _purge ?
__________________
Счастливо, Алексей!
Просмотров: 3888
 
Старый 12.02.2024, 15:36
#2
Кулик Алексей aka kpblc
Moderator

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


purge => vla-purgeall
создание / настройка стиля - либо полностью программно все делать (достаточно геморно), либо подключать dws ИМХО

----- добавлено через ~1 мин. -----
Про создание текстового стиля я вроде на сайтике у себя что-то рисовал достаточно давно
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Старый 12.02.2024, 15:42
#3
Сергей812


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


Цитата:
Сообщение от ===AAA=== Посмотреть сообщение
но в реакторе не получается использовать командные методы.
лучше в обработчиках/реакторах этим не баловаться) разве что в простое|idle попробовать...
Сергей812 вне форума  
 
Старый 12.02.2024, 15:45
#4
Кулик Алексей aka kpblc
Moderator

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


Offtop: Лисп в idle вроде не сильно умеет
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Старый 12.02.2024, 15:46
#5
===AAA===


 
Регистрация: 15.08.2005
г. Норильск
Сообщений: 616


Цитата:
purge => vla-purgeall
Да в том-то и дело, что мне не "all", а только "кое-что" удалить нужно.
Остальные "предустановленные объекты" (слои там и прочее) должны
жить из сеанса в сеанс, пока они не понадобятся.

Можно, конечно, сделать и purgeall, а потом заново их создать, но опять
же командные методы понадобятся...

----- добавлено через ~2 мин. -----
Цитата:
лучше в обработчиках/реакторах этим не баловаться)
Не от хорошей жизни, увы. :-(

В AutoCAD'е использовал S::STARTUP и горя не знал, но тут появился nanoCAD.
__________________
Счастливо, Алексей!
===AAA=== вне форума  
 
Старый 12.02.2024, 15:56
#6
Кулик Алексей aka kpblc
Moderator

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


Цитата:
Сообщение от ===AAA=== Посмотреть сообщение
только "кое-что" удалить нужно
Тогда по этому "кое-чему" и проходи )
Цитата:
Сообщение от ===AAA=== Посмотреть сообщение
Можно, конечно, сделать и purgeall, а потом заново их создать, но опять же командные методы понадобятся...
Кто сказал про обязвтльность командных методов для создания слоя?

Цитата:
Сообщение от ===AAA=== Посмотреть сообщение
В AutoCAD'е использовал S::STARTUP и горя не знал, но тут появился nanoCAD.
Тогда не парься лиспом и переходи на NET. Сэкономишь тьму времени, сил и нервов.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Старый 12.02.2024, 15:59
#7
===AAA===


 
Регистрация: 15.08.2005
г. Норильск
Сообщений: 616


"Слой" - для примера. Там у меня ещё и вставка блока была...

----- добавлено через ~3 мин. -----
Цитата:
Тогда не парься лиспом и переходи на NET.
Visual Studio 2022 пойдёт или нужна будет другая версия?
__________________
Счастливо, Алексей!
===AAA=== вне форума  
 
Старый 12.02.2024, 16:02
#8
Кулик Алексей aka kpblc
Moderator

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


Цитата:
Сообщение от ===AAA=== Посмотреть сообщение
Там у меня ещё и вставка блока была...
Че, прям интерактивная, на курсоре болтается? Или все же программная "вставить и сразу удалить вхождение"?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Старый 12.02.2024, 16:04
#9
===AAA===


 
Регистрация: 15.08.2005
г. Норильск
Сообщений: 616


Цитата:
Тогда по этому "кое-чему" и проходи )
А чем ? Я только с помощью _purge выборочно знаю, как.

----- добавлено через ~3 мин. -----
Цитата:
Че, прям интерактивная, на курсоре болтается?
Не, от этого давно отказался.

Вставка ведь не только, чтобы с собой все настройки притащить,
она у меня и как "зрительный элемент" оставалась. Типа, проверил,
если нет - вставил.
__________________
Счастливо, Алексей!
===AAA=== вне форума  
 
Старый 12.02.2024, 16:16
1 | #10
Кулик Алексей aka kpblc
Moderator

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


Цитата:
Сообщение от ===AAA=== Посмотреть сообщение
Я только с помощью _purge выборочно знаю, как.
Зависит от того, что ты пытаешься вычистить. К примеру, для блоков^
Код:
[Выделить все]
 (vlax-for block_def (vla-get-blocks (vla-get-activedocument (vlax-get-acad-object)))
(if ; тут проверки на внешние ссылки / анонимные блоки / блоки таблиц / ...
(vl-catch-all-apply '(lambda() (vla-delete block_def)))
)
)
Аналогично по текстовым стилям, размерным стилям и т.п. Может быть, придется еще и по словарям проходить (типа табличные стили / стили мультилиний и т.п.)
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Старый 13.02.2024, 13:52
#11
===AAA===


 
Регистрация: 15.08.2005
г. Норильск
Сообщений: 616


А если на одно и то же событие назначено несколько реакторов,
(скажем, один "мой", а другой "какой-то левый"), то определено,
в каком порядке они будут отрабатывать?

Или это непредсказуемо?
__________________
Счастливо, Алексей!
===AAA=== вне форума  
 
Старый 13.02.2024, 14:04
1 | #12
Кулик Алексей aka kpblc
Moderator

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


По-моему, в каком порядке они определены, в таком и будут срабатывать. Это если полного сброса нет (на лиспе, кажется, vlr-remove-all, но не уверен).
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Старый 13.02.2024, 14:07
1 | #13
Сергей812


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


Цитата:
Сообщение от ===AAA=== Посмотреть сообщение
Или это непредсказуемо?
не гарантируемо, скажем так)

Что такое обработчик (реактор): это когда в коде основного процесса в блоке генерации события делается список ссылок на внешние функции-обработчики событий с определенной сигнатурой (списком типов аргументов). И когда выполнение кода в основном процессе доходит до этого списка ссылок и он (список) не пустой, то будет вызвана каждая из внешних функций с передачей ей аргументов в обусловленном сигнатурой порядке. И когда список закончится - продолжится выполнение кода основного процесса. Так вот - выполнение внешней функции обработчика (реактора) события гарантировано (если произойдет генерация этого события в основном процессе, конечно), но порядок следования ссылок в этом списке - 100% не гарантирован (чтобы на него жестко завязываться).
Сергей812 вне форума  
 
Старый 01.07.2024, 14:17
#14
Ingpro


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


error
Ingpro вне форума  
 
Автор темы   Старый 01.07.2024, 14:24
#15
===AAA===


 
Регистрация: 15.08.2005
г. Норильск
Сообщений: 616


Не совсем так - в начальном запросе речь шла о создании стиля,
а не установки текущим уже созданного.
__________________
Счастливо, Алексей!
===AAA=== вне форума  
 
Старый 02.07.2024, 05:46
#16
doctorraz

электрик
 
Регистрация: 19.02.2010
Волгоград
Сообщений: 2,297
Отправить сообщение для doctorraz с помощью Skype™


Цитата:
Сообщение от ===AAA=== Посмотреть сообщение
В AutoCAD'е использовал S::STARTUP и горя не знал, но тут появился nanoCAD
И он умеет shell_exec
__________________
Мастерская СПДС
doctorraz вне форума  
 
Старый 02.07.2024, 06:42
#17
nickname2019


 
Регистрация: 18.11.2019
Сообщений: 1,705


Может сделать отдельную нормальную функцию и запустить ее в реакторе через командную строку? Она же на сразу выполнится, а после завершения работы кода реактора?
Или эту функцию запускать через таймер (полсекунды)?
nickname2019 вне форума  
 
Автор темы   Старый 02.07.2024, 06:55
#18
===AAA===


 
Регистрация: 15.08.2005
г. Норильск
Сообщений: 616


Цитата:
И он умеет shell_exec
Намёк - оно, конечно, хорошо. А можно чуть подробнее?
__________________
Счастливо, Алексей!
===AAA=== вне форума  
 
Старый 02.07.2024, 07:44
#19
Кулик Алексей aka kpblc
Moderator

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


Как-то не понял, каким боком тут shell_exec вообще. Создать текстовый стиль с shx-шрифтом геморно, но не могу сказать, что нереализуемо.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Старый 02.07.2024, 07:55
#20
doctorraz

электрик
 
Регистрация: 19.02.2010
Волгоград
Сообщений: 2,297
Отправить сообщение для doctorraz с помощью Skype™


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
каким боком тут shell_exec
Интересовались startup..
__________________
Мастерская СПДС
doctorraz вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Чем в реакторе заменить команды STYLE и PURGE ?



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как вывести меню команды в командной строке? (пояснения внутри) Booka1a AutoCAD 16 02.02.2018 17:55
Как настроить команды "штриховка" и "массив"? Katerina_R AutoCAD 8 24.11.2017 08:29
Как в AutoCAD на Mac открыть диалоговое окно команды Purge? Geor9e AutoCAD 7 09.06.2017 07:08
Разная работа команды purge Genf AutoCAD 0 15.02.2017 21:42
Не получается задать команды в acad.pgp VamBEER AutoCAD 3 22.11.2016 14:56