xyz002 发表于 2009-12-13 14:06:00

如何用lisp提取多边形内的文字注记?请ZZXXQQ进来看看

本帖最后由 作者 于 2009-12-18 14:58:32 编辑 <br /><br /> <p>提取闭合多边形内的text文字注记,用lisp该如何实现?请高手指教</p><p>如果多边形内无文字,对该多边形新建一个选择集,并从原来的选择集中删除,该怎么写呢?</p>

730527 发表于 2018-3-23 12:20:32

版主能不能整个批量把多边形的文字提取到excel中。谢谢!

730527 发表于 2018-3-23 12:20:18

版主能不能整个批量把多边形的文字提取到excel中。谢谢!

fuchongjiang 发表于 2018-9-26 15:15:43

不错 支持一下

anwei003 发表于 2009-12-13 19:45:00

采用getboundingbox 属性,之后判断点是否在面内即可

ZZXXQQ 发表于 2009-12-13 20:45:00

<p>(defun c:tt ()<br/>(if (and<br/>&nbsp;&nbsp;&nbsp;&nbsp; (setq s1 (entsel "\n选择封闭多边形 :"))<br/>&nbsp;&nbsp;&nbsp;&nbsp; (setq ent (entget(car s1)))<br/>&nbsp;&nbsp;&nbsp;&nbsp; (= (cdr(assoc 0 ent)) "LWPOLYLINE")<br/>&nbsp;&nbsp;&nbsp;&nbsp; (= (cdr(assoc 70 ent)) 1)<br/>&nbsp;&nbsp;&nbsp; ) (progn<br/>&nbsp;(setq pts '())<br/>&nbsp;(mapcar '(lambda(x) (if (= (car x) 10)(setq pts (cons (cdr x) pts)))) (entget ename))<br/>&nbsp;(reverse pts)<br/>&nbsp;(setq ss (ssget "WP" pts '((0 . "TEXT"))))<br/>))<br/>)</p>

xyz002 发表于 2009-12-14 11:13:00

多谢ZZXXQQ版主,程序运行后如何显示提取的文字?

ZZXXQQ 发表于 2009-12-14 13:49:00

在哪显示?

xyz002 发表于 2009-12-14 14:39:00

<p>在命令行中通过princ显示</p>

ZZXXQQ 发表于 2009-12-14 21:06:00

<P>(defun c:tt ()<BR>(if (and<BR>&nbsp;&nbsp;&nbsp;&nbsp; (setq s1 (entsel "\n选择封闭多边形 :"))<BR>&nbsp;&nbsp;&nbsp;&nbsp; (setq ent (entget(car s1)))<BR>&nbsp;&nbsp;&nbsp;&nbsp; (= (cdr(assoc 0 ent)) "LWPOLYLINE")<BR>&nbsp;&nbsp;&nbsp;&nbsp; (/= (cdr(assoc 70 ent)) 0)<BR>&nbsp;&nbsp;&nbsp; ) (progn<BR>&nbsp;(setq pts (list))<BR>&nbsp;(mapcar '(lambda(x) (if (= (car x) 10) (setq pts (cons (cdr x) pts)))) ent)<BR>&nbsp;(reverse pts)<BR>&nbsp;(if (setq ss (ssget "WP" pts '((0 . "TEXT")))) (progn<BR>&nbsp; (setq i 0)<BR>&nbsp; (repeat (sslength ss)<BR>&nbsp;&nbsp; (princ (cdr (assoc 1 (entget(ssname ss i)))))<BR>&nbsp;&nbsp; (princ "\n")<BR>&nbsp;&nbsp; (setq i (1+ i))<BR>&nbsp; )<BR>&nbsp;))<BR>))<BR>(princ)<BR>)<BR></P>

xyz002 发表于 2009-12-15 00:03:00

<p>还是没有显示出提取的文字,返回值nil,上传了cad图,帮忙看看。</p>

ZZXXQQ 发表于 2009-12-15 21:00:00

七楼已改。

xyz002 发表于 2009-12-16 14:14:00

<p>这下可以了,非常感谢<strong><font face="Verdana" color="#da2549">ZZXXQQ</font></strong>! </p><p>还有一个问题,对于多个多边形,需要分别提取文字, 这样的循环该如何实现呢?我最终是要实现将提取的文字添加到每个多边形的扩展数据中,如(-3 ("A" (1000 . "1000")) ("B" (1070 . <font color="#f73809"><strong>2</strong></font>)))</p>
页: [1] 2 3 4
查看完整版本: 如何用lisp提取多边形内的文字注记?请ZZXXQQ进来看看