429014673 发表于 2010-6-5 06:32:00

TrueTable(破解) .

本帖最后由 429014673 于 2021-4-12 11:12 编辑












彳余 发表于 2021-6-10 16:56:12

TrueTable(破解),niubi

_Levin 发表于 2021-3-26 21:09:05

威武霸气。。牛逼啊

tender138 发表于 2020-5-27 17:30:01

威武霸气,牛逼啊

429014673 发表于 2010-6-5 06:57:00

本帖最后由 作者 于 2010-6-5 7:24:38 编辑 <br /><br /> <font face="Verdana">(defun c:q2()<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq var1 (getvar "osmode")<br/>&nbsp;&nbsp;&nbsp;&nbsp; var2 (getvar "dimassoc" ))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setvar "cmdecho" 0 )(setvar "osmode" 0)(setvar "dimassoc" 2)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; di (getreal":\nInput The Distance Between The Object And Dimension Line...")<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; n (1- (sslength sg))<br/>&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (while (setq&nbsp; sn (ssname sg n)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ent (entget sn)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (cond ((=&nbsp; (cdr(assoc 0 ent)) "LINE") (diml))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ((=&nbsp; (cdr(assoc 0 ent)) "ARC" ) (progn(dimr)(dimarc)))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ((=&nbsp; (cdr(assoc 0 ent)) "POLYLINE" ) (dimsp sn di))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp; (setq n (1- n))<br/>&nbsp; )<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.........</font>

429014673 发表于 2010-6-5 07:03:00

本帖最后由 作者 于 2010-6-5 7:24:15 编辑 <br /><br /> <p>再放一条</p>
<p><font face="Verdana">查找手動修改過的尺寸(RF)</font></p>
<p><font face="Verdana">&nbsp;;-----------------------------------------------------------------<br/>&nbsp;(defun c:RF ( )&nbsp;&nbsp;&nbsp; ;Real Find,用于查找客戶原圖中手動修改過的尺寸<br/>&nbsp; (COMMAND "UCS" "W")<br/>&nbsp; (princ "查找手動修改過的尺寸")<br/>&nbsp; (SETQ COUNTOR 0)<br/>&nbsp; (SETQ DIMSTRING "here")<br/>&nbsp; (PROMPT "\n指示查找區域(確認對象不是一個塊!):")<br/>&nbsp; (SETVAR "OSMODE" 0)(SETVAR "ORTHOMODE" 0)<br/>&nbsp; (SETQ ENTGRP (SSGET))<br/>&nbsp; (SETQ COUNT 0)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp; .........</font></p>

429014673 发表于 2010-6-5 07:04:00

剖視&放大(CCS)
--------------------------------------------------------------
(defun c:ccs (/ sym ssy sc snum systr scstr txtpnt numstr n cnt i txtlst oldtxt oldlay ent scpnt diment dimn measur
            newtxt prec dimtyp
             )
   (setvar "cmdecho" 0)
   (grtext -1 "該程序是用以將剖視圖(或放大圖)的尺寸自動從默認值變成實測值,再放大它並插入標示.")
   (setq ssy (getstring "\nThe section symbol is:"))
   (setq systr nil
         scstr nil
         numstr nil
   ) ;_ 結束setq
   ;;If no section symbol,then just make the measurement of the dimension.
   (IF (/= ssy "")
      (progn
         ;;(initget 128 "Detail Section")
         (setq sym (getstring "\n是剖視圖還是放大圖?Detail/<Section>:"))
         (if (or (= sym "") (= sym "s"))                  ;presume it as section view
            (setq systr (strcat "SECTION " ssy "-" ssy)
                  systr (strcase systr) ;|insure the input cha. is uppercase.|;
            ) ;_ 結束setq
            (setq systr (strcat "DETAIL " ssy)
                  systr (strcase systr)
            ) ;_ 結束setq
         ) ;_ 結束if
         (setq sc (getstring "\nThe section scale?(needed to be integers)"))
         ;| access the number of places to be scaled.|;
         (setq snum (getstring "\nHow many places?(needed to be integers)"))
         (if (> (atoi snum) 1)
            (setq numstr (strcat snum "PLS")
                  numstr (strcase numstr)
            ) ;_ 結束setq
         ) ;_if just 1 place,not display it.
      ) ;_ 結束progn
   ) ;_ 結束IF
   (grtext -1 "Please select the dimension object...")
   (setq ent (ssget))
   (setq diment (ssget "p" '((0 . "dimension")))
         n      (sslength diment)
   ) ;_ 結束setq
   (princ (strcat "\n*** Total " (itoa n) " dimensions to be selected. ***"))
   (setq cnt 0
         i 0
   ) ;_reset countor and list NO.
   (while (PROGN (grtext -1 "OK.Modifying the dimension...")
               (< i n)
          )                                                 ;逐一搜索標注實體.
      (setq dimn (entget (ssname diment i)))                ;取得實體.
;;;->(setq dimn (entget (car (entsel))))                   ;取得實體數據表.
      (setq oldtxt (cdr (assoc 1 dimn))
            dimtyp (cdr (assoc 100 (reverse dimn)))
      ) ;_ 結束setq
      (if (and (or (wcmatch oldtxt "*<>*") (= oldtxt ""))
               (wcmatch dimtyp "~*Angular*")
          ) ;_ 結束and
          ;|只有是非角度尺寸,才用實測值代替默認值. |;
         (progn
            (setq measur (C42 dimn) ;|***調用函數c42(ent).|;
                  prec   (getvar "dimdec")
                  measur (rtos measur 2 prec) ;|將測量值從實數變成字串|;
            ) ;_ 結束setq
            (cond ((wcmatch dimtyp "*Diametric*") (setq measur (strcat "%%c" measur)))
                                                            ; _若是直徑,則在數字前加直徑符號"%%c"
                  ((wcmatch dimtyp "*Radial*") (setq measur (strcat "R" measur))) ;_若是半徑,則在數字前加半徑符號R.
            ) ;_ 結束cond
            (if (wcmatch oldtxt "*<>*")
               (setq newtxt (subst_str measur "<>" oldtxt)) ;|只替代默認值部分.***調用函數subst_str(newstr oldstr str)|;
               (setq newtxt measur)
            ) ;_ 結束if
            (setq dimn (subst (cons 1 newtxt) (cons 1 oldtxt) dimn))
            (entmod dimn)
            (setq cnt (1+ cnt))
         ) ;_ 結束progn
      ) ;_ 結束if
      (setq i (1+ i))                                       ;search the next dimension.
   ) ;_ 結束while
   (princ (strcat "\n*** Just " (itoa cnt) " dimensions modified! ***"))
   ;;if the scale is 1:1,not to scale it.
   (if (/= sc "")
      (if (> (atoi sc) 1)
         (progn (setq scpnt (getpoint "\nInput the scale center point:"))
                (command "._scale" ent "" scpnt (atof sc))
                (setq scstr (strcat "SCALE " sc ":1") ;_ if it's 1:1(no input),not to display it
                      scstr (strcase scstr)
                ) ;_ 結束setq
         ) ;_ 結束progn
      ) ;_ 結束if
   ) ;_ 結束IF
   (if (or systr scstr numstr)
      (progn
         (setq txtpnt (getpoint "\nWhere to place the note?"))
         (setq oldlay (getvar "clayer"))
         (if (tblsearch "layer" "mark")
            (setvar "clayer" "mark")
         ) ;_ 結束IF
         (command "._text" "s" "standard" "j" "mc" txtpnt (* 2.5 (getvar "dimscale")) "0" systr "")
         (if scstr
            (command "._text" "" scstr)
         ) ;_ 結束if
         (if numstr
            (command "._text" "" numstr)
         ) ;_ 結束if
                                                            ;(command)
         (setvar "clayer" oldlay)
      ) ;_ 結束PROGN
   ) ;_ 結束IF
   (setvar "cmdecho" 1)
   (grtext)
   (princ)
) ;_ 結束defun
;;;---------SUBPROGRAMM---------------
;;;This pro. is to make the linear dimension's measurement.
(defun c42 (ent / p1x p1y p2x p2y dy v ang dimtyp dx p1 p2 dimtyp)
   (setq dimtyp (cdr (assoc 70 ent))
         dimtyp (logand dimtyp 7)
   ) ;_ 結束setq
   (cond
      ;;aligned&rotateddimension
      ((= dimtyp 0)
       (progn
          (setq p1(assoc 13 ent)
                p2(assoc 14 ent)
                p1x (nth 1 p1)
                p1y (nth 2 p1)
                p2x (nth 1 p2)
                p2y (nth 2 p2)
                dx(abs (- p1x p2x))
                dy(abs (- p1y p2y))
                ang (cdr (assoc 50 ent))
          ) ;_ 結束setq
          (if (= ang 0)
             (setq v dx)
             (setq v dy)
          ) ;_ 結束if
       ) ;_ 結束progn
      ) ;_case 1
      ;;aligneddimension
      ((= dimtyp 1)
       (setq p1 (assoc 13 ent)
             p2 (assoc 14 ent)
             v(distance (cdr p1) (cdr p2))
       ) ;_ 結束setq
      ) ;_case 2
      ;;radialdimension & diametricdimension
      ((or (= dimtyp 4) (= dimtyp 3))
       (setq p1 (assoc 10 ent)
             p2 (assoc 15 ent)
             v(distance (cdr p1) (cdr p2))                ;取得數值v作為函數值.            
       ) ;_ 結束setq
      ) ;_case 3
   ) ;_ 結束cond
) ;_ 結束defun
;;;;-SUBROTINE 2------
;;;This pro. is to substitute a new string for the old string in the source string.
(defun subst_str (newstr oldstr str / i k k1 k2 n tmpstr stre strf)
   (setq k1 (strlen str)
         k2 (strlen oldstr)
         k(1+ (- k1 k2))
         i1
         nnil
   ) ;_ 結束setq
   (while (<= i k)
      (setq tmpstr (substr str i k2))
      (if (= tmpstr oldstr)
         (progn
            (setq n i
                  i (1+ k)
            )                                             ;set the loop-off condition to end the loop

............

429014673 发表于 2010-6-5 07:05:00

本帖最后由 作者 于 2010-6-5 7:25:35 编辑 <br /><br /> <font face="Verdana">圖元縮放,尺寸不變(RS)<br/>;-----------------------------------------------------------------<br/>&nbsp;(defun c:RS ( )&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;Real Scale,用于畫剖視圖縮放圖元時,維持標注尺寸不變<br/>&nbsp; (princ "圖元縮放,尺寸不變")<br/>&nbsp; (PROMPT "\n指示縮放區域:")<br/>&nbsp; (SETVAR "OSMODE" 0)(SETVAR "ORTHOMODE" 0)<br/>&nbsp; (setq scale (ssget ))<br/>&nbsp; (SETQ ENTGRP scale)<br/>&nbsp; (SETQ COUNT 0)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp; (REPEAT (SSLENGTH ENTGRP)<br/>&nbsp;&nbsp;&nbsp; (SETQ ENTNAME (SSNAME ENTGRP COUNT))<br/>&nbsp;&nbsp;&nbsp; (SETQ ENT (ENTGET ENTNAME))<br/>&nbsp;&nbsp;&nbsp; (IF (AND (= (CDR (ASSOC 0 ENT)) "DIMENSION")&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (/= (cdr (ASSOC 1 ENT)) ""))&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (PROGN (PRINC "\n對象中不能有修改過的尺寸!") (EXIT)))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (IF (and(= (CDR (ASSOC 0 ENT)) "DIMENSION")&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;AlignedDimension<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (= (cdr (nth 19 ent)) "AcDbAlignedDimension"))&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (PROGN<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq P1 (assoc 13 ENT)) <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq P2 (assoc 14 ENT))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq P1x (nth 1 P1))&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq P1y (nth 2 P1))&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq P2x (nth 1 P2)) <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq P2y (nth 2 P2)) <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq DX (ABS(- P1x P2x)))&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq DY (ABS(- P1y P2y)))&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq SS (assoc 10 ENT)) <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq TT (assoc 11 ENT)) <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq SSx (nth 1 SS))&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq TTx (nth 1 TT)) <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq SSy (nth 2 SS))&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq TTy (nth 2 TT))&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (IF (= SSx TTx)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq V Dy))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (IF (and(/= SSx TTx)(= SSy TTy)) <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq V Dx))&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;取得數值V1<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (IF (and(/= SSx TTx)(/= SSy TTy)) <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq V (distance (cdr p1) (cdr p2))))&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (SETQ W (rtos V 2 2))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (SETQ ENT (SUBST (CONS 1 W) (ASSOC 1 ENT) ENT))&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;MODIFY<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (ENTMOD ENT)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;UPDATE<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp; (IF (and(= (CDR (ASSOC 0 ENT)) "DIMENSION")&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;RadialDimension<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (= (cdr (nth 19 ent)) "AcDbRadialDimension"))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (PROGN<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq P1 (assoc 10 ENT)) <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq P2 (assoc 15 ENT))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq V (distance (cdr p1) (cdr p2)))&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;取得數值V1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (SETQ W (strcat "R" (rtos V 2 2)))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (SETQ ENT (SUBST (CONS 1 W) (ASSOC 1 ENT) ENT))&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;MODIFY<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (ENTMOD ENT)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;UPDATE<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp; (SETQ COUNT (1+ COUNT))<br/>..........</font>

429014673 发表于 2010-6-5 07:06:00

<p><font face="微软雅黑" color="#800080" size="6"><u><strong>..........</strong></u></font></p>

429014673 发表于 2010-6-5 07:28:00

<p>&nbsp;</p>

429014673 发表于 2010-6-5 07:56:00

<p><font face="Verdana"><font face="Verdana">标注弧长、半径、线段</font></font></p>
<p><font face="Verdana">(defun c:q2()<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq var1 (getvar "osmode")<br/>&nbsp;&nbsp;&nbsp;&nbsp; var2 (getvar "dimassoc" ))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setvar "cmdecho" 0 )(setvar "osmode" 0)(setvar "dimassoc" 2)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (princ "\nChoose Objects You Want To Auto Make Dimensions...")<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq sg (ssget) <br/>&nbsp;&nbsp;&nbsp;&nbsp; di (getreal":\nInput The Distance Between The Object And Dimension Line...")<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; n (1- (sslength sg))<br/>&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (while (setq&nbsp; sn (ssname sg n)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ent (entget sn)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (cond ((=&nbsp; (cdr(assoc 0 ent)) "LINE") (diml))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ((=&nbsp; (cdr(assoc 0 ent)) "ARC" ) (progn(dimr)(dimarc)))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ((=&nbsp; (cdr(assoc 0 ent)) "POLYLINE" ) (dimsp sn di))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp; (setq n (1- n))<br/>&nbsp; )<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (command)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setvar "cmdecho" 1)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setvar "dimassoc" var2 )<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setvar "osmode" var1)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (princ"\nByoend Ever You Thinking...") <br/>&nbsp; )</font></p>

429014673 发表于 2010-6-5 08:02:00

<font face="Verdana">(defun c:RF ( )&nbsp;&nbsp;&nbsp; ;Real Find,用于查找客戶原圖中手動修改過的尺寸<br/>&nbsp; (COMMAND "UCS" "W")<br/>&nbsp; (princ "查找手動修改過的尺寸")<br/>&nbsp; (SETQ COUNTOR 0)<br/>&nbsp; (SETQ DIMSTRING "here")<br/>&nbsp; (PROMPT "\n指示查找區域(確認對象不是一個塊!):")<br/>&nbsp; (SETVAR "OSMODE" 0)(SETVAR "ORTHOMODE" 0)<br/>&nbsp; (SETQ ENTGRP (SSGET))<br/>&nbsp; (SETQ COUNT 0)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp; (REPEAT (SSLENGTH ENTGRP)<br/>&nbsp;&nbsp;&nbsp; (SETQ ENTNAME (SSNAME ENTGRP COUNT))<br/>&nbsp;&nbsp;&nbsp; (SETQ ENT (ENTGET ENTNAME))<br/>&nbsp;&nbsp;&nbsp; (IF (AND (= (CDR (ASSOC 0 ENT)) "DIMENSION")&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (/= (cdr (ASSOC 1 ENT)) ""))&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (PROGN<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (SETQ TXTPT (CDR (ASSOC 11 ENT)))&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (SETQ OLDLAYER (GETVAR "CLAYER"))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (COMMAND "-LAYER" "S" "MARK" "")&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (COMMAND "_.TEXT" "J" "C" TXTPT (* 5.0 (GETVAR "DIMSCALE")) "" (strcase DIMSTRING t))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (COMMAND "-LAYER" "S" OLDLAYER "")<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (SETQ COUNTOR (1+ COUNTOR))&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp; (SETQ COUNT (1+ COUNT))<br/>&nbsp; )<br/>&nbsp; (COMMAND "_UCS" "P")<br/>&nbsp; (PRINC "\n OK! 找到 ")(PRINC COUNTOR) (PRINC " 個手動修改過的尺寸!")<br/>&nbsp; (PRINC)<br/>)</font>

429014673 发表于 2010-6-5 08:03:00

<p><font face="Verdana">(defun c:ccs (/ sym ssy sc snum systr scstr txtpnt numstr n cnt i txtlst oldtxt oldlay ent scpnt diment dimn measur<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; newtxt prec dimtyp<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp; (setvar "cmdecho" 0)<br/>&nbsp;&nbsp; (grtext -1 "該程序是用以將剖視圖(或放大圖)的尺寸自動從默認值變成實測值,再放大它並插入標示.")<br/>&nbsp;&nbsp; (setq ssy (getstring "\nThe section symbol is:"))<br/>&nbsp;&nbsp; (setq systr nil<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; scstr nil<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; numstr nil<br/>&nbsp;&nbsp; ) ;_ 結束setq<br/>&nbsp;&nbsp; ;;If no section symbol,then just make the measurement of the dimension.<br/>&nbsp;&nbsp; (IF (/= ssy "")<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (progn<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;;(initget 128 "Detail Section")<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq sym (getstring "\n是剖視圖還是放大圖?Detail/&lt;Section&gt;:"))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (if (or (= sym "") (= sym "s"))&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;presume it as section view<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq systr (strcat "SECTION " ssy "-" ssy)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; systr (strcase systr) ;|insure the input cha. is uppercase.|;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ) ;_ 結束setq<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq systr (strcat "DETAIL " ssy)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; systr (strcase systr)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ) ;_ 結束setq<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ) ;_ 結束if<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq sc (getstring "\nThe section scale?(needed to be integers)"))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;| access the number of places to be scaled.|;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq snum (getstring "\nHow many places?(needed to be integers)"))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (if (&gt; (atoi snum) 1)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq numstr (strcat snum "PLS")<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; numstr (strcase numstr)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ) ;_ 結束setq<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ) ;_if just 1 place,not display it.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ) ;_ 結束progn<br/>&nbsp;&nbsp; ) ;_ 結束IF<br/>&nbsp;&nbsp; (grtext -1 "Please select the dimension object...")<br/>&nbsp;&nbsp; (setq ent (ssget))<br/>&nbsp;&nbsp; (setq diment (ssget "p" '((0 . "dimension")))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (sslength diment)<br/>&nbsp;&nbsp; ) ;_ 結束setq<br/>&nbsp;&nbsp; (princ (strcat "\n*** Total " (itoa n) " dimensions to be selected. ***"))<br/>&nbsp;&nbsp; (setq cnt 0<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; i 0<br/>&nbsp;&nbsp; ) ;_reset countor and list NO.<br/>&nbsp;&nbsp; (while (PROGN (grtext -1 "OK.Modifying the dimension...")<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (&lt; i n)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;逐一搜索標注實體.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq dimn (entget (ssname diment i)))&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;取得實體.<br/>;;;-&gt;(setq dimn (entget (car (entsel))))&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;取得實體數據表.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq oldtxt (cdr (assoc 1 dimn))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dimtyp (cdr (assoc 100 (reverse dimn)))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ) ;_ 結束setq<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (if (and (or (wcmatch oldtxt "*&lt;&gt;*") (= oldtxt ""))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (wcmatch dimtyp "~*Angular*")<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ) ;_ 結束and<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;|只有是非角度尺寸,才用實測值代替默認值. |;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (progn<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq measur (C42 dimn) ;|***調用函數c42(ent).|;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; prec&nbsp;&nbsp; (getvar "dimdec")<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; measur (rtos measur 2 prec) ;|將測量值從實數變成字串|;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ) ;_ 結束setq<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (cond ((wcmatch dimtyp "*Diametric*") (setq measur (strcat "%%c" measur)))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ; _若是直徑,則在數字前加直徑符號"%%c"<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ((wcmatch dimtyp "*Radial*") (setq measur (strcat "R" measur))) ;_若是半徑,則在數字前加半徑符號R.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ) ;_ 結束cond<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (if (wcmatch oldtxt "*&lt;&gt;*")<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq newtxt (subst_str measur "&lt;&gt;" oldtxt)) ;|只替代默認值部分.***調用函數subst_str(newstr oldstr str)|;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq newtxt measur)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ) ;_ 結束if<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq dimn (subst (cons 1 newtxt) (cons 1 oldtxt) dimn))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (entmod dimn)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq cnt (1+ cnt))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ) ;_ 結束progn<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ) ;_ 結束if<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq i (1+ i))&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;search the next dimension.<br/>&nbsp;&nbsp; ) ;_ 結束while<br/>&nbsp;&nbsp; (princ (strcat "\n*** Just " (itoa cnt) " dimensions modified! ***"))<br/>&nbsp;&nbsp; ;;if the scale is 1:1,not to scale it.<br/>&nbsp;&nbsp; (if (/= sc "")<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (if (&gt; (atoi sc) 1)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (progn (setq scpnt (getpoint "\nInput the scale center point:"))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (command "._scale" ent "" scpnt (atof sc))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq scstr (strcat "SCALE " sc ":1") ;_ if it's 1:1(no input),not to display it<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; scstr (strcase scstr)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ) ;_ 結束setq<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ) ;_ 結束progn<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ) ;_ 結束if<br/>&nbsp;&nbsp; ) ;_ 結束IF<br/>&nbsp;&nbsp; (if (or systr scstr numstr)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (progn<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq txtpnt (getpoint "\nWhere to place the note?"))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq oldlay (getvar "clayer"))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (if (tblsearch "layer" "mark")<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setvar "clayer" "mark")<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ) ;_ 結束IF<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (command "._text" "s" "standard" "j" "mc" txtpnt (* 2.5 (getvar "dimscale")) "0" systr "")<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (if scstr<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (command "._text" "" scstr)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ) ;_ 結束if<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (if numstr<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (command "._text" "" numstr)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ) ;_ 結束if<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;(command)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setvar "clayer" oldlay)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ) ;_ 結束PROGN<br/>&nbsp;&nbsp; ) ;_ 結束IF<br/>&nbsp;&nbsp; (setvar "cmdecho" 1)<br/>&nbsp;&nbsp; (grtext)<br/>&nbsp;&nbsp; (princ)<br/>) ;_ 結束defun<br/>;;;---------SUBPROGRAMM---------------<br/>;;;This pro. is to make the linear dimension's measurement.<br/>(defun c42 (ent / p1x p1y p2x p2y dy v ang dimtyp dx p1 p2 dimtyp)<br/>&nbsp;&nbsp; (setq dimtyp (cdr (assoc 70 ent))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dimtyp (logand dimtyp 7)<br/>&nbsp;&nbsp; ) ;_ 結束setq<br/>&nbsp;&nbsp; (cond<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;;aligned&amp;rotateddimension<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ((= dimtyp 0)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (progn<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq p1&nbsp; (assoc 13 ent)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; p2&nbsp; (assoc 14 ent)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; p1x (nth 1 p1)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; p1y (nth 2 p1)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; p2x (nth 1 p2)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; p2y (nth 2 p2)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dx&nbsp; (abs (- p1x p2x))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dy&nbsp; (abs (- p1y p2y))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ang (cdr (assoc 50 ent))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ) ;_ 結束setq<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (if (= ang 0)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq v dx)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq v dy)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ) ;_ 結束if<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ) ;_ 結束progn<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ) ;_case 1<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;;aligneddimension<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ((= dimtyp 1)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq p1 (assoc 13 ent)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; p2 (assoc 14 ent)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; v&nbsp; (distance (cdr p1) (cdr p2))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ) ;_ 結束setq<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ) ;_case 2<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;;radialdimension &amp; diametricdimension<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ((or (= dimtyp 4) (= dimtyp 3))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq p1 (assoc 10 ent)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; p2 (assoc 15 ent)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; v&nbsp; (distance (cdr p1) (cdr p2))&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;取得數值v作為函數值.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ) ;_ 結束setq<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ) ;_case 3<br/>&nbsp;&nbsp; ) ;_ 結束cond<br/>) ;_ 結束defun</font></p>
<p><font face="Verdana">;;;;-SUBROTINE 2------<br/>;;;This pro. is to substitute a new string for the old string in the source string.<br/>(defun subst_str (newstr oldstr str / i k k1 k2 n tmpstr stre strf)<br/>&nbsp;&nbsp; (setq k1 (strlen str)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; k2 (strlen oldstr)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; k&nbsp; (1+ (- k1 k2))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; i&nbsp; 1<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; n&nbsp; nil<br/>&nbsp;&nbsp; ) ;_ 結束setq<br/>&nbsp;&nbsp; (while (&lt;= i k)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq tmpstr (substr str i k2))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (if (= tmpstr oldstr)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (progn<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq n i<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; i (1+ k)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;set the loop-off condition to end the loop<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ) ;_ 結束progn<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq i (1+ i))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ) ;_ 結束if<br/>&nbsp;&nbsp; ) ;_ 結束while<br/>&nbsp;&nbsp; (setq k1&nbsp;&nbsp; (1- n)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; k2&nbsp;&nbsp; (+ k2 n)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; strf (substr str 1 k1)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; stre (substr str k2)<br/>&nbsp;&nbsp; ) ;_ 結束setq<br/>&nbsp;&nbsp; (setq str (strcat strf newstr stre))<br/>) ;_ 結束defun<br/>;;;~~~~~~~~~~end of CCS~~~~~~~~~~~~</font></p>
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: TrueTable(破解) .