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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Научите лиспу на примере (или как kpblc, VVA и компания пытаются обучить чайника лиспу)

Научите лиспу на примере (или как kpblc, VVA и компания пытаются обучить чайника лиспу)

Ответ
Поиск в этой теме
Непрочитано 20.07.2008, 20:12
Научите лиспу на примере (или как kpblc, VVA и компания пытаются обучить чайника лиспу)
Red Nova
 
ՃԱՐՏԱՐԱԳԵՏ, Տ.Գ.Թ.
 
Торонто
Регистрация: 23.10.2007
Сообщений: 1,980

Со школы не ладится у меня с программированием. Все предметы щелкал, а на экзамене по информатике (Visual foxpro) программку типа суммирования столбцов списал у соседа (это уже в университете).
Не смотря на эте намерен научится писать программы для Автокада на лиспе, скачал книгу Хювенена, несколько примеров создания программ, но после получасового “смотрения” таких книг мое мышление явно притормаживает.
Решил пойти другим путем.
Нашел самый короткий лисп из моей коллекции, и прошу программистов с этого форума пошагово объяснить какой символ что означает. Надеюсь на вашу помощь.


Код:
[Выделить все]
(defun c:make-blocks-explodeable (/ adoc)
  (vl-load-com)
  (vla-startundomark
    (setq adoc (vla-get-activedocument (vlax-get-acad-object)))
    ) ;_ end of vla-startundomark
  (vlax-for blk_def (vla-get-blocks adoc)
    (if (and (equal (vla-get-isxref blk_def) :vlax-false)
             (equal (vla-get-islayout blk_def) :vlax-false)
             ) ;_ end of and
      (vl-catch-all-apply '(lambda () (vla-put-explodable blk_def :vlax-true)))
      ) ;_ end of if
    ) ;_ end of vlax-for
  (vla-endundomark adoc)
  (princ)
  ) ;_ end of defun
_____________________________________________________________________________________________________________

Прошло много лет и топик теперь представляет из себя площадку для обучения азов программирования для многих начинающих.
Так что начинающие лиспогрызы приветствуются .
__________________
Блог

Последний раз редактировалось Red Nova, 12.07.2017 в 05:43.
Просмотров: 1972494
 
Непрочитано 17.10.2010, 11:58
#1101
Frigate

КИП, АСУ ТП, слаботочка
 
Регистрация: 02.09.2010
Москва-Тюмень
Сообщений: 422


если б так все просто я б не переживал даже ))) Уже жалею, что изменил название программы и макрос на запуск программы (что на кнопке)

а кто что посоветует, как мне подгружать файл VLX с библиотекой функций? (программы я подгружаю отдельно, макросом на кнопке).
Frigate вне форума  
 
Непрочитано 17.10.2010, 12:19
#1102
gomer

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


Цитата:
Сообщение от Frigate Посмотреть сообщение
а как сделать загрузку основного VLX файла через CUI?
Никак, но можно его загружать из лиспа прописанного в CUI
зы основной VLX файл? ИМХО одна задача - одна команда - один файл (приложение)...
Для загрузки приложений создается файл - центр загрузки, желательно с открытым кодом (mnl, lsp - не столь важно), в котором прописывается что необходимо подгрузить...
зызы посмотри, как организовано тут... Не идеал, но все же...

Последний раз редактировалось gomer, 17.10.2010 в 12:25.
gomer вне форума  
 
Непрочитано 17.10.2010, 14:18
#1103
Frigate

КИП, АСУ ТП, слаботочка
 
Регистрация: 02.09.2010
Москва-Тюмень
Сообщений: 422


gomer

в той программе используется диалоговое окно .dcl? Это в нем создано описание свойств проката, да?

что-то не распаковывается архив с той программкой, к сожалению.

Ну если объяснить на пальцах? У меня есть мой файл частичной адаптации. В нем мне подгрузить .lsp, который загружает VLX с функциями? Так сделал, но автоматом такой файл не лоадится (.lsp в CUI). В справке по адаптации написано, что автоматически подгружаются файлы с .mnl.
Попробовал - создал файл mnl с именем как у CUI. Туда просто вписал:

Код:
[Выделить все]
(vl-load-com)
(vl-load-all "ADV_FUNCTIONS_DB.VLX")
и все загружено, все работает мне понравилось
Frigate вне форума  
 
Непрочитано 17.10.2010, 16:07
#1104
gomer

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


Я про это и говорил... Странно, почему лисп из КУИ не грузится
зы архив 9м 7zip-ом открывается
gomer вне форума  
 
Непрочитано 17.10.2010, 17:51
#1105
Frigate

КИП, АСУ ТП, слаботочка
 
Регистрация: 02.09.2010
Москва-Тюмень
Сообщений: 422


gomer

автоматически не грузится.
Если что - у меня Автокад 2009 (рус.)
Frigate вне форума  
 
Непрочитано 17.10.2010, 18:50
#1106
gomer

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


Ничего не знаю! грузится... А ты добавил его в cui? команда _cui- открываешь Файлы Lisp - Загрузить - Выбираешь в окошке нужный файл...
Или просто одноименный файл создал и ждешь пока загрузится?
gomer вне форума  
 
Непрочитано 18.10.2010, 05:00
#1107
Frigate

КИП, АСУ ТП, слаботочка
 
Регистрация: 02.09.2010
Москва-Тюмень
Сообщений: 422


ааа... надо, чтобы он одноименным был?
Ну тогда ясно )))
Остальное то все делал
Frigate вне форума  
 
Непрочитано 18.10.2010, 19:21
#1108
gomer

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


не обязательно одноименный, более того, можно несколько лиспов определить в куи и все должны загружаться...
gomer вне форума  
 
Непрочитано 19.10.2010, 10:04
#1109
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,992
<phrase 1= Отправить сообщение для VVA с помощью Skype™


Frigate, Почитай эту тему Игры с CUI Там было и про лисп и много чего еще интересного
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 01.11.2010, 09:01
#1110
wetr

инженер
 
Регистрация: 09.08.2006
Владивосток
Сообщений: 1,535
<phrase 1= Отправить сообщение для wetr с помощью Skype™


ребят, подскажите, не могу дотумкать
В mnl файле прописал загрузку небезызвестных программ Александра Ривилиса
Код:
[Выделить все]
(if (not (member "DWGConvert2010x32.arx" (arx)))
(arxload "DWGConvert2010x32.arx")
)
так как в arx файле уже прописана автозагрузка, то его нужно загрузить 1 раз, поэтому такая проверка
Но недавно всплыла нужда в проверке на 64-битность. Для 64 битных систем нужен соответственно другой arx.
Слямзил с VetCAD_а идею:

Код:
[Выделить все]
(setq acadver_bit (getenv "PROCESSOR_ARCHITECTURE") acadver_bit (substr acadver_bit (1- (strlen acadver_bit))))
(if (= acadver_bit "64")
 	        (setq startfile "DWGConvert2010x64.arx")
 	        (setq startfile "DWGConvert2010x32.arx")
Но как совместить 2 проверки сразу, не могу въехать
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14)

Последний раз редактировалось wetr, 02.11.2010 в 01:51.
wetr вне форума  
 
Автор темы   Непрочитано 01.11.2010, 09:07
#1111
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, Տ.Գ.Թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,980
Отправить сообщение для Red Nova с помощью Skype™


Извините за флуд, не удержался от соблазна присвоить пост номер 1111 себе как аФтору
__________________
Блог
Red Nova вне форума  
 
Непрочитано 01.11.2010, 15:05
#1112
Frigate

КИП, АСУ ТП, слаботочка
 
Регистрация: 02.09.2010
Москва-Тюмень
Сообщений: 422


Здравствуйте, подскажите, какой английский аналог команды ПОРЯДОК в русифицированном АКАДе?
А вообще, можно ли где-нибудь скачать справку для пользователя оригинальной (англ.) версии Автокада? А то неоткуда брать команды, а они иногда так нужны.
Frigate вне форума  
 
Непрочитано 01.11.2010, 15:09
1 | #1113
Alan

CAD
 
Регистрация: 28.08.2003
Киев
Сообщений: 1,835
<phrase 1=


Цитата:
Сообщение от wetr Посмотреть сообщение
Но как совместить 2 проверки сразу, не могу въехать
Что-типа так
Код:
[Выделить все]
(setq acadver_bit
       (getenv "PROCESSOR_ARCHITECTURE")
      acadver_bit
       (substr acadver_bit (1- (strlen acadver_bit)))
      (if (= acadver_bit "64")
	(setq startfile "DWGConvert2010x64.arx")
	(setq startfile "DWGConvert2010x32.arx")
      ) ;_ конец if
) ;_ конец setq
(if (not (member startfile (arx)))
  (arxload startfile)
) ;_ конец if
__________________
По теории майский жук летать не может.
Но он этого не знает. И летает...
Alan вне форума  
 
Непрочитано 01.11.2010, 15:38
#1114
TararykovDG

Программист-энтузиаст
 
Регистрация: 17.07.2009
Воронеж
Сообщений: 571


Цитата:
Сообщение от Frigate Посмотреть сообщение
Здравствуйте, подскажите, какой английский аналог команды ПОРЯДОК в русифицированном АКАДе?
А вообще, можно ли где-нибудь скачать справку для пользователя оригинальной (англ.) версии Автокада? А то неоткуда брать команды, а они иногда так нужны.


Frigate, можно ипользовать функцию getcname
Код:
[Выделить все]
_$ (getcname "ОТРЕЗОК")
"_LINE"
_$ (getcname "_LINE")
"ОТРЕЗОК"
_$ (getcname "ПОРЯДОК")
"_DRAWORDER"
_$ (getcname "_DRAWORDER")
"ПОРЯДОК"
__________________
cadtools
TararykovDG вне форума  
 
Непрочитано 01.11.2010, 16:00
1 | #1115
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,992
<phrase 1= Отправить сообщение для VVA с помощью Skype™


Цитата:
Сообщение от wetr Посмотреть сообщение
Но недавно всплыла нужда в проверки на 64-битность. Для 64 битных систем нужен соответственно другой arx.
В общем случае на 64 битную Windows можно поставить 32 битный Автокад. Поэтому надо проверять не разрядность ОС, а разрядность Автокада
См. ф-цию Acad64Bit-version с поста #6
Код:
[Выделить все]
(if (Acad64Bit-version)
     (arxload "ExplodeProxy2010x64.arx")
     (arxload "ExplodeProxy2010x32.arx")
)
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 02.11.2010, 03:58
#1116
wetr

инженер
 
Регистрация: 09.08.2006
Владивосток
Сообщений: 1,535
<phrase 1= Отправить сообщение для wetr с помощью Skype™


Всем спасибо!
Код:
[Выделить все]
(defun Acad64Bit-version ()
  (vl-load-com)
  (> (strlen (vl-prin1-to-string (vlax-get-acad-object))) 40)
)
      (if (Acad64Bit-version)
	(setq startfile "DWGConvert2010x64.arx"
	      startfile2 "ExplodeProxy2010x64.arx"
	      startfile3 "GeomProps2010x64.arx"
	      startfile4 "SelSim2010x64.arx"    
	       )
	(setq startfile "DWGConvert2010x32.arx"
	      startfile2 "ExplodeProxy2010x32.arx"
	      startfile3 "GeomProps2010x32.arx"
	      startfile4 "SelSim2010x32.arx"    
	       )
	  
	) ;_ конец if

(if (not (member startfile (arx)))
  (arxload startfile)
)

(if (not (member startfile2 (arx)))
(arxload startfile2)
)

(if (not (member startfile3 (arx)))
(arxload startfile3)
)

(if (not (member startfile4 (arx)))
(arxload startfile4)
)
Пока так сделал, только вот проверить толком не могу - при выгрузке arx-файла вылетает фатал еррор
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14)
wetr вне форума  
 
Непрочитано 02.11.2010, 07:56
#1117
Frigate

КИП, АСУ ТП, слаботочка
 
Регистрация: 02.09.2010
Москва-Тюмень
Сообщений: 422


Здравстуйте, уважаемые ГУРУ форума.

Прошу помочь с функцией выделения рамкой ячеек в таблице:
SelectSubRegion (wpt1, wpt2, wvwVec, wvwxVec, seltype, bIncludeCurrentSelection, rowMin, rowMax, colMin, colMax)

wvwvec

Variant
3D vector in WCS specifying the view direction of the selection.

Берется из системной переменной
(vlax-3d-point (trans (getvar "VIEWDIR") 1 0)).

А вот где найти

wvwxvec

Variant
3D vector in WCS specifying the view orientation of the hit test.

???

Или может кто скинет примеры использования этой функции?

Последний раз редактировалось Frigate, 07.11.2010 в 18:56.
Frigate вне форума  
 
Непрочитано 11.11.2010, 08:10
1 | #1118
acyxou


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


нет, я не поклонник лиспа, но случайно встретил в интернете книженцию Land of Lisp: Learn to Program in Lisp, One Game at a Time!. Подумал, что возможно, кому-нибудь будет интересно почитать)
__________________
Users are not stupid, they are busy.
acyxou вне форума  
 
Непрочитано 11.11.2010, 08:29
#1119
Лиспер


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


acyxou, я пока нашел только на языке оригинала. Интересно, а на русском есть?
__________________
(/= RegDate StartReadDate)
Лиспер вне форума  
 
Непрочитано 11.11.2010, 18:13
#1120
acyxou


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


Переведешь - будет! А не переведешь - будешь ждать пока переведет кто-нибудь другой, пропустив всю информацию в книге через свое восприятие))

Имхо, программер, в первую очередь, должен знать английский (хотя бы технический), а потом уже браться за изучение программирования...
__________________
Users are not stupid, they are busy.
acyxou вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Научите лиспу на примере (или как kpblc, VVA и компания пытаются обучить чайника лиспу)

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
LISP. Вставка в таблицу поля, соотвествующего площади примитива Profan Готовые программы 272 06.06.2021 23:12
Сейсмозащита и сейсмоизоляция существующих, построенных зд. IANationalInformAgentstvo Прочее. Архитектура и строительство 216 20.01.2015 16:51
Мониторы LCD CRT Разное 94 17.06.2008 10:51
ЮМОР 2006 =) Perezz!! Разное 1122 04.01.2007 00:46