明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2242|回复: 8

[讨论] vl-catch-all-apply用在vl-cmdf不管用了

[复制链接]
发表于 2011-3-13 16:44:21 | 显示全部楼层 |阅读模式
  1. (setq err (vl-catch-all-apply 'vl-cmdf (list "_insert" "yr_ZH" pnt "1" "1" ang str)))
  2. (if (vl-catch-all-error-p err)
  3.   (princ "\n程序在搜索路径未找到必须的属性块:yr_ZH。")
  4. )

vl-cmdf在操作前检查参数,怎么上面检查不出来?


谢谢




"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2011-3-13 20:32:35 | 显示全部楼层
本帖最后由 Gu_xl 于 2011-3-13 20:33 编辑

vl-cmdf在传递命令前先计算每个参数,所以检测到了无效值,就不再继续执行命令,返回nil,此时vl-cmdf相对于vl-catch-all-apply 来说,其是正确执行的,所以vl-catch-all-apply 就不管用了!
 楼主| 发表于 2011-3-14 08:21:14 | 显示全部楼层
本帖最后由 yrgui 于 2011-3-15 14:17 编辑
Gu_xl 发表于 2011-3-13 20:32
vl-cmdf在传递命令前先计算每个参数,所以检测到了无效值,就不再继续执行命令,返回nil,此时vl-cmdf相对于 ...
  1. (if (not (vl-cmdf   "_insert" "yr_ZH" pnt "1" "1" ang str))
  2.     (princ "\n程序在搜索路径未找到必须的属性块:yr_ZH。"))
复制代码
这样也能达到我要的效果吗?
发表于 2011-3-14 14:15:20 | 显示全部楼层
回复 yrgui 的帖子

vl-cmdf   只能检测参数有不正确的,但不能知道哪个参数有误!
 楼主| 发表于 2011-3-14 14:33:32 | 显示全部楼层
回复 Gu_xl 的帖子

嗯,如果它检测到参数错误返回nil吗?
没有错误时返回什么,是T?
发表于 2011-3-14 14:56:25 | 显示全部楼层
回复 yrgui 的帖子

你试下不就知道了?
 楼主| 发表于 2011-3-14 18:53:05 | 显示全部楼层
回复 Gu_xl 的帖子

谢谢,试过了,还是没起作用,呵呵
把vl-cmdf换成command的的话出错了会自己退出,勉强

*error*函数用了,效果也不是很好。可能是我对*error*的理解有问题
 楼主| 发表于 2011-3-14 18:59:47 | 显示全部楼层
yrgui 发表于 2011-3-14 14:33
回复 Gu_xl 的帖子

嗯,如果它检测到参数错误返回nil吗?

vl-cmdf根本就等不到那一刻,就是说vl-cmdf根本就不可能有返回nil的时候,因为还没到这一步就出错中断了

呵呵。
发表于 2011-3-14 19:10:04 | 显示全部楼层
回复 yrgui 的帖子

试着运行一下下面的代码:
(if (vl-cmdf "line" '(1 0) '(2 "a")  "")  (princ "正确!") (princ "错误!"))
你就知道了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-6-11 06:35 , Processed in 0.191237 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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