找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 4851|回复: 19

[求助] 用lisp调用-layer命令如何退出?

[复制链接]

已领礼包: 1077个

财富等级: 财源广进

发表于 2013-8-7 18:03:33 | 显示全部楼层 |阅读模式

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

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

×
    本人lisp水平基本仅限于command命令一个,但已经给我绘图工作带来了许多方便,但现在用command也用出了问题,请教各位大侠
    这是我编的一个直接建筑条件图变结构图的小程序,说白了就是把没用的图层冻结掉。
;;; -------------------------------------------------------------------------
;;;消灭建筑
;;命令XMJZ
(DEFUN C:XMJZ ()
(command "-layer" "f" "A-DOOR-IDEN" "f" "A-DOOR-FIRE-IDEN" "F" "A-PKNG-TSRP" "F" "A-flor-strs" "F" "A-ANNO-TEXT" "F" "a-anno-dims" "F" "A-PKNG-TURN" "f" "Q去建筑" "F" "A-AXIDIM" "f" "a-A符标" "f" "A-ASIS" "F" "填充")
)

   我的问题是:
     1、这个命令执行完以后,还是在-layer的透明命令中,我必须再按个回车才能回到命令行中。如何让他直接回到命令行中?
           PS:对于这个命令,多按个回车其实也没什么,可有时候我想和别的命令组合的时候,会给我带来一些麻烦。因为它不退出-layer命令,无法顺利执行下面的command。
     2、因为我需要冻结的图层过多, 一个这个命令不够写,再多程序就不认了。我需要再补写个XMJZ1,XMHZ2.....能否一个命令搞定呢?


论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2013-8-7 18:12:43 | 显示全部楼层
可以这样
  1. (DEFUN C:XMJZ ()
  2.   (setvar "cmdecho" 0)
  3.   (command
  4.     "-layer"
  5.     "f"
  6.     "A-DOOR-IDEN,A-DOOR-FIRE-IDEN,A-PKNG-TSRP,A-flor-strs,A-ANNO-TEXT,a-anno-dims,A-PKNG-TURN,Q去建筑,A-AXIDIM,a-A符标,A-ASIS,填充"
  7.     ""
  8.   )
  9.   (princ)
  10. )

点评

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

使用道具 举报

已领礼包: 6530个

财富等级: 富甲天下

发表于 2013-8-7 18:10:46 | 显示全部楼层
后面再加一对引号(相当于回车)就可以退出了。
(DEFUN C:XMJZ ()
(command "-layer" "f" "A-DOOR-IDEN" "f" "A-DOOR-FIRE-IDEN" "F" "A-PKNG-TSRP" "F" "A-flor-strs" "F" "A-ANNO-TEXT" "F" "a-anno-dims" "F" "A-PKNG-TURN" "f" "Q去建筑" "F" "A-AXIDIM" "f" "a-A符标" "f" "A-ASIS" "F" "填充" "")
)

另一个问题也就不成问题了。

点评

奇怪,我是知道加“”相当于回车的,原来编的时候加过,可怎么试也不行,这次再改居然行了,难道是“光环”效应?  详情 回复 发表于 2013-8-7 19:22
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 19个

财富等级: 恭喜发财

发表于 2013-8-7 18:11:30 | 显示全部楼层
如果你需要再按两个回车退出,那么就在程序代码最后 加两个 "" ""

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

使用道具 举报

已领礼包: 1077个

财富等级: 财源广进

 楼主| 发表于 2013-8-7 19:18:42 | 显示全部楼层

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

使用道具 举报

已领礼包: 1077个

财富等级: 财源广进

 楼主| 发表于 2013-8-7 19:22:55 | 显示全部楼层
ll_j 发表于 2013-8-7 18:10
后面再加一对引号(相当于回车)就可以退出了。
(DEFUN C:XMJZ ()
(command "-layer" "f" "A-DOOR-IDEN"  ...

奇怪,我是知道加“”相当于回车的,原来编的时候加过,可怎么试也不行,这次再改居然行了,难道是“光环”效应?

点评

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

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2013-8-7 19:32:00 | 显示全部楼层
hardthinking 发表于 2013-8-7 19:22
奇怪,我是知道加“”相当于回车的,原来编的时候加过,可怎么试也不行,这次再改居然行了,难道是“光环 ...

你是不是把全角的引号给输上去了。

点评

应该不是,全角半角那么明显我应该分不错,,其实我编好多命令都遇到过这个问题。正常的在CAD里一步一步走,没问题。可做成lisp的就不行了。用cad自带的“动作录像器”也不行,就是死活不认回车,,现在忘记是哪些命  详情 回复 发表于 2013-8-7 19:45
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1077个

财富等级: 财源广进

 楼主| 发表于 2013-8-7 19:45:39 | 显示全部楼层
newer 发表于 2013-8-7 19:32
你是不是把全角的引号给输上去了。

应该不是,全角半角那么明显我应该分不错,,其实我编好多命令都遇到过这个问题。正常的在CAD里一步一步走,没问题。可做成lisp的就不行了。用cad自带的“动作录像器”也不行,就是死活不认回车,,现在忘记是哪些命令了,等到时候实际遇到了再请教吧!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1077个

财富等级: 财源广进

 楼主| 发表于 2013-8-8 15:25:12 | 显示全部楼层
请看我做的这个协调图层的命令,为什么这个加双引号不能退出命令呢?
;;协调图层
(DEFUN C:XT ()
(command "-LAYER" "e" "*" "")
(prompt "图层已协调")
)

点评

记住一点就行了,在CAD下面LAYER命令里面,交互输入什么,在函数里面就加什么,输入一次回车,就加一个个 “”对应。  详情 回复 发表于 2013-8-8 15:41
E是个什么选项? 在命令行输入 -layer就知道需要哪些操作了  发表于 2013-8-8 15:27
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 7071个

财富等级: 富甲天下

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

使用道具 举报

已领礼包: 19个

财富等级: 恭喜发财

发表于 2013-8-8 15:41:30 | 显示全部楼层
hardthinking 发表于 2013-8-8 15:25
请看我做的这个协调图层的命令,为什么这个加双引号不能退出命令呢?
;;协调图层
(DEFUN C:XT ()

记住一点就行了,在CAD下面LAYER命令里面,交互输入什么,在函数里面就加什么,输入一次回车,就加一个个 “”对应。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1077个

财富等级: 财源广进

 楼主| 发表于 2013-8-8 16:40:26 | 显示全部楼层
真的不行啊,我做了我的操作视频,请大侠们看一下,如果小看不清楚,直接单击这个图片,就可以放大。放大后,再按右上角的最大化按钮效果更佳。
1.gif
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 6530个

财富等级: 富甲天下

发表于 2013-8-8 18:09:45 | 显示全部楼层
hardthinking 发表于 2013-8-8 16:40
真的不行啊,我做了我的操作视频,请大侠们看一下,如果小看不清楚,直接单击这个图片,就可以放大。放大后 ...

仔细看命令提示:“图形中没有未协调图层”
出现此提示,再输入“*”,则函数已经出错,命令没有退出,但command函数已经退出了,所以再回车已经没用了。
因为command函数正常返回值都是nil,所以不太好作为判别条件,所以要解决这个问题,大概就要跟踪出错函数,看看函数出错信息,再决定这样处理。这方面牢固版主更强一些,希望他能出手解决,不过,你最好还是先说清楚你这样做的目的,大家看看是不是还有更灵活的办法。

点评

哦,原来是退出了command命令了,,了解了,,其实我的目的就是当图纸出现未协调图层的时候,弄一个让他马上协调图层的快捷命令,不用再进图层管理器 框选 协调。我这个命令 在有未协调图层的时候是有效的。 没有未  详情 回复 发表于 2013-8-8 19:42
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1077个

财富等级: 财源广进

 楼主| 发表于 2013-8-8 19:42:55 | 显示全部楼层
ll_j 发表于 2013-8-8 18:09
仔细看命令提示:“图形中没有未协调图层”
出现此提示,再输入“*”,则函数已经出错,命令没有退出, ...

哦,原来是退出了command命令了,,了解了,,其实我的目的就是当图纸出现未协调图层的时候,弄一个让他马上协调图层的快捷命令,不用再进图层管理器 框选 协调。我这个命令 在有未协调图层的时候是有效的。 没有未协调图层的时候就出现问题,我觉得它不该出问题,就问了下,,,谢谢哈,,现在明白为什么了
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 2个

财富等级: 恭喜发财

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-25 08:33 , Processed in 0.260505 second(s), 74 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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