找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 820|回复: 0

[编程申请]:求可以把一个尺寸的内容赋予另一个尺寸的格式刷

[复制链接]
发表于 2009-3-19 08:41:19 | 显示全部楼层 |阅读模式

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

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

×
我在画图时候经常会遇到这样的情况,以前的画过的构件和现在要画的形状是一样的,就是尺寸略有不同,放完实样后希望在原来的图纸上改改尺寸即可,这样就只能一个一个尺寸的修改,麻烦不说还容易出错!我有一个可以刷文字的格式刷,但只能刷文字,我想能不能有可以这样的一个格式刷,把一个尺寸(这个尺寸一般是实测值<>)的内容刷给另一个尺寸希望高手给编个程序(尺寸里可能包含文字),谢谢了。一位网友给我个程序,基本满足了我的要求,有点问题希望给优化一下:1.选择时不能亮显。2.用尺寸刷文字有包含字母,希望得到是数字,望高手给修改一下。


;格式内容刷,可以刷各种实体中的文字; text/mtext/attribute
;;;  ReplaceText.lsp by J.J.Damstra - Copyright ?2005.
;;;  Replaces any selected string for another
;;;  21-06-05 first release
;;;   09-07-05   tableindicator

(defun c:ct (/  bz_start bz_end bz_error old_cmd olderr ch_txt entity entitylist txt_str object pickpnt e-type n ti ostr)

  (defun ch_txt (txt_str entity / entitylist ent)
    (setq ent (car entity)
          entitylist (entget ent)
          entitylist (subst (cons 1 txt_str) (assoc 1 entitylist) entitylist)
    )
    (entmod entitylist)
    (entupd ent)
  )
(defun bz_start ( / )
  (setq old_cmd (getvar "cmdecho"))
  (setvar "cmdecho" 0)
  (setvar "blipmode" 0)   ;消除影点变量
  (eval "(command \"_.undo\" \"_group\)")
  (setq olderr *error* *error* bz_error)
)

(defun bz_end ( / )
  (setq *error* olderr)
  (command "_.undo" "end")
  (setvar "cmdecho" old_cmd)
  (princ)
)

(defun bz_error (s)
  (if (not (member s '("console break" "Function cancelled" "quit / exit abort")))
      (princ (strcat "\nError: " s))
  )
  (bz_end)
)


  (bz_start)
  (setq txt_str
      (if (setq entity (nentsel "\n选择源文字: "))
          (cdr (assoc 1 (entget (car entity))))
          (getstring "\n 请输入文字:")
      )
  )
  (if (= txt_str "")
      (setq txt_str nil)
      (princ (strcat "\n 复制文字内容为: " txt_str "."))
  )
  (while (and txt_str
              (setq entity (nentsel "\n选择要改变的文字: "))
         )
    (setq ostr (cdr (assoc 1 (entget (car entity)))))
    (if (< (length entity) 4)
        (ch_txt txt_str entity)
        (progn (setq object (car (last entity))
                     entitylist (entget object)
                     pickpnt (cadr entity)
                     e-type (cdr (assoc 0 entitylist))
               )
               (cond ((= e-type "INSERT")
                      (ch_txt txt_str entity)
                     )
                     ((wcmatch e-type "*DIMENSION")
                      (command "_.dim1" "newtext" txt_str object "")
                      (entupd object)
                     )
                     ((= e-type "ACAD_TABLE")
                      (command "_.tabledit" pickpnt "@#@")
                      (setq entitylist (entget object))
                      (foreach n entitylist
                         (if (eq (car n) 1)
                             (if (eq (substr (cdr n) 1 3) "@#@")
                                 (entmod (subst (cons 1 txt_str) n entitylist))
                             )
                         )
                      )
                      (entupd object)
                     )
                )
        )
    )
    (princ (strcat "\n 原文字为:" ostr ". 已被替换为 " txt_str " ."))
  )
  (bz_end)
)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-12-5 10:37 , Processed in 0.480559 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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