Тема: Основы AutoLISP

Проблема такова:
1. Задаются координаты. Хорошо.
2. Для следующей координаты задаётся функция. Прекрасно!!!
3. И вот тут то всё начинается:( Следующая функция НЕ ЖЕЛАЕТ понимать "о чём говорилось ранее". Не подскажет ли кто в чём дело?

Re: Основы AutoLISP

Уточните вопрос... А лучше приведите исходник

Re: Основы AutoLISP

(defun setka1 ()
   (setq pnt'(0. 0.))   
   (setq pnt1'(190. 0.))
     (command "line" pnt pnt1 "");;;построение основания
   (setq pnt2'(0. 24.6878))
   (setq pnt3'(190. 15.0022))
     (command "line" pnt2 pnt3 "");;;построения уклона
   (setq pnt4 '(95.0 -13.0))
   (setq pnt5 '(95.0 200.0))
     (command "line" pnt4 pnt5 "");;;построения осевой линии
   (setq ang1 (angle pnt2 pnt3));;;измерение угла между точками
   (setq move (getreal"\nВведите смещение: "))
   (setq pnt6 (polar pnt2(+ ang1 (* pi(/ 93 180.0) 90)) move))
   (setq pnt7 (polar pnt3(+ ang1 (* pi(/ 93 180.0) 90)) move))
      (command "line" pnt6 pnt7 "");;; построение линии со смещением
)
А дальше нужно построить линию с шагом. Буду весьма признателен за помощь.

Re: Основы AutoLISP

(command "_line"...) dolzhno rabotat'.

Re: Основы AutoLISP

Чавойто непонятно: функция выполняет то что от нее хотят:
чертит параллельную относительно предыдущей с заданным отступом и програмно заданным углом отклонения от осевой.
В ЧЕМ ПРОБЛЕМА????

Re: Основы AutoLISP

В приведенном коде столько ошибок, поэтому не удивительно, что автор вопроса и сам не знает чего хочет, и как спросить!

Re: Основы AutoLISP

Pacman: Нужно построить следующую паралель через существующую с шагом. А это не выходит:(

Re: Основы AutoLISP

ShaggyDoc: Лучше бы  подсказал что не правильно и как ето исправить, а не корчил из себя спеца:)

Re: Основы AutoLISP

А ShaggyDoc и есть настоящий спец.
To Taurus: тут нечего пока исправлять, потому что нет цикла построения параллельных линий.
Вопрос: что вычисляет это выражение (* pi (/ 93 180.0) 90).

Re: Основы AutoLISP

Но попробуем помочь человеку разобраться в коде!
для теста в Каде лучше заменить первую строку на:
(defun c:setka1 ()
...
Загрузили лисп...с командной строки: setka1...

хрясь: отчертил он перпендикуляр и наклонную линию с координатами: (setq pnt2'(0. 24.6878)) (setq pnt3'(190. 15.0022))

имеряем угол наклона линии (??) получаем 357гр в радианах

Вводим значение отступа(шага)...
Вычисляються конечные точки следующей линии способом: апендицит автогеном через...     :))
(но может так нужно я незнаю)

Хрясь... строиться линия паралельная наклонной  с заданным отступом
Функция свое отработала!!
Получили 2 перпендикулярные линии и 2 паралельные под улом 177гр относительно основания.

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

> VH: (+ ang1 (* pi(/ 93 180.0) 90))- енто вычисление угла отклонения наклонной от оси Y в радианах =152.316, или 87'
способом.....

Re: Основы AutoLISP

Не, ребята, погодите...
93 поделить на 180 да помножить на pi - это 93(?) градуса в радианах. А зачем еще множить на 90? а потом угол прибавлять.

Re: Основы AutoLISP

Ну у меня предложение: бежишь в ларек покупашь пузырек....
  и давай дальше разбираться.....  smile)))

Re: Основы AutoLISP

(* pi(/ 93 180.0) 90)=146.084 радан или 90 градусов
теперь прибавляем ang1=6.23225 рад или 357 гр
и полечаем- 152.316 рад или 87 гр
что является углом между перпендикуляром к наклонной прямой и осью X
  Я понимаю что проще:
(setq pnt6 (polar pnt2(- (angle pnt3 pnt2)(/ pi 2)) move))
(setq pnt7 (polar pnt3(- (angle pnt3 pnt2)(/ pi 2)) move))
но опять же может нужно .... посложнее
> Taurus: и таких ляпов достаточно, но они работе не мешают

Re: Основы AutoLISP

Задача: "Нужно построить следующую паралель через существующую с шагом. А это не выходит".
Попробуйте воспользоваться командами Offset или Array, например,
(setq move (getreal"\nВведите смещение: "))
(setq pnt8 (getpoint "\nУкажите точку стороны смещения: "))   
(command "offset" move  pnt2  pnt8 "" ).

Re: Основы AutoLISP

shura-alex: Спасибо за помощь.

Re: Основы AutoLISP

Всем спасибо за помощь!!!