lfe011969 发表于 2022-7-6 09:54:00

添加自定义绘图时出错

我正在使用这里找到的VVA中的代码来检索和设置自定义图形属性,并试图找出如何捕捉错误。
 
我得到的典型错误是:
** ERROR: ActiveX Server returned an error: Parameter not optional **
 
当我认为已经为变量赋值,然后尝试将自定义图形特性设置为该值,但实际上变量为零时,就会出现这种情况。
 
我知道我可以使用(vl catch all apply),但我很难找到正确的使用方法。有谁能给我一个使用(vl catch all apply)或其他方法在设置这些值时排除错误的通用示例吗?谢谢

Lee Mac 发表于 2022-7-6 10:09:01

测试零变量?
 

(if <variable>
(dosomestuff)
)

VVA 发表于 2022-7-6 10:19:38

或测试字符串变量
(if (eq (type <variable>) 'STR)
(dosomestuff)
)

irneb 发表于 2022-7-6 10:41:41

依靠vl的全包应用通常不是一个好主意,最好检查变量,如Lee&VVA所示。。。BBBUUUTTT。。。因为没人给你展示过“一网打尽”的东西。。。下面是:
 
假设您使用的是VVA的_dwgru-dwgprops-set-custom-prop,但您不想首先测试键和值,而是希望它继续:
基本上,它计算第一个参数(因此需要引用defun的名称)。然后它将第二个参数作为参数传递给被求值函数-这就是为什么它需要在列表中。
 
结果是,它返回函数通常会返回的任何内容,除非有错误。然后返回一个错误对象——这就是vl-catch-all-error-p测试的目的。

lfe011969 发表于 2022-7-6 10:44:51

 
 
 
我很难为情地说,我甚至没想过按你们俩说的去做。我看到了这个错误,立即想这不是你的典型错误,所以我必须做一些特别的事情。
 
 
 
Irneb,
 
谢谢你的例子和建议!!

Lee Mac 发表于 2022-7-6 11:03:19

vl catch all apply的另一个示例可能提供了一些见解。
 
http://www.cadtutor.net/forum/showthread.php?55749-vl catch all apply-%28捕捉错误%29&p=377850&viewfull=1#post377850
页: [1]
查看完整版本: 添加自定义绘图时出错