找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1835|回复: 19

[求助] [求助]:为什么我想锁定选择对象的图层,而不行呀?

[复制链接]
发表于 2007-6-23 11:08:11 | 显示全部楼层 |阅读模式

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

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

×
ET工具中的图层锁定和解锁命令,只能点选。操作对象只能是一个一个的。
但是layer命令中的,LO和U参数,确是可以操作多个对象的,可以支持窗选。所以我想用这个LAYER命令做一个多选锁定图层和多选解锁图层的程序,但是为什么不行呢?不解中。其它的CAD命令基本上都是可以这样操作的呀?为什么这个不行呀,请求高手们指点一二。
由于我对LISP基本上是不懂,如果太复杂的话,还是烦请大侠们能给个全码。谢谢。


  1.   [FONT=courier new]
  2. (defun c:ss ()
  3.   (princ "\n*** 锁定对象所在的图层 ***")
  4.   (setq ss (ssget))
  5.   (command "layer" "lo" "" ss "")
  6.   (princ)
  7. )
  8.   [/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2007-6-23 12:01:52 | 显示全部楼层
直接使用ACAD命令就可以解决你的问题.
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-6-23 12:07:28 | 显示全部楼层
楼上的不会是让我直接到图层状态框中,一个个的点击锁头,锁定吧?
那样不是把你搞死?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2007-6-23 13:08:29 | 显示全部楼层
(command "layer" "lo" "" ss "") 这句好像不太对哦,ssget 选择后应用 sname 处理 再用enget涵数
最后用assoc 8 提取图层。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-6-23 13:26:54 | 显示全部楼层
楼上的话,太复杂了。不懂ing
楼主能否帮忙完善一下?
谢谢!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2007-6-23 17:40:39 | 显示全部楼层
(defun c:ss ()
  (princ "\n*** 锁定对象所在的图层 ***")
  (setq ss (ssget))
(setq i 0)
(repeat (sslength ss)
(setq a (ssname ss i))
(setq b (enget a))
(setq c (assoc 8 b));;;;;;;;;;图层的组码不知道是不是8,我忘了。
  (command "layer" "lo" "" c "")
  (princ)
(setq i (+  i 1))
)
)
我没有测试过,不知道能不能用。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-6-23 18:18:38 | 显示全部楼层
正在打开 R14 格式的文件。
正在用 [@extfont2.shx] 替换 [txt.shx]。
正在用 [@extfont2.shx] 替换 [txt.shx]。
正在重生成模型。

AutoCAD 菜单实用程序已加载。

Autodesk DWG。  此文件上次由 Autodesk 应用程序或 Autodesk 许可的应用程序保存,是可靠的 DWG。

命令: '_.zoom _e
命令:  <栅格 关>
命令: (defun c:ss ()
(_> (princ "\n*** 锁定对象所在的图层 ***")
(_> (setq ss (ssget))
(_> (setq i 0)
(_> (repeat (sslength ss)
((_> (setq a (ssname ss i))
((_> (setq b (enget a))
((_> (setq c (assoc 8 b));;;;;;;;;;图层的组码不知道是不是8,我忘了。
((_> (command "layer" "lo" "" c "")
((_> (princ)
((_> (setq i (+ i 1))
((_> )
(_> )
C:SS

命令: ss
*** 锁定对象所在的图层 ***
选择对象: 指定对角点: 找到 9 个

选择对象:  ; 错误: no function definition: ENGET

命令:

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

使用道具 举报

 楼主| 发表于 2007-6-23 18:23:47 | 显示全部楼层
正在打开 R14 格式的文件。
正在用 [@extfont2.shx] 替换 [txt.shx]。
正在用 [@extfont2.shx] 替换 [txt.shx]。
正在重生成模型。

AutoCAD 菜单实用程序已加载。

Autodesk DWG。  此文件上次由 Autodesk 应用程序或 Autodesk 许可的应用程序保存,是可靠的 DWG。

命令: '_.zoom _e
命令:  <栅格 关>
命令: (defun c:ss ()
(_> (princ "\n*** 锁定对象所在的图层 ***")
(_> (setq ss (ssget))
(_> (setq i 0)
(_> (repeat (sslength ss)
((_> (setq a (ssname ss i))
((_> (setq b (enget a))
((_> (setq c (assoc 8 b));;;;;;;;;;图层的组码不知道是不是8,我忘了。
((_> (command "layer" "lo" "" c "")
((_> (princ)
((_> (setq i (+ i 1))
((_> )
(_> )
C:SS

命令: ss
*** 锁定对象所在的图层 ***
选择对象: 指定对角点: 找到 9 个

选择对象:  ; 错误: no function definition: ENGET

命令:

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

使用道具 举报

已领礼包: 10404个

财富等级: 富甲天下

发表于 2007-6-23 19:09:43 | 显示全部楼层
[php]
(defun c:ss ()
(princ "\n*** 锁定对象所在的图层 ***")
(setq ss (ssget))
(setq i -1)
(repeat (sslength ss)
  (setq c (cdr (assoc 8 (enget (ssname ss (setq i (1+ i)))))))
  (command "layer" "lo" "" c "")
)
(princ)
)
[/php]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-6-23 19:15:43 | 显示全部楼层
正在打开 R14 格式的文件。
正在用 [@extfont2.shx] 替换 [txt]。
正在用 [@extfont2.shx] 替换 [txt.shx]。
正在重生成模型。

AutoCAD 菜单实用程序已加载。

Autodesk DWG。  此文件上次由 Autodesk 应用程序或 Autodesk 许可的应用程序保存,是可靠的 DWG。

命令: (defun c:ss ()
(_> (princ "\n*** 锁定对象所在的图层 ***")
(_> (setq ss (ssget))
(_> (setq i -1)
(_> (repeat (sslength ss)
((_>   (setq c (cdr (assoc 8 (enget (ssname ss (setq i (1+ i)))))))
((_>   (command "layer" "lo" "" c "")
((_> )
(_> (princ)
(_> )
C:SS

命令: ss
*** 锁定对象所在的图层 ***
选择对象: 指定对角点: 找到 109 个

选择对象:  ; 错误: no function definition: ENGET

命令:

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

使用道具 举报

发表于 2007-6-23 19:17:25 | 显示全部楼层

  1.   [FONT=courier new]
  2. (defun c:ss ()
  3.   (princ "\n*** 锁定对象所在的图层 ***")
  4.   (setq ss (ssget))
  5.   (setq i 0)
  6.   (repeat (sslength ss)
  7.     (setq a (ssname ss i))
  8.     (setq b (entget a))
  9.     (setq c (assoc 8 b) c (cdr c));;
  10.     (command "layer" "lo" c "" "")
  11.     (setq i (+ i 1))
  12.   )
  13.   (princ)
  14. )
  15.   [/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2007-6-23 19:34:37 | 显示全部楼层

  1.   [FONT=courier new]
  2. (defun c:ss ()
  3.   (princ "\n*** 锁定对象所在的图层 ***")
  4.   (setq ss (ssget))
  5.   (setq i 0)
  6.   (repeat (sslength ss)
  7.     (setq a (ssname ss i))
  8.     (setq b (entget a))
  9.     (setq c (assoc 8 b) c (cdr c));;
  10.     (command "layer" "lo" c "" "")
  11.     (setq i (+ i 1))
  12.   )
  13.   (princ)
  14. )

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

使用道具 举报

 楼主| 发表于 2007-6-23 20:01:12 | 显示全部楼层
命令: ss
*** 锁定对象所在的图层 ***
选择对象: 指定对角点: 找到 3 个

选择对象:
layer
当前图层:  0
输入选项
[?/生成(M)/设定(S)/新建(N)/开(ON)/关(OFF)/颜色(C)/线型(L)/线宽(LW)/材质(MAT)/打印(P)/冻结(F)/解冻(T)/锁
定(LO)/解锁(U)/状态(A)]: lo
输入要锁定的图层名列表或 <选择对象>: 标注 输入选项
[?/生成(M)/设定(S)/新建(N)/开(ON)/关(OFF)/颜色(C)/线型(L)/线宽(LW)/材质(MAT)/打印(P)/冻结(F)/解冻(T)/锁
定(LO)/解锁(U)/状态(A)]:
命令: SS 未知命令“SS”。按 F1 查看帮助。

命令: layer
当前图层:  0
输入选项
[?/生成(M)/设定(S)/新建(N)/开(ON)/关(OFF)/颜色(C)/线型(L)/线宽(LW)/材质(MAT)/打印(P)/冻结(F)/解冻(T)/锁
定(LO)/解锁(U)/状态(A)]: lo
输入要锁定的图层名列表或 <选择对象>: 道路 输入选项
[?/生成(M)/设定(S)/新建(N)/开(ON)/关(OFF)/颜色(C)/线型(L)/线宽(LW)/材质(MAT)/打印(P)/冻结(F)/解冻(T)/锁
定(LO)/解锁(U)/状态(A)]:
命令: SS 未知命令“SS”。按 F1 查看帮助。

命令: layer
当前图层:  0
输入选项
[?/生成(M)/设定(S)/新建(N)/开(ON)/关(OFF)/颜色(C)/线型(L)/线宽(LW)/材质(MAT)/打印(P)/冻结(F)/解冻(T)/锁
定(LO)/解锁(U)/状态(A)]: lo
输入要锁定的图层名列表或 <选择对象>: 道路 输入选项
[?/生成(M)/设定(S)/新建(N)/开(ON)/关(OFF)/颜色(C)/线型(L)/线宽(LW)/材质(MAT)/打印(P)/冻结(F)/解冻(T)/锁
定(LO)/解锁(U)/状态(A)]:
命令: SS 未知命令“SS”。按 F1 查看帮助。

命令:



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

使用道具 举报

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

使用道具 举报

发表于 2007-6-23 22:57:24 | 显示全部楼层
  1. [FONT=courier new](defun c:test ()
  2.   (princ "\n*** 锁定对象所在的图层 ***")
  3.   (setq        ss (ssget)
  4.         i  -1
  5.   )
  6.   (while (setq s1 (ssname ss (setq i (1+ i))))
  7.     (command "layer" "lo" (cdr (assoc 8 (entget s1))) "")
  8.   )
  9.   (princ)
  10. )[/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-17 08:54 , Processed in 0.475119 second(s), 59 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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