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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Загрузка LISP из текста DWG-файла

Загрузка LISP из текста DWG-файла

Ответ
Поиск в этой теме
Непрочитано 28.11.2023, 14:23 #1
Загрузка LISP из текста DWG-файла
Ingpro
 
Регистрация: 11.07.2022
Сообщений: 775

Решение см. пост #30.
Возможно ли с помощью лисп загружать (выбранный в файле DWG) текст с названием лиспа и сразу быть в команде.
Т.е. так: у меня в файле DWG есть тексты с названием лиспов, я кликаю по тексту, не выделяя его,
и лисп с таким названием загружается (из папки Support) и команда активна. Просто есть лисп-программы, которыми не часто пользуешься, поэтому нет смысла добавлять их а в автозагрузку, а так по мере надобности загружать, по-моему, удобно...
Просто таких лиспов много и надо каждый раз - ЗАГПРИЛ, потом скопировать название команды, потом
вставить в командную строку... И даже, если все лиспы в автозагрузке - зайти в папку, скопировать
название команды, потом - в командную строку...

Последний раз редактировалось Ingpro, 07.01.2024 в 09:03.
Просмотров: 2418
 
Непрочитано 28.11.2023, 14:30
#2
Кулик Алексей aka kpblc
Moderator

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


Мсье знает толк... А что, кнопочку не нарисовать с макросом типа
Код:
[Выделить все]
^C^C(progn (if (not (c:CommandName)) (load ApplicationFile.lsp)) (c:CommandName))
P.S. Макросами уже давно не балуюсь, скорее всего, будет более вменяемый код
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 28.11.2023, 14:40
#3
Ingpro


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


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
кнопочку не нарисовать с макросом типа
... кнопочек может быть слишком много...

Последний раз редактировалось Ingpro, 11.04.2024 в 10:21.
Ingpro вне форума  
 
Непрочитано 28.11.2023, 16:10
#4
Сергей812


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


палитры у вас запретили на работе?)
Сергей812 вне форума  
 
Непрочитано 28.11.2023, 16:42
#5
Кулик Алексей aka kpblc
Moderator

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


Цитата:
Сообщение от Ingpro Посмотреть сообщение
Да и как эта кнопочка будет работать, не представляю...
В Download есть книга В.Света про язык макрокоманд. Настоятельно рекомендую.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 28.11.2023, 18:02
#6
Ingpro


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


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

Последний раз редактировалось Ingpro, 22.01.2024 в 20:04.
Ingpro вне форума  
 
Непрочитано 28.11.2023, 18:27
#7
Кулик Алексей aka kpblc
Moderator

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


Код кнопки засунуть на инструмент. Как альтернатива кнопкам
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 28.11.2023, 18:31
#8
Сергей812


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


Цитата:
Сообщение от Ingpro Посмотреть сообщение
А как это связано с темой?
Самое прямое. Встроенный функционал акада для группирования иконок и команд.
Сергей812 вне форума  
 
Автор темы   Непрочитано 28.11.2023, 18:51
#9
Ingpro


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


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
Встроенный функционал акада для группирования иконок и команд.
I'm going to: Команды на палитре предполагают, что все лиспы должны быть в автозагрузке...

Последний раз редактировалось Ingpro, 22.01.2024 в 20:09.
Ingpro вне форума  
 
Непрочитано 28.11.2023, 21:51
#10
Кулик Алексей aka kpblc
Moderator

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


Че ета не подойдет? Ну впишется в строку загрузка/вызов лиспа, в чем принципиальная разница?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 29.11.2023, 10:28
#11
Ingpro


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


... добавлять 30-40 команд НЕчасто используемых, вроде нелогично...

Последний раз редактировалось Ingpro, 22.01.2024 в 20:10.
Ingpro вне форума  
 
Непрочитано 29.11.2023, 11:55
#12
Кулик Алексей aka kpblc
Moderator

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


Цитата:
Сообщение от Ingpro Посмотреть сообщение
загрузка LISP из текста DWG-файла кажется подходящей для редко используемых команд...
А тот факт, что файл предварительно все равно понадобится открывать, не смущает? Ну сделай себе отдельное меню (хоть выпадающее), и пропиши в нем свои "редкоиспользуемые" коды, делов-то
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 29.11.2023, 12:33
#13
Сергей812


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


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
А тот факт, что файл предварительно все равно понадобится открывать, не смущает?
да еще и найти этот фрагмент чертежа с текстами-командами) И не забыть еще лисп с реакторами загрузить для отслеживания выделения пользователем этих псевдокоманд.

И вообще для нечасто используемых команд достаточно и комстроки, имхо - сделать этим командам уникальный префикс (чтобы при начале набора выводилась подсказка из списка этих команд)
Сергей812 вне форума  
 
Непрочитано 29.11.2023, 14:41
#14
name02


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


В свое время я реализовал похожий алгоритм - но только для того, чтобы унифицировать макрокоманду для кнопок.
Данный файл помещается в автозагрузку.
MT2L.lsp
Код:
[Выделить все]
   ;Функция для вызова макроса по его имени из мультитекста
(defun c:MT2L ( / pseudo_name rec path macro_name)
  (setq pseudo_name (cdr (assoc 1 (entget (car (entsel))))))

  (setq rec (cdr (assoc pseudo_name lst_pseudo_names)))
  (setq path (cdr rec))
  (setq macro_name (car rec))

  (load path)

  (eval (read (strcat "(C:" macro_name ")")))

) ;_ END_OF defun


  ;Список с макросами и адресами
(setq lst_pseudo_names

       (list


	 (cons
	   "T2M" ;"псевдоним" - текст, который содержится в мультитексте
	   (cons
	     "t2M"	;имя команды, которая запускает макрос из файла по адресу
	     "C:\\Users\\user_1\\_ПРОГРАММЫ\\для AutoCAD\\Макросы\\Текст в мультитекст\\Text2MTextV2-0.lsp"
	   ) ;_ END_OF cons


	 ) ;_ END_OF cons

;Для других макросов добавлять аналогично
;;;	 (cons
;;;	   "ПСЕВДОНИМ_2"
;;;	   (cons "КОМАНДА_2"
;;;		 "ПУТЬ_К_ФАЙЛУ_КОМАНДЫ_2"
;;;	   ) ;_ END_OF cons
;;;
;;;
;;;	 ) ;_ END_OF cons

       ) ;_ END_OF list lst_pseudo_names



) ;_ END_OF setq
В остальном я соглашусь с предыдущими авторами - либо делать менюшки кнопок, либо инструментальную палитру, либо (если вообще редко пользуешься макросами) - загружать вручную.
Но если тебе так удобнее - почему нет
name02 вне форума  
 
Автор темы   Непрочитано 29.11.2023, 19:23
#15
Ingpro


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


Цитата:
Сообщение от name02 Посмотреть сообщение
похожий алгоритм - но только для того, чтобы унифицировать макрокоманду для кнопок
name02, спасибо, но я так понимаю, сначала нужно определиться с макросами? Или достаточно в этот код добавить строки типа
Код:
[Выделить все]
  "C:\\Users\\user_1\\_ПРОГРАММЫ\\для AutoCAD\\Макросы\\Текст в мультитекст\\Text2MTextV2-0.lsp"
со своим набором лиспов?
А если из кода убрать макросы и прописать путь к папке Support, это сработает?

Последний раз редактировалось Ingpro, 29.11.2023 в 19:28.
Ingpro вне форума  
 
Непрочитано 29.11.2023, 19:38
#16
Сергей812


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


в свое время тут на форуме выкладывал человек надстройку на .Net в виде панели с кнопками, к нажатиям которых можно было привязать выполнения команд. Только как называется эта надстройка - не помню)

----- добавлено через ~2 мин. -----
Цитата:
Сообщение от Ingpro Посмотреть сообщение
А если из кода убрать макросы и прописать путь к папке Support, это сработает?
пост №5 от Алексея был проигнорирован, похоже)
Сергей812 вне форума  
 
Автор темы   Непрочитано 29.11.2023, 19:51
#17
Ingpro


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


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
пост №5 от Алексея был проигнорирован
Не хотелось бы связываться с макросами...
Ingpro вне форума  
 
Непрочитано 29.11.2023, 19:56
#18
Сергей812


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


Цитата:
Сообщение от Ingpro Посмотреть сообщение
Не хотелось бы связываться с макросами...
лисп тоже является макросом (макрокомандой) - так что уже давно связались...
Сергей812 вне форума  
 
Непрочитано 29.11.2023, 21:42
#19
kp+

идущий по граблям
 
Регистрация: 26.05.2005
Сообщений: 5,194


Быть может я чего не понимаю...
Но нельзя ли все мелкие редко используемые лиспы скомпилировать в один файл fas, чтоб не захламлять автозагрузку, а для вызова сделать текстовое меню?
kp+ вне форума  
 
Автор темы   Непрочитано 29.11.2023, 22:00
#20
Ingpro


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


Цитата:
Сообщение от kp+ Посмотреть сообщение
нельзя ли все мелкие редко используемые лиспы скомпилировать в один файл fas
Может и можно...

Последний раз редактировалось Ingpro, 06.01.2024 в 22:17.
Ingpro вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Загрузка LISP из текста DWG-файла



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Загрузка библиотеки LISP команд в AutoCAD Browning Zed LISP 9 14.04.2023 12:37
LISP. Префикс, суффикс , замена текста мультивыноски gizmo_zx LISP 2 30.12.2021 15:36
Создание текста Lisp из Delphi GVlad_2021 LISP 5 04.01.2021 09:30
Импорт текста по координатам из файла uamihanik Программирование 7 09.12.2013 17:07
Можно ли каким-то образом выцепить имена слоёв файла в виде обычного текста? deema AutoCAD 3 18.09.2013 12:20