> 1 <

Автор Сообщение

Jenny21

Members


Статус

1 сообщений

Где: Ukraine
Род занятий:
Возраст:

#7235   2014-01-15 16:08 GMT+3 часа(ов)      
Задание:
Создайте функцию, которая найдет все размеры в файле и создаст список вида: Имя раз-мера1 Длина размера1, Имя размера2 Длина размера2 и т.д., а также создаст список вида: Имя отрезка1 Длина отрезка1, Имя отрезка2 Длина отрезка2 и т.д. Далее требуется про-анализировать полученные списки: имеется ли в них информацией о примитивах одной длины. Далее программа должна сформировать список парных элементов (линия – раз-мер) и перенести размеры к соответствующим примитивам.

Программа рабочая, не могу разобратся по коду программы( Опишите пожалуйста, что выполняют определенные функции, по строчно.

(defun f17 ()

(setq nabor1 (ssget "x" '((0 . "dimension"))))
(setq kol_razm (sslength nabor1))
(setq i1 0)
(setq spisok1 ())
(repeat kol_razm
(setq imja1 (ssname nabor1 i1))
(setq razm (entget (ssname nabor1 i1)))
(setq t1 (assoc 13 razm))
(setq t2 (assoc 14 razm))
(setq t1 (cdr t1))
(setq t2 (cdr t2))
(setq dlina (distance t1 t2))
(setq spisok1 (cons imja1 spisok1 ))
(setq spisok1 (cons dlina spisok1 ))
(setq i1 (+ i1 1))
)

(print spisok1)

(setq nabor2 (ssget "x" '((0 . "line"))))
(setq kol_line (sslength nabor2))
(setq i2 0)
(setq spisok2 ())
(repeat kol_line
(setq lin (entget (ssname nabor2 i2)))

(setq imja2 (assoc -1 lin))
(setq n1 (assoc 10 lin))
(setq n2 (assoc 11 lin))
(setq n1 (cdr n1))
(setq n2 (cdr n2))
(setq imja2 (cdr imja2))
(setq dlina2 (distance n1 n2))

(setq spisok2 (cons imja2 spisok2 ))
(setq spisok2 (cons dlina2 spisok2 ))



(setq i2 (+ i2 1))

)

(print spisok2)




(setq spisok3 ())
(setq kolich 0)

(repeat kol_razm

(setq raz (car spisok1))
(setq sravnenie (member raz spisok2))

(if (/= sravnenie nil)
(progn
(setq kolich (+ kolich 1))
(setq imja_lin (cadr sravnenie))
(setq imja_raz (cadr spisok1))

(setq spisok3 (cons imja_raz spisok3 ))
(setq spisok3 (cons imja_lin spisok3 ))
)

)

(setq spisok1 (cddr spisok1))

)
(print spisok3)


(repeat kolich

(setq linia (entget (car spisok3)))
(setq razmer (entget (cadr spisok3)))
(setq im (cadr spisok3))

(setq nach_lin (cdr (assoc 10 linia)))
(setq kon_lin (cdr (assoc 11 linia)))

((lambda (im)
(entmod (subst (cons 13 nach_lin) (assoc 13 razmer) im)))
(entget im))

((lambda (im)
(entmod (subst (cons 14 kon_lin) (assoc 14 razmer) im)))
(entget im))

(setq spisok3 (cddr spisok3))
)

(print)

)
> 1 <


Онлайн :

0 пользователь(ей), 45 гость(ей) :