紫苏炒黄瓜 发表于 2022-4-26 00:14:04

【通用进度条】2022.5.2更新

本帖最后由 紫苏炒黄瓜 于 2022-5-4 23:19 编辑

演示1,自定义图片
演示2,自定义窗口大小
演示3,支持网络图片、GIF


演示4(静图),支持无图片(感谢taoyi0727 的建议)

演示貌似不能重复播放,下载看吧

自由设置开启时机,自由控制进度快慢、进退。
进度条为外部进程,独立运行不干扰CAD。
可自定义标题、图片、说明、窗口尺寸等。

2022.4.26晚更新,1、新增支持gif、网络图片等;2、支持无图模式。
2022.4.27更新,1、解决编码问题;2、增加完成提示;3、增加窗口位置设置。注意改变了原有设置顺序。
***********************************************
2022.5.2更新(2个附件已更新,需重新下载)。1、解决进度编辑不了的bug;2、解决进度同步状态不佳的bug;3、完善函数,直接使用。(感谢aoyi0727写的函数)

本次更新稳定性和可控性得到了极大提升,详见函数及用法示例.lsp。

函数及用法示例.lsp 回复可见
**** Hidden Message *****
***********************************************
顺手也支持一下批打吧 http://bbs.mjtd.com/thread-183063-1-1.html







taoyi0727 发表于 2022-4-26 22:50:34



文字说明在没有图片的情况下要大于220才能正确显示,有图片要比这个数字更大才行
想写个函数来生成xxjdsz.txt文件,生成出来的txt为ANSI格式,然后出来的进度条就乱码了
楼主能再更新下吗?



;;说明:设置进度条
;;参数:title:窗口标题
;;参数:picture:图片名称
;;参数:picture-url:图片连接/应用名称
;;参数:explain:说明
;;参数:width:窗口宽度
;;参数:height:窗口高度
;;返回:t or nil
;;用法:(T-set-progress "请稍等..." "" "excel" "测试" 200 0)
;;   (T-set-progress "请稍等..." "1.jpg" "https://www.baidu.com/" "测试" 200 0)
(defun T-set-progress (title picture picture-url explain width height)
        (if (and
                                (or (null title) (= (type title) 'str))
                                (or (null picture) (= (type picture) 'str))
                                (or (null picture-url) (= (type picture-url) 'str))
                                (or (null explain) (= (type explain) 'str))
                                (or (= (type width) 'int) (= (type width) 'str))
                                (or (= (type height) 'int) (= (type height) 'str))
                                (setq path "D:\\桌面\\xxjdsz.txt");固定文件名(要和exe同目录)
                                (setq file (open path "w"))
                        )
                (progn
                        (if title       (write-line title file)         (write-line file ""));窗口标题
                        (if picture   (write-line picture file)       (write-line file ""));图片名称
                        (if explain   (write-line explain file)       (write-line file ""));说明
                        (if picture-url (write-line picture-url file)   (write-line file ""));图片连接/应用名称
                        (if width
                                (cond
                                        ((= (type width) 'int)
                                                (write-line (itoa width) file)
                                        )
                                        ((= (type width) 'str)
                                                (write-line width file)
                                        )
                                )
                        );窗口宽度
                        (if height
                                (cond
                                        ((= (type height) 'int)
                                                (write-line (itoa height) file)
                                        )
                                        ((= (type height) 'str)
                                                (write-line height file)
                                        )
                                )
                        );窗口高度
                        (close file)
                        t
                )
        )
)

hf423 发表于 2022-4-26 20:56:33

本帖最后由 hf423 于 2022-4-26 20:58 编辑

紫苏炒黄瓜 发表于 2022-4-26 14:25
相信你可以想到办法的。
(defun HH:rtosr1 (RealNum n / DIMZIN1 SHORTREAL1)
(setq DimZin1 (getvar "DIMZIN"))
(setvar "DIMZIN" 0)
(setq ShortReal1 (rtos RealNum 2 n))
(setvar "DIMZIN" DimZin1)
ShortReal1
)

(setq jdtexe (findfile "通用进度条.exe"))
(setq xxjdtxt (findfile "xxjd.txt"))
(setq xxjdsztxt (findfile "xxjdsz.txt"))
(startapp jdtexe);调用exe
(setq n 1)
(setq n1 1)
(setq jdz (/ (length file_list) 100.0))

;The following may be a repeat, a foreach or a while loop

(if (> n jdz);每完成1%时
    (progn
             (setq f (open xxjdtxt "w"))
             (princ (itoa (setq n1 (+ n1 (cond((< jdz 1)(read(HH:rtosr1 (/ 1.0 jdz) 0)))(t 1))))) f)
             (close f)
             (setq n 1)
   )
)

这回20次OK了。
另外想问一问,我是放到批量插图功能里,20张图处理完后,进度条跑完了,但程序接着处理删除图中大量的块,还要卡一会儿,有没有办法最后处理大量块卡着时间也进入进度条?

紫苏炒黄瓜 发表于 2022-4-26 14:15:15

大家可能还没理解进度条变化的原理。
其实很简单
修改xxjd.txt文件的内容
1~100,进度条就会对应的增加(也可减少)。手工修改txt文件内容也行,记得保存。
大于等于100进度条自动退出。手工关闭也可以,不会影响cad。
使用的场景可以很多样的。

lxl217114 发表于 2022-4-26 07:49:57

厉害了!
点赞!

20060510412 发表于 2022-4-26 09:10:17

请问在lisp应用这个进度条的时候,会假死吗

紫苏炒黄瓜 发表于 2022-4-26 10:26:19

应该不会卡死。
收了几个钢镚,够我逛逛了。不再收啦。

babylon1386 发表于 2022-4-26 10:40:10

学习学习楼主的批量打印在用

taoyi0727 发表于 2022-4-26 11:01:28

看看好不好用{:1_1:}

流氓兔 发表于 2022-4-26 11:47:54

try it try it!

taoyi0727 发表于 2022-4-26 11:54:13




在不要图片情况下还是有网址链接
改窗口大小 进度条显示位置不对

紫苏炒黄瓜 发表于 2022-4-26 12:14:47

想不要链接就改链接那一行
窗口尺寸不要乱设置。

taoyi0727 发表于 2022-4-26 12:28:41

我的意是 不要图片 窗口高度设置到180才能正确显示
页: [1] 2 3 4 5 6 7
查看完整版本: 【通用进度条】2022.5.2更新