找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1080|回复: 4

[求助] [求助]:如何输入多行文本?

[复制链接]
发表于 2005-3-24 01:31:18 | 显示全部楼层 |阅读模式

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

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

×
用mtext结合换行符"\n"可以很容易输入多行文本,但觉得生成文本的速度很慢;用text或者dtext在cad绘图环境下结合回车键可以很方便输入多行文本,(我平时绘图一般也是用dtext),但如果在lisp下运用text或dtext就不会用了,好像他们都识别不了环行符"\n";请教大家如何?
例如:(setq str "我是张三\n你是谁?")
(command "text" (getpoint) "" "" str)
运行后显示的是:我是张三你是谁?

如果用mtext则可以辨别出换行符
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2005-3-24 13:15:50 | 显示全部楼层

  1. (defun c:tt ()
  2.   (setq a "我是张三\n你是谁?")
  3.   (while (setq n (vl-string-search "\n" a))
  4.     (princ (substr a 1 n))
  5.     (command "text" (getpoint) "" "" (substr a 1 n) "")
  6.     (setq a (substr a (+ 2 n)))
  7.   )  
  8.   (command "text" (getpoint) "" "" a "")
  9. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-3-24 20:02:24 | 显示全部楼层
先谢了版主,但你误解了我的意思,我想要的是在lisp中输入多行文本的一般方法;要得到的效果是跟在绘图环境中用dtext或text的效果一样,也就是多行文本有固定的行距,而不用每输入一行就要求(getpoint)一次
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-3-24 20:20:35 | 显示全部楼层
这样吗?

(defun c:tt()
  (setq a "我是张三\n你是谁?\n我是李四\n王五\n赵六")
  (if (/= (setq n (vl-string-search "\n" a)) nil)
    (progn
      (command "text" (getpoint) "" "" (substr a 1 n))
      (setq a (substr a (+ 2 n)))
      (while (setq k (vl-string-search "\n" a))
        (command "text" "" (substr a 1 k))
        (setq a (substr a (+ 2 k)))
      )
      (if (= (setq k (vl-string-search "\n" a)) nil)
        (command "text" "" a)
      )

    )
    (command "text" (getpoint) "" "" a)
  )

  (princ)

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

使用道具 举报

 楼主| 发表于 2005-3-24 20:38:37 | 显示全部楼层
谢谢lkpnb,问题解决了,我想知道的是text输入多行文本的方法:
(command "text"  "" "" str1)
(command "text" "" str2)
(command "text" "" str3)
....................................
l
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-26 16:35 , Processed in 0.207220 second(s), 39 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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