ActiveX 服务器返回错误: 未知名称: LayerOn
时间: 2023-07-29 16:09:12 浏览: 70
这个错误通常是由于调用了不存在的方法或属性所导致的。
在上面的 Lisp 代码中,`vla-put-layeron` 方法是用来打开或关闭指定图层的,但是如果出现“未知名称: LayerOn”错误,可能是因为该方法名称不正确或者CAD版本不支持该方法。
请确保你的代码中使用的是正确的方法名称,并且该方法在CAD版本中是可用的。如果你使用的是较旧的CAD版本,可以尝试使用 `vla-put-layer` 方法来代替 `vla-put-layeron` 方法。例如,下面的代码可以使用 `vla-put-layer` 方法来关闭指定图层:
```
(defun close-layer (layer-name)
(vla-put-layer (vla-get-activedocument (vlax-get-acad-object)) layer-name :vlax-false)
)
(close-layer "图层名")
```
注意,在这个代码中,我们将 `vla-put-layeron` 方法替换为 `vla-put-layer` 方法。如果你仍然遇到错误,请检查你的代码是否有其他问题,并且确保你的CAD版本支持所使用的方法。
相关问题
lisp语音生成一个程序,功能为关闭CAD2016文件中指定图层
在Lisp语言中,可以使用以下代码关闭CAD2016文件中指定图层:
```
(defun close-layer (layer-name)
(vla-put-layeron (vla-get-activedocument (vlax-get-acad-object)) layer-name :vlax-false)
)
(close-layer "图层名")
```
解释一下上述代码:
1. `defun` 定义了一个名为 `close-layer` 的函数,它接受一个参数 `layer-name`,表示要关闭的图层名称。
2. `vla-get-activedocument` 获取当前活动文档的对象。
3. `vla-put-layeron` 将指定图层打开或关闭,第一个参数是文档对象,第二个参数是图层名称,第三个参数表示是否关闭图层。
4. 在函数体内,调用 `vla-put-layeron` 函数,将指定的图层关闭。可以将 `"图层名"` 替换为需要关闭的图层名称。
这个程序可以将上述代码封装成一个可执行的 Lisp 函数,供用户在 CAD2016 中调用。