找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1082|回复: 5

[已解决] 【已解决】高程点高程累加 哪里出错了?

[复制链接]

已领礼包: 61个

财富等级: 招财进宝

发表于 2019-2-13 16:18:07 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
本帖最后由 arker 于 2019-2-17 11:23 编辑

(defun c:gcpj(/ n ssn ssdata enl old_zz z gczz gcpjz ss os)
  (setvar "cmdecho" 0)
(setq os (getvar "osmode"))
(setvar "osmode" 0) ;关闭捕捉命令
  (setq ss (ssget '((0 . "POINT"))));获取实体选择集ss
(setq n 0);定义n,从0开始
(setq gczz 0.0);定义高程总值 gczz

(repeat (sslength ss)   ;重复 (ss的单元个数) 次
  (setq n (+ n 1))
(setq ssn (ssname ss n)) ;提取元素的像素名称
(setq ssdata (entget ssn));提取元素的数据串行
(setq enl (assoc 10 ssdata));提取三维坐标
(setq old_zz (cdr enl)) ;提取坐标值
(setq z (caddr old_zz));提取Z值
  (setq gczz (+ gczz z));累加Z值
);repeat 结束
(setq gcpjz (/ (/ gczz (sslength ss)) 1)) ;高程平均值
(princ  "统计计高程点对象为:")
(princ  (sslength ss))
(princ  "平均高程值为:")
(princ  gcpjz)

(setvar "osmode" os) ;恢复捕捉设置
  (prin1)
  )
;程序说明:
;1、该程序为计算高程平均值。
;2、本次统计地形图高程点自带z坐标,即高程。
;3、已设置捕捉打开关闭。
;4、加载时 从cad 工具--加载应用程序--找到本程序并加载。
;5、输入gcpj命令启动程序。
;6、 Edited by Kar 2019.02.13。

检查对照大神们的程序检查了一天了,找不出原因,恳请大神们指导。  手上有地形图,地形图上有很多高程点均匀布置,所以想用高程点检查一下平均高程。(图上高程数字与高程点不是很对应,感觉还是高程点更原始更准确些)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 61个

财富等级: 招财进宝

 楼主| 发表于 2019-2-13 16:19:21 | 显示全部楼层
对了 提示错误是这样的:
; 错误: 参数类型错误: numberp: nil   
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 5295个

财富等级: 富甲天下

发表于 2019-2-14 00:16:25 | 显示全部楼层
(setq gczz (+ gczz z));累加Z值
里面的z转化为数值试试。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 3912个

财富等级: 富可敌国

发表于 2019-2-14 08:15:46 | 显示全部楼层
;|
;以下这些行最左、最右的括号全非英文括号
(setq n 0);定义n,从0开始
(setq gczz 0.0);定义高程总值 gczz

(setq ssn (ssname ss n)) ;提取元素的像素名称
(setq ssdata (entget ssn));提取元素的数据串行
(setq enl (assoc 10 ssdata));提取三维坐标
(setq old_zz (cdr enl)) ;提取坐标值
(setq z (caddr old_zz));提取Z值
(setq gczz (+ gczz z));累加Z值
;输入时应注意中英文的切换
|;

(defun c:gcpj(/ n ssn ssdata enl old_zz z gczz gcpjz ss os)
    (setvar "cmdecho" 0)
    (setq os (getvar "osmode"))
    (setvar "osmode" 0) ;关闭捕捉命令
    (setq ss (ssget '((0 . "POINT"))));获取实体选择集ss
    (setq n 0) ;定义n,从0开始
    (setq gczz 0.0) ;定义高程总值 gczz
    (setq m (sslength ss))   
    (repeat m  ;重复m次
        (setq ssn (ssname ss n)) ;提取元素的像素名称
        (setq ssdata (entget ssn));提取元素的数据串行
        (setq old_zz (cdr (assoc 10 ssdata)));提取三维坐标
        (setq z (last old_zz)) ;提取Z值
        (setq gczz (+ gczz z)) ;累加Z值
        (setq n (+ n 1))
    );repeat 结束
    (setq gcpjz (/ gczz m)) ;高程平均值
    (princ "统计计高程点对象为:")
    (princ  m)
    (princ  "平均高程值为:")
    (princ  gcpjz)
    (setvar "osmode" os) ;恢复捕捉设置
    (princ)
  )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 6434个

财富等级: 富甲天下

发表于 2019-2-14 08:19:55 | 显示全部楼层
问题在哪里?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 61个

财富等级: 招财进宝

 楼主| 发表于 2019-2-14 09:27:01 | 显示全部楼层
感谢,确实是括号不对,刚刚试了六万多个点的,都可以了。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-11-14 20:30 , Processed in 0.325042 second(s), 37 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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