明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 8424|回复: 18

在CASS中 图面拾取高程点 求累计值 和平均值(原)

[复制链接]
发表于 2014-6-19 19:10:14 | 显示全部楼层 |阅读模式
本帖最后由 skg123 于 2014-6-19 22:31 编辑

本小程序 用于 计算 图面局部高程点平均,
1、选中后会 亮显高程,可以分辨是否已经选择过,避免重复选择,退出后 命令行输入 regen  之后亮显消失;
2、程序的漏洞是 空选 就出现错误,将退出;
(defun:pjz()
(setvar "cmdecho" 0) ;指令执行过程不响应
(setq i 0)
(setq zh 0)
(while
(setq en (entsel "\n选择高程点:"))
(setvar "cmdecho" 0)
(redraw (car en) 3);亮显高程点
(setq en_data (entget (car en))) ;取得元体资料列表
(setq pt (cdr (assoc 10 en_data))) ;求得高程点坐标pt

(setq pz (nth 2 pt));提取测量坐标洗z值
(setq pz1 (rtos (nth 2 pt)));提取测量坐标系Z值
(setq i (+ i 1))
(setq zh (+ zh pz))
(setq pj (/ zh i))

(setq sn (rtos i 2 0))
(setq zh1 (rtos zh 2 3))
(setq pj1 (rtos pj 2 3))

(setq pdz (strcat "共拾取" sn "点,高程累计值:" zh1 ",高程平均值: "pj1)) ;输出为数据格式(高程,累计和,平均值)
(princ pdz)

)
)


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
 楼主| 发表于 2014-6-19 22:28:19 | 显示全部楼层
修改后可以框选了,,借鉴了http://bbs.mjtd.com/thread-85363-1-1.html 中 的代码
  1. (defun c:pjz(/ p1 p2 ss sn si i x y e fw)
  2. (prompt "**从CASS中提取高程点计算高程累计和 和平均数,请在命令行输入 pjz **")
  3. (setq sn 0)
  4. (setq zh 0)
  5.   (setq ss(ssget  (list(cons 8 "GCD")(cons 2 "GC200"))))
  6. (if ss(progn
  7.   (setq fw(open "d:\\ex.dat" "w"))
  8.   (setq sn(sslength ss))
  9.   (setq i 0)
  10.   (while(< i sn)
  11.    (setq si(ssname ss i))
  12. ;=====提取坐标=================
  13.    (setq pt(cdr(assoc 10 (entget si))))
  14.    (setq x(rtos(car pt)2 3) y(rtos(cadr pt)2 3) e(rtos(caddr pt)2 3))
  15.    (princ(strcat (itoa (1+ i))",GCD," x "," y "," e "\n") fw)
  16.    (setq i(1+ i))
  17. ;=====计算平均值==============
  18. (setq pz (nth 2 pt));提取测量坐标洗z值
  19. (setq pz1 (rtos (nth 2 pt)));提取测量坐标系Z值
  20. (setq zh (+ zh pz))
  21. (setq pj (/ zh i))
  22. (setq si (rtos i 2 0))
  23. (setq zh1 (rtos zh 2 3))
  24. (setq pj1 (rtos pj 2 3))
  25. (setq pdz (strcat "本次共拾取" si "点,高程累计值:" zh1 ",高程平均值: "pj1 ",坐标文件在D盘;")) ;输出为数据格式(高程,累计和,平均值)

  26.   )
  27.   (close fw)

  28. ))
  29. (princ pdz)
  30. )

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
回复 支持 1 反对 0

使用道具 举报

发表于 2022-6-8 07:34:07 来自手机 | 显示全部楼层
感谢楼主无私奉献,受益匪浅!
发表于 2022-6-9 08:48:41 | 显示全部楼层
谢谢谢谢谢谢学习
发表于 2014-6-19 19:15:53 | 显示全部楼层
支持大师的源代码   学习了  测量界的大师啊
发表于 2014-6-20 08:10:19 | 显示全部楼层
不错的东西!!!!
发表于 2014-6-20 11:40:45 | 显示全部楼层
  1. (defun c:tt( / i L lst maxx maxy maxZ minx miny minZ pl pjZ sel ss x)
  2.   (vl-load-com)
  3.   (if (and (setq sel (entsel "\n请选择封闭范围线:"))
  4.            (eq (cdr (assoc 0 (entget (car sel)))) "LWPOLYLINE")
  5.            (vlax-curve-isClosed (vlax-ename->vla-object (car sel)))
  6.       )
  7.     (progn
  8.        (setq lst  (vl-remove-if 'not (mapcar '(lambda (x) (if (= (car x) 10) (cdr x))) (entget (car sel)))))
  9.        (setq minX (apply 'min (mapcar '(lambda (x) (car x)) lst))
  10.              minY (apply 'min (mapcar '(lambda (x) (cadr x)) lst))
  11.              maxX (apply 'max (mapcar '(lambda (x) (car x)) lst))
  12.              maxY (apply 'max (mapcar '(lambda (x) (cadr x)) lst))
  13.        )
  14.        (command "zoom" (list minX minY) (list maxX maxY))
  15.        (setq ss (ssget "_CP" lst '((0 . "INSERT") (2 . "GC200"))))
  16.        (if (and ss (> (sslength ss) 1))
  17.          (progn
  18.            (setq i 0 L (sslength ss))
  19.            (repeat L
  20.               (setq pl (cons (caddr (cdr (assoc 10 (entget (ssname ss i))))) pl)
  21.                     i  (1+ i)
  22.               )
  23.            )
  24.            (setq minZ (apply 'min pl)
  25.                  maxZ (apply 'max pl)
  26.                  pjZ  (/ (apply '+ pl) i)
  27.            )
  28.            (alert
  29.              (strcat
  30.                 "最大的高程值为:" (rtos maxZ 2 3)
  31.                 "\n"
  32.                 "最小的高程值为:" (rtos minZ 2 3)
  33.                 "\n"
  34.                 "平均的高程值为:" (rtos pjZ 2 3)
  35.                 "\n"
  36.                 "高程值的个数为:" (rtos i 2 0)
  37.              )
  38.            )
  39.          )
  40.          (alert "选择的区域范围无高程点!")
  41.        )
  42.     )
  43.     (alert "所选的封闭线不是经量多义线!或 不闭合!")
  44.   )
  45.   (princ)
  46. )
贴个类似的
 楼主| 发表于 2014-6-20 23:26:36 | 显示全部楼层
gzxl 发表于 2014-6-20 11:40
贴个类似的

筛选出最大值和最小值,可以借鉴
发表于 2014-7-8 06:32:19 | 显示全部楼层
很好!可用。顶~~~
发表于 2014-9-7 18:13:07 | 显示全部楼层
框选的不能用
发表于 2014-9-9 11:30:36 | 显示全部楼层
强烈支持,测绘界大师!!!
发表于 2014-11-8 23:12:22 | 显示全部楼层
很好 框选功能很实用cass下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-5 21:41 , Processed in 0.210130 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表