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

Вернуться   Форум 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.
Просмотров: 1973211
 
Непрочитано 11.05.2010, 16:50
#841
Do$

AutoCAD/Civil3D LISP/C#
 
Регистрация: 15.08.2008
Санкт-Петербург
Сообщений: 1,702
Отправить сообщение для Do$ с помощью Skype™


Цитата:
Сообщение от alex8888 Посмотреть сообщение
вот взял и так уронил
Хотя все же заработало.
Не уронил, а предостерег Дабы потом самому по шапке не получить
Do$ вне форума  
 
Непрочитано 11.05.2010, 17:40
#842
alex8888

Инженер
 
Регистрация: 27.04.2009
Deutschland
Сообщений: 208


Кулик Алексей aka kpblc,
как посмотреть что требуется функции vla-wblock, какие аргументы? В справке нет такой функции, в книгах тоже. Где вообще про "такое" почитать?
alex8888 вне форума  
 
Непрочитано 11.05.2010, 21:58
#843
Кулик Алексей aka kpblc
Moderator

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


В справке есть такая функция В консоли VLIDE пишется vla-wblock, потом нажимается Ctrl+F1 и на экране будет справка (в 2011 надо будет принудительно перед этим установить использование локальной справки и выполнить перезапуск AutoCAD'a). Ну и дополнительно http://www.cad.dp.ua/stats/vla_doc.php в руки, как говорится
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 11.05.2010, 23:24
#844
alex8888

Инженер
 
Регистрация: 27.04.2009
Deutschland
Сообщений: 208


Кулик Алексей aka kpblc
Развернул таки справку, ессес-но на инглише (чуть не вырвалось на идише). Но там как для VBA написано:
Цитата:
Signature

object.WBlock FileName, SelectionSet

Object

Document
The object this method applies to.

FileName

String; input-only
The file name to write the selection set to.

SelectionSet

SelectionSet object; input-only
The name of the selection set.
Это оно?
Что, можно вместо object.WBlock просто вставлять vla-wblock, вместо object.SelectOnScreen - vla-onscreen?
А например object.HasExtensionDictionary - vla-HasExtensionDictionary -тоже верно?
А как определить, что за феня мне нужна? Там сто-о-о-олько методов и свойств !
alex8888 вне форума  
 
Непрочитано 11.05.2010, 23:48
#845
Кулик Алексей aka kpblc
Moderator

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


alex8888, так я ж ссылку дал, где про все это можно прочитать.
Offtop: Уже сильно хочется себе на сайт продублировать тот текст
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 12.05.2010, 09:13
#846
alex8888

Инженер
 
Регистрация: 27.04.2009
Deutschland
Сообщений: 208


Кулик Алексей aka kpblc,
если ты про это:
Цитата:
Проблема в том, что она была написана для программистов на VBA, а не для программистов Visual LISP. Однако, Autodesk знает что “перевод” VBA-документации в Visual LISP был бы настолько прост, что нет реальной необходимости ее дублировать.
,
то я просто хотел лишний раз удостовериться в этом. Прошу прощения за назойливость
alex8888 вне форума  
 
Непрочитано 12.05.2010, 09:40
#847
Кулик Алексей aka kpblc
Moderator

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


Ну, на самом деле про то, что справка VBA практически идеально подходит для работы с ActiveX. Самое главное - не забывать, что
Цитата:
<...>первый параметр каждой функции vla- будет объектом непосредственно.
А я при написании своего кода именно этот момент и не проконтролировал
В качестве иллюстрации: если вариант замены веса линии для объекта в VBA выглядит как
Код:
[Выделить все]
objLine.Lineweight = acLnWt050
то для vlide получится
Код:
[Выделить все]
(vla-put-lineweight objline aclnwt050)
или расширенный (и по идее более верный) вариант
Код:
[Выделить все]
(vlax-put-property objline 'lineweight aclnwt050)
; либо (то же самое, но немного другая форма записи)
(vlax-put-property objline "lineweight" aclnwt050)
Варианты получения указателей на объект не рассматриваю.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 13.05.2010, 22:56
#848
alex8888

Инженер
 
Регистрация: 27.04.2009
Deutschland
Сообщений: 208


Кулик Алексей aka kpblc
если пошла такая пьянка, могу я попытать тебя еще?

Пытаясь разобрать твой код , встретил непонятные места. Я буду расшифровывать, а ты подскажи, что мне не понятно, хорошо?

Код:
[Выделить все]
(vl-load-com) ;загрузка функций VLisp

(defun c:test (/ adoc selsets selsetname vla_selset dwg_file wb_file) ;определение функции с перечислением аргументов (все локальные)

  (setq selsets    ;в переменной selsets сохранить
(vla-get-selectionsets ;полученный выбор из
(setq adoc (vla-get-activedocument (vlax-get-acad-object)))) ; переменной открытого активного документа и 
        selsetname "wb" ;имени выборки
        ) ;_ end of setq
  (if (/= (setq dwg_file (vla-get-fullname adoc)) "") ;если полученное имя файла непустое 
    (progn
      (vl-catch-all-apply ; назначение этой функции не понял, но без нее не работает
        (function
          (lambda ()
            (vla-delete (vla-item selsets selsetname))  ;что и зачем удалять?
            ) ;_ end of lambda
          ) ;_ end of function
        ) ;_ end of vl-catch-all-apply
      (setq vla_selset (vla-add selsets selsetname)) ;здесь происходит выбор элементов и сохранение его в переменной vla_selset?, (если опустить функцию vl-catch-all-apply, то происходит затык, типа не правильные аргументы)
      (if (and (not (vl-catch-all-error-p ;проверка на срабатывание ошибки
                      (vl-catch-all-apply ;функции vl-catch-all-apply при
                        (function
                          (lambda ()
                            (vla-selectonscreen vla_selset);выборе объектов с экрана
                            ) ;_ end of lambda
                          ) ;_ end of function
                        ) ;_ end of vl-catch-all-apply
                      ) ;_ end of vl-catch-all-error-p
                    ) ;_ end of not
               (> (vla-get-count vla_selset) 0) ;и если есть что то в наборе, то есть что то выбрано
               ) ;_ end of and
        (progn ;далее - формирование пути вывода и имени файла
          (vla-wblock ;записать в файл
(setq wb_file ;создание имени из
(strcat (vl-filename-directory dwg_file) ;пути файла
                                            "\\" ;добавление косой черты после имени директории
                                            (vl-filename-base dwg_file) ;имени файла без расширения
                                            "-1.dwg" ;добавление к имени файла символов
                                            ) ;_ end of strcat
                            ) ;_ end of setq
                      vla_selset  ;что записать - полученный набор объектов
                      ) ;_ end of vla-Wblock
          (princ (strcat "\nНабор был сохранен в файл " wb_file)) ;просто подсказка о выполнении работы
          ) ;_ end of progn
        ) ;_ end of if
      (vl-catch-all-apply ;опять эта функция, зачем 2 раза?
        (function
          (lambda ()
            (vla-delete (vla-item selsets selsetname))
            ) ;_ end of lambda
          ) ;_ end of function
        ) ;_ end of vl-catch-all-apply
      ) ;_ end of progn
    (alert "Файл не сохранялся еще ни разу! Выполнение невозможно!") ;если имя полученного фала пустое, то сообщение о невозможности продолжения работы. Как такое может случиться, если изначально уже все чертежи имеют имена - чертеж1, чертеж2 и тп?
    ) ;_ end of if
  (princ)
  ) ;_ end of defun;стандартное завершение функции
Литературу изучаю, но vl-catch-all-apply -
alex8888 вне форума  
 
Непрочитано 13.05.2010, 23:10
#849
Кулик Алексей aka kpblc
Moderator

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


Цитата:
Сообщение от alex8888 Посмотреть сообщение
vl-catch-all-apply -
Скажу честно - сейчас времени нет катастрофически. Посему отсылаю к http://autolisp.ru/2009/09/13/error-catch/
С остальным, извини, чуть попозже.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 14.05.2010, 10:37
#850
Do$

AutoCAD/Civil3D LISP/C#
 
Регистрация: 15.08.2008
Санкт-Петербург
Сообщений: 1,702
Отправить сообщение для Do$ с помощью Skype™


Цитата:
Сообщение от alex8888 Посмотреть сообщение
(alert "Файл не сохранялся еще ни разу! Выполнение невозможно!") ;если имя полученного фала пустое, то сообщение о невозможности продолжения работы. Как такое может случиться, если изначально уже все чертежи имеют имена - чертеж1, чертеж2 и тп?
Очень просто - запусти AutoCAD с ярлыка на рабочем столе, автоматически откроется Drawind1(2,3,4...), который пока нигде не сохранен.
В такой ситуации выражение:
Код:
[Выделить все]
(getvar "dwgprefix")
выдает путь к папке "Мои документы", а:
Код:
[Выделить все]
(setq dwg_file (vla-get-fullname adoc))
пустую строку. А куда сохранять, если нет пути для сохранения? Поэтому и есть проверка, и предупреждение, что файл не сохранялся.
Цитата:
Сообщение от alex8888 Посмотреть сообщение
(vla-delete (vla-item selsets selsetname)) ;что и зачем удалять?
Я так думаю, что удаляется набор из чертежа с названием selsetname, если такой присутсвует уже в чертеже. А если не присутствует - то возникает ошибка (наверное, не проверял), которую "отлавливает" vl-catch-all-apply.
Do$ вне форума  
 
Непрочитано 14.05.2010, 11:03
#851
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,992


alex8888, Чтобы понять ACTIVEX, нужно разобраться с объектной моделью Автокада. Understand the AutoCAD Object Model
Кратко можно сказать, что модель состоит из Объектов и их Коллекций (совокупности объектов).
Например Автокад состоит из коллекции открытых документов. Если взять документ, то он состоит из коллекций слоев, блоков, текстовых, размерных стилей.
Причем пространство модели и листов - это так же блоки Автокада. Сам блок (модель, лист или блок элемент чертежа состоит из отрезков, дуг, полилиний и т.д.)
Плюс помнить, что в Лиспе выполнение начинается с самого внутреннего(вложенного) оператора.
Цитата:
(setq selsets ;5. в переменной selsets сохранить коллекцию наборов
(vla-get-selectionsets ;_ 4. Из всех коллеций текущего документа берем коллекцию наборов
(setq adoc ;_3. запоминаем в переменную adoc
(vla-get-activedocument 2. Из всех открытых документов (коллекции документов) берем текущий (активный)
(vlax-get-acad-object) ;_ 1. Объект Автокада
)))))
__________________
Как использовать код на Лиспе читаем здесь

Последний раз редактировалось VVA, 15.05.2010 в 22:57. Причина: орфография
VVA вне форума  
 
Непрочитано 14.05.2010, 11:10
#852
grachev.p

конструктор мебели
 
Регистрация: 28.02.2010
г. Гатчина
Сообщений: 27


Всем добрый день!
Подскажите пожалуйста, товарищи знатоки. Проблемные моменты выделены красным.


Код:
[Выделить все]
;;; Автор идеи Kenny Ramage, Эдуард, Torino, он же Кочетков Андрей 
;;; Доработка Владимир Азарко (VVA)
;;; Опубликовано http://forum.dwg.ru/showpost.php?p=58664&postcount=25
;;;Автоматический перенос размеров на слой "размеры" 
;;;и заливки на слой "заливка" 
;;;Просто добавь этот файл в автозагрузку 
(vl-load-com) 
(setq *OldLayer* (getvar "CLAYER")) 
(vl-cmdf "_layer" "_make" "Размеры" "_color" 142 "" "_lw" 0.18 "" "") ;_Создаем слой размеры и задаем цвет 142 ... 
(vl-cmdf "_layer" "_make" "Штриховка" "_color" 5 "" "_lw" 0.30 "" "") ;_Создаем слой штриховка и задаем цвет 5 
(vl-cmdf "_layer" "_make" "Текст" "_color" 214 "" "_lw" 0.30 "" "")     ;_Создаем слой текст и задаем цвет 126
(vl-cmdf "_layer" "_make" "Таблицы" "_color" 126 "" "_lw" 0.30 "" "")   ;_Создаем слой таблицы и задаем цвет 126
(vl-cmdf "_layer" "_make" "Выноски" "_color" 126 "" "_lw" 0.18 "" "")   ;_Создаем слой выноски и задаем цвет 126
(setvar "clayer" *OldLayer*) 
(setq *OldLayer* nil) 
;;;;;;По аналогии добавить создание своего слоя 
;;; ... 
;;;;;; 
;;;;;;------------------------------------------------------------- 
(if *vlr-cmd* ;Не могу понять, как это работает. Для 
;чего тут в условии командный реактор? . 
  (progn
    (setq *vlr-cmd* nil)
    (vlr-remove-all :vlr-command-reactor)
    ) ;_ end of progn
  ) ;_ end of if
(if (not *vlr-cmd*) ; 
  (setq	*vlr-cmd* (vlr-command-reactor "cmd" 
		    '((:vlr-commandwillstart . cmd-start)
		      (:vlr-commandended . cmd-end)
		      (:vlr-commandcancelled . cmd-end)
		      (:vlr-commandfailed . cmd-end)))))
;;;;;;------------------------------------------------------------- 
(defun cmd-start (calling-reactor startcommandInfo / thecommandstart) ;calling-reactor startcommandInfo - для чего тут эти аргументы? 
   (setq thecommandstart (nth 0 startcommandInfo))
  (if (null *OldLayer*)(setq *OldLayer* (getvar "CLAYER")))
  (cond 
 ;;;_Реакция на начало команды DIM* (DIMALIGNED DIMLINEAR и все что начинается с DIM)    
    ((wcmatch thecommandstart "DIM*")  ;_Если выполняется команда DIM* 
     (setvar "clayer" "размеры")       ;_Слой размеры должен быть создан выше (vl-cmdf "_layer" ... 
    ) 
 ;;; Конец реакции на DIM*    
    ((wcmatch thecommandstart "*HATCH*") ;_Если выполняется команда *HATCH* 
     (setvar "clayer" "штриховка") 
    ) 
    ((wcmatch thecommandstart "*TEXT") ;_Если выполняется команда *TEXT (TEXT DTEXT) 
     (setvar "clayer" "Текст") 
    )
    ((wcmatch thecommandstart "*TABLE") ;_Если выполняется команда *TABLE
     (setvar "clayer" "Таблицы") 
    )
    ((wcmatch thecommandstart "*LEADER") ;_Если выполняется команда *QLEADER MLEADER
     (setvar "clayer" "Выноски") 
    )
    (t (setq *OldLayer* nil)) ;;_Если не наша команда, чистим список текущих слоев
;;;См http://forum.dwg.ru/showpost.php?p=318806&postcount=139
;;;и http://forum.dwg.ru/showpost.php?p=318806&postcount=143
    )
  (princ)) 
 ;;;------------------------------------------------------------- 
(defun cmd-end (calling-reactor cmd / cmd_name)
(setq cmd_name (strcase (car cmd)))
(if (or
      (wcmatch cmd_name "*HATCH*") ;_Если выполняется команда DIM*
      (wcmatch cmd_name "DIM*")    ;_Если выполняется команда *HATCH*
      (wcmatch cmd_name "*TEXT")   ;_Если выполняется команда *TEXT (TEXT DTEXT)
      (wcmatch cmd_name "*TABLE")   ;_Если выполняется команда ТАБЛИЦА
      (wcmatch cmd_name "*LEADER")   ;_Если выполняется команда *QLEADER или MLEADER
      )
  (progn
    (if *OldLayer* (setvar "clayer" *OldLayer*)) 
    (setq *OldLayer* nil)
    ))
 (princ))

Заранее спасибо!
grachev.p вне форума  
 
Непрочитано 14.05.2010, 11:18
#853
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,992


*vlr-cmd* - глобальная переменная, в которой запоминается указатель на командный реактор. Скажем пользователь взял и дважды (трижды и т.д.) в один документ в одном сеансе загрузил этот лисп.
Вопрос: сколько командных реакторов должно создаться?
Поэтому и сделана проверка, если *vlr-cmd* не nil, значит кто-то раньше создавал реактор.
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 14.05.2010, 11:36
#854
grachev.p

конструктор мебели
 
Регистрация: 28.02.2010
г. Гатчина
Сообщений: 27


Цитата:
Сообщение от VVA Посмотреть сообщение
Вопрос: сколько командных реакторов должно создаться?
Так этот реактор запоминается в переменную с таким же именем. Или эта переменная не переопределяется при повторном присвоении какого-либо значения?

А так, в общем понял, для чего эта проверка. Спасибо еще раз.

PS. Вопрос отменяется. Нашел информацию по реакторам, прочитал, все стало ясно.

Последний раз редактировалось grachev.p, 14.05.2010 в 23:37.
grachev.p вне форума  
 
Непрочитано 15.05.2010, 11:29
#855
superkot007


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


1. Перенос объекта (блок, текст, отрезок, полилиния и пр. 2D-объекты) с выбранной точкой в нужную точку на чертеже - как уйти от геморроя с шаговой привязкой?
2. Разбить M-TEXT в D-TEXT с сохранением, если возможно, выравниваний M-TEXT'а
Кулик Алексей aka kpblc, это просьба чайника
Цитата:
Сообщение от gomer Посмотреть сообщение
Алексей, просто пропущены слова: Сделайте мне, пожалуйста...
Что-то пропустил самое главное - вежливо попросить...

Последний раз редактировалось superkot007, 16.05.2010 в 09:19.
superkot007 вне форума  
 
Непрочитано 15.05.2010, 21:30
#856
Кулик Алексей aka kpblc
Moderator

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


superkot007, и что это было?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 16.05.2010, 09:02
#857
gomer

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


Алексей, просто пропущены слова: Сделайте мне, пожалуйста...
gomer вне форума  
 
Непрочитано 16.05.2010, 12:44
#858
mmax

Программист широкого профиля.
 
Регистрация: 08.09.2005
Челябинск
Сообщений: 722


Цитата:
Сообщение от VVA Посмотреть сообщение
*vlr-cmd* - глобальная переменная, в которой запоминается указатель на командный реактор. Скажем пользователь взял и дважды (трижды и т.д.) в один документ в одном сеансе загрузил этот лисп.
Вопрос: сколько командных реакторов должно создаться?
Поэтому и сделана проверка, если *vlr-cmd* не nil, значит кто-то раньше создавал реактор.
В зоопарке 12 обезьян. Каждой выдали по гранате Ф1.
Вопрос: расчитать вероятность возникновения взрыва.
mmax вне форума  
 
Непрочитано 18.05.2010, 09:21
#859
alex8888

Инженер
 
Регистрация: 27.04.2009
Deutschland
Сообщений: 208


mmax,Offtop:
Цитата:
В зоопарке 12 обезьян. Каждой выдали по гранате Ф1.
Вопрос: расчитать вероятность возникновения взрыва.
Ответ: 12/13?
alex8888 вне форума  
 
Непрочитано 18.05.2010, 17:26
#860
gomer

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


>mmax: Кто потом обезьян собирать будет?


Цитата:
Сообщение от grachev.p Посмотреть сообщение
(vl-cmdf "_layer" "_make" "Размеры" "_color" 142 "" "_lw" 0.18 "" "") ;_Создаем слой размеры и задаем цвет 142 ...
(vl-cmdf "_layer" "_make" "Штриховка" "_color" 5 "" "_lw" 0.30 "" "") ;_Создаем слой штриховка и задаем цвет 5
(vl-cmdf "_layer" "_make" "Текст" "_color" 214 "" "_lw" 0.30 "" "") ;_Создаем слой текст и задаем цвет 126
(vl-cmdf "_layer" "_make" "Таблицы" "_color" 126 "" "_lw" 0.30 "" "") ;_Создаем слой таблицы и задаем цвет 126
(vl-cmdf "_layer" "_make" "Выноски" "_color" 126 "" "_lw" 0.18 "" "") ;_Создаем слой выноски и задаем цвет 126
это могло бы выглядеть так:

Код:
[Выделить все]
(mapcar	'(lambda (x) (vl-cmdf "_layer" "_make" (nth 0 x) "_color" (nth 1 x) "" "_lw" (nth 2 x) "" ""))
    (list
      '("Размеры" 142 0.18) ;_Создаем слой размеры и задаем цвет 142 ...
      '("Штриховка" 5 0.30) ;_Создаем слой штриховка и задаем цвет 5
      '("Текст" 214 0.30)   ;_Создаем слой текст и задаем цвет   126
      '("Таблицы" 126 0.30) ;_Создаем слой таблицы и задаем цвет 126
      '("Выноски" 126 0.18));_Создаем слой выноски и задаем цвет 126
)
gomer вне форума  
Ответ
Вернуться   Форум 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