AndyWang 发表于 2021-8-14 16:37:38

【已解决】如何实现在CAD开软件时运行1次指定命令?

本帖最后由 AndyWang 于 2021-8-16 10:44 编辑

如题!

试过在acad20xxdoc.lsp中加命令,可以实现开始时运行指令,但再创建新标签文档时,还会再运行一次命令,这起了反效果!

请教各位有何办法解决此问题?拜谢!!

brainstorm 发表于 2021-8-14 19:51:09

(if
        (not(vl-bb-ref 'test))
        (progn
                (vl-bb-set 'test 1)
                (princ "\n**第一次加载载**")
                (princ)
        )
        (progn
                (princ "\n**不是第一次加载**")
                (princ)
        )
)

baitang36 发表于 2021-8-14 17:58:43

弄个变量,执行过了就做个标记。

aihuyujian 发表于 2021-8-14 18:19:07

程序运行的时候在指定的文件夹生成一个文件或者在注册表生成一个值
然后程序的开始加个判断有此文件或者注册表就不执行
这样有个问题就是如果CAD关闭 下次打开的时候这个文件或注册表还是存在的 也不会加载程序
如果加个反应器在关闭CAD时删除此文件或着注册表 那么同时打开两个CAD 关闭其中一个 另一个CAD再打开新文档还是会加载程序或者中途致命错误文件或注册表不能删除也会有问题
所以感觉只能知道程序的源头才好处理吧
水平有限想不出什么好办法

brainstorm 发表于 2021-8-14 19:35:26

试试在一个文档中(vl-bb-set 'a "1"), 然后另一个文档中, (vl-bb-ref 'a) ,应该能读到1.

AndyWang 发表于 2021-8-16 10:03:55

baitang36 发表于 2021-8-14 17:58
弄个变量,执行过了就做个标记。

感谢回复!

AndyWang 发表于 2021-8-16 10:05:56

aihuyujian 发表于 2021-8-14 18:19
程序运行的时候在指定的文件夹生成一个文件或者在注册表生成一个值
然后程序的开始加个判断有此文件或者注 ...

感谢,有些极端情况不作考虑,brainstorm大神的代码可行,直接加入启动lsp就可以。

AndyWang 发表于 2021-8-16 10:08:02

brainstorm 发表于 2021-8-14 19:51
(if
        (not(vl-bb-ref 'test))
        (progn


很好用,非常感谢!

aihuyujian 发表于 2021-8-16 11:31:31

AndyWang 发表于 2021-8-16 10:05
感谢,有些极端情况不作考虑,brainstorm大神的代码可行,直接加入启动lsp就可以。

试了一下 果然好用 ;P
页: [1]
查看完整版本: 【已解决】如何实现在CAD开软件时运行1次指定命令?