求cad lisp,删除所有未闭合的多段线

在一个cad图里,有几万个多段线,有的闭合了,有的没有闭合或者只有一根线,怎么用lisp语言将没有封闭的线全部删除,只保留已封闭的多段线。注:只有多段线一种图元,图层也不... 在一个cad图里,有几万个多段线,有的闭合了,有的没有闭合或者只有一根线,怎么用lisp语言将没有封闭的线全部删除,只保留已封闭的多段线。注:只有多段线一种图元,图层也不考虑
1
展开
 我来答
朱06CAD
推荐于2016-03-18 · 知道合伙人软件行家
朱06CAD
知道合伙人软件行家
采纳数:4172 获赞数:18070
高中,熟悉AutoCAD。会autolisp及VBA程序。

向TA提问 私信TA
展开全部
(defun C:tes ( / #k2 #kw)
 (setvar "cmdecho" 0)
 (setvar "blipmode" 0)
 (if (setq #kw (setq #kw (ssget (list '(0 . "LWPOLYLINE") '(70 . 0)))));选择不封闭的多段线
  (progn
   (initget "V C S E") (setq #k2 (getkword "\n选择多段线或[移动(V)/复制(C)/选择(S)]: <删除(E)> "))
   (if (/= #k2 nil) (setq #k2 (strcase #k2)) )
   (if (null #k2)
    (command "_.Erase" #kw "")
    (cond
     ((= #k2 "V") (command "_.Move" #kw "" pause) )
     ((= #k2 "C") (command "_.Copy" #kw "" pause) )
     ((= #k2 "E") (command "_.Erase" #kw "") )
     ((= #k2 "S") (sssetfirst nil #kw) )
    )
   )
  )
  (princ "\n未选择对象!")
 )
 (prin1)
);复制到记事本,以【.lsp】为后缀命名。autoLISP加载后,命令为:TES
更多追问追答
追问
怎么好像是无效的,我想不需要手动选择,直接输入命令自动删除
怎么好像是无效的,我想不需要手动选择,直接输入命令自动删除
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式