找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 4237|回复: 6

[求助] 求lisp源码,平行最近直线

[复制链接]

已领礼包: 46个

财富等级: 招财进宝

发表于 2014-4-22 20:46:25 | 显示全部楼层 |阅读模式

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

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

×
如题,如何判断出离文字最近的线,并选择它,eg:一个文字周围有很多直线,我先选择了文字,然后框选周围所有的线,希望能选出最近的线。       主要是不懂怎么去实习这个判断的过程。  最终的目的是框选所有文字,文字平行到离它最近的直线,直线可能是斜的 ps:积分不够,希望能高手给出纯LISP学习下,蛮多想法会用类似这个判断选择,都卡在这边!!

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

已领礼包: 1268个

财富等级: 财源广进

发表于 2014-4-22 23:32:04 来自手机 | 显示全部楼层
取文字的插入点、角度,对线选集先按角度筛选出和文字平行的,然后以插入点向这些平行线求距离(看高飞的trans文章,或者用vlax-curve-getclosestpointto),排序找出最近的

点评

就是你说的后面那一块不懂 排序啊那些  详情 回复 发表于 2014-4-23 10:05
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 46个

财富等级: 招财进宝

 楼主| 发表于 2014-4-23 10:05:35 | 显示全部楼层
st788796 发表于 2014-4-22 23:32
取文字的插入点、角度,对线选集先按角度筛选出和文字平行的,然后以插入点向这些平行线求距离(看高飞的tr ...

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

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2014-4-23 10:13:25 来自手机 | 显示全部楼层
用距离和线构造表后以距离为索引排序,是不是要排除字两侧线

点评

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

使用道具 举报

已领礼包: 46个

财富等级: 招财进宝

 楼主| 发表于 2014-4-23 10:16:49 | 显示全部楼层
st788796 发表于 2014-4-23 10:13
用距离和线构造表后以距离为索引排序,是不是要排除字两侧线

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

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2014-4-23 17:19:16 | 显示全部楼层
本帖最后由 st788796 于 2014-4-23 17:22 编辑
fjutcivil 发表于 2014-4-23 10:16
恩,是要选择字下面的线,元老求助啊

  1. (defun c:tt (/ e ss an lst pos e1)
  2.   (if (and (setq e (car (xdrx_entsel "\nPick Text: " '((0 . "text")))))
  3.            (setq ss (ssget '((0 . "line"))))
  4.       )
  5.     (progn
  6.       (setq an        (rem (xdrx_getpropertyvalue e "Rotation") pi)
  7.             pos        (xdrx_getpropertyvalue e "Position")
  8.             lst
  9.                 (mapcar
  10.                   'cadr
  11.                   (vl-remove-if
  12.                     '(lambda (x)
  13.                        (not (equal (car x) an 1e-3))
  14.                      )
  15.                     (mapcar
  16.                       '(lambda (a)
  17.                          (list (rem (xdrx_getpropertyvalue a "Angle") pi)
  18.                                a
  19.                          )
  20.                        )
  21.                       (xdrx_pickset->ents ss)
  22.                     )
  23.                   )
  24.                 )
  25.       )
  26.       (setq lst
  27.                 (mapcar
  28.                   '(lambda (x / sp mp ep l)
  29.                      (mapcar 'set '(sp mp ep) (xdrx_curve_getpoint x))
  30.                      (setq l (trans (mapcar '- pos sp) 0 (mapcar '- ep sp)))
  31.                      (list (list (car l) (last l))
  32.                            x
  33.                      )
  34.                    )
  35.                   lst
  36.                 )
  37.             lst        (vl-remove-if '(lambda (x) (minusp (caar x))) lst)
  38.             lst        (vl-sort lst
  39.                          '(lambda (x1 x2)
  40.                             (< (caar x1) (caar x2))
  41.                           )
  42.                 )
  43.             e1        (cadar lst)
  44.       )
  45.       (xdrx_setpropertyvalue
  46.         e
  47.         "Position"
  48.         (cadr (xdrx_curve_getpoint e1))
  49.       )
  50.     )
  51.   )
  52.   (princ)
  53. )
tf.gif
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-14 06:32 , Processed in 0.362814 second(s), 52 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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