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

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

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

Ответ
Поиск в этой теме
Непрочитано 20.07.2008, 20:12 #1
Научите лиспу на примере (или как 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.
Просмотров: 1964616
 
Непрочитано 20.07.2008, 21:17
#2
Alan

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


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


Код:
[Выделить все]
(defun c:make-blocks-explodeable (/ adoc)
  (vl-load-com)
  (vla-startundomark
............
  ) ;_ end of defun
Нехилый для разбора код. Я лично не понимаю в нём половину...
Вообще-то с точки зрения портного самая лучшая фигура - это половая щетка. Именно на ней он может показать всё своё искусство.
>Red Nova
Все простые примеры ты уже прошел?
Из того же Хювенена, книги "САПР на базе..." и всё понимаешь?
М.б. у автора этого текста (почерк в принципе заметен ) найдётся время на комментарии.
IMHO
Но тут не комментарии нужны, это просто стиль программирования.
__________________
По теории майский жук летать не может.
Но он этого не знает. И летает...

Последний раз редактировалось Alan, 20.07.2008 в 21:30.
Alan вне форума  
 
Автор темы   Непрочитано 20.07.2008, 21:39
#3
Red Nova

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


Alan,
Цитата:
Из того же Хювенена, книги "САПР на базе..." и всё понимаешь?
Да в том то и дело, что ничего не понимаю.
Прочитал пока 1/3 книги, но и элементарного кода написать не смогу.
Цитата:
Нехилый для разбора код. Я лично не понимаю в нём половину...
Извиняюсь, я выбирал по размеру файла.
Тогда давай так. Если есть время и желание поучить, то выложи пожалуйста простой лисп на твой взгляд, но так, чтобы в нем был выбор объекта (объектов), и работа со свойствами.
И напиши к нему пошаговое пояснение (рассчитанное на полного чайника).
__________________
Блог
Red Nova вне форума  
 
Непрочитано 20.07.2008, 21:52
#4
vic153

проектировщик газопроводов
 
Регистрация: 04.08.2005
Петербург
Сообщений: 325


Может быть, попробовать другой учебник. Мне, например, понравился вот этот http://www.williamspublishing.com/Bo...59-0931-7.html
Несмотря на то, что там много ошибок в листингах. Но первые шаги очень даже помогает сделать.
vic153 вне форума  
 
Непрочитано 20.07.2008, 21:53
#5
Кулик Алексей aka kpblc
Moderator

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


Я не силен в объяснениях...
Код:
[Выделить все]
(defun ; Функция определения пользовательской функции (команды)
c:make-blocks-explodeable ; Полное имя пользовательской команды. Наличие c: впереди
  ; дает возможность вызывать с ком.строки как make-blocks-explodeable
( ; Входящие параметры. Их нет
/ ; Разделитель параметров и локальных переменных. После этого символа идут объявления
  ; локальных переменных
 adoc ; Имена локальных переменных
 )
  (vl-load-com) ; Загрузка ActiveX-расширения.
  (vla-startundomark ; Объявление начальной метки для "_.undo"
    (setq ; Назначить
	adoc  ; переменной adoc
	(vla-get-activedocument ; указатель на текущий документ
    	(vlax-get-acad-object) ; текущей сессии AutoCAD
		))
    ) ;_ end of vla-startundomark
  (vlax-for ; Пройти по всей коллекции
    blk_def ; Перечислитель элементов коллекции
	(vla-get-blocks  ; Коллекция блоков
	  adoc ; текущего документа
	  )
	  ;|
	  В данный момент blk_def - указатель на описание очередного блока текущего файла.
	  |;
    (if ; Если
	(and ; И
	(equal ; полностью равно
	  (vla-get-isxref blk_def) ; Перечислитель - внешняя ссылка
	  :vlax-false ; Ложь, т.е. блок не внешняя ссылка
	  )
             (equal (vla-get-islayout blk_def) :vlax-false) ; то же, но пространство листа/модели
			  ; то есть Layout
             ) ;_ end of and
      (vl-catch-all-apply ; Не вызывая ошибки
	  '(lambda () 
	  (vla-put-explodable blk_def :vlax-true) ; Назначить свойство Explodeable (Разбиваемый)
	   ; описанию блока в True (Истина).
	  ))
      ) ;_ end of if
    ) ;_ end of vlax-for
  (vla-endundomark adoc) ; Конечная метка для "_.undo"
  (princ) ; Обеспечивает "тихий" выход.
  ) ;_ end of defun
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 20.07.2008, 21:57
#6
Кулик Алексей aka kpblc
Moderator

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


Red Nova, #3: лично я начинал с командных методов. Потом - ent*- и vl*-операции. Сейчас смотрю по ситуации. Иногда ent* выгоднее (entmake, entmakex, entmod, entupd), иногда - activex.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 20.07.2008, 22:19
#7
Red Nova

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


vic153,
Она платная, а я в другой стране жтиву. Может есть в общем доступе где?

Кулик Алексей aka kpblc,
Спасибо, попытаюсь из этого слепить что-то свое.
Цитата:
лично я начинал с командных методов.
Стыдно признаться, но я не понимаю что это означает.
__________________
Блог
Red Nova вне форума  
 
Непрочитано 20.07.2008, 22:20
#8
Donhuan

Проектировщик СС
 
Регистрация: 24.06.2008
Минск
Сообщений: 134
<phrase 1=


to Red Nova
Не забрасывай Хювенена. Отличная книга, очень подробно излагает основы Лиспа, а без них в программировании на этом языке никуда. Процентов 80 кода можно использовать и в AutoLisp.
Donhuan вне форума  
 
Автор темы   Непрочитано 20.07.2008, 22:24
#9
Red Nova

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


Donhuan,
Я просто так ничего не понимаю, там ведь нет примеров для самого автокада. Думаю что мне нужны уроки на самом автокаде.
__________________
Блог
Red Nova вне форума  
 
Непрочитано 20.07.2008, 22:32
#10
Кулик Алексей aka kpblc
Moderator

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


Командные методы: это когда рисование (да и не только оно) выполняется через (command <...>) - то есть прямая передача команд в ком.строку.
Настоятельно рекомендую В.Свет "AutoCAD - язык макрокоманд и создание кнопок" и С.А.Зуев, Н.Н.Полещук (при участии П.В.Лоскутова) "САПР на базе AutoCAD - как это делается). Последнюю книжку надо читать вместе с любым руководством по адаптации AutoCAD'a (например, того же Н.Н.Полещука)
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 20.07.2008, 22:37
#11
Alan

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


Цитата:
Сообщение от Red Nova Посмотреть сообщение
Donhuan,
Я просто так ничего не понимаю, там ведь нет примеров для самого автокада. Думаю что мне нужны уроки на самом автокаде.
Ты посмотри также для начала тему [FONT=Trebuchet MS]Необходимый минимум знаний[/FONT]

В которой любезный kpblc много чего написал для начала работы с ЛИСП
__________________
По теории майский жук летать не может.
Но он этого не знает. И летает...
Alan вне форума  
 
Автор темы   Непрочитано 21.07.2008, 14:20
#12
Red Nova

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


Кулик Алексей aka kpblc,
Цитата:
Настоятельно рекомендую В.Свет "AutoCAD - язык макрокоманд и создание кнопок"
Скачал. Ты меня поправь если я ошибаюсь, но на сколько я понял там не про лисп.
Цитата:
Н.Н.Полещук (при участии П.В.Лоскутова) "САПР на базе AutoCAD - как это делается).
А на эту книгу поиском ссылки не нашел.
Alan,
Цитата:
Ты посмотри также для начала тему Необходимый минимум знаний
Это все я уже знаю, там написано как можно использовать уже готовые коды, а про написание новых - ничего нет.
__________________
Блог
Red Nova вне форума  
 
Непрочитано 21.07.2008, 14:22
#13
Кулик Алексей aka kpblc
Moderator

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


Да, в книге В.Света "не совсем" про Lisp. Но снять панику перед программированием поможет.
"САПР на базе AutoCAD" на ozon'e
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.

Последний раз редактировалось Кулик Алексей aka kpblc, 21.07.2008 в 15:54.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 21.07.2008, 14:40
#14
Red Nova

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


Цитата:
Но снять панику перед программированием поможет.
валерьянка тоже в этих целях хорошо идет
Цитата:
"САПР на базе AutoCAD" на ozon'e
Честное слово денег не пожалел бы, но я в стране другой живу, и купить и переправить ее не легко. Может есть ссылка для свободного скачивания?
__________________
Блог
Red Nova вне форума  
 
Непрочитано 21.07.2008, 15:09
#15
GlebbI4

проектирование, обследование
 
Регистрация: 22.10.2006
Днепропетровск
Сообщений: 115
<phrase 1=


"САПР на базе Autocad" с инета вытягивал (только ж там не Полещук-Лоскутов, а ShaddyDoc в соавторстве с Полещуком).
Если вдруг не найдешь - пиши в ЛС сброшу
__________________
Мосты важнее, чем дома, они более святы, чем церкви, ибо сильнее объединяют.. ..они возводятся именно в тех местах, где сходится множество человеческих потребностей, они долговечнее других строений и никогда не служат какой-то скрытой или злой цели..

Последний раз редактировалось GlebbI4, 21.07.2008 в 15:11. Причина: уточнение авторов
GlebbI4 вне форума  
 
Непрочитано 21.07.2008, 15:12
#16
Кулик Алексей aka kpblc
Moderator

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


Общая справка: http://www.ozon.ru/context/help/#1687140
http://www.ozon.ru/context/detail/id/1687460/ - о почтовой доставке.
http://www.ozon.ru/context/detail/id/1540982/ - о курьерской доставке.
Способы оплаты: http://www.ozon.ru/context/detail/id/200890/
Честно скажу, цена на озоне не самая низкая, но как-то попривык я к нему...

GlebbI4, ShaggyDoc и Сергей Александрович Зуев - один и тот же человек. И обрати внимание - я ж написал
Цитата:
С.А.Зуев, Н.Н.Полещук (при участии П.В.Лоскутова)
P.S. Честно говоря, предпочитаю подобные вещи иметь "в твердой" копии.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 21.07.2008, 15:19
#17
GlebbI4

проектирование, обследование
 
Регистрация: 22.10.2006
Днепропетровск
Сообщений: 115
<phrase 1=


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
GlebbI4, ShaggyDoc и Сергей Александрович Зуев - один и тот же человек. И обрати внимание - я ж написал .
знаю конечно же. Ориентировался на пост
Цитата:
Н.Н.Полещук (при участии П.В.Лоскутова) "САПР на базе AutoCAD - как это делается).
Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
P.S. Честно говоря, предпочитаю подобные вещи иметь "в твердой" копии.
аналогично, издания нового нету, а так бы прикупил в твердом переплете.
__________________
Мосты важнее, чем дома, они более святы, чем церкви, ибо сильнее объединяют.. ..они возводятся именно в тех местах, где сходится множество человеческих потребностей, они долговечнее других строений и никогда не служат какой-то скрытой или злой цели..
GlebbI4 вне форума  
 
Непрочитано 21.07.2008, 15:25
#18
Кулик Алексей aka kpblc
Moderator

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


Судя по ссылке на книгу, она у них (на озоне то бишь) есть...
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 21.07.2008, 15:47
#19
Red Nova

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


Кулик Алексей aka kpblc, Спасибо за ссылку.
GlebbI4, Пишу в личку.
__________________
Блог
Red Nova вне форума  
 
Автор темы   Непрочитано 21.07.2008, 16:08
#20
Red Nova

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


Кулик Алексей aka kpblc,
А может на реальном примере поучишь?
Вот к примеру задумка лиспа с выносками спдс.
Для начало нужно выделить все выноски. Если следовать аналогии с твоим лиспом, то предполагаю что выноски можно выделить так.
(Только не смейся)
Цитата:
(defun c:trans-note (/ adoc)
(vl-load-com)
(vla-startundomark
(setq adoc (vla-get-activedocument (vlax-get-acad-object)))
) ;_ end of vla-startundomark
(vlax-for spds_def (vla-get-spdsNotePositions adoc)
__________________
Блог
Red Nova вне форума  
Ответ
Вернуться   Форум 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