在大家的帮助下本人制作了一个 函数 能查找到距离“输入点”“某范围内”最近的“指定图元”,欢迎指教
引用函数需要输入三个参数:点,搜索范围的区域边长,搜索的图元名称(可以是"TEXT"、"INSERT"、"SHAPE"、"CIRCLE"等等)
- ;;;;;;;;;已经测试通过;;;;;;;;;;;;;;;;;;;;;;;;;查找距离point,范围R以内最近的图元Tuyuan;;;;;;;制作:qiiqii;;;;;;
- (defun GetA_nea_TY (Point R TuYuan / X Y MinX MaxX MinY MaxY Ob NN ob_N Pt Dis)
- (setq X (car Point)
- MinX (- X R)
- MaxX (+ X R)
- Y (cadr Point)
- MinY (- Y R)
- MaxY (+ Y R)
- NN 0
- ob_N 0
- Dis R)
- (setq ob (ssget "X" (list '(-4 . "<and") '(-4 . ">=,>=,*")(list 10 MinX MinY 0)'(-4 . "<=,<=,*")(list 10 MaxX maxY 0)(cons 0 TuYuan)'(-4 . "and>"))))
- (cond
- ((= (sslength ob) 1) (ssname ob 0))
- ((> (sslength ob) 1)
- (progn
- (repeat (sslength ob)
- (setq pt (cdr (assoc 10 (entget (ssname ob NN)))))
- (if (< (Get_Plane_Dis Point pt) dis)(setq ob_N NN))
- (setq Dis (min Dis (Get_Plane_Dis Point pt)))
- (setq NN (1+ NN))
- ))))
- (if ob (ssname ob ob_N))
- )
|