如何提取文字和坐标点?
各位大神,帮忙看看好嘛?怎么提取封闭区域里的字和封闭区域的的端点坐标啊?并且让它们一 一对应啊?
哦,最好提取出来以后排序也是按照文字的大小顺序排列A1 ;A2;A3....
更多插件请加群或云盘下载
http://yunpan.cn/c3iAVqYptpwj9访问密码 cc19
QQ群: 208388011
CASS淘宝店
https://shop144125783.taobao.com/?spm=2013.1.1000126.2.OPuimC
视频网盘
https://yunpan.cn/cxxbsasRFynjQ访问密码 0742
(defun c:tt();;输出PL线内的文字和PL线的起点坐标
(vl-load-com)
(setq ss (ssget (list (cons 0 "*POLYLINE"))))
(setq k -1)
(setq filetxt (open "C:\\坐标及文本.csv" "W"))
(setq txt1 (strcat "文本内容" "," "X坐标" "," "Y坐标"))
(write-line txt1 filetxt)
(princ)
(setq txtnum nil)
(repeat (sslength ss)
(setq ent (ssname ss (setq k (1+ k))))
(setq plst (xlr_pljdzb ent))
(setq X (rtos (nth 0 (car plst)) 2 3))
(setq Y (rtos (nth 1 (car plst)) 2 3))
(setq ss1 (ssget "WP" plst (list (cons 0 "TEXT"))))
(if (/= ss1 nil)
(setq txt2 (cdr (assoc 1 (entget (ssname ss1 0)))))
(setq txt2 "")
)
(setq txt3 (list txt2 (list(strcat txt2 "," X "," Y))))
(setq txtnum (cons txt3 txtnum))
)
(setq ss_en (vl-sort txtnum '(lambda (l1 l2) (< (car l1) (car l2)))))
(foreach tx ss_en
(setq tx1 (caadr tx))
(write-line tx1 filetxt)
(princ)
)
(close filetxt)
)
(defun xlr_pljdzb (ename / i v lst);;获得_节点坐标
(setq i -1)
(while (setq v (vlax-curve-getpointatparam ename (setq i (1+ i))))
(setq lst (cons v lst))
)
(reverse lst)
) 谢谢楼上的大神,谢谢
页:
[1]