像文本掩码一样,可以LISP它吗
https://www.cadtutor.net/forum/attachment.php?attachmentid=34005&d=1333365908大家好,有人能帮我做这个吗?
假设我从圆圈#1中显示的内容开始。我希望这个自定义lisp例程的结果在运行后看起来像圆形#2,但不剪切其中的任何线,而只是掩盖它并将圆形放入另一层。
谢谢 也许李·麦克的循环抹杀能有所帮助 谢谢点头,我很想试试。 谢谢你的推荐点头
我的网站上也有该计划,因为您可能需要会员资格才能查看Swamp的该区域。 不客气,艾哈迈德
没问题,李 我已经试过了从TheSwamp找到的圆形擦拭器,现在我正在使用它,而不是李网站上的那个。。
李,我运行了这个例程,它对我来说非常有用,但是经过一些修改,如果圆形擦除不仅可以在一个选定的圆形中工作,而且可以在层内的所有圆形中工作,那么效果会更好。。怎么可能?
试试这段代码,让我知道你的情况。
(defun c:Test (/ *error* ss i sn st le di lst e)
;;; Tharwat 31. jan. 2013 ;;;
;;; Wipeout circles ;;;
(vl-load-com)
(defun *error* (x)
(if cm
(setvar 'cmdecho cm)
)
(princ "\n *Cancel*")
)
(or Doc (setq Doc (vla-get-ActiveDocument (vlax-get-acad-object))))
(if (progn (print "Select Circles to Wipeout ...")
(setq ss (ssget "_:L" '((0 . "CIRCLE")))))
(progn (setq cm (getvar 'cmdecho))
(setvar 'cmdecho 0)
(vla-StartUndoMark Doc)
(repeat (setq i (sslength ss))
(setq sn(ssname ss (setq i (1- i)))
st(vlax-curve-getstartpoint sn)
le(/ (* pi (* (cdr (assoc 40 (entget sn))) 2.)) 50.)
dile
lst nil
)
(repeat 50 (setq lst (cons (vlax-curve-getpointatdist sn di) lst)) (setq di (+ di le)))
(setq e (entmakex (append (list '(0 . "LWPOLYLINE")
'(100 . "AcDbEntity")
'(100 . "AcDbPolyline")
(cons 90 (length lst))
'(70 . 1)
)
(mapcar '(lambda (p) (cons 10 (list (car p) (cadr p)))) lst)
)
)
)
(command "_.wipeout" "_p" e "y")
(entdel sn)
)
(setvar 'cmdecho cm)
(vla-EndUndomark Doc)
)
)
(princ "\n Written by Tharwat Al Shoufi")
(princ)
)
现在,我已经更新了我的圆形区域覆盖程序,以包括一个新命令c2wipe,允许用户将现有圆转换为圆形区域覆盖,同时保留现有圆的所有原始特性(例如图层、线型、线宽等)。
页:
[1]