找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 720|回复: 7

[求助] [求助]:求文字按行批量逐行合并的程序

[复制链接]
发表于 2006-3-21 19:27:24 | 显示全部楼层 |阅读模式

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

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

×
哪个高手懂得,麻烦告知,谢谢
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2006-3-22 22:32:00 | 显示全部楼层
最初由 chdragon 发布
[B]

文本编辑工具20051117
Chtts.VLX

刚刚试过,是连成一段了得

你的程序不是每行一段,?.. [/B]

  1. [FONT=courier new](load "xyp_lib.vlx")  ;版本 V.20060314
  2. ;|下载和加载通用函数(可在签名栏直接下载后放到搜索路径下)
  3. 利用以下任何一种方式(首选第一种)即可加载和运行通用函数内的所有子程序:
  4. ★1·在acad.lsp中增加(load"xyp_lib.vlx")
  5. ■2·在每个程序内增加(load"xyp_lib.vlx")
  6. ■3·在command下,输入(load"xyp_lib.vlx")
  7. ■4·在菜单.mnl中增加(load"xyp_lib.vlx")
  8. ■5·将xyp_lib.vlx文件直接拽到cad屏幕
  9. [COLOR=red] ★通用函数下载地址:[/COLOR]
  10. [url]http://www.xdcad.net/forum/attachment.php?s=&postid=1606661[/url]
  11. |;

  12. ;;;文本合并
  13. (defun c:wbhb ()
  14.   (Cmdla0)
  15.   (if (null kw)
  16.     (setq kw "2")
  17.   )
  18.   (setq        kw (UKWORD 7
  19.                    "1 2 3"
  20.                    "\n合并顺序 : 1-选择先后/2-X坐标/3-Y坐标"
  21.                    kw
  22.            )
  23.   )
  24.   (cond        ((= kw "1")
  25.          (princ "\n按选择顺序合并文本,保留和更改第一文本!")
  26.          (wbhb-01)
  27.         )
  28.         ((= kw "2")
  29.          (princ
  30.            "\n按选择文本的X坐标顺序合并文本,保留和更改最左侧文本!"
  31.          )
  32.          (wbhb-02)
  33.         )
  34.         ((= kw "3")
  35.          (princ
  36.            "\n按选择文本的Y坐标顺序合并文本,保留和更改最上方文本!"
  37.          )
  38.          (wbhb-02)
  39.         )
  40.   )
  41.   (Cmdla1)
  42. )

  43. ;;;按选择顺序合并,保留和更改第一文本
  44. (DEFUN wbhb-01 ()
  45.   (if (SETQ ss (ssget '((0 . "TEXT")))
  46.             i  -1
  47.       )
  48.     (progn
  49.       (setq s0          (ssname ss (setq i (1+ i)))
  50.             tx-s1 (dxf 1 (entget s0))
  51.       )
  52.       (while (setq s1 (ssname ss (setq i (1+ i))))
  53.         (setq tx1   (dxf 1 (entget s1))
  54.               tx-s1 (STRCAT tx-s1 TX1)
  55.         )
  56.         (entdel s1)
  57.       )
  58.       (sub_upd s0 1 tx-s1)
  59.     )
  60.   )
  61. )

  62. ;;;按选择文本的X或Y坐标顺序合并文本!
  63. (defun wbhb-02 ()
  64.   (while (not (SETQ SS (ssget '((0 . "TEXT"))))))
  65.   (setq        i    -1
  66.         leng (sslength ss)
  67.         lst  '()
  68.   )
  69.   (repeat leng
  70.     (setq s1        (ssname SS (setq i (1+ i)))
  71.           pt        (dxf 10 (entget s1))
  72.           tx        (dxf -1 (entget s1))
  73.           pt-tx        (cons pt tx)
  74.           lst        (cons pt-tx lst)
  75.     )
  76.     (fangshi)
  77.   )
  78.   (setq        s0    (cdr (car lst))
  79.         tx-s1 (dxf 1 (entget s0))
  80.         lst   (cdr lst)
  81.   )
  82.   (while (setq s1 (cdr (car lst)))
  83.     (setq tx1        (dxf 1 (entget s1))
  84.           tx-s1        (STRCAT tx-s1 TX1)
  85.           lst        (cdr lst)
  86.     )
  87.     (entdel s1)
  88.   )
  89.   (sub_upd s0 1 tx-s1)
  90. )

  91. ;;;排序方式
  92. (defun fangshi ()
  93.   (cond        ((= kw "2")
  94.          (setq lst
  95.                 (vl-sort
  96.                   lst
  97.                   (function (lambda (e1 e2) (< (car (car e1)) (car (car e2))))
  98.                   )
  99.                 )
  100.          )
  101.         )
  102.         ((= kw "3")
  103.          (setq
  104.            lst (vl-sort
  105.                  lst
  106.                  (function
  107.                    (lambda (e1 e2) (> (cadr (car e1)) (cadr (car e2))))
  108.                  )
  109.                )
  110.          )
  111.         )
  112.   )
  113. )[/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 1 反对 0

使用道具 举报

发表于 2006-3-21 20:45:11 | 显示全部楼层
试试签名栏下的“文本编辑套件”程序之WBHB“文本合并”
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

 楼主| 发表于 2006-3-22 18:58:07 | 显示全部楼层
最初由 xyp1964 发布
[B]试试签名栏下的“文本编辑套件”程序之WBHB“文本合并” [/B]


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

使用道具 举报

发表于 2006-3-22 21:08:33 | 显示全部楼层
最初由 chdragon 发布
[B]

你的wbbj程序只能合并为一个大段,我想要的是同一水平线的文字合并,并不是所有的都合成一段啊 [/B]

可以根据用户要求选择:
合并顺序 : 1-选择先后/2-X坐标/3-Y坐标<2>:
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-3-22 22:02:40 | 显示全部楼层
最初由 xyp1964 发布
[B]
可以根据用户要求选择:
合并顺序 : 1-选择先后/2-X坐标/... [/B]


文本编辑工具20051117
Chtts.VLX

刚刚试过,是连成一段了得

你的程序不是每行一段,而是所有的行集成一段了啊

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

使用道具 举报

已领礼包: 104个

财富等级: 日进斗金

发表于 2017-6-7 11:44:20 | 显示全部楼层

这个lisp编的很到位,一般合并的是凌乱的说明文字,需要给规整成一段文字,方便编辑,基本上是实现在原位合并成一整段文字,文字的先后左右位置不变,正常情况是先X方向合并,然后在Y方向再合并。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-24 04:17 , Processed in 0.227996 second(s), 46 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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