偏爱云~小吴 发表于 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()应该怎么定义
页: 1 [2] 3
查看完整版本: 字母递增复制