kingsky 发表于 2006-3-27 21:32:00

怎么提取坐标和高程阿?

<P>单位催的紧,谢谢了</P>
<P>在我所粘贴的dwg文件里,有两个点,数字表示高程,</P>
<P>每个点可以用属性显示出来,但有好几千个点,太急了。</P>
<P>输出格式为:</P>
<P>&nbsp;&nbsp;&nbsp; x&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;y&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 高程</P>
<P>675.2875&nbsp;&nbsp; 449.1828&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -6.7</P>
<P>691.748&nbsp;&nbsp;&nbsp; 420.6027&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;-7.6</P>

yshf 发表于 2006-3-28 08:38:00

请试用以下程序

(defun c:zbtq()
   (setq xtblm '("cmdecho" "osmode" "dimzin"))
   (setq xtblz (mapcar 'getvar xtblm))
   (mapcar 'setvar xtblm '(0 0 0))
   (if (setq fff (getfiled "请选择存盘的文件名" "" "txt" 1))
       (if (setq p1 (getpoint "\n请指定提取范围左下角点:"))
    (if (setq p2 (getcorner p1 "\n请指定提取范围右上角点:"))
      (if (setq ssa (ssget "w" p1 p2 '((0 . "TEXT"))))
   (progn
      (setq ff (open fff "w"))
                      (setq n (sslength ssa) i 0)
      (princ "x         y       高程" ff)
      (repeat n
    (grtext -1 (strcat "共有" (itoa n) "个点,正在提取第" (itoa (1+ i)) "个点!"))
    (setq ent (ssname ssa i)
          dxf (entget ent))
          pt(assoc 10 dxf)
         )
    (princ (strcat "\n"
                   (rtos (nth 1 pt) 2 5) ""
            (rtos (nth 2 pt) 2 5) ""
            (cdr (assoc 1 dxf))
    )
    ff
   )
   (setq i (1+ i))
      )
      (close ff)
   )
   (alert "所选范围内无任何文本!")
      )
      (alert "未请指定提取范围右上角点!")
   )
   (alert "未请指定提取范围左下角点!")
)
         (alert "选择存盘的文件!")
    )
    (mapcar 'setvar xtblm xtblz)(princ)
)

CGJ 发表于 2006-4-8 20:15:00

<P>使用南方CASS和EXCEL,很方便解决问题!</P>

g174157601 发表于 2006-4-27 11:45:00

南方的不行

liu_kunlun 发表于 2006-4-27 12:14:00

<P>我给你编了一个程序,加载文件后,输入命令hight,选择图中文字,结果在文件c:\hight.txt中。</P>

liu_kunlun 发表于 2006-4-27 12:17:00

<P>我给你编了一个程序,加载文件后,输入命令hight,选择图中文字,结果在文件c:\hight.txt中。</P>

apsmould 发表于 2006-4-29 09:00:00

<P>我试试。。</P>
页: [1]
查看完整版本: 怎么提取坐标和高程阿?