找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 624|回复: 0

[求助] [求助]:sos!紧急救援!

[复制链接]
发表于 2005-11-2 17:14:08 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
大家好,这时一个tssd里面的程序子块
也是我用得比较顺手的一个子块,他的具体作用是编辑 任何文字 包括块里的,由于是直接反编译过来的,大家能不能帮忙把他的有些东西补齐啊,有些变量没定义。我谢谢大家了!
大家改好了的话我就集合一下,把我这2年在r14用得顺手的东西(已经全部调试完毕,好用)
以及(最近我整理天正3.0的快捷命令,tssd命令,纯r14扩展命令,注意:3个acad.pgp是通用的,还有我自己打的说明,及全部补丁邮寄送给帮助过我的人)
  1. [FONT=courier new]
  2. (defun c:tybj (/ en ent        entl i l len na        str str1 str2 tx txt wzxgtxt flag e el
  3.                enl)
  4.   (defun wzxgtxt (name / a p0 st #doret mdcl str)
  5.     (defun #doret (/ tf l i ni n1 f)
  6.       (setq na (get_tile "na"))
  7.       (if (read na)
  8.         (progn
  9.           (if (and (= (get_tile "tg") "1")
  10.                    (wcmatch na "*[dDfF][1-9]*")
  11.               )
  12.             (progn
  13.               (setq l         ""
  14.                     n1         (substr na 1 1)
  15.                     i         2
  16.                     flag 1
  17.               )
  18.               (while (< i (1+ (strlen na)))
  19.                 (setq ni (substr na i 1)
  20.                       i         (1+ i)
  21.                 )
  22.                 (cond
  23.                   ((and        (= n1 "d")
  24.                         (wcmatch ni "[1-9]")
  25.                    )
  26.                    (setq n1 "%%130")
  27.                   )
  28.                   ((and        (= n1 "D")
  29.                         (wcmatch ni "[1-9]")
  30.                    )
  31.                    (setq n1 "%%131")
  32.                   )
  33.                   ((and        (= n1 "f")
  34.                         (wcmatch ni "[1-9]")
  35.                    )
  36.                    (setq n1 "%%132")
  37.                   )
  38.                   ((and        (= n1 "F")
  39.                         (wcmatch ni "[1-9]")
  40.                    )
  41.                    (setq n1 "%%133")
  42.                   )
  43.                   (t
  44.                    nil
  45.                   )
  46.                 )
  47.                 (setq l         (strcat l n1)
  48.                       n1 ni
  49.                 )
  50.               )
  51.               (setq na (strcat l (substr na (strlen na) 1)))
  52.             )
  53.           )
  54.         )
  55.         (setq na nil)
  56.       )
  57.       (done_dialog 1)
  58.     )
  59.     (defun mdcl        (/ hi f li na)
  60.       (if (new_dialog "wzxg" (@dcl "tssdtxt"))
  61.         (progn (set_tile "na" name)
  62.                (mode_tile "na" 2)
  63.                (action_tile
  64.                  "li"
  65.                  "(set_tile "na" (nth (atoi $value) li))"
  66.                )
  67.                (action_tile "help" "(help "tssd.hlp" "tybj")")
  68.                (action_tile "accept" "(#doret)")
  69.                (start_dialog)
  70.         )
  71.       )
  72.       (if na
  73.         (cons na hi)
  74.       )
  75.     )
  76.     (setq st (mdcl))
  77.     (&end "文字" t)
  78.     (&p2l "钢筋")
  79.     (if        st
  80.       (setq str (car st))
  81.       (setq str name)
  82.     )
  83.     str
  84.   )
  85.   (if (< (&swap) 0)
  86.     (exit)
  87.   )
  88.   (setq ent 1)
  89.   (while ent
  90.     (setq ent  (nentsel "\n选取要修改的文字对象<退出>: ")
  91.           str1 ""
  92.           str2 ""
  93.           tx   nil
  94.           flag 0
  95.     )
  96.     (if        ent
  97.       (progn
  98.         (setq entl (entget (car ent))
  99.               na   (strcase (cdr (assoc 0 entl)))
  100.               i           0
  101.               en   (car (reverse (nth 3 ent)))
  102.         )
  103.         (cond ((or (wcmatch na "TEXT")
  104.                    (wcmatch na "ATTRIB")
  105.                )
  106.                (setq txt (cdr (assoc 1 entl)))
  107.               )
  108.               ((wcmatch na "ATTDEF")
  109.                (setq txt (cdr (assoc 2 entl)))
  110.               )
  111.               ((wcmatch na "MTEXT")
  112.                (setq txt (cdr (assoc 1 entl))
  113.                      len (strlen txt)
  114.                      l         len
  115.                      i         1
  116.                )
  117.                (while (> len 0)
  118.                  (if (wcmatch (substr txt i 1) ";")
  119.                    (setq str1 (substr txt 1 i)
  120.                          str2 (substr txt (+ i 1) (- l i))
  121.                          len  0
  122.                    )
  123.                  )
  124.                  (setq i   (+ i 1)
  125.                        len (- len 1)
  126.                  )
  127.                )
  128.                (if (wcmatch str1 "")
  129.                  (setq str2 txt)
  130.                )
  131.                (setq txt str2)
  132.               )
  133.         )
  134.         (if txt
  135.           (progn (setq str (wzxgtxt txt)
  136.                        txt nil
  137.                  )
  138.                  (if (= na "MTEXT")
  139.                    (cond ((wcmatch str "%%130*")
  140.                           (setq        str (strcat "\\U+0082"
  141.                                             (substr str
  142.                                                     6
  143.                                                     (strlen str)
  144.                                             )
  145.                                     )
  146.                           )
  147.                          )
  148.                          ((wcmatch str "%%131*")
  149.                           (setq        str (strcat "\\U+0083"
  150.                                             (substr str
  151.                                                     6
  152.                                                     (strlen str)
  153.                                             )
  154.                                     )
  155.                           )
  156.                          )
  157.                          ((wcmatch str "%%132*")
  158.                           (setq        str (strcat "\\U+0084"
  159.                                             (substr str
  160.                                                     6
  161.                                                     (strlen str)
  162.                                             )
  163.                                     )
  164.                           )
  165.                          )
  166.                          ((wcmatch str "%%133*")
  167.                           (setq        str (strcat "\\U+0085"
  168.                                             (substr str
  169.                                                     6
  170.                                                     (strlen str)
  171.                                             )
  172.                                     )
  173.                           )
  174.                          )
  175.                    )
  176.                  )
  177.                  (setq entl (subst (cons (if (wcmatch na "ATTDEF")
  178.                                            2
  179.                                            1
  180.                                          )
  181.                                          str
  182.                                    )
  183.                                    (assoc (if (wcmatch na "ATTDEF")
  184.                                             2
  185.                                             1
  186.                                           )
  187.                                           entl
  188.                                    )
  189.                                    entl
  190.                             )
  191.                  )
  192.                  (if (= flag 1)
  193.                    (setq entl (subst (cons 7 "TSSD_REIN")
  194.                                      (assoc 7 entl)
  195.                                      entl
  196.                               )
  197.                    )
  198.                  )
  199.                  (entmod entl)
  200.                  (if en
  201.                    (progn (setq        enl (nth 3 ent)
  202.                                 len (length enl)
  203.                           )
  204.                           (while (> len 0)
  205.                             (setq e (nth (- len 1) enl))
  206.                             (if        (or (= "INSERT" (cdr (assoc 0 (entget e))))
  207.                                     (= "DIMENSION" (cdr (assoc 0 (entget e))))
  208.                                 )
  209.                               (if (= "DIMENSION"
  210.                                      (cdr (assoc 0
  211.                                                  (setq el
  212.                                                         (entget
  213.                                                           (car enl)
  214.                                                         )
  215.                                                  )
  216.                                           )
  217.                                      )
  218.                                   )
  219.                                 (progn (setq el        (subst
  220.                                                   (cons 1 str)
  221.                                                   (assoc 1 el)
  222.                                                   el
  223.                                                 )
  224.                                        )
  225.                                        (entmod el)
  226.                                 )
  227.                               )
  228.                             )
  229.                             (entupd e)
  230.                             (setq len (- len 1))
  231.                           )
  232.                    )
  233.                    (entupd (car ent))
  234.                  )
  235.           )
  236.           (princ "\n选取的实体不是文字内容!")
  237.         )
  238.       )
  239.     )
  240.   )
  241.   (&gscl)
  242. )
  243. [/FONT]

有破译和再完善的功夫,还不如自己写一个!by xyp1964[/COLOR]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2025-9-3 10:55 , Processed in 0.202789 second(s), 32 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表