明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1112|回复: 7

[提问] 很奇怪的问题,不知道两段指令有什么不同?请教各位大师一下

[复制链接]
发表于 2015-1-7 08:14:51 | 显示全部楼层 |阅读模式
本帖最后由 zkq1212 于 2015-1-7 11:21 编辑

指令1
;;
(defun c:0 ()
(if (setq ss (ssget "i" ))
  (command "chprop" ss "" "c" "BYLAYER" "lt" "BYLAYER" "la" "0" "lw" "BYLAYER" "")
  (command "Layer" "s" "0" "")
)
(princ)
)
;;
指令2
;;
(defun c:0 ()
(setvar "cmdecho" 0 )
(if (setq ss (ssget "i" ))
  (vl-cmdf "chprop" (ssget "p") "" "c" "BYLAYER" "lt" "BYLAYER" "la" "0" "lw" "BYLAYER" "")
  (command "Layer" "s" "0" "")
)
(setvar "cmdecho" 1 )
(princ)
)
;;
两段指令在CAD08及以下都可以运行。指令1在CAD09及以上运行时报错,指令2则可以运行。很奇怪的问题,不知道两段指令有什么不同?请教各位大师一下
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2015-1-7 09:04:09 | 显示全部楼层
指令2关闭了屏幕提示。
 楼主| 发表于 2015-1-7 11:20:13 | 显示全部楼层
本帖最后由 zkq1212 于 2015-1-7 11:22 编辑
ZZXXQQ 发表于 2015-1-7 09:04
指令2关闭了屏幕提示。


不关闭屏幕提示也是一样的结果,指令2的(setvar "cmdecho" 0 )语句是调试结束后加上的。
发表于 2015-1-7 11:46:47 | 显示全部楼层
转用Gu_xl 的回复:
vl-cmdf 比 command 执行速度快,两者的区别是:
1、command开始后按自左向右逐个参数运行command,当发现后面参数有错时Autocad命令可能已经开始执行了,而vl-cmdf命令在执行前要对所有参数进行检查,如检测到错误,vl-cmdf将不再执行Autocad命令。所以使用vl-cmdf会比较安全。
2、如果表达式包含对其他函数的调用,vl-cmdf在执行命令前调用函数,比较安全,而command则在AutoCAD命令开始后再调用函数。
3、vl-cmdf 允许(Getxxx)一类输入函数在这个函数内部执行。
4、vl-cmdf 中使用双元表、测试函数、较长的表达式等,可能会出错!
 楼主| 发表于 2015-1-7 12:27:13 | 显示全部楼层
ZZXXQQ 发表于 2015-1-7 09:04
指令2关闭了屏幕提示。

指令1在cad2011中运行显示
命令: 0
chprop 找到 4 个

输入要更改的特性 [颜色(C)/图层(LA)/线型(LT)/线型比例(S)/线宽(LW)/厚度(T)/透明度(TR)/材质(M)/注释性(A)]:
无效的选项关键字。
发表于 2015-1-7 20:18:33 | 显示全部楼层
这样改下试试:
(command "chprop" ss "" "C" "BYLAYER" "LT" "BYLAYER" "LA" "0" "LW" "BYLAYER" "")
 楼主| 发表于 2015-1-8 10:05:39 | 显示全部楼层
ZZXXQQ 发表于 2015-1-7 20:18
这样改下试试:
(command "chprop" ss "" "C" "BYLAYER" "LT" "BYLAYER" "LA" "0" "LW" "BYLAYER" "")

还是一样的,我觉得非常奇怪。
 楼主| 发表于 2015-1-8 14:13:01 | 显示全部楼层
本帖最后由 zkq1212 于 2015-1-8 14:48 编辑
zkq1212 发表于 2015-1-7 11:20
不关闭屏幕提示也是一样的结果,指令2的(setvar "cmdecho" 0 )语句是调试结束后加上的。


哈哈,不知道改了什么变量,两段指令都不能用了.同时把对话框都开开了
ATTDIA =0
EXPERT=0
FILEDIA =1
不知道还有什么变量?

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

本版积分规则

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

GMT+8, 2025-5-23 09:01 , Processed in 0.176636 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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