明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2424|回复: 5

[讨论] lisp中使用command或vl-cmdf时,数据过多出现"未响应"假死状态

[复制链接]
发表于 2015-5-11 14:18:56 | 显示全部楼层 |阅读模式
lisp中使用command或vl-cmdf时,数据过多出现无响应假死状态,导致使用者认为程序死了。
怎么解决,让CAD保持响应?
如:
gysjy的连接线段的小LSP
在我们的cad绘图中常常需要将多条线段连接成一条线。用pedit中的j命令可以实现这一功能要求。而本程序可以框选图元,批量连接所选的线段:
  1. (defun c:nn(/ ss s)
  2. (princ "\n 本程序用来批量连接线段。gysjy 2009.10.27")
  3. (setq ss (ssget '((-4 . "<OR")
  4.                       (0 . "LINE")(0 . "ARC")
  5.                       (-4 . "<AND")(0 . "LWPOLYLINE")(70 . 0)(-4 . "AND>")
  6.                    (-4 . "OR>")))
  7. )
  8. (while ss
  9.     (setq s (ssname ss 0))
  10.     (if (or (= "LINE" (cdr (assoc 0 (entget s))))
  11.             (= "ARC" (cdr (assoc 0 (entget s))))
  12.       )
  13.       (command "pedit" s "y" "j" "p" "" "x")
  14.       (command "pedit" s "j" "p" "" "x")
  15.     )
  16.     (setq ss (ssget "p"))
  17. )
  18. (princ)
  19. )
在1000个矩形打散后,重新连接过程,后期CAD就会出现忙状态,标题栏上显示“未响应”。
很多使用者无经验就为认为程序已经死机,就没有耐心等待了。
如何避免这种情况?
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2015-5-11 14:31:54 | 显示全部楼层
网蜂大师,好久不见!
发表于 2015-5-11 15:16:16 | 显示全部楼层
本帖最后由 自贡黄明儒 于 2015-5-11 15:21 编辑

(VL-CATCH-ALL-APPLY 'VL-CMDF ....
循环中加入
(defun spin (wh)
    (princ (strcat "\r  "
                    wh
                    (cond ((= #spin "|") (setq #spin "/"))
                          ((= #spin "/") (setq #spin "-"))
                          ((= #spin "-") (setq #spin "\\"))
                          (T (setq #spin "|"))
                    )
            )
    )
    (princ)
  )
发表于 2015-5-11 15:27:09 | 显示全部楼层
这段程序好象不是最精简的
发表于 2015-5-17 19:04:54 | 显示全部楼层
本帖最后由 wen1235 于 2015-5-17 19:07 编辑

网蜂大神 你的程序不用循环试试
只要判断是否有多线段就好
(command “pedit” “m” (ssget) “y” “j” “” “”)
这样会快很多
 楼主| 发表于 2015-6-16 23:18:54 | 显示全部楼层
wen1235 发表于 2015-5-17 19:04
网蜂大神 你的程序不用循环试试
只要判断是否有多线段就好
(command “pedit” “m” (ssget) “y” “ ...

最初是就使用的这句,对象过多的时候同样假死。
才想到的加入进度条。
===
经过这段时间的测试,发现在纯CAD环境中进度条正常运行。在CASS环境下容易出现:未响应,但程序能正常运行完毕。
有时间再查了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-23 19:07 , Processed in 0.218188 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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