偏爱云~小吴
发表于 2013-11-29 11:55:06
[*](defun c:NBTC_TXTCopyadd (/ fun_setini fun_closefun_errorFUN_GETdigit old_error old_DIMZIN ureal last_ent
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif Plus1 String_To_Numbers buchang1 $buchang SS SS1 e0 ent
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif PT i loop ENTL E-1 NEWTX ENT_TMP
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif )
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif(defun fun_setini ()
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif (setq old_error *error*
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif old_DIMZIN(getvar "DIMZIN")
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif *error* fun_error
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif )
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif (or NBTV_TXT_CopyADD (setq NBTV_TXT_CopyADD 1.0))
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif (setvar "cmdecho" 0)
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif (setvar "DIMZIN" 0)
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif (vl-cmdf "_.undo" "be")
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif)
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif(defun fun_error (msg) (princ msg) (fun_close))
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif(defun fun_close () (vl-cmdf "_.undo" "e") (setvar "DIMZIN" old_DIMZIN)(setvar "cmdecho" 1) (setq *error* old_error))
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif(defun ureal (bit kwd msg def / inp)
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif (if def
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif (setq msg (strcat "\n" msg "<" (rtos def 2) ">: ")
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif bit (* 2 (fix (/ bit 2)))
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif )
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif (setq msg (strcat "\n" msg ": "))
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif )
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif (initget bit kwd)
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif (setq inp (getreal msg))
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif (if inp
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif inp
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif def
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif )
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif)
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif(defun String_To_Numbers (inStr
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif ;;Input string
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif / Flush_Buf Res
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif ;;Result list
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif Buf
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif ;;String buffer
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif Inx
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif ;;Character location
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif CH
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif ;;Character
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif) (defun Flush_Buf ()
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif (if (not (wcmatch Buf "[+-.]")) ;is it not just +-.
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif (progn ;Clean it up first
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif (if (= (substr Buf 1 1) ".")
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif (setq Buf (strcat "0" Buf))
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif )
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif ;;add zero to front if .#
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif (if (= (substr Buf (strlen Buf)) ".")
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif (setq Buf (substr Buf 1 (1- (strlen Buf))))
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif )
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif ;;remove decimal if #.
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif ;Add to RES list
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif (setq RES (cons Buf RES))
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif )
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif )
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif (setq Buf "")
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif ;;reset Buf
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif )
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif (setq Inx 1 ;start at the beginning of the string
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif Buf "" ;init buffer to empty
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif ) ;
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif ; Loop until the end of the string.
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif ; (I indicates where we are in the string)
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif ;
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif (while (<= Inx (strlen inStr)) ;
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif ; Get the character at position Inx, increment position indicator
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif (setq CH (substr inStr Inx 1)
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif Inx (1+ Inx)
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif ) ;
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif (cond ; Test to see if character is a digit.
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif ((wcmatch CH "")
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif (if (= CH ".") ;is it decimal
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif (if (not (wcmatch Buf "*`.*")) ;not already in there
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif (setq Buf (strcat Buf CH))
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif (Flush_Buf)
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif ) ;
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif (setq Buf (strcat Buf CH))
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif )
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif )
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif ((= Buf "") ;is the buffer empty
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif ;Is CH minus
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif (if (= CH "-")
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif (setq Buf CH) ;Yes, save in Buf
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif )
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif )
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif ('T ;else buffer is not empty
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif (Flush_Buf)
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif (if (= CH "-")
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif (setq Buf CH)
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif )
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif )
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif ) ; End of COND
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif ) ; End of WHILE
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif ;
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif (if (and (/= Buf "") (not (wcmatch Buf "[+-.]")))
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif (Flush_Buf)
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif )
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif (reverse Res)
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif)
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif(defun FUN_GETdigit (sNum)
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif (IF (vl-string-search "." sNum)
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif (STRLEN (substr sNum (+ 2 (vl-string-search "." sNum))))
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif 0
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif )
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif)
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif(defun Plus1 (str buchang / d1 d2 h num1 num2)
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif (setq str (vl-string-translate "-" (chr 1) str))
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif (or (setq d1 (last (string_to_numbers str))) (setq d1 "0"))
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif (setq h (vl-string-right-trim d1 str))
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif (setq num1 (FUN_GETdigit d1))
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif (setq d2 (vl-string-right-trim "." (vl-string-right-trim "0" (RTOS (+ (read d1) buchang) 2 12))))
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif (setq num2 (FUN_GETdigit d2))
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif (if (and (= num2 0) (> num1 0))
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif (setq d2 (strcat d2 "."))
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif )
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif (repeat (- num1 num2) (setq d2 (strcat d2 "0")))
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif ;;(setq d2 (vl-princ-to-string (+ (read d1) buchang)))
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif (while (< (strlen d2) (strlen d1)) (setq d2 (strcat "0" d2)))
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif (vl-string-translate (chr 1) "-" (strcat h d2))
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif)
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif(defun last_ent (en / ss)
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif (if en
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif (progn (setq ss (ssadd))
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif (while (setq en (entnext en))
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif (if (not (member (cdr (assoc 0 (entget en))) '("ATTRIB" "VERTEX" "SEQEND")))
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif (ssadd en ss)
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif ) ;if
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif ) ;while
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif (if (zerop (sslength ss))
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif (setq ss nil)
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif )
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif ss
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif ) ;progn
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif (ssget "_x")
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif ) ;if
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif)
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif;;-------------
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif(fun_setini)
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif(if (setq $buchang (ureal 1 "" "\n增减值(正为增,负为减)" NBTV_TXT_CopyADD))
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif (setq NBTV_TXT_CopyADD $buchang)
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif)
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif(setq ss (ssget ))
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif(setq e0 (entlast))
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif(setq pt (getpoint "指定基点:"))
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif(command "copy" ss "" pt pause)
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif(setq loop T)
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif(if (= 0 (distance (setq Point (getvar "LastPoint")) pt)) ;判断最后一点是不是pt点.
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif (progn (setq loop nil) ;Right Button
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif (setq ent_tmp (LAST_ENT e0)) ;ent_tmp 是e0后生成的物体.
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif (command "_.erase" ent_tmp "")
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif )
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif (setq pt Point)
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif)
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif(while loop
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif (SETQ SS1 (last_ent E0)
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif I 0
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif )
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif (repeat (sslength ss1)
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif (setq ent (ssname ss1 i)
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif i (1+ i)
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif entl (entget ent)
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif ) ;图元资料
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif (if (wcmatch (cdr (assoc 0 entl)) "*TEXT")
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif (progn (setq e-1 (cdr (assoc 1 entl))
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif ;;文字内容
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif NEWTX (Plus1 E-1 NBTV_TXT_CopyADD)
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif )
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif (entmod (subst (cons 1 NEWTX) (assoc 1 entl) entl)) ;更新文字
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif )
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif )
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif ) ;end repeat
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif (setq e0 (entlast))
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif (command "copy" ss1 "" pt pause)
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif (setq Point (getvar "LastPoint"))
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif (if (= 0 (distance Point pt)) ;判断最后一点是不是pt点.
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif (progn (setq loop nil) ;Right Button
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif (setq ent_tmp (LAST_ENT e0)) ;ent_tmp 是e0后生成的物体.
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif (command "_.erase" ent_tmp "")
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif )
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif (progn (setq pt Point)
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif ;;(setq ss (LAST_ENT e0))
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif )
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif )
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif)
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif(fun_close)
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif(princ)
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif)
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif
[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif(princ "复制文字增加数字 NBTC_TXTCopyadd")
[*]文字递增这个程序不要太好
edata
发表于 2013-11-30 18:21:08
算了。还是发下吧。(defun c:zm1 (/ mycopy mymove SstoEs sign ss p1 p2 indx)
(vl-load-com)
(defun SstoEs(ss / a en lst)
(if ss(progn(setq a -1)(while(setq en(ssname ss(setq a(1+ a))))(setq lst (cons en lst)))))
lst)
;(defun sign (nn) (if (< nn 0) 1 (if (> nn 0) -1 0)))
(defun mycopy(ss p p1 / ty q q1 s1 s2);;参照by-xyp1964的xyp-ScaleEntity
(setq ty(type ss)i -1s2(ssadd)q1(vlax-3D-point(trans p1 0 0))q(vlax-3D-point(trans p 0 0)))
(cond((= ty 'ENAME)(vla-move(vla-copy(vlax-ename->vla-object ss))q q1)(setq s2(ssadd(entlast)s2)))
((= ty 'PICKSET)(setq i -1)(while (setq s1 (ssname ss (setq i (1+ i))))
(mycopy s1 p p1)(setq s2(ssadd(entlast)s2))))
((= ty 'LIST)(foreach x ss(mycopy x p p1)(setq s2(ssadd(entlast)s2))))
)s2)
(defun mymove(ss p p1 / ty q q1 s1);;参照by-xyp1964的xyp-ScaleEntity
(setq ty(type ss)i -1
q1(vlax-3D-point(trans p1 0 0)) q(vlax-3D-point(trans p 0 0)))
(cond((= ty 'ENAME)(vla-move(vlax-ename->vla-object ss)q q1))
((= ty 'PICKSET)(setq i -1)
(while (setq s1 (ssname ss (setq i (1+ i))))
(mymove s1 p p1)))
((= ty 'LIST)(foreach x ss(mymove x p p1))))
)
(if ind (princ) (setq ind 1))
(if (setq indx (getint (strcat "\n输入增减量<"(rtos ind 2 0 )"> :"))) (setq ind indx));ind (sign ind))
(prompt"\n选择要进行递增复制的文字、属性:")
(setq ss(SstoEs(ssget'((0 . "*TEXT,ATTDEF")))))
(setq p1(getpoint"\n复制基点:"))
(prompt "\n复制到(右键退出):")
(while(and p1 (setq p2(getpoint p1)) ss)
(mycopy(setq ss(vl-remove'nil(mapcar'(lambda(x)(setq e(entget x))
(if(assoc 1 e)
(progn(setq tx(vl-string->list (cdr(assoc 1 e))))
;;; (if
;;; (OR (<= (IF(> ind 0)65 66) (last tx) (IF(> ind 0)89 90))
;;; (<=(IF(> ind 0)97 98)(last tx)(IF(> ind 0)121 122)))x)
;(princ(+ (last tx) ind))
(if (or(and (>= (+ (last tx) ind) 65)
(<= (+ (last tx) ind) 90) )
(and (>= (+ (last tx) ind) 97)
(<= (+ (last tx) ind) 122) )
(and (>= (+ (last tx) ind) 48)
(<= (+ (last tx) ind) 57)
)) x)
)))ss)))p1 p1)
(mymove ss p1 p2)
(mapcar'(lambda(x)(entmod(setq e(entget x)tx(vl-string->list (cdr(assoc 1 e)))
e(subst(cons 1 (vl-list->string(reverse(cons
;((IF(> ind 0)1+ 1-)(last tx))
(+ (last tx) ind)
(cdr(reverse tx))))))(assoc 1 e)e)))
nil)ss)
(setq p1 p2)
(if ss (princ)(princ "\n超出范围或末尾不是字母,程序退出!'"))
)
(princ)
)
llsheng_73
发表于 2013-12-1 02:44:09
楼上这代码怎么这么熟悉
edata
发表于 2013-12-1 10:02:48
llsheng_73 发表于 2013-12-1 02:44 static/image/common/back.gif
楼上这代码怎么这么熟悉
熟悉吧,不就是你发的咯。调试更改后,可以增减末尾为字母,数字的,数字只是0-9,字母A-Z,a-z。
偏爱云~小吴
发表于 2013-12-3 12:58:45
越来越接近
llsheng_73
发表于 2013-12-3 16:04:25
edata 发表于 2013-12-1 10:02 static/image/common/back.gif
熟悉吧,不就是你发的咯。调试更改后,可以增减末尾为字母,数字的,数字只是0-9,字母A-Z,a-z。
不过对于数字它不象字母这么简单,因为最后一位的的前一位甚至前几位也可能是数字, 所以不能简单处理最后一位
从这个意义是说,字母它也可以一长串,前边弄的只处理最后一位的处理方式就不够灵活,总之要真正实现编号自动增减还需要对程序进行较大改动才行,当然对于怎么实现复制这一部分是不需要改的,要做的工作全在改文本内容上
edata
发表于 2013-12-3 17:26:36
llsheng_73 发表于 2013-12-3 16:04 static/image/common/back.gif
不过对于数字它不象字母这么简单,因为最后一位的的前一位甚至前几位也可能是数字, 所以不能简单处理最后 ...
数字递增比较多了,就没深入修改这个代码,每个人都有自己的方式,我就是觉得通过读ascii码判断方式比较特别,才动手改的,其实数字也可以判断是数字后,继续读取倒数第二位,第三位,通过ascii计算出数字,因为某些方法,如http://bbs.mjtd.com/forum.php?mod=viewthread&tid=100800,改程序必须通过dimzin变量控制精度,在数字增加的情况下递增的数值会有多余的小数点000000000001之类的,我测试过,具体是多少会变也记不清了。而我自己写的编号递增程序,也要改dimzin来控制(以前没上论坛搜,调试了很久)。
如果能通过ascii来控制数值,应该就没有这样的问题了,还有就是整数有限制值,貌似字符串,没有限制长度。
有空了再研究。
llsheng_73
发表于 2013-12-3 17:35:58
edata 发表于 2013-12-3 17:26 static/image/common/back.gif
数字递增比较多了,就没深入修改这个代码,每个人都有自己的方式,我就是觉得通过读ascii码判断方式比较特 ...
整数增减也会多出小数点来么?那以后还真得注意它了
edata
发表于 2013-12-3 18:00:17
llsheng_73 发表于 2013-12-3 17:35 static/image/common/back.gif
整数增减也会多出小数点来么?那以后还真得注意它了
刚又测试了下,就这结果。
偏爱云~小吴
发表于 2013-12-10 11:57:12
其实我所说框选只是要实现图示数字递增类似的字母递增,该怎么该,ssget()应该怎么定义