Не работает lisp на autocad 2014. Lisp предназначен для изменения порядкового номера листа - Страница 2
| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Не работает lisp на autocad 2014. Lisp предназначен для изменения порядкового номера листа

Не работает lisp на autocad 2014. Lisp предназначен для изменения порядкового номера листа

Ответ
Поиск в этой теме
Непрочитано 26.03.2015, 17:29
Не работает lisp на autocad 2014. Lisp предназначен для изменения порядкового номера листа
vladykinalex
 
Регистрация: 23.12.2013
Сообщений: 45

Не работает lisp на autocad 2014. Lisp предназначен для изменения порядкового номера листа

"Я просто проставляю в месте штампа вместо номера блок с атрибутом. Потом просто запускаю прогу и она меняет значение атрибута этого блока на порядковый номер листа (как они следуют на чертеже).
Вот прога:
Код:
[Выделить все]
 (defun c:z-layout-set-numder ( / attent)
  (mapcar
    (function
      (lambda (ent)
	(progn
	  (entmod
	    (subst (cons 1
			 (itoa
			   (vla-get-TabOrder
			     (vla-item (vla-get-layouts
					 (vla-get-activedocument
					   (vlax-get-acad-object)
					   ) ;_ vla-get-activedocument
					 ) ;_ vla-get-layouts
				       (cdr (assoc 410 (entget ent)))
				       ) ;_ vla-item
			     ) ;_ vla-get-TabOrder
			   ) ;_ itoa
			 ) ;_ cons
		   (assoc 1 (entget (setq attent (entnext ent))))
		   (entget attent)
		   ) ;_ subst
	    ) ;_ entmod
	  (entupd ent)
	  ) ;_ progn
	) ;_ lambda
      ) ;_ function
    (mapcar 'cadr
	    (ssnamex
	      (ssget "_x" '((0 . "INSERT") (2 . "LAYOUT_NUMBER")))
	      ) ;_ ssnamex
	    ) ;_ mapcar
    ) ;_ mapcar
  (princ)
  ) ;_ defun
Код каписал не я, он написан "ZZZ"
Просмотров: 8091
 
Непрочитано 14.07.2023, 11:44
#21
posetitel


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


ага, я об этом же и пишу: "Модернизированный лисп от Алексея, конечно, помог реализовать требуемые функции"

Интересно, как сделать отдельно диалоговое окно и его запустить
posetitel вне форума  
 
Непрочитано 14.07.2023, 11:47
#22
name02


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


Код:
[Выделить все]
 (setq dcl_id (load_dialog ПУТЬ_К_ФАЙЛУ_DCL  ))
(new_dialog ИМЯ_ФОРМЫ_ИЗ_ФАЙЛА_DCL dcl_id)
У Алексея за загрузку и обработку событий формы отвечает код со строки 088-125
name02 вне форума  
 
Непрочитано 14.07.2023, 12:42
#23
posetitel


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


О, отдельный код, спасибо.
Ну и все же как классическим методом запустить? Т.е. куда сохранять созданный z_layout_number.dcl файл, чтобы он вызывался исходным лиспом из заголовка темы? Может быть путь сохранения нужно дополнительно прописать в лиспе?
posetitel вне форума  
 
Непрочитано 14.07.2023, 13:42
#24
name02


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


Цитата:
Сообщение от posetitel Посмотреть сообщение
Ну и все же как классическим методом запустить?
Тут все классическое - в коде Алексея dcl-форма генерируется lips-кодом во временной папке. Если создавать отдельный dcl-файл, то в основном файле придется конкретно прописывать путь к нему.

Тебя что не устраивает в готовом уже решении Алексея - код обходит по очереди все листы и пишет во всех блоках каждого листа номер листа. Можно изменять номер листа, можно не писать номер в атрибуты блока.
Вроде тебе тоже самое нужно?
name02 вне форума  
 
Непрочитано 14.07.2023, 14:19
#25
posetitel


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


Про готовое решение от Алексея из сообщения 8 я уже написал 2 раза, третий раз пишу: меня все устраивает!
Мне интересно, как в изначальном коде из заголовка темы, где диалоговое окно прописано отдельно, запустить это диалоговое окно?
Сформулирую даже немного проще: как запустить диалоговое окно с таким кодом:
Код:
[Выделить все]
 z_layout_number : dialog { 
   label = "Нумерация листов(layout)"; 
   :list_box{ 
    label="Лист"; 
    key="l_layout"; 
    multiple_select =true; 
    } 
   :edit_box{ 
    label="Номер начинается с"; 
    key="t_nstart"; 
    edit_width=3; 
    fixed_width=true; 
    width=30; 
    } 
   :edit_box{ 
    label="Количество цифр"; 
    key="t_ncount"; 
    edit_width=3; 
    fixed_width=true; 
    width=30; 
    } 
   :toggle{ 
    label="Нумеровать название листов"; 
    key="tg_layout"; 
    } 
   :toggle{ 
    label="Нумеровать листы в штампе"; 
    key="tg_page"; 
    } 
   ok_cancel; 
   } 
posetitel вне форума  
 
Непрочитано 14.07.2023, 14:25
#26
name02


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


Вот так:
Код:
[Выделить все]
 (setq dcl_id (load_dialog ПУТЬ_К_ФАЙЛУ_DCL  ))
(new_dialog "z_layout_number" dcl_id)
Есть еще дополнительно тут https://help.autodesk.com/view/ACD/2...6-808F14217777
name02 вне форума  
 
Непрочитано 14.07.2023, 14:35
#27
posetitel


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


а в каком месте лиспа по переименованию эти две строчки надо прописать?
posetitel вне форума  
 
Непрочитано 14.07.2023, 14:52
#28
name02


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


Понимаешь, тут все несколько сложнее - форму то ты можешь прописать и она откроется. Только нужно еще описать действия при нажатии кнопок, описать действия после закрытия формы. В общем много еще чего.
У Алексея в коде с 088 по 125 строку идет описание действий при нажатии кнопок формы.
Ты почитай справку, которую я выше скинул - через нее много что можно понять.
Посмотри еще и здесь https://intuit.ru/studies/courses/23.../lecture/13724
name02 вне форума  
 
Непрочитано 14.07.2023, 19:27
#29
posetitel


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


файл диалогового окна надо было помесить сюда
C:\Program Files\Autodesk\AutoCAD 2020\Support
posetitel вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Не работает lisp на autocad 2014. Lisp предназначен для изменения порядкового номера листа

Реклама i


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Некорректно работает файл в AutoCad 2013 после его редактирования в AutoCad 2014 poslepolunochi AutoCAD 2 16.07.2014 20:38
AutoCAD Civil 2014/AutoCAD Civil 2014 as AutoCAD Eng,Rus. Ошибка - прерывание команды при наведении курсора на вкладку листа. Do$ Баги и пожелания в Autodesk 4 16.08.2013 23:06
Не работает кнопка delete при установке AutoCAD 2014 Виктория_Вика AutoCAD 17 17.05.2013 10:00
Информация по идентификационным кодам программ в сетевых лицензиях Autodesk KSI AutoCAD 1 14.09.2009 15:59