当然,比如:
- (defun c:dlines ( / e i l s )
- (if (setq s (ssget '((0 . "LINE,LWPOLYLINE"))))
- (repeat (setq i (sslength s))
- (setq e (entget (ssname s (setq i (1- i)))))
- (if (= "LINE" (cdr (assoc 0 e)))
- (setq l (list (cdr (assoc 10 e)) (cdr (assoc 11 e))))
- (setq l (mapcar 'cdr (vl-remove-if-not '(lambda ( x ) (= 10 (car x))) e)))
- )
- (while (cadr l)
- (LM:donut (polar (car l) (angle (car l) (cadr l)) 0.25) 0.0 0.0335)
- (LM:donut (polar (cadr l) (angle (cadr l) (car l)) 0.25) 0.0 0.0335)
- (setq l (cdr l))
- )
- )
- )
- (princ)
- )
- ;; Donut - Lee Mac
- ;; cen - [lst] Donut center
- ;; rd1 - [num] Inside radius
- ;; rd2 - [num] Outside radius
- (defun LM:donut ( cen rd1 rd2 / ocs thk )
- (setq thk (abs (- rd2 rd1))
- ocs (trans '(0 0 1) 1 0 t)
- )
- (entmakex
- (list
- '(000 . "LWPOLYLINE")
- '(100 . "AcDbEntity")
- '(100 . "AcDbPolyline")
- '(090 . 2)
- '(070 . 1)
- (cons 43 thk)
- (cons 10 (polar (trans cen 0 ocs) pi (+ rd1 (/ thk 2.0))))
- '(042 . 1)
- (cons 10 (polar (trans cen 0 ocs) 0 (+ rd1 (/ thk 2.0))))
- '(042 . 1)
- (cons 210 ocs)
- )
- )
- )
|