 - (defun c:tt (/ A B EN L N NOMAL PTS SS UNIT VXV)
- (defun vXv (u v)
- (list
- (- (* (cadr u) (caddr v)) (* (cadr v) (caddr u)))
- (- (* (car v) (caddr u)) (* (car u) (caddr v)))
- (- (* (car u) (cadr v)) (* (car v) (cadr u)))
- )
- )
- (defun unit (v / a)
- (setq a (sqrt (apply '+ (mapcar '* v v))))
- (if (not (equal a 1e-6))
- (mapcar '/ v (list a a a))
- )
- )
- (if (setq ss (ssget '((0 . "lwpolyline"))))
- (repeat (setq n (sslength ss))
- (setq en (ssname ss (setq n (1- n))))
- (setq pts (mapcar '(lambda (a) (append (cdr a) '(0)))
- (vl-remove-if-not
- '(lambda (x) (= (car x) 10))
- (entget en)
- )
- )
- )
- (if (equal (car pts) (last pts) 1e-6)
- (setq pts (reverse (cdr (reverse pts))))
- )
- (setq pts (append (cons (last pts) pts) (list (car pts))))
- (setq l (mapcar 'list pts (cdr pts) (cddr pts)))
- (setq a (car l)
- l (cdr l)
- )
- (setq nomal (unit
- (vXv (mapcar '- (car a) (cadr a))
- (mapcar '- (caddr a) (cadr a))
- )
- )
- )
- (print nomal)
- (if
- (vl-some '(lambda (a)
- (setq b (unit
- (vXv (mapcar '- (car a) (cadr a))
- (mapcar '- (caddr a) (cadr a))
- )
- )
- )
- (print b)
- (not
- (equal nomal
- b
- 1e-6
- )
- )
- )
- l
- )
- (entmod (append (entget en) '((62 . 1))))
- )
- )
- )
- (princ)
- )
|