只需一步,快速开始
[求助]如何在指定的区域半径内搜索文本图元
如图:
点边缘的文字代表改点处的高程,及Z坐标
图中有好多这样的点(块、形、圆等代表的点)和文字,我的思路是创建一个新层,在该层上统一创建统一格式的代z坐标的点。
第一步
可以用选择集选择这些点,查出他的插入点坐标
第二步
在这些点周围(半径为R区域内)查找文字,如果为数字,就赋值给新层下新创建的点
。。。
第二步,不知道如何实现?
如果遍历,速度太慢!
盼大大们能指点一二,感激不尽~
使用道具 举报
Gu_xl 发表于 2010-11-4 16:46 ;;;ssget "c" 只能再屏幕显示下才能选择,你可以按下列方式选择试试!pt 点 r 半径 (defun tt (pt r ...
给个参考下:
(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)) )
努力学习中~
感谢楼上~~
;;;ssget "c" 只能再屏幕显示下才能选择,你可以按下列方式选择试试!pt 点 r 半径
(defun tt (pt r) (setq x(car pt) minX (- x r) maxX (+ x r) y (cadr pt) minY (- y r) maxY (+ Y r) ) (setq ss (ssget "X" (list '(-4 . "<and") '(-4 . ">=,>=,*")(list 10 minX minY 0)'(-4 . "<=,<=,*")(list 10 maxX maxY 0)'(0 . "TEXT")'(-4 . "and>"))) ) )
6楼的简单易懂
灰常实用
方形选择,也够用了!
三楼回复的VLAX函数非常的不熟悉,还待以后慢慢提高自己,现在只能收藏了先,谢过二位了!
最新心得报告:
关键是ssget函数的熟练掌握~
三楼的设计更为巧妙,逐步扩大搜索半径,直至搜索到目标文本停止搜索,
关于“c”的选取方式,
可以加入这么一句
(command "zoom" "c" Pt_center "")就OK了
本版积分规则 发表回复 回帖后跳转到最后一页
小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 ) ©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途
GMT+8, 2024-11-15 06:43 , Processed in 0.156401 second(s), 27 queries , Gzip On.
Powered by Discuz! X3.4
Copyright © 2001-2021, Tencent Cloud.