明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
12
返回列表 发新帖
楼主: qiiqii

[求助]如何在指定的区域半径内搜索文本图元

  [复制链接]
 楼主| 发表于 2010-11-12 12:23:00 | 显示全部楼层
在大家的帮助下本人制作了一个 函数 能查找到距离“输入点”“某范围内”最近的“指定图元”,欢迎指教
引用函数需要输入三个参数:点,搜索范围的区域边长,搜索的图元名称(可以是"TEXT"、"INSERT"、"SHAPE"、"CIRCLE"等等)
  1. ;;;;;;;;;已经测试通过;;;;;;;;;;;;;;;;;;;;;;;;;查找距离point,范围R以内最近的图元Tuyuan;;;;;;;制作:qiiqii;;;;;;
  2. (defun GetA_nea_TY (Point R TuYuan / X Y MinX MaxX MinY MaxY Ob NN ob_N Pt Dis)
  3. (setq X (car Point)
  4.     MinX (- X R)
  5.     MaxX (+ X R)
  6.     Y (cadr Point)
  7.     MinY (- Y R)
  8.     MaxY (+ Y R)
  9.     NN 0
  10.     ob_N 0
  11.     Dis R)
  12. (setq ob (ssget "X" (list '(-4 . "<and") '(-4 . ">=,>=,*")(list 10 MinX MinY 0)'(-4 . "<=,<=,*")(list 10 MaxX maxY 0)(cons 0 TuYuan)'(-4 . "and>"))))
  13. (cond
  14. ((= (sslength ob) 1) (ssname ob 0))
  15. ((> (sslength ob) 1)
  16. (progn
  17.      (repeat (sslength ob)
  18.      (setq pt (cdr (assoc 10 (entget (ssname ob NN)))))
  19.      (if (< (Get_Plane_Dis Point pt) dis)(setq ob_N NN))
  20.      (setq Dis (min Dis (Get_Plane_Dis Point pt)))
  21.      (setq NN (1+ NN))
  22.      ))))
  23. (if ob (ssname ob ob_N))
  24. )
发表于 2010-11-12 19:14:00 | 显示全部楼层

 这是nonsmall的,当然巧妙

(defun getCircle_name (ob / i pt_center radius ss_name)
 (setq Radius (Vlax-Get ob 'Radius ))
 (setq Pt_center (Vlax-Get ob 'Center ))
 (setq i 1)
 (while (and (< i 10) (not ss_name))
  (setq ss_name (ssget  "c" (polar Pt_center (* pi 0.25) (* Radius i)) (polar Pt_center (* pi 1.25) (* Radius i)) '((0 . "*TEXT"))))
  (setq i (1+ i))
 )
 (if ss_name (ssname ss_name 0))
 )

发表于 2011-8-31 14:42:59 | 显示全部楼层
(list '(-4 . "<and") 中的  -4 是什么意思,请高手指教,谢谢!
发表于 2022-6-18 14:11:30 | 显示全部楼层
Gu_xl 发表于 2010-11-4 16:46
;;;ssget&nbsp; "c" 只能再屏幕显示下才能选择,你可以按下列方式选择试试!pt 点 r 半径
(defun tt (pt r ...

这个方法好,多谢Gu版
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-15 07:10 , Processed in 0.147046 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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