w64bit 发表于 2022-7-11 13:56:48

无法通过脚本运行LSP

我想通过脚本运行LSP,但是即使加载了LSP,命令也无法识别。
如果我没有通过脚本运行DELDUPVERTEX命令,它也可以工作。

https://CAD tips . CAD alyst . com/polyline/delete-duplicate-vertices-a-polyline?q = polyline/delete-duplicate-vertices-a-polyline & print = 1代码0]
我能做些什么来通过脚本运行它吗?
**** Hidden Message *****

mstg007 发表于 2022-7-11 17:05:03

您可以将lisp加载到AppLoad启动套件内容按钮中。然后让脚本调用它。

mhupp 发表于 2022-7-12 00:31:01

一次只能运行一个lisp。所以当调用deldupertex时,它会暂停lisp来运行deldupertex。一旦完成,你的将继续。
(if (setq poly (ssget "X" '((0 . "LWPOLYLINE"))))
(C:DELDUPVERTEX);all and 1e-12 will probably have to be entered manually.
)

w64bit 发表于 2022-7-12 04:22:39

我开始在脚本中运行:
DELDUPVERTEX ALL1E-12

,但是如果绘图中没有LWPOLYLINE,程序将关闭,然后ALL被视为命令。
有没有其他方法可以将 DELDUPVERTEX 放在脚本中并避免停止脚本(当没有 LWPOLYLINES 时不运行 DELDUPVERTEX)?
当然,无需手动输入(我打算在多个文件上运行此代码)。

baitang36 发表于 2022-7-13 02:02:34


问题是函数c:deldupertex没有参数,您不能向它传递参数。只能手工输入,不能被程序调用。
可行的方法是修改该函数的定义,并在程序中实现您的要求?这个程序的源代码是你写的吗?

w64bit 发表于 2022-7-13 02:50:24

不,我没有写出来。我下载的FAS C

mhupp 发表于 2022-7-13 09:43:27

尝试过度杀伤而不是DELDUPVERTEX

w64bit 发表于 2022-7-15 06:07:38

过度杀戮会弄乱重叠的底座
我认为解决方案是通过取消所有手动输入来更改白糖36(谢谢)提供的LSP

mhupp 发表于 2022-7-15 08:14:26

你可以限制过度杀戮的方式。但是,如果你仍然想走lisp路线,也许这是可行的。
https://forums . Autodesk . com/t5/visual-lisp-AutoLISP-and-general/duplicate-vertex/m-p/1592378/highlight/true # m 206978
页: [1]
查看完整版本: 无法通过脚本运行LSP