- (defun c:tes ( / &kw en ent pts ss x)
- (vl-load-com)
- (setq en (car (entsel "\n请选择封闭多段线")))
- (setq pts (mapcar 'cdr (vl-remove-if-not '(lambda(x) (= (car x) 10)) (entget en))))
- (setq pts (reverse pts))
- (princ "\n请选择变为块的对象")
- (setq &kw (ssget) ss '())
- (while (setq ent (ssname &kw 0))
- (setq &kw (ssdel ent &kw) ss (cons ent ss))
- )
- (setq ent (BXC_2606 ss pts))
- ;怎么把块按封闭线裁剪?
- (princ)
- )
- ;; 无名块
- (defun BXC_2606 (ss pts / name pt ss x)
- (setq pt (car pts))
- (entmake (list '(0 . "block") '(2 . "*U") '(70 . 1) (cons 10 pt)))
- (mapcar '(lambda(x) (entmake (cdr (entget x)))) ss)
- (setq name (entmake '((0 . "ENDBLK"))))
- (mapcar 'entdel ss)
- (entmake (list '(0 . "INSERT") (cons 2 name) (cons 10 pt)))
- (entlast))
(defun c:tes ( / &kw en ent pts ss x)
(vl-load-com)
(setq en (car (entsel "\n请选择封闭多段线")))
(setq pts (mapcar 'cdr (vl-remove-if-not '(lambda(x) (= (car x) 10)) (entget en))))
(setq pts (reverse pts))
(princ "\n请选择变为块的对象")
(setq &kw (ssget) ss '())
(while (setq ent (ssname &kw 0))
(setq &kw (ssdel ent &kw) ss (cons ent ss))
)
(setq ent (BXC_2606 ss pts))
;怎么把块按封闭线裁剪?
(princ)
)
;; 无名块
(defun BXC_2606 (ss pts / name pt ss x)
(setq pt (car pts))
(entmake (list '(0 . "block") '(2 . "*U") '(70 . 1) (cons 10 pt)))
(mapcar '(lambda(x) (entmake (cdr (entget x)))) ss)
(setq name (entmake '((0 . "ENDBLK"))))
(mapcar 'entdel ss)
(entmake (list '(0 . "INSERT") (cons 2 name) (cons 10 pt)))
(entlast)
)想把无名块裁剪,好比调用"XCLIP", |