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

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

Просьба помочь решить проблему с простейшими LISPами

Ответ
Поиск в этой теме
Непрочитано 15.12.2019, 08:18 #1
Просьба помочь решить проблему с простейшими LISPами
Сыч
 
Регистрация: 05.04.2011
Сообщений: 43

Здравствуйте.
Написал пару простейших лиспов. Один для вычерчивания продолговатого отверстия, другой для тройной регенерации чертежа одним нажатием.
Лиспы выполняют требуемые операции, но после выполнения лисп по вычерчиванию отверстия выдает сообщение о неизвестной команде. Лисп по регенерации после выполнения пишет сообщение - Готово"Готово".
Пробовал выполнять на разных машинах и на разных Автокадах версий 2014 и 2018. Везде один и тот же результат. Вроде бы мелочь, но не приятно и не понятно, почему так. Просьба помочь-разъяснить.
Лиспы и скрины прилагаю.
Код:
[Выделить все]
 (DEFUN c:paz (/ t1 t2 t3 t4 t5 t6 t7 t8 shir vis)			; начало функции построения выточки
  (setq t1 (getpoint "\nНачальная точка: "))				; запрос начальной точки
  (setq shir (getreal "\nШирина прямой части выточки"))			; запрос ширины
  (setq vis (getreal "\nВысота выточки (диаметр окружности)"))		; запрос высоты выточки
  (setq t2 (polar t1 0 shir))						; определение координат точки t2
  (setq t3 (polar t2 (/ PI 2) vis))					; определение координат точки t3
  (setq t4 (polar t3 PI shir))						; определение координат точки t4
  (setq t5 (polar t2 (/ PI 2) (/ vis 2)))				; определение координат точки t5
  (setq t6 (polar t5 0 (/ vis 2)))					; определение координат точки t6
  (setq t7 (polar t4 (/ PI -2) (/ vis 2)))				; определение координат точки t7
  (setq t8 (polar t7 PI (/ vis 2)))					; определение координат точки t8
  (command "_line" t1 t2 "")						; чертит нижнюю линию
  (command "_arc" t2 t6 t3 "")						; чертит правую дугу
  (command "_line" t3 t4 "")						; чертит верхнюю линию
  (command "_arc" t1 t8 t4 "")						; чертит левую дугу
  (vl-cmdf)
)									; окончание функции
Код:
[Выделить все]
 (defun c:r3raza ()
(repeat 3
(command "_regen") 
)
(princ "Готово")
)

Миниатюры
Нажмите на изображение для увеличения
Название: Паз.jpg
Просмотров: 36
Размер:	43.5 Кб
ID:	221100  Нажмите на изображение для увеличения
Название: Регенерация.JPG
Просмотров: 20
Размер:	16.5 Кб
ID:	221101  


Последний раз редактировалось Сыч, 16.12.2019 в 03:48.
Просмотров: 1335
 
Непрочитано 15.12.2019, 11:00
#2
Сергей812


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


(princ) перед последней скобкой добавьте для гашения вывода
Сергей812 вне форума  
 
Непрочитано 15.12.2019, 12:12
#3
===AAA===


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


(vl-cmdf)

в первом Лиспе "неизвестную команду", видимо, и выдаёт...
Зачем он?

И кстати - для общего развития - а в чем прелесть тройной регенерации?
Это реально для чего-то нужно или просто в качестве тренировки написано было?
__________________
Счастливо, Алексей!
===AAA=== на форуме  
 
Автор темы   Непрочитано 15.12.2019, 16:55
#4
Сыч


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


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
(princ) перед последней скобкой добавьте для гашения вывода
Спасибо, Сергей.
Это решило проблему в лиспе для тройной регенерации.
В лиспе для построения отверстия проблема сохраняется.

----- добавлено через ~17 мин. -----
Цитата:
Сообщение от ===AAA=== Посмотреть сообщение
(vl-cmdf)

в первом Лиспе "неизвестную команду", видимо, и выдаёт...
Зачем он?

И кстати - для общего развития - а в чем прелесть тройной регенерации?
Это реально для чего-то нужно или просто в качестве тренировки написано было?
(vl-cmdf) - эта команда и появилась в попытке устранить эту проблему. Сейчас убрал, но сообщение о неизвестной команде сохраняется.

Тройная регенерация реально нужна. У меня есть блоки с атрибутами. Атрибуты делятся на "рабочие" и "оформительские". Блок вставляется в чертеж, проектировщиком вводятся исходные данные для расчета:
1. первая регенерация - на основании введенных данных выполняются вычисления в нескольких полях "рабочих" атрибутов;
2. вторая регенерация - на основании результатов первых вычислений вычисляются значения полей в оставшихся "рабочих" атрибутах;
3. третья регенерация - результаты вычислений из "рабочих" атрибутов попадают в многострочный "оформительский" атрибут, в котором выстраиваются один за другим в ряд через тире.
После этого "рабочие" атрибуты скрываются видимостью. Действуют во тьме, чтобы служить свету ).

Последний раз редактировалось Сыч, 15.12.2019 в 17:14.
Сыч вне форума  
 
Непрочитано 15.12.2019, 17:26
#5
koMon


 
Блог
 
Регистрация: 26.09.2017
Сообщений: 1,665


Цитата:
Сообщение от Сыч Посмотреть сообщение
Сейчас убрал, но сообщение о неизвестной команде сохраняется.
последние кавычки в (command "_arc" t t t "") лишние, д.б. (command "_arc" t t t)
koMon вне форума  
 
Автор темы   Непрочитано 16.12.2019, 03:50
#6
Сыч


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


Цитата:
Сообщение от koMon Посмотреть сообщение
последние кавычки в (command "_arc" t t t "") лишние, д.б. (command "_arc" t t t)
Спасибо, помогло.
Сыч вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Просьба помочь решить проблему с простейшими LISPами

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с распечаткой растра из автокад - ступенчатость линий и границ mechos AutoCAD 20 22.08.2022 12:47
Проблема с Удлиннением отрезка rtyu AutoCAD 24 24.07.2012 16:28
AutoCAD 2008: Проблема при печати файла с неизвестным форматом листа Fredyk AutoCAD 3 12.07.2012 12:26
Редактор блоков, проблема при двойном клике Klim007 AutoCAD 4 22.11.2011 16:43
Проблема с ксероксом Canon PC860 _Oleg_ Разное 5 26.12.2007 10:18