明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1525|回复: 4

[已解答] 批量剪切问题

[复制链接]
发表于 2015-10-15 00:13 | 显示全部楼层 |阅读模式
有n组线条,每组有2条线相交线组成,该两条线不同颜色,能否实现批量将一种颜色线以下(或者以上)的另外一种线剪切掉,求高手支招?
 楼主| 发表于 2015-10-16 00:34 | 显示全部楼层
好像论坛关于剪切的帖子较少
 楼主| 发表于 2015-10-28 00:46 | 显示全部楼层
zwf100 发表于 2015-10-16 00:34
好像论坛关于剪切的帖子较少

根据高手的程序改了下,还有不足之处,望高手简化,比如要先点两个点的功能不知如何去掉
 楼主| 发表于 2015-10-28 00:47 | 显示全部楼层
本帖最后由 zwf100 于 2015-12-3 22:56 编辑
zwf100 发表于 2015-10-28 00:46
根据高手的程序改了下,还有不足之处,望高手简化,比如要先点两个点的功能不知如何去掉
  1. <p>(defun c:ltr (/ CMDECHO F3 OS F8 OTH P1 LOOP GR P2 DP SE2 SE1 N K EN ENL)
  2.   (defun *error* (s)
  3.      (princ s)
  4.      (setvar 'cmdecho cmdecho)
  5.      (setvar 'osmode os)
  6.      (setvar 'ORTHOMODE oth)
  7.      )
  8.    (setq cmdecho (getvar 'cmdecho))
  9.    (setq f3 (getvar 'osmode) os f3)
  10.    (setq f8 (getvar 'ORTHOMODE) oth f8)
  11.    (setvar 'cmdecho 0)
  12.    
  13.    ;;;;;;++++++++++++++++++++++++++++++++++
  14.    (princ "\n请选择剪切线的颜色(不能随层):")
  15.    (setq ss (nth 0 (entsel)))
  16.    (command "undo" "be")
  17.    (setvar "cmdecho" 0)
  18.    (setq cor (assoc 62 (entget ss)))        ;颜色如果随层,按图层颜色
  19.    (if (= cor nil)
  20.      (progn (setq tc (cdr (assoc 8 (entget ss))))
  21.             (setq tc (tblsearch "layer" tc))
  22.             (setq cor (assoc 62 tc))
  23.      )
  24.    )
  25.    (princ "\n请框选含有以上颜色的剪切线:")
  26. (setq ss1 (ssget))

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

  42. (setq se2 (ssget "P" (list cor)))
  43. </p><p>;;; (grdraw p1 p2 1 -1)
  44.    ;(initget 7 "  ")
  45.    (setq p1 (getpoint "\n剪切哪一边?:"))
  46.    ;(if (= "" p1) (abcdefg))
  47.    (setq n (sslength se2) k 0)
  48.    (repeat n
  49.      (progn
  50.        (setq en (ssname se2 k)
  51.             enl (list en p1)
  52.             )
  53.        (command "trim" se1 "" enl "")
  54.         (setq k (1+ k))
  55.        )
  56.      )
  57.    (entdel se1)
  58.    (redraw)
  59.    (setvar 'cmdecho cmdecho)
  60.      (setvar 'osmode os)
  61.      (setvar 'ORTHOMODE oth)
  62.    (princ)
  63.    )

  64. </p>
 楼主| 发表于 2015-12-3 22:54 | 显示全部楼层
根据论坛里高手的程序修改了下,基本能达到要求,就是不支持颜色随层对象和最后会提示错误

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-3-28 19:09 , Processed in 0.166648 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表