baitang36 发表于 2022-11-7 07:39:33

cchessbd 发表于 2022-11-6 21:08
咋回事,加了没菜单了。。。
看来还得改回去才行。哎,菜鸟就是菜鸟啊。白搞了。。。

删除语句要加在dcl文件加载之后才行,还没加载就删了,会导致对话框出不来了

cchessbd 发表于 2022-11-10 21:51:01

baitang36 发表于 2022-11-7 07:39
删除语句要加在dcl文件加载之后才行,还没加载就删了,会导致对话框出不来了

老师,今天终于实验出了位置,这下随便怎么填充都没那么多垃圾文件了。
如果老师能帮忙改进下就更好了。毕竟是老师编的程序。。。到时候我就再来下一个。

(defun dcl_bhatch ()

(dcl_file_New) ;创建DCL文件改为函数
        (setq dcl_id(load_dialog tmp-dcl-file-name))
(vl-file-delete tmp-dcl-file-name);删除DCL文件
        (new_dialog "bhatch" dcl_id)

baitang36 发表于 2022-11-11 08:35:45

cchessbd 发表于 2022-11-10 21:51
老师,今天终于实验出了位置,这下随便怎么填充都没那么多垃圾文件了。
如果老师能帮忙改进下就更好了。 ...
已按你的要求改进,请试用。
感谢。

cchessbd 发表于 2022-11-11 18:52:14

baitang36 发表于 2022-11-11 08:35
已按你的要求改进,请试用。
感谢。

这个位置不对,和我之前的改动一样。出不来菜单。一共有三个位置要改。图中2个红色箭头部分。
还有起始位置一个定义一个函数名,此函数名最好能采用数字+随机变量的形式。以免多个lsp合并出问题。

至于为什么要把初始化定义为函数,肯定是有原因的。论坛里面好多lsp都有“嵌套命令不能超过4层的”提示,导致CAD出错,而非正常终止的问题。
定义为函数在dcl_bhatch这里调用,就能避免这类问题。当然,dcl_bhatch 估计也得改成随机的函数名了。

如果要完美的话,就是 (dcl_bhatch) (dcl_file_New)均为该次合并时的随机名称,(dcl_file_New)即为dcl初始化参数用。
照图片位置加载、删除就没有多个临时垃圾文件的问题。(dcl_bhatch)随机则可以避免多个合并了dcl的lsp再次合并编译函数重名的问题。





cchessbd 发表于 2022-11-12 21:58:14

本帖最后由 cchessbd 于 2022-11-14 12:24 编辑

baitang36 发表于 2022-11-11 08:35
已按你的要求改进,请试用。
感谢。
经过本人日以继夜对源码的研读,终于搞明白了怎么去除生成的临时文件。上传到帖子吧。。。调试基本成功。
但怎么调用生成的dcl临时文件函数还没有搞明白。因为dcl文件载入刚好是一个变量。每个dcl文件都不一样。。。
如果生成临时文件不为函数,假如多次载入合并后的lsp,则会生成多个临时dcl文件。用函数就没有这个问题,用的时候再生成。
现在只能手动去查找改lsp了。。。



抱歉,脑子不行,调试不过,暂时搁置了。。。把这个半成品发上来,盛老师有时间能帮完善一下就更好。






白色微風1991 发表于 2023-4-24 16:37:43


感謝大佬共享代碼!

Noangler 发表于 2023-4-24 18:03:31

先评论,标记好找!

yu960312 发表于 2023-4-25 03:28:57

感谢大佬共享代码!

yu960312 发表于 2023-4-25 03:32:17

非常感谢楼主,测试很好用!!!!

baitang36 发表于 2023-4-26 09:33:22

yu960312 发表于 2023-4-25 03:32
非常感谢楼主,测试很好用!!!!

凌晨三点半还在发帖,注意身体。
页: 1 2 3 4 5 [6] 7 8 9
查看完整版本: 一键合并DCL和LSP文件