下面是另一个示例,使用多段线顶点的矩形边界框:
- (defun c:p2c ( / a b e i l s )
- (if (setq s (ssget "_:L" '((0 . "LWPOLYLINE"))))
- (repeat (setq i (sslength s))
- (setq e (entget (ssname s (setq i (1- i))))
- l (mapcar 'cdr (vl-remove-if-not '(lambda ( x ) (= 10 (car x))) e))
- a (apply 'mapcar (cons 'min l))
- b (apply 'mapcar (cons 'max l))
- )
- (if (entmake
- (append '((0 . "CIRCLE")) (LM:defaultprops e)
- (list
- (cons 010 (mapcar '/ (mapcar '+ a b) '(2 2)))
- (cons 040 (/ (distance a b) 2))
- (assoc 210 e)
- )
- )
- )
- (entdel (cdr (assoc -1 e)))
- )
- )
- )
- (princ)
- )
- ;; Default Properties - Lee Mac
- ;; Returns a list of DXF properties for the supplied DXF data,
- ;; substituting default values for absent DXF groups
- (defun LM:defaultprops ( enx )
- (mapcar '(lambda ( x ) (cond ((assoc (car x) enx)) ( x )))
- '(
- (006 . "BYLAYER")
- (008 . "0")
- (039 . 0.0)
- (048 . 1.0)
- (062 . 256)
- (370 . -1)
- )
- )
- )
- (princ)
|