如果将某一个扩展数据清除,必须是清空数据。
注意,该程序无差别清除全部扩展数据
 - (defun c:y12 (/ new-s new-i new-r en new-ext-list endata entype
- old-ext-list)
- (regapp "SAKJRA") ;注册专属应用名称
- (if(= (setq new-s (getstring "编号<141400>:"))"")
- (setq new-s "141400")
- )
- (if(not(setq new-i (getint "\n整数值<123:>")))
- (setq new-i 123)
- )
- (if(not(setq new-r (getreal "\n实数值<45.8>:")))
- (setq new-r 45.8)
- )
- (setq en (car (entsel "\n选择对象:")))
- (if (and en (/= new-s "") new-i new-r)
- (progn
- ;------------扩展数据的格式要求
- ;------------(-3 ("SAKJRA"(1000 . "A0001")(1070 .123)(1040 . 45.8)))
- (SETQ new-ext-list
- (list -3
- (list "SAKJRA"
- (cons 1000 new-s) ;群码1000必须是字符串
- (cons 1070 new-i) ;群码1070必须是整数
- (cons 1040 new-r) ;群码1040必须是实数
- )
- )
- )
- (setq endata (entget en '("*")))
- (setq entype (cdr (assoc 0 endata)))
- (if (setq old-ext-list (assoc -3 endata))
- (progn
- (setq old_data(cdr old-ext-list) i -1)
- (repeat (length old_data)
- (setq old-ext-list (subst (list (setq old_app(car(nth (setq i(1+ i)) old_data))))(assoc old_app old_data)old-ext-list ))
- )
- (setq endata (subst old-ext-list (assoc -3 endata) endata))
- (entmod endata)
- (setq endata (entget en '("*")))
- (setq endata (append endata (list new-ext-list)))
- )
- (setq endata (append endata (list new-ext-list)))
- )
- (entmod endata)
- (princ (strcat "*"
- entype
- "*"
- "加入扩展数据成功--"
- new-s
- ","
- (itoa new-i)
- ","
- (rtos new-r)
- )
- )
- )
- )
- (print(entget en '("*")))
- (prin1)
- )
再来个容易看的。
 - (defun c:y12 (/ new-s new-i new-r en new-ext-list endata entype
- old-ext-list)
- (regapp "sakura") ;注册专属应用名称
- (if(= (setq new-s (getstring "编号<141400>:"))"")
- (setq new-s "141400")
- )
- (if(not(setq new-i (getint "\n整数值<123:>")))
- (setq new-i 123)
- )
- (if(not(setq new-r (getreal "\n实数值<45.8>:")))
- (setq new-r 45.8)
- )
- (setq en (car (entsel "\n选择对象:")))
- (if (and en (/= new-s "") new-i new-r)
- (progn
- ;------------扩展数据的格式要求
- ;------------(-3 ("SAKJRA"(1000 . "A0001")(1070 .123)(1040 . 45.8)))
- (SETQ new-ext-list
- (list -3
- (list "sakura"
- (cons 1000 new-s) ;群码1000必须是字符串
- (cons 1070 new-i) ;群码1070必须是整数
- (cons 1040 new-r) ;群码1040必须是实数
- )
- )
- )
- (setq endata (entget en '("*")))
- (setq entype (cdr (assoc 0 endata)))
- (if (setq old-ext-list (assoc -3 endata))
- (setq endata (subst new-ext-list old-ext-list endata))
- (setq endata (append endata (list new-ext-list)))
- )
- (print endata)
- (entmakex endata)
- (entdel en)
- ;(entmod endata)
- (princ (strcat "*"
- entype
- "*"
- "加入扩展数据成功--"
- new-s
- ","
- (itoa new-i)
- ","
- (rtos new-r)
- )
- )
- )
- )
- (prin1)
- )
|