![]() |
Translate to: |
||||||
| Обратная связь | Новости САПР | Программы | Документация | Полезные советы | Обзорные статьи | ||
| Заказ и разработка | Каталог САПР | САПР-конференция | Библиотека ГОСТов | Наши соавторы | Коммерческое ПО | ||
Методы вычисления расстояния:
c:accdist - комбинированный
;;;---------------------------------------------------------------------------;
;;;
;;; accdist.lsp
;;;
;;;---------------------------------------------------------------------------;
(defun c:accdist (/ errexit undox restore *error* p1 p2 sum)
(defun errexit (s)
(princ)
(restore)
)
(defun undox ()
(redraw)
(setq *error* olderr)
(princ)
)
(setq olderr *error*
restore undox
*error* errexit
)
(setq p1 (getpoint "\nУкажите первую точку: ")
p2 "First"
sum 0
)
(while (and p1 p2)
(if (= p2 "First")
(progn
(initget 32)
(setq p2 (getpoint "\nУкажите вторую точку: " p1))
)
(progn
(initget 32 "First")
(setq p2 (getpoint "\nУкажите следующую точку или [Первая]: " p1))
)
)
(cond
((not p2))
((= p2 "First")
(setq p1 (getpoint "\nУкажите первую точку: "))
)
(t
(grdraw p1 p2 -1 1)
(setq sum (+ sum (distance p1 p2))
p1 p2
)
)
)
)
(princ "\nНакопленное расстояние = ")
(princ sum)
(restore)
)
(defun c:accdist1 (/ p1 p2 sum)
(setq sum 0)
(setq p1 (getpoint "\nУкажите первую точку: "))
(while (and p1
(not (initget 32))
(setq p2 (getpoint "\nУкажите следующую точку: " p1))
)
(grdraw p1 p2 -1 1)
(setq sum (+ sum (distance p1 p2)))
(setq p1 p2)
)
(redraw)
(princ "\nНакопленное расстояние = ")
(princ sum)
(princ)
)
(defun c:accdist2 (/ p1 p2 sum)
(setq sum 0)
(while
(and (setq p1 (getpoint "\nУкажите первую точку: "))
(not (initget 32))
(setq p2 (getpoint "\nУкажите вторую точку: " p1))
)
(setq sum (+ sum (distance p1 p2)))
)
(princ "\nНакопленное расстояние = ")
(princ sum)
(princ)
)
Copyright © Сайт поддержки пользователей САПР