找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 404|回复: 6

[求助]:關於正航大大的一個程序

[复制链接]
发表于 2004-9-17 09:27:05 | 显示全部楼层 |阅读模式

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

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

×
如果使它第一個選擇的目標顯亮?如果我只要替換一次文字,而不是批量修改,該如何修正?

;;本程序用目標文字替換需改變的文字。可以是TEXT和屬性塊中的屬性文字
(defun c:th1(/ a b ent ent2 elist etype oldval bltxt entdata btxt ostr pt oltxt )
(princ "\n ******* 文字替換程序 ******* Writen by 正航")
(princ "\n請選擇複製源文字目標:")
(setq ent (nentsel))
(if (= ent nil)(setq oldval (getstring "\n請輸入文字:"))
(progn
(setq ent2 ent elist (entget (car ent)) etype (cdr (assoc 0 elist))
)
(setq oldval (cdr (assoc 1 elist)))
(princ "\n ")
(princ "\n複製文字內容為: ") (princ oldval)
)
)
(setq q 9)
(while q
(princ "\n ")
(setq bltxt (nentsel "\n請選擇需要替換的文字目標:"))
(if (= bltxt nil)(setq q nil)
(progn
(setq entdata (entget (car bltxt)) btxt (cdr (assoc 1 entdata)) ostr btxt)
(setq elist (entget (car bltxt)))
(setq etype (cdr (assoc 0 elist)))
;;(setq oltxt (car (assoc 1 elist)))
(setq oltxt (cdr (assoc 1 elist)))
(if (= etype "ATTRIB")
(progn
(setq pt (cadr bltxt))
(command ".attedit" "" "" "" "" pt "" "V" "R" oldval "n")
)
(progn
(setq btxt oldval)
(entmod (subst (cons 1 btxt)(assoc 1 entdata) entdata))
(if (setq bltxt (car (reverse (cadddr bltxt)))) (entupd bltxt))
))))
(princ "\n原文字為:")(princ oltxt)(princ ". 已被替換為: ")(princ oldval)(princ " .")
)
(princ)
)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2004-9-17 20:59:25 | 显示全部楼层
此程序可这么小改一下! 第二点要求没有意义,多按次回车不就行了?  原程序还方便了许多!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-9-17 21:00:52 | 显示全部楼层
代码

  1.   [FONT=courier new]

  2. (defun c:thh (/ a b ent ent2 elist etype oldval bltxt entdata btxt ostr pt oltxt )

  3. (princ "\n ******* 文字替换程序 ******* Writen by 正航")

  4. (princ "\n 请选择复制源文字目标:")

  5. (setq ent (nentsel))

  6. (if (= ent nil)(setq oldval (getstring "\n 请输入文字:"))

  7. (progn

  8. (setq bb (car ent))

  9. (redraw bb 3)

  10. (setq

  11. ent2 ent

  12. elist (entget bb)

  13. etype (cdr (assoc 0 elist))

  14. )

  15. (setq oldval (cdr (assoc 1 elist)))

  16. (princ "\n ")

  17. (princ "\n复制文字内容为: ") (princ oldval)

  18. )

  19. )

  20. (setq q 9)

  21. (while q

  22. (princ "\n ")

  23. (setq bltxt (nentsel "\n请选择需要替换的文字目标:"))

  24. (if (= bltxt nil)(setq q nil)

  25. (progn

  26. (setq entdata (entget (car bltxt)) btxt (cdr (assoc 1 entdata)) ostr btxt)

  27. (setq elist (entget (car bltxt)))

  28. (setq etype (cdr (assoc 0 elist)))

  29. ;; (setq oltxt (car (assoc 1 elist)))

  30. (setq oltxt (cdr (assoc 1 elist)))

  31. (if (= etype "ATTRIB")

  32. (progn

  33. (setq pt (cadr bltxt))

  34. (command ".attedit" "" "" "" "" pt "" "V" "R" oldval "n")

  35. )

  36. (progn

  37. (setq btxt oldval)

  38. (entmod (subst (cons 1 btxt)(assoc 1 entdata) entdata))

  39. (if (setq bltxt (car (reverse (cadddr bltxt)))) (entupd bltxt))

  40. ))))

  41. (princ "\n原文字为:")(princ oltxt)(princ ". 已被替换为: ")(princ oldval)(princ " .")

  42. )

  43. (redraw bb 4)

  44. (princ)
  45. )




  46.   [/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-9-18 01:02:54 | 显示全部楼层
謝謝大大,但小弟的第二點要求是小弟急需的,卻不知如何修改,求大大幫幫忙!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-9-18 08:45:39 | 显示全部楼层
去掉
(setq q 9)

(while q

(princ "\n ")


还有  (redraw bb 4)   上面的  " )"  右括号!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-9-18 22:22:24 | 显示全部楼层
請問大大,照大大的指示修改後,為何執行過一次後,再選取其他文字就不會再顯亮了,這是什麼原因?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-9-18 23:52:32 | 显示全部楼层
不明白你的意思! 修改过的代码,执行过一次后!程序就退出了! 要想再去改文字, 就再启动程序一遍!  第一次能显亮, 第二次启动程序还是会显亮啊!  不知你怎么改的!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-15 16:03 , Processed in 0.258925 second(s), 43 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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