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

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

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

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

Недавно купил книгу. Полный сборник команд Lisp с их описанием.
Но на этом все и кончилось. Никаких примеров для начинающих.
Если кто знает, с чего начинать изучение Lisp медленно и шаг за шагом , подскажите пожалуйста.
Просмотров: 73408
 
Непрочитано 26.05.2008, 11:06
#21
andery


 
Регистрация: 27.12.2007
Сообщений: 132
<phrase 1=


Может кому интересно, ИМХО для начинающих то что надо:
http://aco.ifmo.ru/~nadinet/html/lec...ect_lsp.html#5
andery вне форума  
 
Непрочитано 30.05.2008, 08:31
#22
Рyslan


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


Если вам не трудно, напишите программку на Лиспе, я буду использовать ее как пособие. Заранее благодарен. Я тут диаметр конкретный поставил, но вообще хочу чтобы программа создавала отвод любого диаметра. ну как по госту
Вложения
Тип файла: doc отвод.doc (19.5 Кб, 196 просмотров)
Рyslan вне форума  
 
Непрочитано 30.05.2008, 09:53
#23
Кулик Алексей aka kpblc
Moderator

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


Смесь жуткая...
Код:
[Выделить все]
(defun test
       (path-radius tube-radius / ent adoc *error* profile profile_ext path)
  (defun *error* (msg)
    (vla-endundomark adoc)
    (princ msg)
    (princ)
    ) ;_ end of defun

  (vl-load-com)
  (vla-startundomark
    (setq adoc (vla-get-activedocument (vlax-get-acad-object)))
    ) ;_ end of vla-startundomark
  (if (and (setq profile (entmakex (list (cons 0 "CIRCLE")
                                         (cons 10 '(0. 0. 0.))
                                         (cons 40 tube-radius)
                                         (cons 210 '(-1.0 0.0 0.0))
                                         ) ;_ end of list
                                   ) ;_ end of entmakex
                 ) ;_ end of setq
           (setq path (entmakex (list (cons 0 "ARC")
                                      (cons 10 (list 0. path-radius 0.))
                                      (cons 40 path-radius)
                                      (cons 50 (* pi 1.5))
                                      (cons 51 0.)
                                      (cons 210 '(0. 0. 1.))
                                      ) ;_ end of list
                                ) ;_ end of entmakex
                 ) ;_ end of setq
           ) ;_ end of and
    (progn
      (setq path        (vlax-ename->vla-object path)
            profile_ext (car (vlax-safearray->list
                               (vlax-variant-value
                                 (vla-addregion
                                   (vla-objectidtoobject adoc (vla-get-ownerid path))
                                   (vlax-make-variant
                                     (vlax-safearray-fill
                                       (vlax-make-safearray
                                         vlax-vbobject
                                         '(0 . 0)
                                         ) ;_ end of vlax-make-safearray
                                       (list (vlax-ename->vla-object profile))
                                       ) ;_ end of vlax-safearray-fill
                                     ) ;_ end of vlax-make-variant
                                   ) ;_ end of vla-addregion
                                 ) ;_ end of vlax-variant-value
                               ) ;_ end of vlax-safearray->list
                             ) ;_ end of car
            ) ;_ end of setq
      (entdel profile)
      (vla-addextrudedsolidalongpath
        (vla-objectidtoobject adoc (vla-get-ownerid path))
        profile_ext
        path
        ) ;_ end of vla-AddExtrudedSolidAlongPath
      (vla-erase path)
      (vla-erase profile_ext)
      ) ;_ end of progn
    ) ;_ end of if
  (vla-endundomark adoc)
  (princ)
  ) ;_ end of defun
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 30.05.2008, 10:13
#24
Рyslan


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


каким именем запускается?
Рyslan вне форума  
 
Непрочитано 30.05.2008, 10:36
#25
Кулик Алексей aka kpblc
Moderator

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


(test радиус_закругления_пути радиус_трубы)
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 30.05.2008, 10:44
#26
Рyslan


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


не работает. покороче можно название сделать?
Command: (test path-radius tube-radius)
bad DXF group: (40)
Рyslan вне форума  
 
Непрочитано 30.05.2008, 10:50
#27
Кулик Алексей aka kpblc
Moderator

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


А значения кто будет задавать, Пушкин?
Код:
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 30.05.2008, 10:53
#28
Рyslan


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


ааа, бл, вот я баран
Рyslan вне форума  
 
Непрочитано 30.05.2008, 10:58
#29
Рyslan


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


неправильно программа у тебя рисует. вот смотри -пишу (test 75 57) соответственно 75 радиус дуги, 57 диаметр трубы. программа рисует отвод диаметром 100мм.
Рyslan вне форума  
 
Непрочитано 30.05.2008, 11:09
#30
VVA

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


Рyslan,
Команда OTVOD
Код:
[Выделить все]
;;;Рисование отвода диаметром 57мм
;;;
;;;
;;;1. View-->Front
;;;2. Circle (0,0) r=57/2
;;;3. View-->SE Isometric
;;;4. UCS--> Поворот вокруг оси Y
;;;5. Arc (Start, End, Radius) (0,0; 75,75) r=75
;;;6. Extrude (Path)
;;;7. View-->SE Isometric
(defun C:OTVOD (
		/ ;_после слэша / идут локальные переменные
		Rad   ;_в этой переменной храним радиус
		Circl ;_в этой переменной храним имя примитива круга
		Arc   ;_в этой переменной храним имя примитива дуги
		)
  (initget 7)
  (setq rad (getdist "\nРадиус трубы:"))
  (command "_.View" "_Front")            ;_1. View-->Front
  (command "_.Circle" "0,0" (* 0.5 Rad) );_2. Circle (0,0) r=57/2
  (setq Circl (entlast))                 ;_ Запоминаем круг в переменной Circl
  (command "_.View" "_SE")               ;_3. View-->SE Isometric
  (command "_.UCS" "_New" "_Y" 90)       ;_ 4. UCS--> Поворот вокруг оси Y
  (command "_.ARC" "0,0" "_E" '(75 75) "_R" 75) ;;;5. Arc (Start, End, Radius) (0,0; 75,75) r=75
  (setq Arc (entlast))                 ;_ Запоминаем дугу в переменной Arc
  (command "_.Extrude" Circl "" "_Path" Arc) ;_6. Extrude (Path)
  (command "_.View" "_SE")               ;_7. View-->SE Isometric
  )
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 30.05.2008, 11:14
#31
VVA

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


А я думаю, откуда 75 берется?
Код:
[Выделить все]
;;;Рисование отвода диаметром 57мм
;;;
;;;
;;;1. View-->Front
;;;2. Circle (0,0) r=57/2
;;;3. View-->SE Isometric
;;;4. UCS--> Поворот вокруг оси Y
;;;5. Arc (Start, End, Radius) (0,0; 75,75) r=75
;;;6. Extrude (Path)
;;;7. View-->SE Isometric
(defun C:OTVOD (
		/ ;_после слэша / идут локальные переменные
		Rad   ;_в этой переменной храним радиус
		Circl ;_в этой переменной храним имя примитива круга
		Arc   ;_в этой переменной храним имя примитива дуги
		Rdug  ;_ радиус дуги
		)
  (initget 7)
  (setq rad (getdist "\nРадиус трубы:"))
  (initget 7)
  (setq Rdug (getdist "\nРадиус дуги:"))
  (command "_.View" "_Front")            ;_1. View-->Front
  (command "_.Circle" "0,0" (* 0.5 Rad) );_2. Circle (0,0) r=57/2
  (setq Circl (entlast))                 ;_ Запоминаем круг в переменной Circl
  (command "_.View" "_SE")               ;_3. View-->SE Isometric
  (command "_.UCS" "_New" "_Y" 90)       ;_ 4. UCS--> Поворот вокруг оси Y
  (command "_.ARC" "0,0" "_E" (list Rdug Rdug) "_R" Rdug) ;;;5. Arc (Start, End, Radius) (0,0; 75,75) r=75
  (setq Arc (entlast))                 ;_ Запоминаем дугу в переменной Arc
  (command "_.Extrude" Circl "" "_Path" Arc) ;_6. Extrude (Path)
  (command "_.View" "_SE")               ;_7. View-->SE Isometric
  (princ) ;_Чистый выход
  )
Мысли вслух
Цитата:
Если вам не трудно, напишите программку на Лиспе, я буду использовать ее как пособие
Это #30 или 31
Цитата:
Если вам не трудно, напишите программку на Visual Лиспе, я буду использовать ее как пособие
Это 23
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 30.05.2008, 11:17
#32
Рyslan


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


Работает!!! Спасибо VVA!!! буду смотреть, разбираться
Рyslan вне форума  
 
Непрочитано 30.05.2008, 11:17
#33
Кулик Алексей aka kpblc
Moderator

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


Цитата:
Сообщение от Рyslan Посмотреть сообщение
неправильно программа у тебя рисует. вот смотри -пишу (test 75 57) соответственно 75 радиус дуги, 57 диаметр трубы. программа рисует отвод диаметром 100мм.
Да ну?? Только что проверил, все нормально вроде бы. На чертеже число 100 не обнаружил вообще никоим образом.
Правда, после VVA на мое "творчество" лучше не смотреть )
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 30.05.2008, 11:18
#34
Рyslan


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


75 из ГОСТа, а что не так?
Рyslan вне форума  
 
Непрочитано 30.05.2008, 11:19
#35
Рyslan


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


Леша, я написал (test 75 57) -нарисовала отвод с диаметром 100мм, чо мне врать то, рядом мой отвод нарисован -разницу видно ж. да и мерял я диаметр
Рyslan вне форума  
 
Непрочитано 30.05.2008, 11:20
#36
Кулик Алексей aka kpblc
Moderator

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


Ну ты говоришь, что диаметр 100 рисуется. Я специально проверил - диаметр 114, как и должно быть при радиусе 57.

Цитата:
Сообщение от Рyslan Посмотреть сообщение
Леша, я написал (test 75 57) -нарисовала отвод с диаметром 100мм, чо мне врать то, рядом мой отвод нарисован -разницу видно ж. да и мерял я диаметр
Ну тогда не знаю... Если бы использовались только командные методы, я б мог еще кивнуть на Osmode, но у меня-то их нет вообще.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 30.05.2008, 11:22
#37
Рyslan


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


А то что я не подчеркнул на каком лиспе программка нужна, каюсь. Я имел ввиду AutoLisp. Я честно говоря уже запутался. Читаю САПР как это делается, там ваще ж-а AutoLisp, VisualLisp, VBA, ActiveX, ObjectARX.
Рyslan вне форума  
 
Непрочитано 30.05.2008, 11:25
#38
Рyslan


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


по ГОСТу при диаметре 57 - радиус дуги -75мм. а , да, 114 получается когда делаешь (тест 75 57), но зачем мне так, если мне нужна дуга 75 и диаметр отвода должен быть 57
Рyslan вне форума  
 
Непрочитано 30.05.2008, 11:26
#39
Рyslan


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


я ж вроде писал r=57/2
Рyslan вне форума  
 
Непрочитано 30.05.2008, 11:32
#40
Кулик Алексей aka kpblc
Moderator

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


Извини, запутался. Исправленный вариант (хотя кому он теперь будет нужен?)
Код:
[Выделить все]
(defun test
       (path-radius tube-radius / ent adoc *error* profile profile_ext path)
  (defun *error* (msg)
    (vla-endundomark adoc)
    (princ msg)
    (princ)
    ) ;_ end of defun

  (vl-load-com)
  (vla-startundomark
    (setq adoc (vla-get-activedocument (vlax-get-acad-object)))
    ) ;_ end of vla-startundomark
  (if (and (setq profile (entmakex (list (cons 0 "CIRCLE")
                                         (cons 10 '(0. 0. 0.))
                                         (cons 40 (/ tube-radius 2.))
;| Здесь задается диаметр трубы. Можешь хоть на сколько делить ) |;
                                         (cons 210 '(-1.0 0.0 0.0))
                                         ) ;_ end of list
                                   ) ;_ end of entmakex
                 ) ;_ end of setq
           (setq path (entmakex (list (cons 0 "ARC")
                                      (cons 10 (list 0. path-radius 0.))
                                      (cons 40 path-radius)
                                      (cons 50 (* pi 1.5))
                                      (cons 51 0.)
                                      (cons 210 '(0. 0. 1.))
                                      ) ;_ end of list
                                ) ;_ end of entmakex
                 ) ;_ end of setq
           ) ;_ end of and
    (progn
      (setq path        (vlax-ename->vla-object path)
            profile_ext (car (vlax-safearray->list
                               (vlax-variant-value
                                 (vla-addregion
                                   (vla-objectidtoobject adoc (vla-get-ownerid path))
                                   (vlax-make-variant
                                     (vlax-safearray-fill
                                       (vlax-make-safearray
                                         vlax-vbobject
                                         '(0 . 0)
                                         ) ;_ end of vlax-make-safearray
                                       (list (vlax-ename->vla-object profile))
                                       ) ;_ end of vlax-safearray-fill
                                     ) ;_ end of vlax-make-variant
                                   ) ;_ end of vla-addregion
                                 ) ;_ end of vlax-variant-value
                               ) ;_ end of vlax-safearray->list
                             ) ;_ end of car
            ) ;_ end of setq
      (entdel profile)
      (vla-addextrudedsolidalongpath
        (vla-objectidtoobject adoc (vla-get-ownerid path))
        profile_ext
        path
        ) ;_ end of vla-AddExtrudedSolidAlongPath
      (vla-erase path)
      (vla-erase profile_ext)
      ) ;_ end of progn
    ) ;_ end of if
  (vla-endundomark adoc)
  (princ)
  ) ;_ end of defun
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Подскажите, существуют ли практические руководства по Lisp?

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск