明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2014|回复: 6

求助文字替换内容的问题

[复制链接]
发表于 2003-12-13 11:02:00 | 显示全部楼层 |阅读模式
各位:
     你好!
     在lisp中编一个文字替换的程序, 如下:
(defun C:Rt ()
  (setvar "cmdecho" 0)
  (setq en (entget (car (entsel "please select soure text:"))))
  (setq el (ssget))
  (setq        l 0
        n (sslength el)
  )
  (while (< l n)
    (if        (= "text"
           (setq dat (ssname el l))
           (setq ed (cons dat ed))
           (setq tdat (entget (car ed)))
           (setq vtxt (cdr (assoc 1 tdat)))
           (setq stxt (cdr (assoc 1 en)))
           (setq e (subst stxt vtxt tdat))
           (entmod e)
        )
      (setq l (1+ l)
      )
    )

有二个问题:
1.循环语句有问题.
2.subst语法问题.不知为什么用subst就是不行.
请各位指教.谢谢.
发表于 2003-12-13 11:21:00 | 显示全部楼层
(defun C:Rt ()
  (setvar "cmdecho" 0)
  (setq en (entget (car (entsel "please select soure text:"))))
  (setq el (ssget ' ((0 . "text"))))
  (setq l 0
n (sslength el)
  )
  (while (< l n)
    (setq dat (ssname el l))
    (setq tdat (entget dat))
    (setq vtxt (assoc 1 tdat))
    (setq stxt (assoc 1 en))
    (setq tdat (subst stxt vtxt tdat))
    (entmod tdat)
    (setq l (1+ l))
  )
  (princ)
)
发表于 2003-12-13 11:23:00 | 显示全部楼层
subst 后面必须是点对序列
 楼主| 发表于 2003-12-13 11:29:00 | 显示全部楼层
谢谢。
发表于 2003-12-13 12:38:00 | 显示全部楼层
给你个建议 我个人认为 能在循环外执行的语句最好不要放在循环里面去如
(setq stxt (assoc 1 en))
发表于 2003-12-13 23:35:00 | 显示全部楼层
是个好建议。
发表于 2003-12-18 13:00:00 | 显示全部楼层
看看这个:
  1. (defun C:Rt (/ en el l n restxt dat)
  2.   (setvar "cmdecho" 0)
  3.   (setq en (car (entsel "please select soure text:")))
  4.   (setq el (ssget '((0 . "*text"))))
  5.   (setq        l 0
  6.         n (sslength el)
  7.   )
  8.   (setq restxt (vla-get-TextString (vlax-ename->vla-object en)))
  9.   (while (< l n)
  10.     (setq dat (ssname el l))
  11.     (vla-put-TextString (vlax-ename->vla-object dat) restxt)
  12.     (setq l (1+ l))
  13.   )
  14.   (princ)
  15. )


TO楼主:应该把某些变量高为局部变量。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-10-2 08:22 , Processed in 0.165836 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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