本帖最后由 skg123 于 2014-8-30 15:30 编辑
CASS有高程点坐标提取的功能,但它是全部提取,用户有时候想选择性的提取 需要的部分高程点就不方便了,针对该问题,别人编辑了一个小程序。可以在图上 直接碰选高程点(不能框选)讲坐标输出至文本,文本格式为CASS “XXX.dat”样式。
命令:gcdtq
《附件》- 2014年8月30修改,修改后增加 高程点编码,可以框选,并且可以连续作业
- (defun c:tqgc(/ p1 p2 ss sn si i x y e fw)
- (prompt "**从CASS中提取高程点,请在命令行输入 tqgc , ** Esc 取消退出")
- (setq n 0)
- (setq sn 0)
- (setq zh 0)
- (setq ff (open (getfiled "文件保存为" "f:/" "dat" 1) "a"))
- (while
- (setq word (getstring "\请输入高程点编码:"))
- (setq ss(ssget (list(cons 8 "GCD")(cons 2 "GC200"))))
- (if ss(progn
- (setq fw(open "d:\\ex.dat" "w"))
- (setq sn(sslength ss))
- (setq i 0)
- (while(< i sn)
- (setq si (ssname ss i))
- ;=====提取坐标=====2014-08-30======
- (setq pt(cdr(assoc 10 (entget si))))
- (setq x(rtos(car pt)2 3) y(rtos(cadr pt)2 3) e(rtos(caddr pt)2 3))
- (princ(strcat (itoa (+ n (+ 1 i )))","word"," x "," y "," e "\n") ff)
- (setq i (+ 1 i))
- );end while
- (setq n (+ n sn ));序号累加
- );end while
- (close ff)
- )
- )
- (princ)
- )
|