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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > lisp-программы для nanoCAD

lisp-программы для nanoCAD

Ответ
Поиск в этой теме
Непрочитано 04.07.2012, 23:09 #1
lisp-программы для nanoCAD
Кулик Алексей aka kpblc
Moderator
 
LISP, C# (ACAD 200[9,12,13,14])
 
С.-Петербург
Регистрация: 25.08.2003
Сообщений: 39,848

Тема создана для размещения вопросов по функционированию lisp-программ под nanoCAD версии от 4.0 и выше.

Просьба размещать либо готовые и гарантированно работающие в nanoCAD lisp-коды, либо, если есть какие-либо вопросы по программированию на lisp, задавать именно их. Любой оффтоп будет удаляться.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Просмотров: 29036
 
Непрочитано 04.07.2012, 23:48
#2
357

бывший...
 
Регистрация: 13.08.2009
Краснодар
Сообщений: 1,171
<phrase 1=


Условное обозначение проема в строительной конструкции (в стене, перекрытии).
Порядок ввода: отметить точку в левом нижнем углу проема, затем в левом верхнем, затем в правом верхнем. В другом порядке рисует неправильно (
Вложения
Тип файла: lsp a2otverstie.lsp (607 байт, 302 просмотров)
357 вне форума  
 
Автор темы   Непрочитано 05.07.2012, 00:05
#3
Кулик Алексей aka kpblc
Moderator

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


У меня нет nanoCAD, но я бы попробовал код наподобие:
Код:
[Выделить все]
 (defun c:a2otverstie (/ *error* osmode p1 p2 p3 dlin p4)

  (setq osmode (getvar "osmode"))
  (setvar "osmode" 631)
  (setq p1   (getpoint "\nУкажи точку лево-низ:")
        p2   (getpoint p1 "\nУкажи точку лево-верх:")
        p3   (getpoint p2 "\nУкажи точку право-верх:")
        dlin (min (distance p1 p2) (distance p2 p3))
        dlin (* dlin 0.25)
        p4   (polar p2 (* 1.75 pi) dlin)
        ) ;_ end of setq
  (command "_.solid" "_none" p1 "_none" p2 "_none" p4 "_none" p3 "")
  (setvar "osmode" osmode)
  (princ)
  ) ;_ end of DEFUN
Поскольку я не знаю, что там с отловом ошибок, с определением локальных функций, с обработчиком ошибок и т.п., дальше код улучшать не буду. Хотя вариантов там - море
P.S. Можно в получении p2 заменить getpoint на getcorner (ИМХО) - будет немного нагляднее. Наверное...
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 05.07.2012, 01:05
#4
dows

nanoCAD, ArchiCAD - все что с ними связано :-)
 
Регистрация: 25.12.2008
Москва
Сообщений: 607


А чего должен скрипт делать? У меня отрисовал объект Фигура по трем точкам...
В чем полезность?
Миниатюры
Нажмите на изображение для увеличения
Название: 0000001.png
Просмотров: 688
Размер:	33.0 Кб
ID:	83336  
dows вне форума  
 
Непрочитано 05.07.2012, 02:00
#5
yal

dev.nano
 
Регистрация: 21.03.2009
Сообщений: 363


Добрый вечер!
Итак, немного информации о лиспе. Лисп у нас в бете, поэтому нужно относиться несколько снисходительно.
Из известных проблем:
1. appload/autoload временно отключен. (Проблемы с запуском при открытии документа)
2. Конструкция command pause (и в вариациях с аргументами) пока не работает.
3. Не отрабатываются некоторые VLA проперти (ошибка релиза). Поправлено, войдёт в апдейт (см. клуб разработчика).
4. Нет реализации некоторых VLAX функций. Поправлено, войдёт в апдейт. (см. клуб разработчика).
5. Проблемы с совместимостью вызова команд с параметрами - над этим работаем.
yal вне форума  
 
Непрочитано 05.07.2012, 07:12
#6
357

бывший...
 
Регистрация: 13.08.2009
Краснодар
Сообщений: 1,171
<phrase 1=


2 Кулик Алексей aka kpblc
Спасибо!
2 dows
Эту фигуру он и должен отрисовать...
Полезность ... конечно же сомнительна )
2 yal
- В составе кода есть строка
(command "_.pline" p2 "_W" (* 0.5 msc) (* 0.5 msc) p4 "")
В автокаде и интелликадах она отрисовывает полилинию толщиной 0,5. В нанокаде эта линия имеет толщину "по слою". Какие изменения в строку надо внести?
- С составе кода есть строка
(command "_.text" "_bl" p7 (* 2.5 msc) 0 txt0)
В автокаде и интелликадах она отрисовывает набранный текст. В нанокаде не отрисовывает ничего. Какие изменения в строку надо внести?
Если вопросы не по адресу - извините

Последний раз редактировалось 357, 05.07.2012 в 08:03.
357 вне форума  
 
Непрочитано 05.07.2012, 08:34
#7
Makswell

Инженер-строитель
 
Регистрация: 15.08.2007
Киров
Сообщений: 2,204


Цитата:
Сообщение от dows Посмотреть сообщение
А чего должен скрипт делать? У меня отрисовал объект Фигура по трем точкам...
В чем полезность?
Так написано же.
Цитата:
Сообщение от 357 Посмотреть сообщение
Условное обозначение проема в строительной конструкции (в стене, перекрытии).
Очень полезно. Часто таким пользуюсь.
Впервые увидел в VetCAD++ после чего сам запилил свой аналог на лиспе.
Makswell вне форума  
 
Непрочитано 05.07.2012, 08:58
#8
MCAD


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


Цитата:
Сообщение от dows Посмотреть сообщение
А чего должен скрипт делать? У меня отрисовал объект Фигура по трем точкам...
В чем полезность?
Аналогов в СПДС выкладывалось довольно много. Например
Миниатюры
Нажмите на изображение для увеличения
Название: ScreenShot083.png
Просмотров: 524
Размер:	16.6 Кб
ID:	83348  
MCAD вне форума  
 
Автор темы   Непрочитано 05.07.2012, 09:02
#9
Кулик Алексей aka kpblc
Moderator

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


MCAD, я так понимаю, что хочется обойтись без СПДС
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 05.07.2012, 09:12
#10
MCAD


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


Кулик Алексей aka kpblc, Да это даже мне понятно :-)) Это был ответ на впрос для Чего это. Плюс к этому могу добавить кучу фенечек, но ты же сочтёшь это рекламой и удалишь.
MCAD вне форума  
 
Непрочитано 05.07.2012, 09:19
#11
357

бывший...
 
Регистрация: 13.08.2009
Краснодар
Сообщений: 1,171
<phrase 1=


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
... я так понимаю, что хочется обойтись без СПДС
Дело в том, что в нанокаде кроме выносок нет других элементов оформления. А вычерчивать надо и отметки, и линии разрыва и еще многое другое.
357 вне форума  
 
Автор темы   Непрочитано 05.07.2012, 09:44
#12
Кулик Алексей aka kpblc
Moderator

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


... а платить за СПДС не хочется. Это понятно.
ИМХО: надо на самом деле создавать "единичный" блок и работать уже с ним. Намного сложнее код получается, но ИМХО - более верный идеологически и намного проще в применении.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 05.07.2012, 10:09
#13
357

бывший...
 
Регистрация: 13.08.2009
Краснодар
Сообщений: 1,171
<phrase 1=


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
надо на самом деле создавать "единичный" блок и работать уже с ним
Согласен полностью! Но для этого надо как минимум научить нанокад качественно работать с блоками )
357 вне форума  
 
Непрочитано 05.07.2012, 12:10
#14
dows

nanoCAD, ArchiCAD - все что с ними связано :-)
 
Регистрация: 25.12.2008
Москва
Сообщений: 607


Offtop:
Цитата:
Сообщение от 357 Посмотреть сообщение
Дело в том, что в нанокаде кроме выносок нет других элементов оформления. А вычерчивать надо и отметки, и линии разрыва и еще многое другое.
Елки! А я не понял, что это обозначение проема! )))) фигура и фигура... зашорен уже :-)
dows вне форума  
 
Непрочитано 05.07.2012, 14:06
#15
yal

dev.nano
 
Регистрация: 21.03.2009
Сообщений: 363


Цитата:
Сообщение от 357 Посмотреть сообщение
(command "_.pline" p2 "_W" (* 0.5 msc) (* 0.5 msc) p4 "")
(command "_.text" "_bl" p7 (* 2.5 msc) 0 txt0)
Попробуйте так (command "_.pline" p2 "Ширина" (* 0.5 msc) (* 0.5 msc) p4 "") В будущем поправим.
С текстом сложнее - команду нужно рихтовать. Но можно переписать на VLA-ADDTEXT и VLA-PUT-TEXTSTYLE.
yal вне форума  
 
Автор темы   Непрочитано 05.07.2012, 14:10
#16
Кулик Алексей aka kpblc
Moderator

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


yal, так я не понял, ActiveX (точнее, аналоги vl-*, vla-*, vlax-* функций) в nanolisp есть или не совсем?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 05.07.2012, 14:16
#17
yal

dev.nano
 
Регистрация: 21.03.2009
Сообщений: 363


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
yal, так я не понял, ActiveX (точнее, аналоги vl-*, vla-*, vlax-* функций) в nanolisp есть или не совсем?
Есть весь наш ActiveX, который совместим с. Кое что конечно нужно дописать, но в основном есть и работает. Если не считать отвалившегося по дороге vla-put И DCL, кстати есть.
yal вне форума  
 
Непрочитано 05.07.2012, 14:16
#18
357

бывший...
 
Регистрация: 13.08.2009
Краснодар
Сообщений: 1,171
<phrase 1=


2 yal
Спасибо, вечером попробую
===========
Попробовал: работает! Спасибо! Теперь бы с текстовыми строками решить...

Последний раз редактировалось 357, 05.07.2012 в 19:50.
357 вне форума  
 
Непрочитано 05.07.2012, 18:59
#19
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


Цитата:
Сообщение от 357 Посмотреть сообщение
Надо вырабатывать правила правописания нанолиспов )))
Надо сделать нормальный интерпретатор лиспов
Цитата:
Сообщение от 357 Посмотреть сообщение
А Вы файлы *.mnl не подгружали?
А свои меню можно уже подгружать?
gomer вне форума  
 
Непрочитано 05.07.2012, 19:27
#20
357

бывший...
 
Регистрация: 13.08.2009
Краснодар
Сообщений: 1,171
<phrase 1=


В справке написано, что можно файлы *.mnl. При меню ничего не сказано ;-)
Если есть желание реально чем-то помочь - http://forum.dwg.ru/showthread.php?t=85892
357 вне форума  
 
Непрочитано 05.07.2012, 19:55
#21
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


Цитата:
Сообщение от 357 Посмотреть сообщение
В справке написано, что можно файлы *.mnl. При меню ничего не сказано ;-)
можно что? подгружать меню и подгружать лиспы, а *.mnl - это тот же лисп, - разные вещи. Единственное отличие состоит в том, что *.mnl загружается автоматически, если находится в папке одноименного меню, следовательно, если нет меню, то нет и mnl
Цитата:
Если есть желание реально чем-то помочь
А чем помочь? Ну, есть у меня свои лиспы: и отметки там и разрезы и линии разрыва и проемы и еще много чего, что с того... Пока не будет возможности настройки интерфейса (команд _cui, _cuiload) вся эта автоматизация - блеф. Ну не будет рядовой инженер, править файл настройки нанокада, чтоб добавить функцию, написанную только что на коленке, у него нет для этого времени, а может и знаний

Последний раз редактировалось gomer, 05.07.2012 в 20:17.
gomer вне форума  
 
Непрочитано 05.07.2012, 20:54
#22
357

бывший...
 
Регистрация: 13.08.2009
Краснодар
Сообщений: 1,171
<phrase 1=


А Вы не думайте о том, что будет делать простой инженер... Просто установите нанокад и откатайте в нем пару-тройку лисп-кодов. Уверяю: сразу появится масса вопросов к разработчикам, о которых они даже и не подозревают. Вот это и будет помощь и нанокаду и пользователям.
Впрочем, Вам ли это объяснять? Вы, как никто другой, знаете, с чего начинается понимание ***кадом лисп-кодов, не раз и не два начинали и заканчивали эту работу. Так примите участие еще раз...

2 yal
Пытался через нанолисп написать в чертеже хоть одну букву - бесполезно! Нанолисп понимает только команду text ... Предложенные ему точка вставки, высота текста, угол поворота, выравнивание он понимать не хочет и требует ввода заново. А формулу завершения ввода текста по CTRL+Enter, понятную нанолиспу, я не знаю. Может быть дадите какие-нибудь рекомендации?

Последний раз редактировалось 357, 06.07.2012 в 08:02.
357 вне форума  
 
Непрочитано 07.07.2012, 18:45
#23
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


Цитата:
Сообщение от 357 Посмотреть сообщение
Просто установите нанокад и откатайте в нем пару-тройку лисп-кодов. Уверяю: сразу появится масса вопросов к разработчикам, о которых они даже и не подозревают. Вот это и будет помощь и нанокаду и пользователям.
Не появятся, платный нанокад использовать не собираюсь, по крайней мере пока, а насчет текста, есть же еще entmake и vla-AddText
gomer вне форума  
 
Непрочитано 05.03.2014, 15:09
#24
Barti


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


Всем доброго времени суток! Решил не открывать новую тему, а написать здесь - заказал написание лиспа, который должен был импортировать координаты из текстового файла в виде полилиний в dwg и сразу распихивать их по соответствующим слоям. Лисп сделан, но мне нужно было чтобы он работал и в автокаде и в нанокаде, а в нано что-то работать не хочет. Выкладываю лисп. Скажите, как-то его можно адаптировать под нанокад?

Все, проблема решена
Вложения
Тип файла: lsp pl_draw.lsp (4.3 Кб, 170 просмотров)

Последний раз редактировалось Barti, 10.03.2014 в 12:48.
Barti вне форума  
 
Непрочитано 26.05.2014, 15:09
#25
E-degtyarev

Помогаю, кому делать нечего.
 
Регистрация: 27.03.2009
Русская деревня
Сообщений: 394


А может кто подскажет, как залить изображение на IMAGE и IMAGE_BUTTON dcl файла в Nanocad при использовании Lisp? Автокадовская функция SLIDE_IMAGE не катит.
Пример DCL файла:

Код:
[Выделить все]
 imag : dialog {
label = "Рисунок-кнопка";
: image_button {
key = "nad1_110";
height =10;
}
ok_cancel;
}
}
Lisp для загрузки этого DCL:

Код:
[Выделить все]
 (defun c:im ()
(setq dcl (load_dialog "imag.dcl"))
(new_dialog "imag" dcl)
(setq	x (dimx_tile "nad1_110")
y (dimy_tile "nad1_110")
) ;_ конец setq
(start_image "nad1_110")
(slide_image 0 0 x y "РИСУНОК????")
(end_image)
(start_dialog)
(unload_dialog dcl)
) ;_ конец defun
Кто подскажет-что должно быть вместо слова РИСУНОК???? и в каком формате?
Интерпретатор проглатывает функцию (slide_image 0 0 x y "РИСУНОК????") и не ругается, но на кнопке рисунок не отображается. Пробовал подсовывать рисунки типа SLD, BMP, PNG, TIF, GIF, JPG - безрезультатно. Диалоговое окно появляется, а рисунка на кнопке нет.

Последний раз редактировалось E-degtyarev, 27.05.2014 в 09:39.
E-degtyarev вне форума  
 
Непрочитано 27.05.2014, 19:15
#26
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


возможно нанокад просто не может найти слайд
gomer вне форума  
 
Непрочитано 28.05.2014, 08:45
#27
E-degtyarev

Помогаю, кому делать нечего.
 
Регистрация: 27.03.2009
Русская деревня
Сообщений: 394


Сообщение с форума nanocad:
"Функция SLIDE_IMAGE не реализована. Записал в багтрекере Клуба разработчиков пожелание #163. "
Автор ISL
E-degtyarev вне форума  
 
Непрочитано 28.05.2014, 22:52
#28
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


В нанокаде пока много чего не слава богу, думаю все устаканится лет через 5.
gomer вне форума  
 
Непрочитано 28.11.2018, 22:46
#29
ciril

САПР
 
Регистрация: 29.09.2011
СПб
Сообщений: 283


Реанимирую тему, чтобы не плодить сущностей.
Пришлось рассматривать нанокад на предмет его пригодности для тестирования, возник вопрос: что у него сейчас с реализацией поддержки лиспа и документацией для разработчиков? Потому что тот chm, который гордо называется ncLisp_ref вызывает неприличный хохот.
__________________
На работе было скучно:shout:
ciril вне форума  
 
Автор темы   Непрочитано 28.11.2018, 23:59
#30
Кулик Алексей aka kpblc
Moderator

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


Насколько я знаю, компилированный lsp (то бишь fas / vlx) поддерживать не планировалось. Со всеми вытекающими.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 29.11.2018, 19:10
#31
ciril

САПР
 
Регистрация: 29.09.2011
СПб
Сообщений: 283


А те функции лиспа, что поддерживаются, их синтаксис, действия и возвращаемые значения без изменений? Ну или это вообще документировано?
__________________
На работе было скучно:shout:
ciril вне форума  
 
Непрочитано 29.11.2018, 19:42
#32
Сергей812


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


Цитата:
Сообщение от ciril Посмотреть сообщение
А те функции лиспа, что поддерживаются, их синтаксис, действия и возвращаемые значения без изменений? Ну или это вообще документировано?
Думаю, что эти вопросы лучше задавать в клуб нано разработчиков.
Сергей812 вне форума  
 
Непрочитано 29.11.2018, 22:45
#33
ciril

САПР
 
Регистрация: 29.09.2011
СПб
Сообщений: 283


Offtop:
Цитата:
Сообщение от Сергей812 Посмотреть сообщение
Думаю, что эти вопросы лучше задавать в клуб нано разработчиков.
Предпочитаю искать ответы на зарекомендовавшем себя ресурсе, к тому же форум, требующий регистрации на почитать, вызывает отторжение.
__________________
На работе было скучно:shout:

Последний раз редактировалось ciril, 29.11.2018 в 22:59.
ciril вне форума  
 
Непрочитано 30.11.2018, 11:52
#34
RrRR


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


Цитата:
Сообщение от ciril Посмотреть сообщение
А те функции лиспа, что поддерживаются, их синтаксис, действия и возвращаемые значения без изменений?
Пользуюсь лиспом под нано. Что-то адаптировал с акада.
По моим ощущениям процентов 80 - 90 сейчас совместимо по лиспу, т.е. можно пользовать любую справку по autolisp держа в голове, конечно, что неходовые функции могут не сработать.

Последний раз редактировалось RrRR, 30.11.2018 в 12:22.
RrRR вне форума  
 
Непрочитано 23.10.2023, 18:34
#35
===AAA===


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


Всем привет!

Подскажите, плиз, как в наноКАДе организовать
автозагрузку и автовыполнение lisp-функций при
открытии файла.

Например, в Автокаде /если очень грубо/, можно сделать
файл acad.lsp, вписать в него старт-функцию типа:

(defun-q S::STARTUP (/ a1 a2 a3)
(всякие полезные вещи)
(princ "\nГотово!")
(princ)
)

которая отработает после полной загрузки
чертежа и радостно сообщит об этом.

А в наноКаде как подобное организовать?
__________________
Счастливо, Алексей!
===AAA=== вне форума  
 
Непрочитано 23.10.2023, 18:53
#36
doctorraz

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


Цитата:
Сообщение от ===AAA=== Посмотреть сообщение
в наноКаде как подобное организовать?
через реакторы, на нанофоруме этот вопрос вроде решили
__________________
Мастерская СПДС
doctorraz вне форума  
 
Непрочитано 24.10.2023, 16:21
#37
===AAA===


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


А выполнение файлов скриптов (которые "имя_файла.scr") наноКад поддерживает?
__________________
Счастливо, Алексей!
===AAA=== вне форума  
 
Автор темы   Непрочитано 24.10.2023, 16:59
#38
Кулик Алексей aka kpblc
Moderator

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


Вроде да, но расширение там ncs, кажется. ИМХО лучше спрашивать как раз на их форуме, здесь из знатоков, по-моему, только doctorraz.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > lisp-программы для nanoCAD

Размещение рекламы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Filedia Возможно ли и каким именно образом обойти появление диалогового окна при работе программы на LISP? Дмитрий Асташев LISP 7 01.09.2011 13:58
В каком текстовом редакторе писать lisp программы? Skilpadde LISP 37 24.02.2011 00:14
{Конкурс} Lisp. Задачки для студентов gomer LISP 10 05.01.2011 16:33
Файл, созданный в учебной версии программы с программой на LISP divega AutoCAD 7 20.05.2010 14:12
проблема с написанием программы на Lisp Voyager LISP 9 07.04.2010 10:12