nlanum 发表于 2022-7-6 10:51:20

急需帮助

帖子被我删除了。

gile 发表于 2022-7-6 10:57:20

你好
 
我无法证明任何事情,因为我没有2011年的测试,但根据您收到的错误消息,似乎是因为以下表达式:
(strcat "AutoCAD.AcCmColor."
         (itoa (ATOI (GETVAR "ACADVER")))
   )
该表达式在2010/2011年返回“AutoCAD.AcCmColor.18”,在2007/2008/2009年返回“AutoCAD.AcCmColor.17”,以此类推,它适用于以前的版本。
 
2011年可能需要AutoCAD版本号(2010年为18.0,2011年为18.1),而不是dwg版本号。
所以你可以试着用这个替换这个表达式:
(strcat    "AutoCAD.AcCmColor."
   (rtos (atof (getvar "ACADVER")) 2 1)
)

JohnM 发表于 2022-7-6 10:59:14

查看其他文件,看看调用了什么(defun ZF\u GET-ACADCOLOR()
从您发布的内容来看,它是唯一引用(GETVAR“ACADVER”))的东西
 
我没有发现第一个defun下面的代码有任何问题,但我可能错过了一些东西。

nlanum 发表于 2022-7-6 11:03:57

我添加了代码更改:
 
(strcat“AutoCAD.AcCmColor。”
(实时操作系统(atof(getvar“ACADVER”))2 1)
)
 
 
似乎什么都没有改变。我仍然得到错误:“不兼容的版本”

JohnM 发表于 2022-7-6 11:04:10

是AutoCAD给出了错误还是程序给出了错误。
看起来像是代码创建者创建的错误字符串
在文件中搜索错误的文本字符串,并查看其来源。
你知道如何在lisp编辑器中调试lisp文件吗?

nlanum 发表于 2022-7-6 11:07:25

错误消息已附加。

JohnM 发表于 2022-7-6 11:13:00

这看起来像是代码创建者编写的消息。
该消息是代码错误陷阱的一部分,而不是AutoCAD本身。
您需要查看代码,直到找到生成此消息的代码,然后回溯以找到调用此消息的代码行。
编写代码时,优秀的编写器会放入错误陷阱,这样代码不会使AutoCAD崩溃,并且编写器会使用警报功能通知用户问题。
如果你在下面键入cade,你会看到它就像你收到的消息一样。
(提醒“有问题”)

nlanum 发表于 2022-7-6 11:16:25

我搜索了所有警报,但在代码中没有找到任何警报。

JohnM 发表于 2022-7-6 11:19:08

可以发布所有代码吗?

ILoveMadoka 发表于 2022-7-6 11:22:50

还有更多代码。。。。
 
我也见过这种“拷贝保护”方法。。。。
它迫使用户购买autocad新版本的升级。
 
请张贴所有代码!!
页: [1] 2
查看完整版本: 急需帮助