明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: gzxl

高程点内插程序(已更新)

    [复制链接]
发表于 2014-5-13 21:38:41 | 显示全部楼层
GZXL优化一下下吧
发表于 2014-5-14 19:09:37 | 显示全部楼层
看来测量的都需要这个好东东,但又纠结于一些地方,看了下大概反应最多的是等高线间插入点的时候的速度问题,觉得主要是楼主为了保证所求高程值的准确性组成了三角网数据,而这个组网过程及原始高程数据的取得可能会因为等高线的拟合问题导致数据量巨大,所以速度上不去
个人觉得如果能根据当前视图范围内要求高程的位置来确定一个范围来构建三角网,这样需要处理的数据就不会很多,虽然会随着插入高程的位置变化需要重新构建三角网,但整体速度差不多。
另外,是否可以考虑适当降低准确性(在等高线间插入高程点时,能确保不出错,大致差不多就行了)
高程点和等高线不要完全分开,有的地方不需要绘制等高线只有高程点,这就会有个结合部
是后对楼主的构建三角网相当感兴趣,学习了,或者说直接拿去用了,谢谢楼主
回复 支持 1 反对 0

使用道具 举报

发表于 2014-5-14 20:28:00 | 显示全部楼层
addgcsjw生成三角网点表?参数看不懂啊,哥
发表于 2014-5-15 09:51:15 | 显示全部楼层
根据图面高程内插的不足之处,黄色点为错误的

本帖子中包含更多资源

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

x

点评

鱼与熊掌不可兼得吖,兄弟  发表于 2014-5-15 12:36
发表于 2014-5-15 14:55:33 | 显示全部楼层
树櫴希德 发表于 2014-5-15 09:51
根据图面高程内插的不足之处,黄色点为错误的

大哥只需把程序稍稍修改,增加一个根据图面三角网(POLYLINE-3DPOLY)加密高程就行了
发表于 2014-5-15 17:21:58 | 显示全部楼层
树櫴希德 发表于 2014-5-15 14:55
大哥只需把程序稍稍修改,增加一个根据图面三角网(POLYLINE-3DPOLY)加密高程就行了

;;;;;;;;;三维多段线输出到点表
(defun c:t6 (/ fff ssa cm en ii no wjm)
  (gc)
    (setq cm (getvar "cmdecho"))
    (setvar "cmdecho" 0)
    ;(setq wjm (getfiled "请指定要保存的坐标文件" "e:\\" "txt" 1))
       ;(setq fff (open wjm "w"))
       (setq ssa (ssget '((0 . "POLYLINE"))))
                (setq ii   0
                      no  0
                  )
                  (repeat (sslength ssa)
                       (setq en (ssname ssa ii)
                            ptb (vxs en)
                            pzx (append pzx (list ptb))
                             ii  (1+ ii)               )
                   ; (setq pzx (list (car pt) (cadr pt) (caddr pt)))

                  )
  ;(write-line (strcat pzx) fff)
                 ; (close fff)
                  ;(princ (strcat "\n坐标已存入\"" wjm "\"中"))

    (setvar "cmdecho" cm)
    (princ)
)
;[功能] pline,lwpline点坐标表  By 无痕;;示例(vxs (car (entsel))),返回三维点坐标
(defun vxs (e / i v lst)
  (setq i 0)
  (while
    (setq v (vlax-curve-getpointatparam e (setq i (1+ i))))
     (setq lst (cons v lst))
  )
  (reverse lst)


)


;(setq entall (mapcar '(lambda (x) (+ 0 x)) sjwlst))

;!sjwlst (((49996.2 17703.5 6.0) (49988.6 17712.0 52.0) (49977.3 17699.8
;2.0)) ((49988.6 17712.0 52.0) (49973.5 17711.0 52.0) (49977.3 17699.8 2.0)))
;(setq entall (mapcar '(lambda (x y z) (strcat x "\t" y "\t" z)) ent1 ent2 ent3))

发表于 2014-5-15 17:23:02 | 显示全部楼层
!pzx
(((49919.3 17547.4 7.519) (49914.9 17556.5 7.432) (49923.8 17562.3 6.899))
((49923.8 17562.3 6.899) (49919.3 17547.4 7.519) (49929.5 17550.2 6.618))
((49929.5 17550.2 6.618) (49923.8 17562.3 6.899) (49933.1 17566.9 5.527)))

本帖子中包含更多资源

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

x
发表于 2014-5-26 10:15:16 | 显示全部楼层
此帖不错,最近正在搞这个,希望能交流
发表于 2014-5-27 22:02:03 | 显示全部楼层
构三角网算法,一点注释没有啊,想转成其它语言(VB),难啊
发表于 2014-8-29 11:36:31 | 显示全部楼层
很给力!很需要!谢谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-12-23 04:09 , Processed in 0.138842 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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