明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2687|回复: 5

[已解答] 关于AcWipeout.arx的疑问。

[复制链接]
发表于 2015-11-14 08:25 | 显示全部楼层 |阅读模式
我电脑上面安装了07版,12版和16版,加载wowan1314的右键菜单函数这个插件提示调用(*push-error-using-command*)前无法从 *error* 调用(command)。建议将(command)调用转换为(command-s)。我把(command)改为(command-s)后加载直接退出了,以前提问过这个问题,链接:http://bbs.mjtd.com/thread-113823-1-1.html。没有解决,我看了源文件,里面用到了Gu_xl版主的(gxl-makewipeout pts)这个函数,函数链接:http://bbs.mjtd.com/thread-100884-1-1.html。发现里面有调用到AcWipeout.arx,我搜索了一下电脑发现在07版和12版的安装目录下面都有这个程序,但是在16版本下面没有这个,是不是16版已经不用这个程序了,要是不用的话,可以用哪一个程序来代替。谢谢。

"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2017-12-5 10:24 | 显示全部楼层
lxdz443 发表于 2015-11-15 08:03
疑问还是没搞清楚,但是程序可以在16版上面用了,我把G版的(gxl-makewipeout pts)函数给屏蔽掉后,程序居 ...

谢谢,问题解决
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2015-11-15 08:03 | 显示全部楼层
疑问还是没搞清楚,但是程序可以在16版上面用了,我把G版的(gxl-makewipeout pts)函数给屏蔽掉后,程序居然可以使用了,到现在也不清楚到底是那里的问题,就先这样凑合用吧。顺便说一声,有在13版至16版的朋友用wowan1314的右键菜单函数这个程序也提示这个问题的话,可以把主程序那一节里面的(gxl-makewipeout (LIST P1 P2 P4 P3))这行给注销掉应该就可以了。
发表于 2020-3-27 18:19 | 显示全部楼层
lxdz443 发表于 2015-11-15 08:03
疑问还是没搞清楚,但是程序可以在16版上面用了,我把G版的(gxl-makewipeout pts)函数给屏蔽掉后,程序居 ...

WIN7 64位系统,也是出这个问题,但是,出现在第一次安装时候,重启就可以了,不明就理。
发表于 2020-3-28 23:20 | 显示全部楼层
本帖最后由 e2002 于 2020-3-28 23:22 编辑

楼主如果有源码,按说改了 *error* 控制函数内的 command 调用为 command-s 之后能解决的。

这个问题主要是由于AutoCAD2015在系统架构上做了很大修改,所以很多以前的代码会出现问题,包括他自己提供的 ExpressTools,由于没有人继续维护,所以很多ET的程序同样遇到这个问题。因为ET的错误处理函数写在一个 fas中了,没有提供源码,所以没法改。官方论坛也有很多人提了。

本月初,秋枫在微信上和我谈到这个ET的错误处理函数的问题,他给出了一个解决方法,就是写一个同名的ET错误处理函数,加载替代原有的。这个新的同名函数是根据ET提供了的lisp源码中的那些调用语句,猜测出来的(也算是一种反向工程)。今天正好遇到需要使用 ET的TCount程序,不加载Qf写的这个替代函数,就是没法正常使用TCount的。
发表于 2021-7-11 09:44 | 显示全部楼层
win10,CAD2021,把G版的函数注释了 也不起作用,尘缘一生大侠的说的重启也不管用,网上搜了下,参考这个链接 https://autocadtips1.com/2014/01 ... to-wipeout-updated/
将G版的gxl-makewipeout函数中下面这句
;;;  (if (not (member "acwipeout.arx" (arx)))
;;;    (arxload "acwipeout.arx")
;;;  )
修改为如下这句

  ;;;  (strlen (vl-princ-to-string (vlax-get-acad-object))) 39 =>39就是32位Autocad
  (setq LenId (strlen (vl-princ-to-string (vlax-get-acad-object))))
  (cond
        ((= LenId 39)
          (if (not (member "acwipeout.arx" (arx)))
            (arxload "acwipeout.arx")
          );_32位 cad
         );_case1=>39就是32位Autocad
        ((eq  47 LenId)
                (if (not (member "acismui.arx" (arx)))
                   (arxload "acismui.arx")
                 );_64位 cad
         );case 2 =>47就是64位Autocad https://autocadtips1.com/2014/01 ... to-wipeout-updated/
        (t)
  );_cond

问题解决了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-3-29 03:34 , Processed in 0.259042 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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