找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 425|回复: 2

[LISP程序]:看看这一段程序有何问题

[复制链接]
发表于 2003-7-29 23:04:04 | 显示全部楼层 |阅读模式

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

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

×
这个程序执行不下去,大家看看有何问题?;;本程序用目标文字替换需改变的文字。可以是TEXT和属性块中的属性文字      ??)
(defun c:tt(/ 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)))
??     (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豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2003-7-30 09:15:32 | 显示全部楼层

Re: [LISP程序]:[求助]:看看这一段程序有何问题

最初由 wcf 发布
[B]这个程序执行不下去,大家看看有何问题?;;本程序用目标文字替换需改变的文字。可以是TEXT和属性块中的属性文字      ??)
(defun c:tt(/ a b ent ent2 elist etype oldval bltxt entdata btxt ostr pt oltxt )
?.. [/B]

好像被加入了一些其他字符,看不见的字符,像空格,但不是空格。
去掉这些东西后,一切正常。
这确实是个好用的东西。

  1.   [FONT=courier new]
  2. (defun c:tt (/ a b ent ent2 elist etype        oldval bltxt entdata btxt ostr
  3.              pt        oltxt)
  4.   (princ "\n ******* 文字替换程序 ******* Writen by 正航")
  5.   (princ "\n 请选择复制源文字目标:")
  6.   (setq ent (nentsel))
  7.   (if (= ent nil)
  8.     (setq oldval (getstring "\n 请输入文字:"))
  9.     (progn
  10.       (setq ent2  ent
  11.             elist (entget (car ent))
  12.             etype (cdr (assoc 0 elist))
  13.       )
  14.       (setq oldval (cdr (assoc 1 elist)))
  15.       (princ "\n ")
  16.       (princ "\n复制文字内容为: ")
  17.       (princ oldval)
  18.     )
  19.   )
  20.   (setq q 9)
  21.   (while q
  22.     (princ "\n ")
  23.     (setq bltxt (nentsel "\n请选择需要替换的文字目标:"))
  24.     (if        (= bltxt nil)
  25.       (setq q nil)
  26.       (progn
  27.         (setq entdata (entget (car bltxt))
  28.               btxt    (cdr (assoc 1 entdata))
  29.               ostr    btxt
  30.         )
  31.         (setq elist (entget (car bltxt)))
  32.         (setq etype (cdr (assoc 0 elist)))
  33.         (setq oltxt (car (assoc 1 elist)))
  34.         (if (= etype "ATTRIB")
  35.           (progn
  36.             (setq pt (cadr bltxt))
  37.             (command ".attedit" "" "" "" "" pt "" "V" "R" oldval "n")
  38.           )
  39.           (progn
  40.             (setq btxt oldval)
  41.             (entmod (subst (cons 1 btxt) (assoc 1 entdata) entdata))
  42.             (if        (setq bltxt (car (reverse (cadddr bltxt))))
  43.               (entupd bltxt)
  44.             )
  45.           )
  46.         )
  47.       )
  48.     )
  49.     (princ "\n原文字为:")
  50.     (princ oltxt)
  51.     (princ ". 已被替换为: ")
  52.     (princ oldval)
  53.     (princ " .")
  54.   )
  55.   (princ)
  56. )
  57.   [/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2003-7-30 10:01:06 | 显示全部楼层
好用了,谢谢
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-3 17:34 , Processed in 0.233167 second(s), 33 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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