问题标签 [autolisp]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
271 浏览

autocad - 将元素添加到所有打开的文件

我使用 AutoLISP/CAD 已经有一段时间了,现在我想在所有打开的文件中添加一个带有我名字的标签。我已经设法遍历所有打开的文件,但文本命令只在第一个文件中运行。我认为 CAD 无法正常工作太快了,所以我添加了延迟,但它不起作用。我已经检查了所有打开的文件并且变量是共享和同步的。顺便说一句,每个打开的文件都会添加一次文本,但只会在第一个文件中添加。

这是我的代码:

0 投票
3 回答
3984 浏览

xml - Autocad 2018 自动加载 dll

我正在尝试将 dll 文件自动加载到 Autocad 2018。

我怎样才能做到这一点?

我想自动化,所以它可以在启动时完成。使用 netload 一切正常。

我使用了 *.lsp 方式。有人可以帮忙吗?我在网上找到了很多方法,但没有一个有效。

0 投票
1 回答
304 浏览

autocad - 在 AutoCAD 中重建多条样条线

我正在寻找一些可以让我在 AutoCAD 中自动“重建”1 个或多个样条线的功能。我的图纸有数百条样条线,每个样条线有 30-50 个控制顶点。这使得绘图的处理速度非常慢,尤其是在直接与这些样条线组交互时。

我有我想做的基本代码,但目前不确定如何在 AutoLISP 中使用 cvrebuild 命令。在命令行中使用该命令只会打开一个 GUI。到目前为止,请参阅下面的代码。

我只是想使用变量 n_controlvertices 和 degree 作为参数来调用 cvrebuild 命令。AutoLISP 例程将一次通过一个对象并使用相同的参数重建它们。

我为代码的出现道歉。显然 AutoLISP 不能很好地与 StackOverflow 配合使用

(defun c:batchrebuild (/ss n obj n_controlvertices degree)

(提示“\n选择要重建的样条线。”)

(if (not (setq ss (ssget '((0 . "SPLINE"))))) (setq ss (ssget "_X" '((0 . "SPLINE")))))

(初始化 6)

(setq n_controlvertices (getint "\n控制顶点数<20>: "))

(如果 (= n_controlvertices nil) (setq n_controlvertices 20) (setq n_controlvertices (fix n_controlvertices))
)

(setq degree (getint "\nDegree of fit points<3>: "))

(if (= degree nil) (setq degree 3) (setq degree (fix degree))
)

(重复(setq n(sslength ss))

(原则))

0 投票
1 回答
740 浏览

autocad - 在 Lisp 退出时执行代码

我写了一个 lisp,其中涉及设置一个变量,然后在循环内选择点。一旦我决定完成选择点,我希望能够将该变量恢复为按退出键时的原始状态。例如。

我发现可能与“用户输入错误”有关,但实际上无法正常工作。据我所知,当按下转义时,lisp 只是退出并且没有完成执行。

提前致谢。

0 投票
2 回答
771 浏览

lisp - 选择特定实体类型 AutoLisp

选择一个点时,有一种方法可以过滤 OSNAP,使其仅捕捉到特定实体类型,而不捕捉到其他类型的实体。例如

仅捕捉到线条。

仅捕捉到圆弧。

仅捕捉到多段线。

我希望上面的假 lisp 有助于理解我要问的问题。

提前致谢。

0 投票
1 回答
1053 浏览

vba - 启动 Autocad 并使用 .bat 文件自动运行 VBA

我有以下问题。我有一个从特定网络位置检索 dwg 文件的应用程序。检索到后,我编写了一些 vba 命令来检索这些文件并对它们进行一些操作。

我希望能够使用 .bat 文件自动执行整个过程。

启动 .net -> 完成 .net -> 启动 Autocad。

再次为第二个程序。

对于一个应用程序来说,这非常有用。我在启动时使用了这个 VBA 运行。但这将我限制为一个,因为程序将在不同的时间启动并启动同一个 vba 实例。这两个程序将在同一台计算机上运行,​​并将作为服务运行。

我发现使用 .net 启动 AutoCAD 的更简单方法是通过 bat 文件。是否有某种方法可以使用 bat 文件或其他方式自动执行某些命令。

例如,2 脚本在 bat 文件中可能看起来像这样。

您对我如何实现这一目标有任何建议吗?

0 投票
2 回答
624 浏览

autolisp - Autolisp 中的列表项计数

我需要帮助构建一个函数,该函数将接受项目列表,例如并按'(3 3 3 1 1 2)连续顺序返回每个项目的出现。这个特定的列表将返回'(2 1 3)。我想在一个循环中做到这一点。

到目前为止,我的想法是创建一个列表,其中包含要计算的每个项目的位置。我已经做到了。所以现在我有一个看起来像这样的列表:'(0 0 0)我需要更改这个列表以反映我收到的列表中每个元素的计数。我不知道我会怎么做。有什么建议么?

0 投票
1 回答
1181 浏览

lisp - Lisp 与外部进程通信

我想做的是让 AutoLISP 程序调用一个可执行文件并从该可执行文件中获得响应。

我了解我们目前可以使用 startapp 调用应用程序,例如

(startapp "notepad.exe" "acad.lsp")

但据我了解,我不相信 startapp 可以从被调用的应用程序返回值。

在上下文中,我希望能够从 lisp 调用应用程序,并且当该应用程序关闭时,将状态代码发送回 lisp 以使其继续执行。

在假的 lisp 代码中

如果这种性质的东西在 LISP 中是可能的,或者如果有更好的方法来查看一个进程是否在 LISP 中结束,任何方向都会受到赞赏。

0 投票
1 回答
787 浏览

parallel-processing - 用 AutoLisp 画线连接两条平行线的末端

有没有人有一个 AutoLisp 例程来快速绘制一条连接两条平行线的线。我真的很想要类似于圆角命令的东西,除了画一条直线而不是半径。这几乎可以通过 chamfer 命令完成,除了 chamfer 不适用于平行线。

我的工作有时包括偏移许多平行线对,然后将它们与另一条线连接以创建矩形。在它们之间划一条线很容易,但这仍然是一个乏味的过程。

0 投票
2 回答
1513 浏览

styles - 使用 AutoLISP 生成新的标注样式

我想要一个 AutoLISP 例程,它可以使用我的自定义设置自动创建新的尺寸样式。我知道可以将尺寸样式从一张图纸复制到另一张图纸,但每次都必须这样做既乏味又耗时。

我已经为我最常用的样式编制了我希望拥有的变量列表,但理想情况下,我希望能够从该列表中添加或删除变量。

手动执行此操作的过程是在命令行中设置每个变量,然后使用“-DIMSTYLE SAVE”命令以自定义名称保存它。我试图自己解决这个项目,但由于在 AutoLISP 方面相对缺乏经验,我很快意识到我并不完全具备正确完成此项目的知识。

以下是对我来说创建大多数新样式很重要的变量列表: