找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 2057|回复: 29

[编程申请] 求选中直线时,同时选中与直线平行的上下文字!

[复制链接]
发表于 2016-7-3 14:32:50 | 显示全部楼层 |阅读模式

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

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

×
求选中直线时,同时选中与直线平行的上下文字进行行动,将选中对象从终点移到直线起点,也就是移动到曲线外侧,上下文字中心都在直线的垂直平分线上,或根据圆弧来判断,点选圆弧要素桩全部移到到曲线外侧!
dfff.png
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 51个

财富等级: 招财进宝

发表于 2016-7-3 14:38:11 | 显示全部楼层
有移动的,有不移动的,你怎么判断? 手工选要移动的吗? 你那些文字线用什么做的,一体的,还是分开的? 这些都没说明, 最好你传个DWG上来。
另外,你是需要关键地方的提示? 还是整体需要别人帮你写个插件? 如果后者,发到编程申请论坛。

点评

在圆弧内侧的要素桩重叠严重,都需要进行移动,文字与直线是分开的,CAD图纸已上传!  详情 回复 发表于 2016-7-4 13:28
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 51个

财富等级: 招财进宝

发表于 2016-7-3 14:49:23 | 显示全部楼层
按你标题的说法,你选中线后,能得到两顶点,然后你根据上下文字的位置,构造一个矩形,然后用(ssget "wp" pts '((0 . "text")(8 . "图层"))) or (ssget "cp" pts '((0 . "text")(8 . "图层"))) 选中文字。

点评

构选矩形不行啊,这样会把其它重叠的文字选中的  详情 回复 发表于 2016-7-4 13:23
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-7-4 13:23:37 | 显示全部楼层
Lispboy 发表于 2016-7-3 14:49
按你标题的说法,你选中线后,能得到两顶点,然后你根据上下文字的位置,构造一个矩形,然后用(ssget "wp"  ...

构选矩形不行啊,这样会把其它重叠的文字选中的

点评

如果能选到其他的,说明你矩形构造的不对。 你构造一个文字对齐方向的,能包住文字的矩形。  详情 回复 发表于 2016-7-4 13:29
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-7-4 13:28:36 | 显示全部楼层
Lispboy 发表于 2016-7-3 14:38
有移动的,有不移动的,你怎么判断? 手工选要移动的吗? 你那些文字线用什么做的,一体的,还是分开的?  ...

在圆弧内侧的要素桩重叠严重,都需要进行移动,文字与直线是分开的,CAD图纸已上传!

移动要素桩.rar

32.31 KB, 下载次数: 10

点评

从你这个图看,你的线和字都是分散的,你要想自动选择出你想要的, 1、先根据选的线,构造一个矩形框(长边随线平行) 2、WP选择,能把其他的文字过滤掉。因为其他文字不能包含在这个框里面,或者: CP选  详情 回复 发表于 2016-7-4 13:40
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2016-7-4 13:29:56 | 显示全部楼层
spring8801 发表于 2016-7-4 13:23
构选矩形不行啊,这样会把其它重叠的文字选中的

如果能选到其他的,说明你矩形构造的不对。 你构造一个文字对齐方向的,能包住文字的矩形。

点评

其它文字会包含中构造的矩形内,重叠部分严重。。。  详情 回复 发表于 2016-7-4 13:34
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-7-4 13:34:51 | 显示全部楼层
newer 发表于 2016-7-4 13:29
如果能选到其他的,说明你矩形构造的不对。 你构造一个文字对齐方向的,能包住文字的矩形。

其它文字会包含中构造的矩形内,重叠部分严重。。。

移动要素桩.rar

32.31 KB, 下载次数: 2

点评

不知道你用什么标注的, 最好的标注的时候把相关的线和文字放到一个组或者一个块里面就方便以后的编辑了。  详情 回复 发表于 2016-7-4 13:44
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2016-7-4 13:40:18 | 显示全部楼层
本帖最后由 newer 于 2016-7-4 13:43 编辑
spring8801 发表于 2016-7-4 13:28
在圆弧内侧的要素桩重叠严重,都需要进行移动,文字与直线是分开的,CAD图纸已上传!

从你这个图看,你的线和字都是分散的,你要想自动选择出你想要的,

1、先根据选的线,构造一个矩形框(长边随线平行)
2、WP选择,能把其他的文字过滤掉。因为其他文字不能包含在这个框里面,或者:
      CP选择所有相交于框的文字,你在循环判断哪个文字的角度和直线在一个容差内,构造出选择集。


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

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2016-7-4 13:44:37 | 显示全部楼层
spring8801 发表于 2016-7-4 13:34
其它文字会包含中构造的矩形内,重叠部分严重。。。

不知道你用什么标注的, 最好的标注的时候把相关的线和文字放到一个组或者一个块里面就方便以后的编辑了。

点评

矩形框选选择的范围太广了,如选想移动绿化的线和字,构建矩形框,则把矩形框内的所有文字都选中了,直线上下文字中心都在直线的垂直平分线上,且与直线的距离相同,可以根据这两个特点进行编程,听说用反应器。。。  详情 回复 发表于 2016-7-4 14:07
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-7-4 14:07:05 | 显示全部楼层
newer 发表于 2016-7-4 13:44
不知道你用什么标注的, 最好的标注的时候把相关的线和文字放到一个组或者一个块里面就方便以后的编辑了 ...

矩形框选选择的范围太广了,如选想移动绿化的线和字,构建矩形框,则把矩形框内的所有文字都选中了,直线上下文字中心都在直线的垂直平分线上,且与直线的距离相同,可以根据这两个特点进行编程,听说用反应器。。。但不会。。。
dff.png

点评

是选择了多个文字,但是只有文字角度和你选的线角度相同的才是你要的,其他你可以根据这个条件过滤掉。  详情 回复 发表于 2016-7-4 15:13
选择后的文字,不会再去判断去掉不符合条件的吗? 简单写了下代码,演示看图片,运行在晓东工具箱下。 [attachimg]53935[/attachimg]  详情 回复 发表于 2016-7-4 15:02
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2016-7-4 15:02:01 | 显示全部楼层
spring8801 发表于 2016-7-4 14:07
矩形框选选择的范围太广了,如选想移动绿化的线和字,构建矩形框,则把矩形框内的所有文字都选中了,直线 ...

选择后的文字,不会再去判断去掉不符合条件的吗?

简单写了下代码,演示看图片,运行在晓东工具箱下。


移动桩号标注.gif

  1. (defun c:tt ()
  2.   (if (and
  3.         (setq e (xdrx_entsel "\n选择要移动的桩号标注线(靠近桩)<退出>:" '
  4.                              ((0 . "LINE"))
  5.                 )
  6.         )
  7.         (setq pt (cadr e)
  8.               e (car e)
  9.         )
  10.         (setq pts (xdrx_getpropertyvalue e "startpoint" "endpoint")
  11.               near (car (apply
  12.                           'xdrx_getnearpt
  13.                           (cons pt pts)
  14.                         )
  15.                    ) ;;确保near为直线靠近桩的端点
  16.               other (car (vl-remove near pts)) ;;other为远离桩的直线端点
  17.               pts1 (xdrx_points_offset 5 pts)
  18.               pts2 (xdrx_points_offset -5 pts);;根据你的图构建一个10宽的矩形框
  19.               box (append
  20.                     pts1
  21.                     (reverse pts2)
  22.                   )
  23.               ss (ssget "wp" box '((0 . "text"))) ;;WP选择窗口内的
  24.         )
  25.       )
  26.     (progn
  27.       (setq ang (angle near other)  ;;     直线的角度
  28.             el (xdrx_pickset->ents ss)
  29.       )
  30.       (mapcar
  31.         '(lambda (x)
  32.            (xdrx_getpropertyvalue x "rotation")
  33.            (if (not (equal #rotation ang 1e-3)) ;;角度和直线接近相同的实体表
  34.               (setq el (vl-remove x el))
  35.            )
  36.          )
  37.          el
  38.       )
  39.       (if el
  40.          (progn
  41.            (setq el (cons e el)) ;;线加进文字表中
  42.            (xdrx_entity_move el other near) ;;移动从远端点为基点到 near
  43.          )
  44.       )
  45.     )
  46.   )
  47.   (princ)
  48. )

点评

高手啊,非常感谢!可以根据圆弧判断不?选中的圆弧曲线要素都移动到曲线外侧,还增加个批量的功能就好了!  详情 回复 发表于 2016-7-5 11:00
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2016-7-4 15:13:33 | 显示全部楼层
spring8801 发表于 2016-7-4 14:07
矩形框选选择的范围太广了,如选想移动绿化的线和字,构建矩形框,则把矩形框内的所有文字都选中了,直线 ...

是选择了多个文字,但是只有文字角度和你选的线角度相同的才是你要的,其他你可以根据这个条件过滤掉。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 859个

财富等级: 财运亨通

发表于 2016-7-4 17:34:46 来自手机 | 显示全部楼层
如果是程序生成的,这样的图一般实体生成是按一定顺序生成,后处理可以利用这个顺序,不需要复杂算法
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-7-5 11:00:53 | 显示全部楼层
newer 发表于 2016-7-4 15:02
选择后的文字,不会再去判断去掉不符合条件的吗?

简单写了下代码,演示看图片,运行在晓东工具箱下。 ...

高手啊,非常感谢!可以根据圆弧判断不?选中的圆弧曲线要素都移动到曲线外侧,还增加个批量的功能就好了!

点评

上一个图,标明下圆弧要素移动的前后对比,截图和附件都上来。 这些东西能不能批量,主要还是看你画这些东西时候的准备,什么都是线啊分开的,都会变复杂。 你这些标注是自己手画的? 为什么不把他们建成组?  详情 回复 发表于 2016-7-5 11:14
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2016-7-5 11:14:24 | 显示全部楼层
spring8801 发表于 2016-7-5 11:00
高手啊,非常感谢!可以根据圆弧判断不?选中的圆弧曲线要素都移动到曲线外侧,还增加个批量的功能就好了 ...

上一个图,标明下圆弧要素移动的前后对比,截图和附件都上来。

这些东西能不能批量,主要还是看你画这些东西时候的准备,什么都是线啊分开的,都会变复杂。

你这些标注是自己手画的? 为什么不把他们建成组?或者用属性块去标注这些要素?

点评

这是软件自动生成,根据圆弧判断,就是在圆弧内侧的曲线要素,分别位于圆弧起终点及中点三个位置进行移动,分别移动到曲线外侧CAD图还是以前那个。  详情 回复 发表于 2016-7-5 13:00
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-28 20:24 , Processed in 0.472122 second(s), 61 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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