找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 5611|回复: 24

[求助] [求助]:求r14全部锁定层lisp

[复制链接]
发表于 2003-11-28 17:26:58 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
下面是我找到的全部解锁图层lisp,全部锁定层lisp应该怎样编呢?
(defun C:yy()
(command "LAYER" "S" "" "U" "*" "")
)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2003-11-28 20:29:14 | 显示全部楼层
将上面的"U"改成"LO"就行了
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-12-1 12:09:43 | 显示全部楼层
最初由 zhynt 发布
[B]将上面的"U"改成"LO"就行了 [/B]


能编一个打开全部图层的lisp,不要用command,我想透明使用!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-12-2 21:43:22 | 显示全部楼层
支持!最好谁能帮我们编个这样的lisp
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-12-3 01:06:07 | 显示全部楼层
很久以前自己编的,那时候才刚刚学lsp,呵呵

  1. ;打开所有层;
  2. (defun c:laa ( )
  3.   (command "layer" "on" "*" ""))
  4. ;copy layer entities to another layer
  5. ;layer copy
  6. (defun c:lac (/ ss nm e la)
  7. (print "<拷贝到另一层> obj:")(setq ss(ssget))
  8. (setq nm (car (entsel "\n target objects for new layer:"))
  9.         e (entget nm)
  10.        la (cdr (assoc 8 e))
  11. )
  12. (command "copy" ss "" "0,0" "0,0" "change" ss "" "p" "la" la "")
  13. )
  14. ;设目标实体所在图层为当前层并关其它层
  15. (defun c:lao (/ e n n1 nn)
  16.   (setq e (car (entsel "\nobject for layer/on:"))
  17.         n (cdr (assoc 8 (entget e))) n1 n nn n)
  18.   (while (setq e (car (entsel "\nobject for orther layer/on:")))
  19.       (setq n (cdr (assoc 8 (entget e)))
  20.             nn (strcat nn "," n))
  21.   )
  22.   (command "layer" "s" n1 "off" "*" "" "on" nn "")
  23. )
  24. ;设目标实体所在图层
  25. (defun c:las (/ e)
  26.   (setq e (car (entsel "\nobject for layer-set:"))
  27.         lan (cdr (assoc 8 (entget e))))
  28.   (command "layer" "s" lan "")
  29. )
  30. ;解锁目标实体所在图层
  31. (defun c:lau (/ e n)
  32.   (while (setq e (car (entsel "\nobject for unlock-layer:")))
  33.     (progn
  34.       (setq n (cdr (assoc 8 (entget e))))
  35.       (command "layer" "u" n "")
  36. )))

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-12-3 04:18:15 | 显示全部楼层
由于对vl不是很熟,于是就照着葫芦画了一只瓢,画地不是很好。
ul 将所有的图层解锁
ll 将所有的图层锁定
lon 打开所有的图层
loff 关闭所有的图层
可以透明使用噢。


  1. ;;;将所有的图层解锁
  2. (defun c:UL (/ lay_n a layerObj AcadObject AcadDocument mSpace)
  3.   (VL-LOAD-COM)
  4.   (setq        AcadObject   (vlax-get-acad-object)
  5.         AcadDocument (vla-get-ActiveDocument AcadObject)
  6.         mSpace             (vla-get-ModelSpace AcadDocument)
  7.   )
  8.   (setq a t)
  9.   (tblnext "layer" a)
  10.   (while (setq lay_n (tblnext "layer" a))
  11.     (setq a nil)
  12.     (setq lay_n (cdr (assoc 2 lay_n)))
  13.     (setq LayerObj (vla-add (vla-get-Layers AcadDocument) lay_n))
  14.     (if        (= (vla-get-lock LayerObj) :vlax-true)
  15.       (vla-put-Lock LayerObj :vlax-false)
  16.     )
  17.   )(princ)
  18. )
  19. ;;;;将所有的图层锁定
  20. (defun c:LL (/ lay_n a layerObj AcadObject AcadDocument mSpace)
  21.   (VL-LOAD-COM)
  22.   (setq        AcadObject   (vlax-get-acad-object)
  23.         AcadDocument (vla-get-ActiveDocument AcadObject)
  24.         mSpace             (vla-get-ModelSpace AcadDocument)
  25.   )
  26.   (setq a t)
  27.   (tblnext "layer" a)
  28.   (while (setq lay_n (tblnext "layer" a))
  29.     (setq a nil)
  30.     (setq lay_n (cdr (assoc 2 lay_n)))
  31.     (setq LayerObj (vla-add (vla-get-Layers AcadDocument) lay_n))
  32.     (if        (= (vla-get-lock LayerObj) :vlax-false)
  33.       (vla-put-Lock LayerObj :vlax-true)
  34.     )
  35.   )(princ)
  36. )
  37. (defun c:Lon (/ lay_n a layerObj AcadObject AcadDocument mSpace)
  38.   (VL-LOAD-COM)
  39.   (setq        AcadObject   (vlax-get-acad-object)
  40.         AcadDocument (vla-get-ActiveDocument AcadObject)
  41.         mSpace             (vla-get-ModelSpace AcadDocument)
  42.   )
  43.   (setq a t)
  44.   (tblnext "layer" a)
  45.   (while (setq lay_n (tblnext "layer" a))
  46.     (setq a nil)
  47.     (setq lay_n (cdr (assoc 2 lay_n)))
  48.     (setq LayerObj (vla-add (vla-get-Layers AcadDocument) lay_n))
  49.     (if        (= (vla-get-layeron LayerObj) :vlax-false)
  50.       (vla-put-layeron LayerObj :vlax-true)
  51.     )
  52.   )(princ)
  53. )
  54. (defun c:Loff (/ lay_n a layerObj AcadObject AcadDocument mSpace)
  55.   (VL-LOAD-COM)
  56.   (setq        AcadObject   (vlax-get-acad-object)
  57.         AcadDocument (vla-get-ActiveDocument AcadObject)
  58.         mSpace             (vla-get-ModelSpace AcadDocument)
  59.   )
  60.   (setq a t)
  61.   (tblnext "layer" a)
  62.   (while (setq lay_n (tblnext "layer" a))
  63.     (setq a nil)
  64.     (setq lay_n (cdr (assoc 2 lay_n)))
  65.     (setq LayerObj (vla-add (vla-get-Layers AcadDocument) lay_n))
  66.     (if        (= (vla-get-layeron LayerObj) :vlax-true)
  67.       (vla-put-layeron LayerObj :vlax-false)
  68.     )
  69.   )(princ)
  70. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-12-3 10:42:13 | 显示全部楼层
最初由 zhynt 发布
[B]由于对vl不是很熟,于是就照着葫芦画了一只瓢,画地不是很好。
ul 将所有的图层解锁
ll 将所有的图层锁定
lon 打开所有的图层
loff 关闭所有的图层
可以透明使用噢。

[code]
;;;将所有的图层解锁
(defun c... [/B]


我一直在14中画图,能否不用vl函数,将程序改改!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-12-3 23:19:59 | 显示全部楼层
zhynt  
为什么说是可以透明使用呢?

回上贴
r14下其实也可以写的很简单
举例:
(defun c:lon () (command "_.layer" "on" "*"  "") ;打开图层
(defun c:loff () (command "_.layer" "off" "*" "" "") ;关闭所有,保留当前层
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-12-4 08:15:03 | 显示全部楼层
最初由 陌生人 发布
[B]zhynt  
为什么说是可以透明使用呢?

回上贴
r14下其实也可以写的很简单
举例:
(defun c:lon () (command "_.layer" "on" "*"  "") ;打开图层
(defun c:loff () (command "_.layer" "off" "*" "" "") ;关闭所... [/B]


透明使用就是在运行其他命令(如move,copy等)时,还可以使用本命令,如我们常用的zoom,pan,如果lisp程序中调用了commnad,就不可以透明使用了,所以,楼上的lisp不能透明调用。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-12-9 22:49:21 | 显示全部楼层
最初由 zhynt 发布
[B]由于对vl不是很熟,于是就照着葫芦画了一只瓢,画地不是很好。
ul 将所有的图层解锁
ll 将所有的图层锁定
lon 打开所有的图层
loff 关闭所有的图层
(defun c... [/B]


zhynt 写得烦琐了一点。我来简化一下:
以冻结所有图层为例:(这个比较麻烦一点,要防止不允许冻结当前图层,所以用它来做例子)

  1. [FONT=courier new]
  2. (defun C:FL ( / layers layer)
  3.   (setq layers (vla-get-layers (vla-get-activedocument (vlax-get-acad-object))))
  4.   (vlax-for layer layers
  5.     (vl-catch-all-apply (function (lambda () (vla-put-freeze layer :vlax-true))) nil)
  6.   )
  7.   (princ)
  8. )[/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-12-10 02:12:46 | 显示全部楼层
好像编程的必要不大,
若要全部off,直接在命令中途输入:
'-layer
off
*

就可以了,其它依次类推即可。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-12-11 08:14:43 | 显示全部楼层
最初由 Qlin 发布
[B]好像编程的必要不大,
若要全部off,直接在命令中途输入:
'-layer
off
*

就可以了,其它依次类推即可。 [/B]


有必有的,不然经常使用的话,都要运行好几次,一个命令不是更方便不?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-12-23 14:15:36 | 显示全部楼层
在扩展工具里就有,只是没有图标而已,可用命令layon
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-12-23 19:31:10 | 显示全部楼层
最初由 coolzhb 发布
[B]

有必有的,不然经常使用的话,都要运行好几次,... [/B]

也可以写在cad的按钮菜单里面.点一下就执行.
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-6-24 16:00:33 | 显示全部楼层
记得有人发过点物关层的LISP,好像比这些好用!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2025-9-27 23:02 , Processed in 0.203733 second(s), 59 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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