问题标签 [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.
autocad - 将元素添加到所有打开的文件
我使用 AutoLISP/CAD 已经有一段时间了,现在我想在所有打开的文件中添加一个带有我名字的标签。我已经设法遍历所有打开的文件,但文本命令只在第一个文件中运行。我认为 CAD 无法正常工作太快了,所以我添加了延迟,但它不起作用。我已经检查了所有打开的文件并且变量是共享和同步的。顺便说一句,每个打开的文件都会添加一次文本,但只会在第一个文件中添加。
这是我的代码:
xml - Autocad 2018 自动加载 dll
我正在尝试将 dll 文件自动加载到 Autocad 2018。
我怎样才能做到这一点?
我想自动化,所以它可以在启动时完成。使用 netload 一切正常。
我使用了 *.lsp 方式。有人可以帮忙吗?我在网上找到了很多方法,但没有一个有效。
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))
(原则))
autocad - 在 Lisp 退出时执行代码
我写了一个 lisp,其中涉及设置一个变量,然后在循环内选择点。一旦我决定完成选择点,我希望能够将该变量恢复为按退出键时的原始状态。例如。
我发现可能与“用户输入错误”有关,但实际上无法正常工作。据我所知,当按下转义时,lisp 只是退出并且没有完成执行。
提前致谢。
lisp - 选择特定实体类型 AutoLisp
选择一个点时,有一种方法可以过滤 OSNAP,使其仅捕捉到特定实体类型,而不捕捉到其他类型的实体。例如
仅捕捉到线条。
仅捕捉到圆弧。
仅捕捉到多段线。
我希望上面的假 lisp 有助于理解我要问的问题。
提前致谢。
vba - 启动 Autocad 并使用 .bat 文件自动运行 VBA
我有以下问题。我有一个从特定网络位置检索 dwg 文件的应用程序。检索到后,我编写了一些 vba 命令来检索这些文件并对它们进行一些操作。
我希望能够使用 .bat 文件自动执行整个过程。
启动 .net -> 完成 .net -> 启动 Autocad。
再次为第二个程序。
对于一个应用程序来说,这非常有用。我在启动时使用了这个 VBA 运行。但这将我限制为一个,因为程序将在不同的时间启动并启动同一个 vba 实例。这两个程序将在同一台计算机上运行,并将作为服务运行。
我发现使用 .net 启动 AutoCAD 的更简单方法是通过 bat 文件。是否有某种方法可以使用 bat 文件或其他方式自动执行某些命令。
例如,2 脚本在 bat 文件中可能看起来像这样。
您对我如何实现这一目标有任何建议吗?
autolisp - Autolisp 中的列表项计数
我需要帮助构建一个函数,该函数将接受项目列表,例如并按'(3 3 3 1 1 2)
连续顺序返回每个项目的出现。这个特定的列表将返回'(2 1 3)
。我想在一个循环中做到这一点。
到目前为止,我的想法是创建一个列表,其中包含要计算的每个项目的位置。我已经做到了。所以现在我有一个看起来像这样的列表:'(0 0 0)
我需要更改这个列表以反映我收到的列表中每个元素的计数。我不知道我会怎么做。有什么建议么?
lisp - Lisp 与外部进程通信
我想做的是让 AutoLISP 程序调用一个可执行文件并从该可执行文件中获得响应。
我了解我们目前可以使用 startapp 调用应用程序,例如
(startapp "notepad.exe" "acad.lsp")
但据我了解,我不相信 startapp 可以从被调用的应用程序返回值。
在上下文中,我希望能够从 lisp 调用应用程序,并且当该应用程序关闭时,将状态代码发送回 lisp 以使其继续执行。
在假的 lisp 代码中
如果这种性质的东西在 LISP 中是可能的,或者如果有更好的方法来查看一个进程是否在 LISP 中结束,任何方向都会受到赞赏。
parallel-processing - 用 AutoLisp 画线连接两条平行线的末端
有没有人有一个 AutoLisp 例程来快速绘制一条连接两条平行线的线。我真的很想要类似于圆角命令的东西,除了画一条直线而不是半径。这几乎可以通过 chamfer 命令完成,除了 chamfer 不适用于平行线。
我的工作有时包括偏移许多平行线对,然后将它们与另一条线连接以创建矩形。在它们之间划一条线很容易,但这仍然是一个乏味的过程。
styles - 使用 AutoLISP 生成新的标注样式
我想要一个 AutoLISP 例程,它可以使用我的自定义设置自动创建新的尺寸样式。我知道可以将尺寸样式从一张图纸复制到另一张图纸,但每次都必须这样做既乏味又耗时。
我已经为我最常用的样式编制了我希望拥有的变量列表,但理想情况下,我希望能够从该列表中添加或删除变量。
手动执行此操作的过程是在命令行中设置每个变量,然后使用“-DIMSTYLE SAVE”命令以自定义名称保存它。我试图自己解决这个项目,但由于在 AutoLISP 方面相对缺乏经验,我很快意识到我并不完全具备正确完成此项目的知识。
以下是对我来说创建大多数新样式很重要的变量列表: