如何用autolisp获取cad图形文件中直线和多义线的图层名

所属分类: 软件教程 / 图形图像 阅读数: 1054
收藏 0 赞 0 分享

如何用autolisp获取cad图形文件中直线和多义线的图层名?
用(cdr(assoc 8 (entget (car (entsel)))))就可以得到直线和其他实体的图层名。
想要的程序是:点取一条直线,得到该直线的层名,然后将该层所有直线的线宽改为某个值。我现在想要的是“点取直线,获得层名”这一步。

(setq lyname (cdr(assoc 8 (entget (car (entsel)))))) that's it!, What else d
(setq lyname (cdr(assoc 8 (entget (car (entsel)))))) that's it!, What else do you want?   
绘图过程中经常会碰到这种情况:某个图层已被“清空”,但却无法将其删除,究竟是什么回事?其实,图层中还可能含有不可见的实体。例如,使用mtext命令输入一连串空格,即产生一个不可见实体。在实际绘图中,我们当然不会特意去建立这样的实体,但无意的操作或者ACAD应用程序的运行都有可能产生“副产品”,要删除这些不可见实体,如果单靠现成的ACAD命令是难以完成的,必须借助程序来进行,下面的程序能够删除指定图层内的一切简单实体,从而能让用户进一步使用layer或purge命令来删除图层。
需要注意的是,个别图层即便使用下列程序处理后,仍可能关联其他对象(注意,对象的概念较实体广得多,包括标注样式等非实体对象)而不能被删除,除非指定的图层不再关联图块或者不含有任何用户定义的标注样式。这些图层是:
1.被块定义参照的图层,如a层含有一个图块,块内某条线属于b层;
2.名字为 DEFPOINTS 的特殊图层(为某个标注样式所用)。
程序清单如下:
(defun c:de(/ et ln lay_name ss li)
(princ "删除指定图层内的实体\n")
(setq li (entsel"\n请选择指定图层内的任何一个实体<回车直接输入层名>:"))
(if li
    (progn ;选择一个实体
         (setq et (entget(nth 0 li)))
         (setq lay_name (cdr (assoc 8 et)))
    )
    (progn ;直接输入层名,理想的办法是采用列表框选择,大家可以自己试试。
         (princ"输入层名:")
         (while (= ln nil)
                (setq lay_name (getstring))
                (setq ln (cdr (assoc 2 (tblnext "layer" t))))
                (while (and ln (/= ln "%") )
                       (if (/= ln lay_name)
                           (setq ln (cdr (assoc 2 (tblnext "layer"))))
                           (setq ln "%")
                           ;如指定的图层名已存在,则设“%”标志
                        )
                )
               (if (/= ln "%") ;错误处理
                   (princ"指定的图层不存在,请重新输入:")
                )
         )
    )
)
(setq ss (ssget "X"(list(cons 8 lay_name)))) ;构造选择集
(COMMAND "-layer" "u" lay_name "")           ;图层解锁
(COMMAND "ERASE" ss "")                      ;清除所有实体
(princ "\n清除完毕!")
(princ)
)
;程序结束

更多精彩内容其他人还在看

XMind7如何导出甘特图为图片 xmind 7导出甘特图教程

甘特图是思维导图中用来进行项目管理的最佳手段,XMind 7不光能够进行甘特图操作还能将成果进行导出,保存为多种格式
收藏 0 赞 0 分享

solidworks怎么绘制钣金成型工具?

solidworks怎么绘制钣金成型工具?使用钣金成型工具绘制图形很简单,但是很多情况下也有可能导致绘制不成型,该怎么办呢?下面分享solidworks钣金成型工具的使用方法,需要的朋友可以进来参考一下
收藏 0 赞 0 分享

Adobe Flash Player 20.0.0.267更新下载:重要Bug修复和安全更新

Adobe Flash Player又再次更新了,这次版本号是20.0.0.267,主要为大家带来了重要Bug修复和安全更新,建议网友们尽快下载更新
收藏 0 赞 0 分享

美图秀秀怎么快速做出分割字效果?

分割字是在美图秀秀中一个比较复杂的功能,对于大多数用户来说可能都没有听所过这个,但是,一旦掌握了这个技巧,我们就能随意将字体分割,形成比较具有个性化的分割字。那么美图秀秀怎么快速做出分割字效果?下面我们来看看吧
收藏 0 赞 0 分享

PS CC滤镜库无法兼容Mac OS X 10.10.5,且更新不了的解决方法

下面小编为大家介绍PS CC滤镜库无法兼容Mac OS X 10.10.5,且更新不了的解决方法,对于碰到同样问题却不知道怎么解决的朋友可以参考本文,希望这篇文章能对大家有所帮助
收藏 0 赞 0 分享

用美图秀秀快速给图片添加漂亮的饰品

如果想要在下载的图片上加上一些装饰品,小物件怎么办呢?今天小编为大家分享用美图秀秀快速给图片添加漂亮的饰品方法,不会的朋友快快来学习吧
收藏 0 赞 0 分享

win10系统中怎么删除Adobe Reader残余文件夹CMap?

win10系统中怎么删除Adobe Reader残余文件夹CMap?电脑中Adobe ReaderPDF阅读器怎么中残余文件夹cmap很大,该怎么办呢?怎么删除?下面分享win10删除adobe残余的方法
收藏 0 赞 0 分享

美图秀秀背景虚化特效该怎么做?美图秀秀虚拟背景的制作方法

美图秀秀背景虚化特效该怎么做?之前背景虚化都是在ps中做的,虽然不麻烦,但是ps软件很大,安装很麻烦,现在使用美图秀秀也可以做虚化背景啦,下面分享美图秀秀虚拟背景的制作方法
收藏 0 赞 0 分享

faststone capture截图神器怎么更改图片默认保存格式?

faststone capture截图神器怎么更改图片默认保存格式?使用faststone capture截图是png格式的,太大了,想设置成jpg格式的该怎么设置呢?下面分享faststone capture更改截图默认格式的教程
收藏 0 赞 0 分享

ACDSee怎么量重命名?acdsee重命名的详细教程

ACDSee怎么量重命名?很多图片的格式和名称是不和要求的,想改成统一规范的图片文件名,一个一个的修改太慢了,怎么批量修改呢?下面分享acdsee重命名的详细教程,需要的朋友可以参考下
收藏 0 赞 0 分享
查看更多