zwf100 发表于 2015-10-15 00:13:56

批量剪切问题

有n组线条,每组有2条线相交线组成,该两条线不同颜色,能否实现批量将一种颜色线以下(或者以上)的另外一种线剪切掉,求高手支招?

zwf100 发表于 2015-10-16 00:34:26

好像论坛关于剪切的帖子较少

zwf100 发表于 2015-10-28 00:46:11

zwf100 发表于 2015-10-16 00:34 static/image/common/back.gif
好像论坛关于剪切的帖子较少

根据高手的程序改了下,还有不足之处,望高手简化,比如要先点两个点的功能不知如何去掉

zwf100 发表于 2015-10-28 00:47:06

本帖最后由 zwf100 于 2015-12-3 22:56 编辑

zwf100 发表于 2015-10-28 00:46 static/image/common/back.gif
根据高手的程序改了下,还有不足之处,望高手简化,比如要先点两个点的功能不知如何去掉<p>(defun c:ltr (/ CMDECHO F3 OS F8 OTH P1 LOOP GR P2 DP SE2 SE1 N K EN ENL)
(defun *error* (s)
   (princ s)
   (setvar 'cmdecho cmdecho)
   (setvar 'osmode os)
   (setvar 'ORTHOMODE oth)
   )
   (setq cmdecho (getvar 'cmdecho))
   (setq f3 (getvar 'osmode) os f3)
   (setq f8 (getvar 'ORTHOMODE) oth f8)
   (setvar 'cmdecho 0)
   
   ;;;;;;++++++++++++++++++++++++++++++++++
   (princ "\n请选择剪切线的颜色(不能随层):")
   (setq ss (nth 0 (entsel)))
   (command "undo" "be")
   (setvar "cmdecho" 0)
   (setq cor (assoc 62 (entget ss)))      ;颜色如果随层,按图层颜色
   (if (= cor nil)
   (progn (setq tc (cdr (assoc 8 (entget ss))))
            (setq tc (tblsearch "layer" tc))
            (setq cor (assoc 62 tc))
   )
   )
   (princ "\n请框选含有以上颜色的剪切线:")
(setq ss1 (ssget))

;;;;;;;;;;;;;;;;+++++++++++
   (setq se1 (ssget "P" (list cor)))
</p><p>(princ "\n请选择剪切线的颜色(不能随层):")
   (setq ss (nth 0 (entsel)))
   (command "undo" "be")
   (setvar "cmdecho" 0)
   (setq cor (assoc 62 (entget ss)))      ;颜色如果随层,按图层颜色
   (if (= cor nil)
   (progn (setq tc (cdr (assoc 8 (entget ss))))
            (setq tc (tblsearch "layer" tc))
            (setq cor (assoc 62 tc))
   )
   )
   (princ "\n请框选含有以上颜色的被剪切线:")
(setq ss2 (ssget))

(setq se2 (ssget "P" (list cor)))
</p><p>;;; (grdraw p1 p2 1 -1)
   ;(initget 7 "")
   (setq p1 (getpoint "\n剪切哪一边?:"))
   ;(if (= "" p1) (abcdefg))
   (setq n (sslength se2) k 0)
   (repeat n
   (progn
       (setq en (ssname se2 k)
            enl (list en p1)
            )
       (command "trim" se1 "" enl "")
      (setq k (1+ k))
       )
   )
   (entdel se1)
   (redraw)
   (setvar 'cmdecho cmdecho)
   (setvar 'osmode os)
   (setvar 'ORTHOMODE oth)
   (princ)
   )

</p>

zwf100 发表于 2015-12-3 22:54:56

根据论坛里高手的程序修改了下,基本能达到要求,就是不支持颜色随层对象和最后会提示错误
页: [1]
查看完整版本: 批量剪切问题