1

我即将深入研究 autolisp 并且想知道如何编写与尽可能多不同版本的 autocad 兼容的代码,显然包括当前版本,但理想情况下也可以追溯到 2000 年。

Autodesk 对此http://usa.autodesk.com/adsk/servlet/item?siteID=123112&id=770225有一个常见问题解答,但在 2009 年之前未提及任何内容。

我应该使用哪个版本的 (i) autocad 和 (ii) autolisp 编译器?另外,这与视觉口齿不清吗?

4

4 回答 4

2

AutoLisp 是解释的,而不是编译的,所以没有不同的编译器可供选择(尽管有一个选项可以将它们编译为 .fas 文件,但大多数时候你不会打扰)。

VisualLisp 是 AutoLisp 语言的扩展,它允许您以与使用 VBA 相同的方式访问对象模型,只需从 AutoLisp。如果您使用以 vl- 或 vla- 开头的内置函数,那么您已经在使用 VisualLisp。

兼容性主要是只使用在所有版本中工作相同的功能。

然而,这并不总是按计划进行,您可能必须创建一些特定于版本的文件,这些文件在最后加载并重新定义一些功能以使用该特定版本(您可以轻松判断 lisp 是哪个版本的 AutoCAD正在加载)。

于 2011-11-24T09:58:40.170 回答
2

我不同意第一张海报。您想确保一切都适用于全新版本,然后针对旧版本进行调整。大多数使用 Autocad 并在经济衰退中幸存下来的公司之所以这样做是因为他们跟上了。

于 2011-11-23T19:54:15.683 回答
1

在你的情况下,年龄越大越好。您应该使用 2000 版本。但我不确定它是否可以在现代操作系统上运行。

于 2011-11-23T19:43:00.817 回答
1

好消息是,自 1994 年以来我用 AutoLISP 编写的程序大部分仍在运行,几乎没有变化。以下是您可能会考虑的一些事项:

  1. 由于 AutoCAD 价格昂贵,因此有一个蓬勃发展的 AutoCAD 克隆生态系统,例如 Carlson IntelliCAD、BricsCAD 和 ProgeCAD。我提到的所有这些都运行 AutoLISP,但有时会有轻微的怪癖,我不认为它们运行 Visual LISP 扩展。我的大多数 AutoCAD AutoLISP 程序在 Intellicad/BricsCAD 中只需要很少的调整即可工作。
  2. 我个人目前尝试为 v2010+ 开发。但我遇到了仍在使用 v2004 的人。从 2004 年到现在(在 AutoLISP 中)唯一真正的区别是一些新类型的对象(如 mleader)和设置,如果您想与旧版本兼容,您希望远离这些对象。
  3. 有非常活跃的论坛,例如 TheSwamp 和 Autodesk 论坛,您可以在其中进行非常好的讨论并在 AutoLISP 编程问题上获得很好的帮助。
于 2015-10-31T03:09:27.467 回答