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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Подскажите, существуют ли практические руководства по Lisp?

Подскажите, существуют ли практические руководства по Lisp?

Ответ
Поиск в этой теме
Непрочитано 07.03.2006, 15:51
Подскажите, существуют ли практические руководства по Lisp?
vn
 
Регистрация: 10.02.2006
Сообщений: 373

Недавно купил книгу. Полный сборник команд Lisp с их описанием.
Но на этом все и кончилось. Никаких примеров для начинающих.
Если кто знает, с чего начинать изучение Lisp медленно и шаг за шагом , подскажите пожалуйста.
Просмотров: 73715
 
Непрочитано 02.06.2008, 10:13
#61
Кулик Алексей aka kpblc
Moderator

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


Ну я что, обманывать буду? Ты на какой раскладке _c вводил, не на русской ли случайно? Только что специально прогнал - код работает:
Код:
[Выделить все]
(defun c:perekhod3 (/ r r l *error* _osmode)
  (defun *error* (msg)
    (if _osmode
      (setvar "osmode" _osmode)
      ) ;_ end of if
    (princ msg)
    (princ)
    ) ;_ end of defun

  (if (and (setq r (getdist "\nРадиус большой:"))
          ; Задаем большой радиус перехода
           (setq r (getdist "\nРадиус маленький:"))
          ; Задаем маленький радиус перехода
           (setq l (getdist "\nДлина перехода:")) ; Задаем длину перехода
           ) ;_ end of and
    (progn
      (setq _osmode (getvar "osmode"))
      (setvar "osmode" 0)
      (command "_.Pline"
               '(0. 0.)
               (list 0. d)
               (list l d)
               (list l 0.)
               '(0. 0.)
               "_c"
               ) ;_ end of command
      (setvar "osmode" _osmode)
      ) ;_ end of progn
    ) ;_ end of if
  (princ)
  ) ;_ end of defun
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 02.06.2008, 10:58
#62
Рyslan


 
Регистрация: 25.07.2007
Сообщений: 2,508


Я не вводил С вначале, просто стер из close lose. Щас ввел заново С на инглише. Такая же фигня. Не знаю почему так, еще раз повоторюсь что вчера дома у меня тож не работала close
Рyslan вне форума  
 
Непрочитано 02.06.2008, 10:59
#63
Кулик Алексей aka kpblc
Moderator

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


Тогда создавай полилинию через dxf Там подобных проблем обычно не бывает.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 02.06.2008, 11:00
#64
Рyslan


 
Регистрация: 25.07.2007
Сообщений: 2,508


)))) и твой переход3 тоже не работает, тоже самое пишет- неизвестная команда С
Рyslan вне форума  
 
Непрочитано 02.06.2008, 11:02
#65
Рyslan


 
Регистрация: 25.07.2007
Сообщений: 2,508


объяснить можешь почему так получается? через dxf? ты что! я ж тока учусь
Рyslan вне форума  
 
Непрочитано 02.06.2008, 11:09
#66
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,627


В программе perekhod3 (сообщение 61) переменная d не определена.
Profan вне форума  
 
Непрочитано 02.06.2008, 11:11
#67
Кулик Алексей aka kpblc
Moderator

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


Цитата:
Сообщение от Profan Посмотреть сообщение
В программе perekhod3 (сообщение 61) переменная d не определена.
Точно! Блин, надо же было так облажаться...
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 02.06.2008, 11:17
#68
Рyslan


 
Регистрация: 25.07.2007
Сообщений: 2,508


да ладна бывает. у меня вон все не работает
Рyslan вне форума  
 
Непрочитано 02.06.2008, 13:32
#69
Рyslan


 
Регистрация: 25.07.2007
Сообщений: 2,508


Алексей, так почему автокад не воспринимает "C"? не разобрался?
Рyslan вне форума  
 
Непрочитано 02.06.2008, 14:02
#70
Кулик Алексей aka kpblc
Moderator

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


Не-а, не до того. У меня в ADT до дури муторной работы, горит.
По-быстрому, создание примитива через DXF:
Код:
[Выделить все]
(defun c:go-throught (/ pt max_rad min_rad)
  (if (and (setq pt (cond
                      ((getpoint "\nНижняя левая точка отвода <(0. 0. 0.)> : "))
                      (t '(0. 0. 0.))
                      ) ;_ end of cond
                 ) ;_ end of setq
           (setq max_rad (getdist pt "\nБольшой радиус <Отмена> : "))
           (setq min_rad (getdist pt "\nМалый радиус <Отмена> : "))
           (setq len (getdist pt "\nДлина <Отмена> : "))
           ) ;_ end of and
    (entmakex ; напрямую создаем примитив
          ; подсовываем список, описывающий полилинию:
      (append ; соединяем списки
          ;Список общих данных
        '((0 . "LWPOLYLINE") ; Тип примитива
          (100 . "AcDbEntity") ; Указывать для полилинии обязательно
          (100 . "AcDbPolyline") ; То же
          (90 . 4) ; Количество вершин
          (70 . 1) ; Признак замкнутости. 0 - незамкнута; 1 - замкнута
          (43 . 0.) ; Постоянная ширина полилинии
          (38 . 0.) ; Elevation полилинии
          (39 . 0.) ; Thickness
          )
          ; Список вершин
        (mapcar
          '(lambda (x)
             (cons 10 x)
             ) ;_ end of lambda
          ;; Теперь вычисляем вершины для того, чтобы получилось нечто типа
          ;|
   ---
  /   \
  -----
|;
          (list pt ; первая вершина, левая нижняя
                (list (+ (car pt) max_rad) (cadr pt))
          ; вторая вершина, смещена по Ох влево на max_rad
                (list (+ (car pt) (/ (+ max_rad min_rad) 2.)) (+ (cadr pt) len))
          ; Третья вершина, смещена от начала по Оy на len, влево на сумму половин радиусов
                (list (+ (car pt) (/ (- max_rad min_rad) 2.)) (+ (cadr pt) len))
          ; Четвертая вершина, смещена от начала по Oy на len, влево на разницу половин радиусов
                ) ;_ end of list
          ) ;_ end of mapcar
        ) ;_ end of append
      ) ;_ end of entmakex
    ) ;_ end of if
  ) ;_ end of defun
Вроде как комментарии нарисовал.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 02.06.2008, 14:15
#71
Скулачёв А.

конструктор
 
Регистрация: 29.08.2007
Москва
Сообщений: 55


Цитата:
Сообщение от Рyslan Посмотреть сообщение
Вот это по-моему правильно, тока все равно не работает

;;;Рисование концентрического перехода по ГОСТ
;;;1. View-->Front
;;;2. Pline" "0,0" "0,R" "L,r" "L,0" "0,0" "_close"
;;;3. Revolve
;;;4. View-->SW Isometric
;;;R- радиус большой
;;;r- радиус маленький
;;;L- длина перехода

(defun C:PEREKHOD (/R,r,L,Pline); Рисование концентрического перехода по ГОСТ
(initget7)
(setq R (getdist "\nРадиус большой:")) ; Задаем большой радиус перехода
(initget7)
(setq r (getdist "\nРадиус маленький:")) ; Задаем маленький радиус перехода
(initget7)
(setq L (getdist "\nДлина перехода:")) ; Задаем длину перехода
(Command "_.View" "_Front")
(Command "_.Pline" "0,0" "0,R" "L,r" "L,0" "0,0" "_close") ; Рисуем профиль перехода
(setq Pline (entlast))
(Command "_.Revolve" "Pline" "Enter" "X" "Y" "Enter") ; Поворачиваем профиль вокруг выбранной оси
(Command "_.View" "_SW")
(princ) ; Выход
)
Код:
[Выделить все]
(defun C:q()
(initget 7)
(setq R1 (getdist "\nРадиус большой:"))
(setq r2 (getdist "\nРадиус маленький:"))
(setq L (getdist "\nДлина перехода:"))
(command "_.View" "_Front")
(command "_.Pline" (list 0 0) (list 0 R1) (list L r2) (list L 0) "c")
(setq Pline (entlast))
(command "_.Revolve" Pline "" "X" "")
(command "_.View" "_swiso")
(princ)
)
Я твой код немного сократил. У меня работает как часы, если выключить привязки. Я программирую 4 день после окончания курсов при МГТУ им. Баумана. Тебе тоже советую их окончить. Мне там за 4 дня дали столько информации, думаю самостоятельно год бы потратил на изучение.
__________________
Продумано до мелочей
Скулачёв А. вне форума  
 
Непрочитано 02.06.2008, 14:24
#72
Рyslan


 
Регистрация: 25.07.2007
Сообщений: 2,508


Во! Работает, спасибо!!! До курсов в Бауманке мне не доехать, далековато. Конечно ты прав, когда тебе показывают, быстрее получается учиться.
Рyslan вне форума  
 
Непрочитано 02.06.2008, 14:29
#73
Александр Ривилис

программист, рыцарь ObjectARX
 
Регистрация: 09.05.2005
Киев
Сообщений: 2,408
Отправить сообщение для Александр Ривилис с помощью Skype™


Цитата:
Сообщение от Скулачёв А. Посмотреть сообщение
Я программирую 4 день после окончания курсов при МГТУ им. Баумана. Тебе тоже советую их окончить. Мне там за 4 дня дали столько информации, думаю самостоятельно год бы потратил на изучение.
А на курсах не говорили, что и для опций команд тоже следует использовать подчеркивание "_"? Кому незачет?
Александр Ривилис вне форума  
 
Непрочитано 02.06.2008, 14:35
#74
Скулачёв А.

конструктор
 
Регистрация: 29.08.2007
Москва
Сообщений: 55


Цитата:
Сообщение от Александр Ривилис Посмотреть сообщение
А на курсах не говорили, что и для опций команд тоже следует использовать подчеркивание "_"? Кому незачет?
Я знаю, что подчёркивание актуально только в локолизованом AutoCad, а у меня родной, и всем советую пользоваться родным, гемора меньше будет.
__________________
Продумано до мелочей
Скулачёв А. вне форума  
 
Непрочитано 02.06.2008, 14:38
#75
Рyslan


 
Регистрация: 25.07.2007
Сообщений: 2,508


локализованный ето как? на англ. языке? у меня на инглише
Рyslan вне форума  
 
Непрочитано 02.06.2008, 14:41
#76
Скулачёв А.

конструктор
 
Регистрация: 29.08.2007
Москва
Сообщений: 55


Цитата:
Сообщение от Рyslan Посмотреть сообщение
локализованный ето как? на англ. языке? у меня на инглише
Локализваный - любой кроме инглиша (казахский, русский, украинский). Если кад не локализован, смело убирай все подчёркивания.
__________________
Продумано до мелочей
Скулачёв А. вне форума  
 
Непрочитано 02.06.2008, 14:45
#77
Александр Ривилис

программист, рыцарь ObjectARX
 
Регистрация: 09.05.2005
Киев
Сообщений: 2,408
Отправить сообщение для Александр Ривилис с помощью Skype™


> Скулачёв А.
Ну раз сказал "А" (т.е. используешь подчеркивание в именах команд), то нужно говорить и "Б" (т.е. использовать и в именах опций, функциях initget, ssget и т.д.)
И кроме того на нелокализованном AutoCAD твоя программа просто не будет работать, т.е. она очень не универсальна. А это плохой стиль программирования.
Александр Ривилис вне форума  
 
Непрочитано 02.06.2008, 14:46
#78
Рyslan


 
Регистрация: 25.07.2007
Сообщений: 2,508


ааа, ну значит у меня не локализованный.
Рyslan вне форума  
 
Непрочитано 02.06.2008, 14:48
#79
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,627


Цитата:
Сообщение от Скулачёв А. Посмотреть сообщение
Я знаю, что подчёркивание актуально только в локолизованом AutoCad, а у меня родной, и всем советую пользоваться родным, гемора меньше будет.
Посоветуй еще заодно и английский язык выучить.
Profan вне форума  
 
Непрочитано 02.06.2008, 14:53
#80
Кулик Алексей aka kpblc
Moderator

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


Цитата:
Сообщение от Скулачёв А. Посмотреть сообщение
Я знаю, что подчёркивание актуально только в локолизованом AutoCad, а у меня родной, и всем советую пользоваться родным, гемора меньше будет.
Ага, объясни это пяти десяткам коллег околопенсионного возраста.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Подскажите, существуют ли практические руководства по Lisp?

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