lisp中使用command或vl-cmdf时,数据过多出现无响应假死状态,导致使用者认为程序死了。
怎么解决,让CAD保持响应?
如:
gysjy的连接线段的小LSP
在我们的cad绘图中常常需要将多条线段连接成一条线。用pedit中的j命令可以实现这一功能要求。而本程序可以框选图元,批量连接所选的线段:- (defun c:nn(/ ss s)
- (princ "\n 本程序用来批量连接线段。gysjy 2009.10.27")
- (setq ss (ssget '((-4 . "<OR")
- (0 . "LINE")(0 . "ARC")
- (-4 . "<AND")(0 . "LWPOLYLINE")(70 . 0)(-4 . "AND>")
- (-4 . "OR>")))
- )
- (while ss
- (setq s (ssname ss 0))
- (if (or (= "LINE" (cdr (assoc 0 (entget s))))
- (= "ARC" (cdr (assoc 0 (entget s))))
- )
- (command "pedit" s "y" "j" "p" "" "x")
- (command "pedit" s "j" "p" "" "x")
- )
- (setq ss (ssget "p"))
- )
- (princ)
- )
在1000个矩形打散后,重新连接过程,后期CAD就会出现忙状态,标题栏上显示“未响应”。
很多使用者无经验就为认为程序已经死机,就没有耐心等待了。
如何避免这种情况? |