找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 3603|回复: 21

[编程申请] 判断多边形与文字的关系

[复制链接]
发表于 2013-6-14 13:16:40 | 显示全部楼层 |阅读模式
悬赏50D豆未解决
要求:
1、一个多边形内有一个文字且不压线,多边形和文字颜色不变(随层)。
2、多边形内有文字但是压线,多边形和文字颜色变为蓝色。
3、多边形内无文字,或者文字未被多边形包围,多边形和文字都变为绿色。
4、多边形有里面有两个文字,或者一个文字被两个多边形包围(多边形可能重合可能相交),多边形和文字都变绿色。
说明:
1、支持框选判
2、此功能可能会对有重点的或者是有回头线的多边形判断成绿色,这种也可以认为是错误的。只要变色后,我可以人为去找出错误。
3、我最终需要的正确图形是一个闭合的多边形内只会包含一个单行文字。
4、运行速度不能太慢。

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

已领礼包: 145个

财富等级: 日进斗金

发表于 2013-6-14 13:21:35 | 显示全部楼层
这个问题好像讨论过了吧。

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

使用道具 举报

 楼主| 发表于 2013-6-14 13:29:41 | 显示全部楼层
情况和测试图如下

判断多边形与文字的关系.rar

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

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

使用道具 举报

 楼主| 发表于 2013-6-14 13:33:00 | 显示全部楼层
对,前段时间经过大家的帮助,已经能解决部分功能。但是在使用中,发现如果多边形和文字太多,速度很慢。而且结果不是很稳定。以下是我目前的一些代码
  1. ;判断没有文字的多边形和压线的多边形
  2. (defun c:xt ( / e elst ent i pts1 pts ss ss1 ss2  y x)
  3.   (setvar "CMDECHO" 0)
  4. (prompt "请选择需要比较的多边形,找出压线的多边形和文字!")
  5.   (if (setq ss (ssget '((0 . "*POLYLINE")))) ; 选择多边形
  6.     (progn
  7.       (setq i 0)
  8.       (while (setq ent (ssname ss i))
  9.         (setq elst (cons ent elst))
  10.         (setq i (1+ i))
  11.       )
  12.       (mapcar
  13.         '(lambda (e)
  14.           (if
  15.             (setq pts
  16.               (mapcar 'cdr
  17.                 (vl-remove-if-not '(lambda (x) (= (car x) 10)) (entget e))
  18.               )
  19.             )
  20.              (cond
  21.               ((setq ss2(ssget "wp" pts '((0 . "TEXT"))));功能1、多边形内有文字且不压线,多边形和文字颜色变红色
  22.                 (command "change" e ss2 "" "p" "C" "1" "")
  23.               )
  24.               ((setq ss2 (ssget "f" pts '((0 . "TEXT"))));功能2、多边形有文字但是压线,多边形和文字颜色变为蓝色(未实现文字变蓝色)
  25.                 (command "change" e ss2 "" "p" "C" "5" "")
  26.               )
  27.               (t                              ;功能3、多边形内无文字,或者文字未被多边形包围,多边形和文字都变为绿色。(只实现了多边形变色)
  28.                 (command "change" e "" "p" "C" "3" "")
  29.               )
  30.             )
  31.           )
  32.         )
  33.         elst
  34.       )
  35.     )
  36.   )
  37.   (setvar "CMDECHO" 1)
  38.   (princ)
  39. )

点评

http://bbs.xdcad.net/thread-667674-1-1.html 请用上面链接的制作动画的软件,把有问题的各种情况,分别作几个动画,说明不了情况的在截取图片标明下,然后贴论坛上来。 关键是要大家理解你的想法。  详情 回复 发表于 2013-6-14 13:35
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2013-6-14 13:35:30 | 显示全部楼层
cz78873559 发表于 2013-6-14 13:33
对,前段时间经过大家的帮助,已经能解决部分功能。但是在使用中,发现如果多边形和文字太多,速度很慢。而 ...

http://bbs.xdcad.net/thread-667674-1-1.html

请用上面链接的制作动画的软件,把有问题的各种情况,分别作几个动画,说明不了情况的在截取图片标明下,然后贴论坛上来。

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

使用道具 举报

 楼主| 发表于 2013-6-14 13:44:15 | 显示全部楼层
哦 好的。我也学学这样制作动画

点评

做动画就是连续的截图,你给个开始指令,然后就操作,再给个结束指令,就做到文件里面了,可以适当修饰下,然后保存动画GIF就行了。  详情 回复 发表于 2013-6-14 14:10
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

发表于 2013-6-14 13:49:27 来自手机 | 显示全部楼层
这个用lisp只能是优化,不要期望太高,算法中是取文字为基准还是已以pline为基准要权衡下来自: Android客户端
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2013-6-14 14:10:36 | 显示全部楼层
cz78873559 发表于 2013-6-14 13:44
哦 好的。我也学学这样制作动画

做动画就是连续的截图,你给个开始指令,然后就操作,再给个结束指令,就做到文件里面了,可以适当修饰下,然后保存动画GIF就行了。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

发表于 2013-6-14 15:07:03 | 显示全部楼层
本帖最后由 QiaoCheng 于 2013-6-14 15:09 编辑

问题是楼主说了这句"或者一个文字被两个多边形包围(多边形可能重合可能相交),多边形和文字都变绿色",不确定是以文字还是多边形为准,其他的应该好办
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

 楼主| 发表于 2013-6-14 15:32:47 | 显示全部楼层
恩。我个人认为应该以文字而且也应该以多边形为判断依据,不知道这样能否实现?

点评

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

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2013-6-14 15:35:39 | 显示全部楼层
cz78873559 发表于 2013-6-14 15:32
恩。我个人认为应该以文字而且也应该以多边形为判断依据,不知道这样能否实现?

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

使用道具 举报

 楼主| 发表于 2013-6-14 15:37:13 | 显示全部楼层
我还是没能搞好视频动画。麻烦大家下载了附件就能看明白我说的情况了。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

 楼主| 发表于 2013-6-14 19:45:40 | 显示全部楼层
非常感谢XDSoft 的提点。我把效果做了动画,麻烦大家帮忙看看!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

 楼主| 发表于 2013-6-14 19:49:16 | 显示全部楼层
非常感谢XDSoft 的提点。我把效果做了动画,麻烦大家帮忙看看!
判断多边形与文字的关系.gif

点评

很好奇,写了人名在框里面,楼主,你不是在弄分房子的工具吧?  详情 回复 发表于 2013-6-14 20:53
(setq ss2(ssget "wp" pts '((0 . "TEXT")))之前先要用(command "zoom" p1 p2) 将pts的坐标范围移到可见范围之内!  详情 回复 发表于 2013-6-14 20:43
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 344个

财富等级: 日进斗金

发表于 2013-6-14 20:43:41 | 显示全部楼层
cz78873559 发表于 2013-6-14 19:49
非常感谢XDSoft 的提点。我把效果做了动画,麻烦大家帮忙看看!

(setq ss2(ssget "wp" pts '((0 . "TEXT")))之前先要用(command "zoom" p1 p2) 将pts的坐标范围移到可见范围之内!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-26 11:29 , Processed in 0.378527 second(s), 65 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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