找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 758|回复: 1

[求助] [求助]:老大们帮忙改个程序

[复制链接]
发表于 2008-7-18 10:26:13 | 显示全部楼层 |阅读模式

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

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

×
选源文字后,改变的也可以框选。还有就是改变尺寸就出错退出,尺寸改到是改变了。出现Error: 参数类型错误: stringp nil

还有就是容错不好。比如说选了个文字,想改变尺寸,这时必须选到尺寸那字,不然就出现Error: 参数类型错误: stringp nil。改轴线号也是。
选了个文字想改变个尺寸,这时候不注意选到了一直线。程序出错退出。建议那程序可以容错。程序可以继续执行下去。
请帮忙改成可以容错和改的框选,和选尺寸的任何位置。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 23个

财富等级: 恭喜发财

发表于 2008-9-11 20:37:54 | 显示全部楼层
这是你1.lsp中的内容,首先你不应该把这么小的一个程序用附件的形式上传,直接粘贴上就可以了,一般人没有时间去下你这东西的.我大概看了一下程序写的看上去比较复杂,但是就你的问题来说,你只是没有判断选择的对象是不是文本而已,你只需在构造选择集中构造出一个文本选择集去使用就可以了,如果你是程序的作者你应该能明白,如果还需详细的帮助,请给我发信.
;格式内容刷,可以刷各种实体中的文字; 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:tv1 (/  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-11-16 14:36 , Processed in 0.408935 second(s), 35 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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