明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 4784|回复: 66

[源码] 【通用进度条】2022.5.2更新

    [复制链接]
发表于 2022-4-26 00:14 | 显示全部楼层 |阅读模式
本帖最后由 紫苏炒黄瓜 于 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 回复可见

***********************************************
顺手也支持一下批打吧 http://bbs.mjtd.com/thread-183063-1-1.html







本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x

评分

参与人数 3明经币 +3 收起 理由
自贡黄明儒 + 1 很给力!
lxl217114 + 1 很给力!
xj6019 + 1 很给力! 支持一下

查看全部评分

发表于 2022-4-26 22:50 | 显示全部楼层


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



;;说明:设置进度条
;;参数:title:窗口标题 [str]
;;参数:picture:图片名称 [str]
;;参数:picture-url:图片连接/应用名称 [str]
;;参数:explain:说明 [str]
;;参数:width:窗口宽度 [int/str]
;;参数:height:窗口高度 [int/str]
;;返回: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
                )
        )
)

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2022-4-26 20:56 | 显示全部楼层
本帖最后由 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 | 显示全部楼层
大家可能还没理解进度条变化的原理。
其实很简单
修改xxjd.txt文件的内容
1~100,进度条就会对应的增加(也可减少)。手工修改txt文件内容也行,记得保存。
大于等于100进度条自动退出。手工关闭也可以,不会影响cad。
使用的场景可以很多样的。
发表于 2022-4-26 07:49 | 显示全部楼层
厉害了!
点赞!
发表于 2022-4-26 09:10 | 显示全部楼层
请问在lisp应用这个进度条的时候,会假死吗
 楼主| 发表于 2022-4-26 10:26 | 显示全部楼层
应该不会卡死。
收了几个钢镚,够我逛逛了。不再收啦。
发表于 2022-4-26 10:40 | 显示全部楼层
学习学习  楼主的批量打印在用
发表于 2022-4-26 11:01 | 显示全部楼层
看看好不好用  
发表于 2022-4-26 11:47 | 显示全部楼层
try it try it!
发表于 2022-4-26 11:54 | 显示全部楼层



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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
 楼主| 发表于 2022-4-26 12:14 | 显示全部楼层
想不要链接就改链接那一行
窗口尺寸不要乱设置。
发表于 2022-4-26 12:28 | 显示全部楼层
我的意是 不要图片 窗口高度设置到180才能正确显示
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-6-26 21:48 , Processed in 0.146197 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表