[求助]如何在指定的区域半径内搜索文本图元
<p><font face="Verdana">[求助]如何在指定的区域半径内搜索文本图元</font></p><p>如图:</p>
<p>点边缘的文字代表改点处的高程,及Z坐标</p>
<p>图中有好多这样的点(块、形、圆等代表的点)和文字,我的思路是创建一个新层,在该层上统一创建统一格式的代z坐标的点。</p>
<p> </p>
<p>第一步</p>
<p>可以用选择集选择这些点,查出他的插入点坐标</p>
<p>第二步</p>
<p>在这些点周围(半径为R区域内)查找文字,如果为数字,就赋值给新层下新创建的点</p>
<p>。。。</p>
<p>。。。</p>
<p> </p>
<p>第二步,不知道如何实现?</p>
<p>如果遍历,速度太慢!</p>
<p> </p>
<p>盼大大们能指点一二,感激不尽~</p> Gu_xl 发表于 2010-11-4 16:46
;;;ssget "c" 只能再屏幕显示下才能选择,你可以按下列方式选择试试!pt 点 r 半径
(defun tt (pt r ...
这个方法好,多谢Gu版 无人理睬,只得厚颜顶起~ <p>给个参考下:</p>
<p><font face="Verdana"> (defun getCircle_name (ob / i pt_center radius ss_name)<br/> (setq Radius (Vlax-Get ob 'Radius ))<br/> (setq Pt_center (Vlax-Get ob 'Center ))<br/> (setq i 1)<br/> (while (and (< i 10) (not ss_name))<br/> (setq ss_name (ssget "c" (polar Pt_center (* pi 0.25) (* Radius i)) (polar Pt_center (* pi 1.25) (* Radius i)) '((0 . "*TEXT"))))<br/> (setq i (1+ i))<br/> )<br/> (if ss_name (ssname ss_name 0))<br/> )</font></p> <p>努力学习中~</p>
<p> </p>
<p>感谢楼上~~</p> 不错 <p><font face="Verdana">;;;ssget "c" 只能再屏幕显示下才能选择,你可以按下列方式选择试试!pt 点 r 半径</font></p>
<p><font face="Verdana">(defun tt (pt r)<br/> (setq x(car pt)<br/> minX (- x r)<br/> maxX (+ x r)<br/> y (cadr pt)<br/> minY (- y r)<br/> maxY (+ Y r)<br/> )<br/> (setq ss (ssget "X" (list '(-4 . "<and") '(-4 . ">=,>=,*")(list 10 minX minY 0)'(-4 . "<=,<=,*")(list 10 maxX maxY 0)'(0 . "TEXT")'(-4 . "and>"))) )<br/> )<br/></p></font> 学习了。。。。 感谢分享程序,收藏了! <p>6楼的简单易懂</p>
<p>灰常实用</p>
<p>方形选择,也够用了!</p>
<p> </p>
<p>三楼回复的VLAX函数非常的不熟悉,还待以后慢慢提高自己,现在只能收藏了先,谢过二位了!</p> <p>最新心得报告:</p>
<p> </p>
<p>关键是ssget函数的熟练掌握~</p>
<p> </p>
<p>三楼的设计更为巧妙,逐步扩大搜索半径,直至搜索到目标文本停止搜索,</p>
<p>关于“c”的选取方式,</p>
<p>可以加入这么一句</p>
<p>(command "zoom" "c" Pt_center "")就OK了</p>
<p> </p>
<p></p>
页:
[1]
2