找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 626|回复: 3

[求助] [求助]:高手来改:文字格式刷

[复制链接]
发表于 2005-10-31 14:48:05 | 显示全部楼层 |阅读模式

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

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

×
我以前收集的一个lisp,文字刷功能比较好用,可是这个刷子只能刷一次就不能用了,要退出r14后重新来过又只能用1次,我晕死,作者可能想要我门经常想起他,搞了这么个套套!!
希望会改的兄弟改一下
附原代码
(DEFUN C:WT (/ KEY ENT1 EL EN N SS TH VAL)
  (SETVAR "cmdecho" 0)
  (SETVAR "blipmode" 0)
  (IF (= KEY1 NIL)
    (PROGN
      (INITGET 1 "N G Q T Y X C")
      (SETQ KEY (GETKWORD "\n/内容-N/高度-G/图层-C/样式-Y/倾斜角-Q/旋转角-X: "))
      (COND
        ((= KEY "N")
          (SETQ VAL 1)
        )
        ((= KEY "G")
          (SETQ VAL 40)
        )
        ((= KEY "C")
          (SETQ VAL 8)
        )
        ((= KEY "Y")
          (SETQ VAL 7)
        )
        ((= KEY "Q")
          (SETQ VAL 51)
        )
        ((= KEY "X")
          (SETQ VAL 50)
        )
        (T
          NIL
        )
      )
      (SETQ KEY1 KEY)
    )
    (PROGN
      (INITGET "N G Q T Y X C")
      (SETQ KEY (GETKWORD "\n/内容-N/高度-G/图层-C/样式-Y/倾斜角-Q/旋转角-X : "
                          N ""
                )
      )
      (IF (= KEY NIL)
        (PROGN
          (SETQ KEY KEY1)
          (COND
            ((= KEY "N")
              (SETQ VAL 1)
            )
            ((= KEY "G")
              (SETQ VAL 40)
            )
            ((= KEY "C")
              (SETQ VAL 8)
            )
            ((= KEY "Y")
              (SETQ VAL 7)
            )
            ((= KEY "Q")
              (SETQ VAL 51)
            )
            ((= KEY "X")
              (SETQ VAL 50)
            )
            (T
              NIL
            )
          )
        )
        (PROGN
          (SETQ KEY1 KEY)
          (COND
            ((= KEY "N")
              (SETQ VAL 1)
            )
            ((= KEY "G")
              (SETQ VAL 40)
            )
            ((= KEY "C")
              (SETQ VAL 8)
            )
            ((= KEY "Y")
              (SETQ VAL 7)
            )
            ((= KEY "Q")
              (SETQ VAL 51)
            )
            ((= KEY "X")
              (SETQ VAL 50)
            )
            (T
              NIL
            )
          )
        )
      )
    )
  )
  (IF (SETQ ENT1 (CAR (ENTSEL "\n先点选源文本:")))
    (PROGN
      (SETQ EN (ENTGET ENT1))
      (= "TEXT" (CDR (ASSOC 0 EN)))
      (SETQ TH (CDR (ASSOC VAL EN)))
      (PRINC "\n再选择目标文本:")
      (IF (SETQ SS (SSGET '((0 . "TEXT"))))
        (PROGN
          (SETQ N 0)
          (WHILE (< N (SSLENGTH SS))
            (SETQ EL (ENTGET (SSNAME SS N)))
            (ENTMOD (SUBST
                      (CONS (CAR (ASSOC VAL EL)) TH)
                      (ASSOC VAL EL)
                      EL
                    )
            )
            (SETQ N (1+ N))
          )
        )
      )
    )
  )
  (SETVAR "blipmode" OLDBLP)
  (SETVAR "cmdecho" OLDECH)
  (PRINC)
)
对xyp热情表示深深的敬意!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2005-10-31 15:52:19 | 显示全部楼层

  1. (DEFUN C:WT (/ OLDBLP OLDECH KEY ENT1 EL EN N SS TH VAL)
  2.   (setq        OLDBLP (gETVAR "blipmode")
  3.         OLDECH (gETVAR "cmdecho")
  4.   )
  5.   (SETVAR "cmdecho" 0)
  6.   (SETVAR "blipmode" 0)
  7.   (IF (= KEY1 NIL)
  8.     (PROGN
  9.       (INITGET 1 "N G Q T Y X C")
  10.       (SETQ KEY        (GETKWORD
  11.                   "\n/内容-N/高度-G/图层-C/样式-Y/倾斜角-Q/旋转角-X: "
  12.                 )
  13.       )
  14.       (COND
  15.         ((= KEY "N")
  16.          (SETQ VAL 1)
  17.         )
  18.         ((= KEY "G")
  19.          (SETQ VAL 40)
  20.         )
  21.         ((= KEY "C")
  22.          (SETQ VAL 8)
  23.         )
  24.         ((= KEY "Y")
  25.          (SETQ VAL 7)
  26.         )
  27.         ((= KEY "Q")
  28.          (SETQ VAL 51)
  29.         )
  30.         ((= KEY "X")
  31.          (SETQ VAL 50)
  32.         )
  33.         (T
  34.          NIL
  35.         )
  36.       )
  37.       (SETQ KEY1 KEY)
  38.     )
  39.     (PROGN
  40.       (INITGET "N G Q T Y X C")
  41.       (SETQ
  42.         KEY (GETKWORD
  43.               "\n/内容-N/高度-G/图层-C/样式-Y/倾斜角-Q/旋转角-X : "             
  44.             )
  45.       )
  46.       (IF (= KEY NIL)
  47.         (PROGN
  48.           (SETQ KEY KEY1)
  49.           (COND
  50.             ((= KEY "N")
  51.              (SETQ VAL 1)
  52.             )
  53.             ((= KEY "G")
  54.              (SETQ VAL 40)
  55.             )
  56.             ((= KEY "C")
  57.              (SETQ VAL 8)
  58.             )
  59.             ((= KEY "Y")
  60.              (SETQ VAL 7)
  61.             )
  62.             ((= KEY "Q")
  63.              (SETQ VAL 51)
  64.             )
  65.             ((= KEY "X")
  66.              (SETQ VAL 50)
  67.             )
  68.             (T
  69.              NIL
  70.             )
  71.           )
  72.         )
  73.         (PROGN
  74.           (SETQ KEY1 KEY)
  75.           (COND
  76.             ((= KEY "N")
  77.              (SETQ VAL 1)
  78.             )
  79.             ((= KEY "G")
  80.              (SETQ VAL 40)
  81.             )
  82.             ((= KEY "C")
  83.              (SETQ VAL 8)
  84.             )
  85.             ((= KEY "Y")
  86.              (SETQ VAL 7)
  87.             )
  88.             ((= KEY "Q")
  89.              (SETQ VAL 51)
  90.             )
  91.             ((= KEY "X")
  92.              (SETQ VAL 50)
  93.             )
  94.             (T
  95.              NIL
  96.             )
  97.           )
  98.         )
  99.       )
  100.     )
  101.   )
  102.   (IF (SETQ ENT1 (CAR (ENTSEL "\n先点选源文本:")))
  103.     (PROGN
  104.       (SETQ EN (ENTGET ENT1))
  105.       (= "TEXT" (CDR (ASSOC 0 EN)))
  106.       (SETQ TH (CDR (ASSOC VAL EN)))
  107.       (PRINC "\n再选择目标文本:")
  108.       (IF (SETQ SS (SSGET '((0 . "TEXT"))))
  109.         (PROGN
  110.           (SETQ N 0)
  111.           (WHILE (< N (SSLENGTH SS))
  112.             (SETQ EL (ENTGET (SSNAME SS N)))
  113.             (ENTMOD (SUBST
  114.                       (CONS (CAR (ASSOC VAL EL)) TH)
  115.                       (ASSOC VAL EL)
  116.                       EL
  117.                     )
  118.             )
  119.             (SETQ N (1+ N))
  120.           )
  121.         )
  122.       )
  123.     )
  124.   )  
  125.   (PRINC)
  126. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-10-31 18:00:34 | 显示全部楼层
经过测试,在r14, xp sp2下,程序完美,没发现错误及不良现象,建议斑竹对此好心人加分表扬.
在这里我对您的热心帮助表示我最衷心的感谢!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-10-31 20:23:54 | 显示全部楼层
2004版的“文本匹配”:
  1. [FONT=courier new]
  2. (load "xyp_lib")
  3. ;|加载通用函数(可在签名栏直接下载)
  4. 如果已经下载xyp_lib并放到搜索路径下可以不再下载!
  5. 利用以下任何一种方式(首选第一种)即可加载和运行通用函数内的所有子程序:
  6. ★1·在acad.lsp中增加(load"xyp_lib")
  7. ■2·在每个程序内增加(load"xyp_lib")
  8. ■3·在command下,输入(load"xyp_lib")
  9. ■4·在菜单.mnl中增加(load"xyp_lib")
  10. ■5·将xyp_lib.vlx文件直接拽到cad屏幕
  11. [COLOR=red] ★通用函数下载地址:[/COLOR]
  12. [url]http://www.xdcad.net/forum/attachment.php?s=&postid=1606661[/url]
  13. |;

  14. ;;;文本匹配
  15. (defun c:wbpp ()
  16.   (CMDLA0)
  17.   (setq tx (UKWORD 7 "1 2 3 4 5 6 7"
  18.          "\n匹配选项 : 1-字符/2-字型/3-字高/4-字宽/5-旋转角/6-倾斜角/7-图层" tx)
  19.   )
  20.   (cond        ((= tx "1") (TEXT-PP 1))
  21.         ((= tx "2") (TEXT-PP 7))
  22.         ((= tx "3") (TEXT-PP 40))
  23.         ((= tx "4") (TEXT-PP 41))
  24.         ((= tx "5") (TEXT-PP 50))
  25.         ((= tx "6") (TEXT-PP 51))
  26.         ((= tx "7") (TEXT-PP 8))
  27.   )
  28.   (CMDLA1)
  29. )
  30. (defun TEXT-PP (mode / ent new i ss s1)
  31.   (princ "\n选择样板文本 : ")
  32.   (setq        ent (USEL1 0 "TEXT" "TEXT文本")
  33.         new (cdr (assoc mode (entget (car ent))))
  34.         i   -1
  35.   )
  36.   (princ "\n选择要匹配的文本 : ")
  37.   (setq SS (ssget '((0 . "TEXT"))))
  38.   (while (setq s1 (ssname ss (setq i (1+ i))))
  39.     (sub_upd s1 mode new)
  40.   )
  41. )
  42. [/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-9-28 18:36 , Processed in 0.213081 second(s), 38 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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