明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2539|回复: 6

[提问] 调用(*push-error-using-command*)前无法从 *error* 调用(command)。

[复制链接]
发表于 2019-6-30 09:43 | 显示全部楼层 |阅读模式
本帖最后由 尘缘一生 于 2019-6-30 09:45 编辑

调用(*push-error-using-command*)前无法从 *error* 调用(command)。
建议将(command)调用转换为(command-s)


程序如下:什么原因?

;;说明:;;所有实体改颜色;;参数:sl-gs1:原色号
;;参数:sl-gs2:修改后色号
;;返回:
(defun sl-sxs (sl-gs1 sl-gs2 / ss n)
  (if (null vlax-dump-object) (vl-load-com) );;;将 Visual LISP 扩展功能加载到 AutoLISP
  (setq ss (ssget "X" (list (cons 62 sl-gs1))))
  (repeat (setq n (sslength ss))
    (vla-put-color (vlax-ename->vla-object (ssname ss (setq n (1- n)))) sl-gs2 )
  )
)
(sl-sxs 2 30)  ;;;;;;;所有颜色为2 的实体改为 30号色
(sl-sxs 8 7)
(sl-sxs 9 7)
(sl-sxs 253 7)
(sl-sxs 4 150)
(sl-sxs 130 150)

"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2019-6-30 09:55 | 显示全部楼层
我也有遇到了同样的问题,还请高手指导。
发表于 2019-6-30 10:49 | 显示全部楼层
随着acad的发展,有些老的代码需要修改了。
在以往的老的错误处理函数中,不能再支持command函数调用了。你有两种处理方法,要么command改为command-s ,或者在主程序中使用(*push-error-using-command*)这些错误处理函数。

具体在LISP参考中都有很详细的说明,大家遇到问题应该先找帮助文档,再搜索网络,最后没有答案才到论坛发帖提问

点评

资料链接发下?  发表于 2019-6-30 11:09
发表于 2019-6-30 11:28 | 显示全部楼层
AutoCAD 帮助文档这些函数的说明参考文档。
在vlide中,还可以选中函数名称字符串后,右击选择symbol service,直接跳转到函数的参考文档。

 楼主| 发表于 2019-6-30 19:25 | 显示全部楼层
此问题已解决,需要句判断而已

;;说明:;;所有实体改颜色;;参数:sl-gs1:原色号
;;参数:sl-gs2:修改后色号
;;返回:
(defun sl-gst-ys (/ sl-sxs )
  (defun sl-sxs (sl-gs1 sl-gs2 / ss n)
    (if (setq ss (ssget "X" (list (cons 62 sl-gs1))))
      (repeat (setq n (sslength ss))
        (vla-put-color (vlax-ename->vla-object (ssname ss (setq n (1- n)))) sl-gs2)
      )
    )
  )
  (sl-sxs 2 30)  ;;;;;;;所有颜色为2 的实体改为 30号色
  (sl-sxs 8 7)
  (sl-sxs 9 7)
  (sl-sxs 253 7)
  (sl-sxs 4 150)
  (sl-sxs 130 150)
)
(sl-gst-ys)
发表于 2019-7-1 09:19 | 显示全部楼层
厉害啊,能自己找到办法解决了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-19 16:26 , Processed in 0.172896 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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