明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1693|回复: 7

求高手编写LISP代码

[复制链接]
发表于 2012-12-22 20:51:34 | 显示全部楼层 |阅读模式
请高手编写LISP代码。
请先下载“附件.DWG“文件,打开文件,在布局视口中,当点选编号为L001的多线段后,通过函数实现:先把该条多线段该多线段上的所有拐点(名为拐点的块参照)以及与该多线段相连的所有多线段作为选集A,再以打印范围框(即黑色实线框)作为选择框,将框内所有文字加入选集A,然后将整个图形中除选集A之外的所有元素删除。

本帖子中包含更多资源

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

x
发表于 2012-12-24 10:06:51 | 显示全部楼层
也就是说排除节点处的圆和点?其它全要?
 楼主| 发表于 2012-12-24 17:29:58 | 显示全部楼层
就是:多线段要,多线段上节点处的块参照(也即圆和点)要,与多线段相连(即共两端端点)的其他所有多线段要,打印框内所有文字要,除上述要的之外,其他的都删除。
发表于 2012-12-24 18:53:55 | 显示全部楼层


删去 块参照 出现不交 怎么样处置

本帖子中包含更多资源

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

x
 楼主| 发表于 2012-12-24 22:28:01 | 显示全部楼层
选定的多线段和线段上节点处的块参照是要的,和选定线段相连的其他线是要的,其他的可以作删除处理,能处理好把要的留下就行,谢谢
 楼主| 发表于 2012-12-31 15:39:15 | 显示全部楼层
现在“选择插入点在多段线顶点上的图元(即名为拐点的块参照)”,已有代码可以实现了,代码如下:
  1. ;选择插入点在多段线顶点上的图元
  2. (defun c:lsp()
  3. (setq en (car (entsel "\nSelect:")))
  4. (while en
  5. (setq data (entget en) pl nil)
  6. (foreach xx data (if (= 10 (car xx)) (setq pl (cons (cdr xx) pl))))
  7. (setq filter01 (mapcar '(lambda(xx) (cons 10 xx)) pl))
  8. (setq filter02 (mapcar '(lambda(xx) (cons 11 xx)) pl))
  9. (setq filter (append filter01 filter02))
  10. (setq ss (ssget "x" (append (list '(-4 . "<OR")) filter (list '(-4 . "OR>")))))
  11. (setq ss (ssdel en ss))
  12. (sslength ss);这一步是验证
  13. (setq en nil)
  14. )
  15. )
另外有一个问题,能否通过代码实现选择与这些图元相隔最近且在某一图层内的文字,或者是以每个图元为中心框选一定范围内的文字,也就是在附件中,只选择“1、2、3、4、5”这几个文字,而不要把”6、7、8、9、10“这几个文字选进来。谢谢各位高手,能让快点结贴!!!

点评

你的附件哪有数字  发表于 2012-12-31 19:31
发表于 2012-12-31 17:30:49 | 显示全部楼层
附件里面哪有123456789这些文字?
 楼主| 发表于 2012-12-31 20:27:06 | 显示全部楼层
不好意思,忘了重新上传一个了,谢谢各位

本帖子中包含更多资源

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

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

本版积分规则

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

GMT+8, 2025-6-2 16:30 , Processed in 0.194148 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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