我的意思是,如果你只是用抹布覆盖它们,也许你不需要切割所有的物体。
记住将“帧”设置为“关”
- (defun c:demo (/ s s1 ss space pntlst w pntlst zv TempL TempL1 TempL2 Lv L1v L2v )
- (vl-load-com)
- (setq space (vlax-get
- (vla-get-ActiveLayout
- (vla-get-activedocument
- (vlax-get-acad-object)
- )
- )
- 'Block
- )
- )
- (if (and
- (princ "\nSelect MLeader")
- (setq s (ssget "_+.:S:L" '((0 . "MULTILEADER"))))
- (setq s (vlax-ename->vla-object (setq s1 (ssname s 0))))
- (setq width (cond
- ((getdist (strcat "\nEnter width "
- (if width (strcat " <" (rtos width) ">: ") ": ")
- )))(width))
- )
- (setq w (* 0.5 width))
- )
- (progn
- (setq pntlst (vlax-invoke
- s 'GetLeaderLineVertices 0
- )
- zv (nth 2 pntlst)
- )
- (setq TempL
- (vlax-invoke
- space
- 'AddLightweightPolyline
- (vl-remove-if '(lambda (l) (= zv l)) pntlst)
- )
- )
- (vlax-invoke TempL 'offset (- (* 0.5 width)))
- (setq TempL1 (entlast))
- (vlax-invoke TempL 'offset (* 0.5 width))
- (setq TempL2 (entlast))
- (setq
- Lv1 (coo TempL1)
- Lv2 (coo TempL2)
- Lv (append Lv1 (reverse Lv2))
- )
- (setq os (getvar 'osmode))
- (setvar 'osmode 0)
- (command "_.wipeout")
- (apply 'command Lv)
- (command "")
- (setvar 'osmode os)
- (command "_.draworder" s1 "" "_F")
- (vla-delete TempL)
- (entdel TempL1)
- (entdel TempL2)
- )
- )
- )
- (defun Coo ( a / coor)
- (mapcar '(lambda (x)
- (if (eq (car x) 10)
- (setq coor (cons (list (cadr x) (caddr x)) coor))
- )
- )
- (entget a)
- )
- coor
- )
|