Maybe, this :
Code:
(defun transptiso (pt)
(list (+ (car (polar (list 0.0 0.0 0.0) (/ pi 6.0) (car pt)))
(car (polar (list 0.0 0.0 0.0) (* 5.0 (/ pi 6.0)) (cadr pt))) )
(+ (cadr (polar (list 0.0 0.0 0.0) (/ pi 6.0) (car pt)))
(cadr (polar (list 0.0 0.0 0.0) (* 5.0 (/ pi 6.0)) (cadr pt))) )
0.0
)
)
(defun c:isopolygon (/ pol vertlst vertlstn)
(vl-cmdf "_.ucs" "w")
(vl-cmdf "_.plan" "")
(vl-cmdf "_.zoom" "c" "0,0,0" "")
(vl-cmdf "_.polygon" pause "0,0,0" pause pause)
(setq pol (entlast))
(mapcar '(lambda (x) (if (= (car x) 10) (setq vertlst (cons (cdr x) vertlst)))) (entget pol))
(setq vertlst (reverse vertlst))
(setq vertlstn (mapcar '(lambda (p) (transptiso p)) vertlst))
(entmake
(append
(list
'(0 . "LWPOLYLINE")
'(100 . "AcDbEntity")
'(100 . "AcDbPolyline")
(cons 90 (length vertlstn))
'(70 . 1)
)
(mapcar '(lambda (x) (cons 10 x)) vertlstn)
(list (list 210 0.0 0.0 1.0))
)
)
(entdel pol)
(vl-cmdf "_.ucs" "p")
(princ)
)
M.R.
Bookmarks