明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2381|回复: 15

[提问] 求助:数量一致的多个不同单行文字互换位置?

[复制链接]
发表于 2018-2-5 21:12:44 | 显示全部楼层 |阅读模式
5明经币
求助:实现数量一致的多个不同的单行文字互换其他行对应数量的单行文字
附件: 您需要 登录 才可以下载或查看,没有账号?注册

最佳答案

查看完整内容

试试下面这个程序是不是你想要的。 这个程序来源于明经或晓东,具体的忘记了。在原程序的基础上做了点改动。向原作者表示感谢!
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2018-2-5 21:12:45 | 显示全部楼层
试试下面这个程序是不是你想要的。
这个程序来源于明经或晓东,具体的忘记了。在原程序的基础上做了点改动。向原作者表示感谢!
  1.   (defun c:chgtp (/ ssg1 ssg2 n n1 ssn ssna ssn1 ssna1 pnt_y pnt_y1 snam ssnam
  2.                     snam1 ssnam1 pnt_xy pnt_xy1 pt_xy pt_xy1 m m1 pn_y pn_y1
  3.                     pn_xy pn_xy1 pnd_xy pnd_xy1 regnumber regnum)
  4.     (setq n 0 n1 0 m 0 m1 0)
  5.     (prompt "选取要交换位置的第一行文本:")
  6.     (setq ssg1 (ssget))
  7.     (prompt "选取要交换位置的第二行文本:")
  8.     (setq ssg2 (ssget))
  9. -------------------------------------------------------------------------------
  10. ;;如果每行文本中选择了非文本图元,则循环判断选择集中图元是否为单行文本,
  11. ;;如是单行文本,则终止循环,并获得该文本的y坐标。
  12.     (repeat (sslength ssg1)
  13.             (setq ssn (ssname ssg1 n))
  14.             (setq ssna (entget ssn))
  15.             (if (= "TEXT" (cdr (assoc 0 ssna))) (progn
  16.                 (setq pnt_y (cadr (cdr (assoc 10 ssna))))
  17.                 (setq pn_y (cadr (cdr (assoc 11 ssna))))
  18.             ))
  19.             (setq n (1+ n))
  20.     )
  21.     (repeat (sslength ssg2)
  22.             (setq ssn1 (ssname ssg2 n1))
  23.             (setq ssna1 (entget ssn1))
  24.             (if (= "TEXT" (cdr (assoc 0 ssna1))) (progn
  25.                 (setq pnt_y1 (cadr (cdr (assoc 10 ssna1))))
  26.                 (setq pn_y1 (cadr (cdr (assoc 11 ssna1))))
  27.              ))
  28.             (setq n1 (1+ n1))
  29.     )
  30. ---------------------------------------------------------------------------------
  31. ---------------------------------------------------------------------------------
  32. ;;循环取出每个选择集中各图元坐标的x坐标。如图元是文本,则用该文本的x坐标
  33. ;;与另一个选择集中的第一个文本的y坐标组合成新坐标,并替换原坐标
  34.     (repeat (sslength ssg1)
  35.             (setq snam (ssname ssg1 m))
  36.             (setq ssnam (entget snam))
  37.             (setq pnt_xy (cdr (assoc 10 ssnam)))
  38.             (setq pn_xy (cdr (assoc 11 ssnam)))
  39.             (if (= "TEXT" (cdr (assoc 0 ssnam)))
  40.                 (progn
  41.                   (setq pt_xy (list 10 (car pnt_xy) pnt_y1))
  42.                   (setq pnd_xy (list 11 (car pn_xy) pn_y1))
  43.                   (setq ssnam (subst pt_xy (assoc 10 ssnam) ssnam))
  44.                   (setq ssnam (subst pnd_xy (assoc 11 ssnam) ssnam))
  45.                   (entmod ssnam)
  46.                  );;end progn
  47.             ) ;;end if
  48.            (setq m (1+ m))
  49.     )
  50.     (repeat (sslength ssg2)
  51.             (setq snam1 (ssname ssg2 m1))
  52.             (setq ssnam1 (entget snam1))
  53.             (setq pnt_xy1 (cdr (assoc 10 ssnam1)))
  54.             (setq pn_xy1 (cdr (assoc 11 ssnam1)))
  55.             (if (= "TEXT" (cdr (assoc 0 ssnam1)))
  56.                 (progn
  57.                   (setq text_ssna1 (assoc 1 ssnam1))
  58.                   (setq pt_xy1 (list 10 (car pnt_xy1) pnt_y))
  59.                   (setq pnd_xy1 (list 11 (car pn_xy1) pn_y))
  60.                   (setq ssnam1 (subst pt_xy1 (assoc 10 ssnam1) ssnam1))
  61.                   (setq ssnam1 (subst pnd_xy1 (assoc 11 ssnam1) ssnam1))
  62.                   (entmod ssnam1)
  63.                  ) ;;end progn
  64.             ) ;;end if
  65.            (setq m1 (1+ m1))
  66.     )
  67.     (princ)
  68. )
  69. ---------------------------------------------------------------------------------------

点评

感谢分享,是个不错的贴子。  发表于 2023-3-2 12:12

评分

参与人数 1明经币 +1 收起 理由
rocking2008 + 1

查看全部评分

回复

使用道具 举报

发表于 2018-2-6 09:53:31 | 显示全部楼层
选中移动有啥问题?
回复

使用道具 举报

发表于 2018-2-6 13:50:56 | 显示全部楼层

本帖子中包含更多资源

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

x
回复

使用道具 举报

 楼主| 发表于 2018-2-6 23:14:52 | 显示全部楼层

实战上这个并没有我想的那样好用,哎 谢谢院长演示
回复

使用道具 举报

发表于 2018-2-7 08:29:17 | 显示全部楼层
学习了支持
回复

使用道具 举报

发表于 2018-2-7 08:49:21 | 显示全部楼层

那都有你,到处灌水。。。

污人眼。
回复

使用道具 举报

发表于 2018-2-7 10:03:19 | 显示全部楼层
fl202 发表于 2018-2-7 08:49
那都有你,到处灌水。。。

污人眼。

不回贴不行回贴也不行,我学习下也不行?
回复

使用道具 举报

发表于 2018-2-7 10:42:08 | 显示全部楼层
LIULISHENG 发表于 2018-2-7 10:03
不回贴不行回贴也不行,我学习下也不行?

不要纯灌水,要灌水去晓东。
学习后就反馈明经,发源码/发思路/发算法/解答问题都是帮人啊。
纯灌水除了浪费大家时间,对论坛对别人都没有好处。
找个资料,看个回复,满眼都是水,谁喜欢啊?
回复

使用道具 举报

发表于 2018-2-7 13:28:47 | 显示全部楼层
fl202 发表于 2018-2-7 10:42
不要纯灌水,要灌水去晓东。
学习后就反馈明经,发源码/发思路/发算法/解答问题都是帮人啊。
纯灌水除 ...

受教了
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-16 10:45 , Processed in 0.208722 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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