找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 5248|回复: 45

[已解决] 批量通过文本内容选择与之平行的线

[复制链接]

已领礼包: 1337个

财富等级: 财源广进

发表于 2013-12-26 18:19:20 | 显示全部楼层 |阅读模式
悬赏20D豆已解决
本帖最后由 279491611 于 2013-12-26 20:36 编辑

1.批量通过文本内容选择与之平行的线 (如:文字内容为7 就选择 与 7 角度大致相同的 7 附近的线)
2.把选择到的线和文字改成 同一种 颜色或 同一 图层 图层名 为文本内容。
3.如果更进一步 ,把这个文本 与 这一根线做成一个块就更完美了,块名 就以文本内容_加流水号。
(文件特点:1 . 文本 与 直线一 一 对应                    2. 直线始终位于文本下方
                    3. 直线相交处必有断点.


2013-12-26 18-13-04.png

最终效果

最终效果

21.rar

62.93 KB, 下载次数: 6, 下载积分: D豆 -1 , 活跃度 1

dwg

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

已领礼包: 2476个

财富等级: 金玉满堂

发表于 2013-12-26 18:19:21 | 显示全部楼层
  1. (defun c:tt ( / ang b box col doc ent i lay layobj ll pm pp sl ss str th ur)
  2.   (vl-load-com)
  3.   (command "chprop" "all" "" "lt" "continuous" "")
  4.   (setq ss (ssget '((0 . "mtext,text"))) i -1)
  5.     (while (setq ent (ssname ss (setq i (1+ i))))
  6.       (setq b (vlax-ename->vla-object ent)
  7.         ang (vla-get-Rotation b)
  8.         str (vla-get-TextString b)
  9.         th (vla-get-Height b)
  10.         lay (vla-get-layer b)
  11.         col (vla-get-color b)
  12.       )
  13.   (if (= col 256)
  14.     (progn
  15.       (setq doc (vla-get-activedocument (vlax-get-acad-object)))
  16.       (setq layobj (vla-item (vla-get-layers doc) lay))
  17.       (setq col (vla-get-color layobj))
  18.     )
  19. )
  20.   (vla-getboundingbox b 'll 'ur)
  21.   (setq box (mapcar 'vlax-safearray->list (list ll ur))
  22.     pm (mapcar '* '(0.5 0.5 0.5) (mapcar '+ (car box) (cadr box)))
  23.     pp (polar pm (- ang (* 0.5 pi)) th)
  24.     sl (ssname (ssget "f" (list pm pp) '((0 . "line"))) 0)
  25.   )
  26.   (Vlax-Put-Property (Vlax-Ename->Vla-Object ent) 'Color str)
  27.   (Vlax-Put-Property (Vlax-Ename->Vla-Object sl) 'Color str)
  28. )
  29.   (command "chprop" "all" "" "lt" "bylayer" "")   
  30.     )

点评

已经能达到分类的效果了。非常感谢.  发表于 2013-12-27 11:58
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2013-12-26 18:25:10 | 显示全部楼层
楼主什么专业,这个功能是做什么用的?

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

使用道具 举报

已领礼包: 1337个

财富等级: 财源广进

 楼主| 发表于 2013-12-26 18:32:41 | 显示全部楼层
本帖最后由 279491611 于 2013-12-26 18:36 编辑

谢谢关注 ,结构,一个文本 对应 一根线,就是一文本就是一种断面,而这根线就是相应的那根杆件. 文本就在这根线的附近(可以设定一个容差),文本的角度,与线的角度也有容差的.

点评

也就是说画图时候保证了一个文本附近只有一个角度相近的线了?  详情 回复 发表于 2013-12-26 18:36
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2013-12-26 18:36:59 | 显示全部楼层
279491611 发表于 2013-12-26 18:32
谢谢关注 ,结构,一个文本 对应 一根线,就是一文本就是一种断面,而这根线就是相应的那根杆件.

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

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2013-12-26 18:39:47 | 显示全部楼层
还有,你图中的2个7,下面水平的线在交点处都是断开的?不会有2个文字共用一根线的情况?

点评

那个应该是 线型 的关系 ,不会层在 2根线 共一个 文本 或 2个文本共一根线的情况。应是一 一 对应关系.  详情 回复 发表于 2013-12-26 19:05
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 1337个

财富等级: 财源广进

 楼主| 发表于 2013-12-26 18:40:03 | 显示全部楼层
是的,这是别的 软件 输出来的图形 。他没把断面用图层或颜色分开。 只能自己判断一 一对应的关系.
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2013-12-26 18:51:42 来自手机 | 显示全部楼层
这种图适合用图形的生成顺序直接遍历
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 1337个

财富等级: 财源广进

 楼主| 发表于 2013-12-26 19:05:54 | 显示全部楼层
本帖最后由 279491611 于 2013-12-26 19:08 编辑
newer 发表于 2013-12-26 18:39
还有,你图中的2个7,下面水平的线在交点处都是断开的?不会有2个文字共用一根线的情况?

那个应该是 2个7对应的两根线 刚好位于同一直线上 。 不会存在 2根线 共一个 文本 或 2个文本共一根线的情况。应是一 一 对应关系.
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2013-12-26 19:39:22 | 显示全部楼层
本帖最后由 newer 于 2013-12-26 23:22 编辑

给你写个,加载XDRX_API,晓东LISP函数库,

1、给你做成块了。
2、块图层到文本名,颜色随文本号

角度精度5度内,合并处理。

需完善请跟帖。

xdtb_text_jg.gif


  1. (defun c:tt()
  2.    (prompt "\n选取要处理的文本<退出>:")
  3.    (if (setq ss (ssget '((0 . "TEXT"))))
  4.      (progn
  5.         (XD::Begin)
  6.         (xdrx_sysvar_push '("osmode" 0))
  7.         (setq ang-fuzz 5
  8.               len (sslength ss)
  9.               i 0
  10.               j 0
  11.         )
  12.         (xdrx_statusbar_begin "处理中" len)
  13.         (xdrx_setsstodb ss 0)
  14.         (while (setq e (xdrx_getentdata 0))
  15.            (setq i (1+ i))
  16.            (xdrx_statusbar_setpos i)
  17.            (mapcar 'set '(an pj h txt) (xdrx_getpropertyvalue e "rotation" "position" "height" "textstring"))
  18.            (setq an (XD::Geom:AngleFormat an))
  19.            (if (setq ss1 (xdrx_pickset_getAtPoint pj h 9 '((0 . "LINE"))))
  20.              (progn
  21.                 (setq ents nil)
  22.                 (while (setq e1 (xdrx_getentdata 9))
  23.                    (setq an1 (xdrx_getpropertyvalue e1 "angle")
  24.                          an1 (XD::Geom:AngleFormat an1)
  25.                    )
  26.                    (if (< (- (abs (- an1 an)) (* pi (/ ang-fuzz 180.0))) 1e-5)
  27.                      (setq ents (cons e1 ents))
  28.                    )
  29.                 )
  30.                 (if ents
  31.                    (progn
  32.                       (setq ss2 (XD::Entity->PickSet (list e (car ents))))
  33.                       (xdrx_entity_setcolor ss2 0)
  34.                       (xdrx_block_make  (strcat txt "_" (xdrx_getrandstr)(xdrx_getrandstr)(xdrx_getrandstr)) ss2 pj t)
  35.                       (xdrx_setpropertyvalue (entlast) "color" (atoi txt) "layer" txt)
  36.                       (setq j (1+ j))
  37.                    )
  38.                 )
  39.              )
  40.            )
  41.         )
  42.         (prompt (strcat "\n处理完毕!,合并了" (itoa j) "个文字和杆件到块."))
  43.         (xdrx_statusbar_end)
  44.         (xdrx_sysvar_pop)
  45.         (XD::End)
  46.      )
  47.    )
  48.    (princ)
  49. )



点评

谢谢,文字处理好了 2012 x64 no function definition: XD::BEGIN 线好像没反应  详情 回复 发表于 2013-12-26 19:58

评分

参与人数 1D豆 +5 收起 理由
279491611 + 5 可能我们是在做块上绕了弯路.

查看全部评分

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

使用道具 举报

已领礼包: 1337个

财富等级: 财源广进

 楼主| 发表于 2013-12-26 19:57:27 | 显示全部楼层
no function definition: XD::BEGIN
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 1337个

财富等级: 财源广进

 楼主| 发表于 2013-12-26 19:58:41 | 显示全部楼层
本帖最后由 279491611 于 2013-12-26 20:09 编辑
newer 发表于 2013-12-26 19:39
给你写个,加载XDRX_API,晓东LISP函数库,给你做成块了。
角度精度5度内,合并处理。

谢谢,文字处理好了  2012   x64   加载了 XDRX_API.R18.X64.arx
no function definition: XD::BEGIN

线好像没反应

点评

去下载 晓东通用LISP函数库,加载它。 看我的签名。  详情 回复 发表于 2013-12-26 20:07
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2013-12-26 20:07:41 | 显示全部楼层
279491611 发表于 2013-12-26 19:58
谢谢,文字处理好了  2012   x64  
no function definition: XD::BEGIN

去下载 晓东通用LISP函数库,加载它。

看我的签名。

点评

谢谢,已经做成一个个的块了。就是线的颜色和图层没有与文本统一,线线修改了位置?  详情 回复 发表于 2013-12-26 20:18
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 1337个

财富等级: 财源广进

 楼主| 发表于 2013-12-26 20:18:19 | 显示全部楼层
本帖最后由 279491611 于 2013-12-26 20:46 编辑
newer 发表于 2013-12-26 20:07
去下载 晓东通用LISP函数库,加载它。

看我的签名。

谢谢,已经做成一个个的块了。就是线的颜色和图层没有与文本统一,线线修改了位置? 线和文本位置不必调整。线的位置很重要。文本倒是无所谓。

好像是块的是重名的才会有这个情况,块名称不要相同,即使是同一角度,长度,同一文本,因为他们的位置 或 方向不一样。

可能刚才的图形不够完整。
2013-12-26 20-13-42.png

21.rar

62.93 KB, 下载次数: 0, 下载积分: D豆 -1 , 活跃度 1

点评

改写了程序,重新下载9楼的代码执行看看。 颜色,图层,块都考虑了。 另外请问下: 1、这个图是什么专业软件生成的? 2、图叫什么名? 3、这个工具应该是后处理吧,你做成块后,以后还想操作它吗?做成  详情 回复 发表于 2013-12-26 23:08
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2013-12-26 23:08:23 | 显示全部楼层
279491611 发表于 2013-12-26 20:18
谢谢,已经做成一个个的块了。就是线的颜色和图层没有与文本统一,线线修改了位置? 线和文本位置不必调 ...

改写了程序,重新下载9楼的代码执行看看。

颜色,图层,块都考虑了。

另外请问下:

1、这个图是什么专业软件生成的?
2、图叫什么名?
3、这个工具应该是后处理吧,你做成块后,以后还想操作它吗?做成块有什么好处?


我好去到每日插件发布,确定下分类。

点评

说到发布插件,其实这就是一个扩展选取的问题。  详情 回复 发表于 2013-12-27 13:02
首先谢谢版主这么晚还在帮我们想办法。 这应该是一个结构设计计算类软件生成的, 估计是 MIDAS 或 SAP2000 之类的。别人转转而给的图,具体软件名称不得而知。图就是一个平面图,和旁边的一个立面图。附件里只是一部  详情 回复 发表于 2013-12-27 09:45
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-18 12:48 , Processed in 0.477381 second(s), 71 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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