通用函数 扩展数据的修改

2008-04-22 22:28 阅读(?)评论(0)

通用函数 扩展数据的修改.lsp


;;;=========================================
;;;      通用函数   扩展数据的修改          
;;;参数:ent  ----组码表                    
;;;      name ----扩展应用名                
;;;      v1   ----被替换值                  
;;;      v2   ----替换为的新值              
(defun EDITINFO	(ENT NAME V1 V2 / TMP1 TMP2)
    (if	(and (setq TMP1 (cdr (assoc -3 ENT)))
	     (setq TMP2 (cdr (assoc NAME TMP1)))
	     (member V1 TMP2)
	)
	(progn
	    ;;
	    (setq TMP2 (subst V2 V1 TMP2))
	    (setq TMP1 (subst (cons NAME TMP2) (assoc NAME TMP1) TMP1))
	    (setq ENT (subst (cons -3 TMP1) (assoc -3 ENT) ENT))
	    ;;
	    (entmod ENT)
	)
    )
)
;;;=========================================
;;;测试
(defun C:TT (/ SS ENT TMP1 TMP2)
    (if	(setq SS (entsel))
	(if (EDITINFO (entget (car SS) '("*"))
		      "DJINFO"
		      (cons 1000 "253")
		      (cons 1000 "072")
	    )
	    (princ "\n===更新成功")
	    (princ "\n===没有信息")
	)
	(princ "\n===没有选择到对象")
    )
    (princ)
)
;;;=========================================
;;;测试2   支持多个对象
(defun C:TT2 (/ SS I EN ENT TMP1 TMP2)
    (if	(setq SS (ssget '((0 . "LINE"))))
	(progn
	    (setq I 0)
	    (repeat (sslength SS)
		(setq EN  (ssname SS I)
		      ENT (entget EN '("*"))
		)
		(princ "\n===")
		(princ EN)
		(if (EDITINFO ENT
			      "DJINFO"
			      (cons 1000 "253")
			      (cons 1000 "072")
		    )
		    (princ "===更新成功")
		    (princ "===没有信息")
		)
		(setq I (1+ I))
	    )
	)
	(princ "\n===没有选择到对象")
    )
    (princ)
)
;;;=========================================
  最后修改于 2008-04-25 10:19    阅读(?)评论(0)
 
表  情:
加载中...
 

请各位遵纪守法并注意语言文明