明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 7795|回复: 21

[源码] 相同刷:XX

  [复制链接]
发表于 2013-7-5 20:11:59 | 显示全部楼层 |阅读模式
Caoying以前发过一把刷子
wowan1314成功调用了系统的刷子
这样明经就有俩把刷子了
下面是调用系统的刷子的示列

  1. ;;改编自 wowan1314==============自贡黄明儒2013年6月28日====================;;;
  2. (DEFUN C:XX (/ E ENTLIS NAME SHORTC UU)
  3.   ;;1 错误处理
  4.   (defun *error* (s)
  5.     (if        (= 8 (logand (getvar "undoctl") 8))
  6.       (command "_.undo" "_e")
  7.     )
  8.     (setvar "SHORTCUTMENU" SHORTC)
  9.     (setvar "nomutt" 0)
  10.   )
  11.   ;;2 处理文字
  12.   (defun XX:Text (UU / ENT N SS X)
  13.     (WHILE (not (member (car (grread T 5 2)) '(11 12 25)))
  14.       (princ "\n 目标:文字刷为相同内容")
  15.       (setvar "nomutt" 1)
  16.       (SETQ
  17.         SS (vl-catch-all-apply
  18.              '(LAMBDA NIL
  19.                 (SSGET ":S:L"
  20.                        '((0 . "*TEXT"))
  21.                 )
  22.               )
  23.            )
  24.       )
  25.       (setvar "nomutt" 0)
  26.       (IF (VL-CATCH-ALL-ERROR-P SS)
  27.         nil
  28.         (if ss
  29.           (REPEAT (SETQ N (SSLENGTH SS))
  30.             (SETQ X (SSNAME SS (SETQ N (1- N))))
  31.             (setq ent (entget x))
  32.             (entmod (subst UU (assoc 1 ent) ent))
  33.           )
  34.         )
  35.       )
  36.     )
  37.   )
  38.   ;;3 块
  39.   (defun XX:Insert (UU / ENT N SS X)
  40.     (WHILE (not (member (car (grread T 5 2)) '(11 12 25)))
  41.       (princ "\n 目标:块相同")
  42.       (setvar "nomutt" 1)
  43.       (SETQ
  44.         SS (vl-catch-all-apply
  45.              '(LAMBDA NIL
  46.                 (SSGET ":S:L"
  47.                        '((0 . "INSERT"))
  48.                 )
  49.               )
  50.            )
  51.       )
  52.       (setvar "nomutt" 0)
  53.       (IF (VL-CATCH-ALL-ERROR-P SS)
  54.         NIL
  55.         (IF SS
  56.           (REPEAT (SETQ N (SSLENGTH SS))
  57.             (SETQ X (SSNAME SS (SETQ N (1- N))))
  58.             (setq ent (entget x))
  59.             (entmod (subst UU (assoc 2 ent) ent))
  60.           )
  61.         )
  62.       )
  63.     )
  64.   )
  65.   ;;4 处理圆
  66.   (defun XX:CIR        (UU / ENT N SS X)
  67.     (WHILE (not (member (car (grread T 5 2)) '(11 12 25)))
  68.       (princ "\n 目标:相同圆")
  69.       (setvar "nomutt" 1)
  70.       (SETQ
  71.         SS (vl-catch-all-apply
  72.              '(LAMBDA NIL
  73.                 (SSGET ":S:L"
  74.                        '((0 . "CIRCLE"))
  75.                 )
  76.               )
  77.            )
  78.       )
  79.       (setvar "nomutt" 0)
  80.       (IF (VL-CATCH-ALL-ERROR-P SS)
  81.         nil
  82.         (if ss
  83.           (REPEAT (SETQ N (SSLENGTH SS))
  84.             (SETQ X (SSNAME SS (SETQ N (1- N))))
  85.             (setq ent (entget x))
  86.             (entmod (subst UU (assoc 40 ent) ent))
  87.           )
  88.         )
  89.       )
  90.     )
  91.   )
  92.   ;;5 属性
  93.   (defun XX:att        (UU / ENT N SS X)
  94.     (WHILE (not (member (car (grread T 5 2)) '(11 12 25)))
  95.       (princ "\n 目标:属性相同")
  96.       (setvar "nomutt" 1)
  97.       (SETQ
  98.         SS (vl-catch-all-apply
  99.              '(LAMBDA NIL
  100.                 (SSGET ":S:L"
  101.                        '((0 . "ATTDEF"))
  102.                 )
  103.               )
  104.            )
  105.       )
  106.       (setvar "nomutt" 0)
  107.       (IF (VL-CATCH-ALL-ERROR-P SS)
  108.         NIL
  109.         (IF SS
  110.           (REPEAT (SETQ N (SSLENGTH SS))
  111.             (SETQ X (SSNAME SS (SETQ N (1- N))))
  112.             (setq ent (entget x))
  113.             (entmod (subst UU (assoc 2 ent) ent))
  114.           )
  115.         )
  116.       )
  117.     )
  118.   )
  119.   ;;6 主
  120.   (setq SHORTC (getvar "SHORTCUTMENU"))
  121.   (setvar "SHORTCUTMENU" 0)
  122.   (setvar "nomutt" 1)
  123.   (while (not E)
  124.     (princ "\n 选择源:文字、块、圆")
  125.     (setq e (SSGET ":S:E"
  126.                    '((0 . "*TEXT,INSERT,CIRCLE,ATTDEF"))
  127.             )
  128.     )
  129.   )
  130.   (setvar "nomutt" 0)
  131.   (setq entlis (ENTGET (SETQ E (SSNAME E 0))))
  132.   (setq name (cdr (assoc 0 entlis)))
  133.   (cond        ((member name (list "TEXT" "MTEXT"))
  134.          (setq UU (ASSOC 1 entlis))
  135.         )
  136.         ((equal name "INSERT") (setq UU (ASSOC 2 entlis)))
  137.         ((equal name "ATTDEF") (setq UU (ASSOC 2 entlis)))
  138.         (T (setq UU (ASSOC 40 entlis)))
  139.   )
  140.   (COMMAND "MATCHPROP" E)
  141.   (cond        ((equal name "INSERT") (XX:Insert UU))
  142.         ((equal name "ATTDEF") (XX:att UU))
  143.         ((equal name "CIRCLE") (XX:CIR UU))
  144.         (t (XX:Text UU))
  145.   )
  146.   ;;(if (/= (getvar "cmdactive") 0)(COMMAND ""))
  147.   (while (not (equal (getvar "cmdnames") "")) (command nil))
  148.   (setvar "SHORTCUTMENU" SHORTC)
  149.   (PRINC)
  150. )
  151. ;;改编自 wowan1314==============自贡黄明儒2013年6月28日====================;;;

本帖子中包含更多资源

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

x

评分

参与人数 3明经币 +5 收起 理由
wowan1314 + 1 赞一个!
Gu_xl + 3 赞一个!
ucuc2003 + 1 论坛现在有三把刷子了.

查看全部评分

"觉得好,就打赏"
还没有人打赏,支持一下

本帖被以下淘专辑推荐:

发表于 2018-6-26 02:10:50 | 显示全部楼层
不知大家有没这样的问题,刷普通CAD文字时没问题,单选天正文字时也没什么问题,多选天正文字的时候极易出现CAD崩溃。
发表于 2018-6-26 02:11:26 | 显示全部楼层
如果不用COMMAND那命令调用系统的刷子就不会有事的,这选一个BUG吗?
发表于 2013-7-5 20:22:36 | 显示全部楼层
本帖最后由 ucuc2003 于 2013-7-9 15:31 编辑

我来把论坛的三把刷子汇总下:
1、langjs 大侠的《相同刷v2.0》:http://bbs.mjtd.com/thread-101921-1-1.html
                        《相同刷v1.0》:http://bbs.mjtd.com/forum.php?mod=viewthread&tid=91302
2、wowan1314 大侠的《带刷子的文字内容刷》:http://bbs.mjtd.com/thread-102218-1-1.html
3、黄明儒大侠的《相同刷:XX》:http://bbs.mjtd.com/thread-102360-1-1.html

评分

参与人数 1明经币 +1 收起 理由
自贡黄明儒 + 1 很给力!

查看全部评分

发表于 2013-7-5 20:43:56 | 显示全部楼层
也是同样是BUG,右键和ESC有时候不能退出
 楼主| 发表于 2013-7-5 21:01:08 | 显示全部楼层
ucuc2003 发表于 2013-7-5 20:43
也是同样是BUG,右键和ESC有时候不能退出

会有这种事???
发表于 2013-7-5 21:04:15 | 显示全部楼层
自贡黄明儒 发表于 2013-7-9 16:01
会有这种事???

是的刚才测试了,调用的刷子很完美,但是有时候ESC和右键退不出来.其他问题未发现
发表于 2013-7-6 14:02:47 | 显示全部楼层
果断支持顶上!嘻唰唰
发表于 2013-7-6 15:56:48 | 显示全部楼层
能不能进阶到能刷块内文本呀!

点评

应该行,要不你试一试?  发表于 2013-7-6 16:24
发表于 2013-7-6 16:30:53 | 显示全部楼层
顶,谢谢黄大侠。
发表于 2013-7-7 05:38:39 | 显示全部楼层
支持源码学习
发表于 2013-7-7 06:43:50 | 显示全部楼层
支持天正的多行文字,天正引线标注文字吗

点评

wowan1314搞的支持,我用不上,就去掉了  发表于 2013-7-7 10:16
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-5-19 07:21 , Processed in 0.183685 second(s), 38 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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