Ahmeds 发表于 2022-7-6 07:00:01

像文本掩码一样,可以LISP它吗

https://www.cadtutor.net/forum/attachment.php?attachmentid=34005&d=1333365908
 
大家好,有人能帮我做这个吗?
假设我从圆圈#1中显示的内容开始。我希望这个自定义lisp例程的结果在运行后看起来像圆形#2,但不剪切其中的任何线,而只是掩盖它并将圆形放入另一层。
 
谢谢

nod684 发表于 2022-7-6 07:11:45

也许李·麦克的循环抹杀能有所帮助

Ahmeds 发表于 2022-7-6 07:18:21

谢谢点头,我很想试试。

Lee Mac 发表于 2022-7-6 07:28:35

谢谢你的推荐点头
我的网站上也有该计划,因为您可能需要会员资格才能查看Swamp的该区域。

nod684 发表于 2022-7-6 07:37:29

不客气,艾哈迈德
 
没问题,李

Ahmeds 发表于 2022-7-6 07:44:23

我已经试过了从TheSwamp找到的圆形擦拭器,现在我正在使用它,而不是李网站上的那个。。
李,我运行了这个例程,它对我来说非常有用,但是经过一些修改,如果圆形擦除不仅可以在一个选定的圆形中工作,而且可以在层内的所有圆形中工作,那么效果会更好。。怎么可能?

Tharwat 发表于 2022-7-6 07:53:22

 
试试这段代码,让我知道你的情况。
 

(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)
)

Lee Mac 发表于 2022-7-6 08:04:13

现在,我已经更新了我的圆形区域覆盖程序,以包括一个新命令c2wipe,允许用户将现有圆转换为圆形区域覆盖,同时保留现有圆的所有原始特性(例如图层、线型、线宽等)。
页: [1]
查看完整版本: 像文本掩码一样,可以LISP它吗