![](source/plugin/imc_colorcode/images/loading.gif)
- ;;各位版主高手。我編了一個程序,目的是點擊某一個日期標注值以
- ;;後批量將各個佈局中相同的日期用當前日期進行替換。
- ;;現在的問題是:經使用發現無法實現多佈局中相同文字的替換,
- ;;只對所點擊的佈局中的文字日期有效。不知何故,請各位指點謎經。
- ;;難道ssget函數只對單一佈局起作用嗎????
- (defun C:TT1 (/ HOLDECHO HD N OBJ SDATE SS TMP1 TXT0)
- ;;批量更改最後修改日期
- (vl-load-com)
- (setq HOLDECHO (getvar "CMDECHO"))
- (setvar "CMDECHO" 0)
- (command "_.UNDO" "_GROUP")
- (setq SDATE (rtos (getvar "CDATE")))
- (setq SDATE (substr SDATE 1 8))
- (setq TMP1 (strcat (substr SDATE 1 4)
- "."
- (substr SDATE 5 2)
- "."
- (substr SDATE 7 2)
- )
- )
- (initget "A ")
- (setq HD (getkword "\n 全部修改(A)/單個修改(ENTER): "))
- (if (setq SS (ssget ":S:E" '((0 . "text"))))
- (progn
- (setq OBJ (vlax-ename->vla-object (ssname SS 0)))
- (cond
- ((= HD NIL)
- (vla-put-textstring OBJ TMP1)
- )
- ((= HD "A")
- (setq TXT0 (vla-get-textstring OBJ))
- (setq SS (ssget "X" '((0 . "text")))
- N 0
- )
- (while (< N (sslength SS))
- (setq OBJ (vlax-ename->vla-object (ssname SS N)))
- (if (= TXT0 (vla-get-textstring OBJ))
- (vla-put-textstring OBJ TMP1)
- )
- (setq N (1+ N))
- )
- )
- )
- )
- (princ "\n 沒有選中任何對象。")
- )
- (command "_.UNDO" "_END")
- (setvar "CMDECHO" HOLDECHO)
- (princ)
- )
|