求一个lsp格式的cad插件

代码如下:(defunC:TES(/#g1&kw&ss1entx)(if(and(setqent(entsel"\n请选择封闭的多段线"))(setqent(carent... 代码如下:
(defun C:TES ( / #g1 &kw &ss1 ent x) (if (and (setq ent (entsel "\n请选择封闭的多段线")) (setq ent (car ent));图元 (setq #g1 (entget ent));属性 (= (cdr (assoc 0 #g1)) "LWPOLYLINE");分析是多段线 (= (cdr (assoc 70 #g1)) 1);判断是封闭 (setq &ss1 (mapcar 'cdr (vl-remove-if '(lambda (X) (/= 10 (car x))) #g1)));多段线上的点 ) (progn (if (setq &kw (ssget "cp" &ss1)) ;框选择 包含在框内的及和框相交的被选择;如果要窗选【cp】修改为【wp】即可 (setq &kw (ssadd ent &kw)) (progn (setq &kw (ssadd) &kw (ssadd ent &kw)) ) ) (command "erase" "all" "r" &kw "") ) ) (princ));复制到记事本,以【.lsp】为后缀命名,打开CAD,autolisp加载,命令【TES】;删除被选择的以外对象
展开
 我来答
bcatv
2019-08-08 · TA获得超过4434个赞
知道大有可为答主
回答量:4763
采纳率:77%
帮助的人:567万
展开全部
源程序你已经有了,你还想怎么样?
追问
哈哈哈是这样的,我不懂lisp语言的写法,这段代码我直接复制进文本,变成lsp之后不能用,应该是格式有点问题,但我解决不了
追答
(defun C:TES ( / #g1 &kw &ss1 ent x) (if (and (setq ent (entsel "\n请选择封闭的多段线")) (setq ent (car ent))
(setq #g1 (entget ent)) (= (cdr (assoc 0 #g1)) "LWPOLYLINE") (= (cdr (assoc 70 #g1)) 1) (setq &ss1 (mapcar 'cdr (vl-remove-if '(lambda (X) (/= 10 (car x))) #g1))) ) (progn (if (setq &kw (ssget "cp" &ss1)) (setq &kw (ssadd ent &kw)) (progn (setq &kw (ssadd) &kw (ssadd ent &kw)) ) ) (command "erase" "all" "r" &kw "") ) ) (princ))
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式