明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 7589|回复: 28

生成重合或最近点高差坐标文件(红色-绿色)

[复制链接]
发表于 2014-5-5 20:56:59 | 显示全部楼层 |阅读模式
如何生成重合点高差坐标文件(红色-绿色),或者转换成增强属性快,如图:

本帖子中包含更多资源

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

x
 楼主| 发表于 2023-8-20 16:13:33 | 显示全部楼层
721.163,,221379.262,53977.810,5.529,5.220,0.309
721.164,,221374.790,53987.740,5.629,5.220,0.409
721.165,,221367.996,53989.463,5.750,5.220,0.530
721.166,,221365.112,53994.742,5.664,5.220,0.444
721.167,,221360.353,53989.567,5.779,5.220,0.559
721.168,,221357.032,53993.537,5.679,5.220,0.459
721.169,,221352.605,53991.569,5.558,5.220,0.338
721.170,,221358.207,53983.844,5.820,5.220,0.600
721.171,,221350.822,53980.183,5.679,5.220,0.459
721.172,,221351.556,53971.801,5.847,5.220,0.627
721.173,,221346.575,53964.486,5.666,5.220,0.446
721.174,,221337.767,53961.983,5.732,5.220,0.512
721.175,,221337.048,53961.640,5.752,5.220,0.532
721.176,,221330.348,53965.111,5.680,5.220,0.460
721.177,,221334.548,53966.549,5.707,5.220,0.487
721.178,,221347.084,53961.034,5.570,5.220,0.350
721.179,,221351.271,53955.535,5.646,5.220,0.426
721.180,,221358.610,53951.355,5.503,5.220,0.283
721.181,,221361.237,53950.476,5.671,5.220,0.451
  1. (defun String:Split (str delimiter / post strlst stl)
  2.     (if        str
  3.       (progn
  4.         (setq stl (strlen delimiter))
  5.         (while (vl-string-search delimiter str)
  6.           (setq        post   (vl-string-search delimiter str)
  7.                 strlst (cons (substr str 1 post) strlst)
  8.                 str    (substr str (+ 1 post stl))
  9.           )
  10.         )
  11.         (reverse (vl-remove "" (cons str strlst)))
  12.       )
  13.     )
  14.   )
  15. ;;;;;;;;;

  16. ;;by Gu_xl
  17. (defun gxl-cs:gcd (inspt scale / pt blkdef obj height height1 height2);展高程点函数(inspt(x y)h1 h2)),scale:缩放比例)
  18.   (setvar "CMDECHO" 0)
  19.   
  20.   (regapp "SOUTH")
  21.   ;;;检查字体 "HZ" 是否存在
  22.   (if(not(tblobjname "style" "HZ"))(command "style" "HZ" "rs.shx,gbcbig.shx" 0 1 0 "" "" ""))
  23.   ;;;检查是否存在高程点图块定义
  24.   (if(not(tblobjname "block" "GC2000"))
  25.     (progn
  26.       (setq obj
  27.         (vla-AddPolyline
  28.            (vla-Add(vla-get-Blocks(vla-get-ActiveDocument(vlax-get-acad-object)))(vlax-3D-point '(0 0 0)) "GC2000")
  29.    (vlax-make-variant(vlax-safearray-fill(vlax-make-safearray vlax-vbdouble (cons 0 5))'(-0.2 0 0 0.2 0 0)))))
  30.       (vla-SetBulge obj 0 1)(vla-SetBulge obj 1 1)
  31.       (vla-put-Closed obj :vlax-true)
  32.       (vla-put-ConstantWidth obj 0.4)))
  33.   (setq height (rtos(nth 2 inspt)2 3)
  34.         height1 (rtos(nth 3 inspt)2 3)
  35.    height2  (rtos(-(nth 2 inspt)(nth 3 inspt))2 3)

  36.     )
  37.   ;;;插入块
  38.   (entmake (list
  39.              '(0 . "INSERT")
  40.        '(2 . "GC2000")
  41.              '(100 . "AcDbEntity")
  42.              '(100 . "AcDbBlockReference")
  43.              '(66 . 1);;;属性跟随标志,1跟随,0不跟随
  44.               
  45.               (cons 10(setq pt(list(car inspt)(cadr inspt) )))
  46.               (cons 41 scale)
  47.               (cons 42 scale)
  48.               (cons 43 scale)
  49.               (list -3 '("SOUTH" (1000 . "202101")))
  50.        )
  51.      )
  52.   ;;;插入属性
  53.   (entmake (list
  54.              '(0 . "ATTRIB")
  55.              '(100 . "AcDbEntity")
  56.              '(100 . "AcDbText")
  57.       (cons 62 1)
  58.               (cons 10 (setq pt(polar pt 0(* 1.2 scale))))
  59.               (cons 40 (* 2.0 scale))
  60.               (cons 50 0)
  61.               (cons 41 0.8)
  62.               (cons 51 0)
  63.               (cons 1 height )
  64.               (cons 7 "HZ")
  65.               (cons 72 0)
  66.               (cons 11 pt)
  67.               '(100 . "AcDbAttribute")
  68.               (cons 2 "height")
  69.               (cons 70  0)
  70.               (cons 74 1)
  71.            ))
  72.   ;;;;;;;;;;;;;;;;;;;;;;;;;
  73.   (entmake (list
  74.              '(0 . "ATTRIB")
  75.              '(100 . "AcDbEntity")
  76.              '(100 . "AcDbText")
  77.       (cons 62 2)
  78.               (cons 10 pt)
  79.               (cons 40 (* 2.0 scale))
  80.               (cons 50 0)
  81.               (cons 41 0.8)
  82.               (cons 51 0)
  83.               (cons 1 height1)
  84.               (cons 7 "HZ")
  85.               (cons 72 0)
  86.               (cons 11 pt)
  87.               '(100 . "AcDbAttribute")
  88.               (cons 2 "height1")
  89.               (cons 70  0)
  90.               (cons 74 3)
  91.            ))
  92.   ;;;;;;;;;;;;;;;;;;;;;;;;;
  93.   (entmake (list
  94.              '(0 . "ATTRIB")
  95.              '(100 . "AcDbEntity")
  96.              '(100 . "AcDbText")
  97.      (cons 62 3)
  98.               (cons 10 (setq pt(polar  pt pi(* 1.5 scale))))
  99.               (cons 40 (* 2.0 scale))
  100.               (cons 50 0)
  101.               (cons 41 0.8)
  102.               (cons 51 0)
  103.               (cons 1 height2)
  104.               (cons 7 "HZ")
  105.               (cons 72 2)
  106.      ; (cons 73 2)
  107.               (cons 11 pt)
  108.               '(100 . "AcDbAttribute")
  109.               (cons 2 "height2")
  110.               (cons 70  0)
  111.               (cons 74 2)
  112.            ))
  113.    ;;;结束标志
  114.    (entmake '((0 . "SEQEND")))
  115.    (princ)
  116. )



  117. ;;;;;;;
  118. (defun c:zgcd ( /   ) ;fn f k ll fff x
  119.   (vl-load-com)
  120.   (command "layer" "m" "jcGCD" "c" "1" "" "L" "CONTINUOUS" ""  "")
  121. (setq fn (getfiled "Select Log file请打开数据文件:格式为:经度,纬度" "" "txt" 8))

  122. (setq f (open (findfile fn) "r"))

  123. (while (setq k (read-line f))
  124.     (setq ll (cons k  ll ) )
  125.   )
  126. (close f)
  127. ;(String:Split (car ll) ",")
  128. (foreach x ll
  129.   (setq fff   (String:Split x ","))

  130. (gxl-cs:gcd (list (atof(nth 2 fff)) (atof(nth 1 fff))  (atof(nth 3 fff)) (atof(nth 4 fff))  ) 0.5 )

  131. )
  132. (princ )
  133. )


  134. ;(gxl-cs:gcd '(100 200 30 50)1.0)


发表于 2018-11-14 15:37:40 | 显示全部楼层
树櫴希德 发表于 2014-5-7 20:36
生成三角网处理坡坎方面,网中每一个三角形只能是坡顶线上相邻两点连接坡脚线上对应一点,或者是坡脚线相邻 ...

我觉得算方量最精确的算法是三角网。但用三角网直接两期算我觉得还是会增大误差。我的理论就是用两期的三角网同时算到一个平面。然后计算差值。这样就不存在你们说的双线性差值带来的烦恼了。   一个非测绘专业的十年测量员的理解,有可能有误清不要见笑。
 楼主| 发表于 2014-5-5 21:04:33 | 显示全部楼层
本帖最后由 树櫴希德 于 2014-5-5 21:06 编辑

目的是想改进CASS三角网两期间土方计算显示结果,如图:

本帖子中包含更多资源

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

x
 楼主| 发表于 2014-5-5 21:10:37 | 显示全部楼层
黄色为原地面标高,青色为完成面标高,红框内粉红色为填挖高度,三角形编号,面积,单个三角形方量已经搞定

本帖子中包含更多资源

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

x
 楼主| 发表于 2014-5-5 21:15:20 | 显示全部楼层
用蓝图老师的面积标注程序批量标注三角形面积

本帖子中包含更多资源

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

x
发表于 2014-5-5 22:02:05 | 显示全部楼层
其实相对于你这个问题我更好奇为什么会有两个点位一样而高程不一样的点?
挖填前后测的?那怎么保证它的坐标在同一处的?打了桩,还是第二次对第一次测的坐标进行放样?
发表于 2014-5-5 22:02:40 | 显示全部楼层
闭合多边形,有什么要求啊,根本用不了啊
发表于 2014-5-5 22:04:11 | 显示全部楼层
一般情况只会关心挖填前后的总方量变化,有必要关心每一个三角形的变化么?这是什么行业要求这么严格的?
 楼主| 发表于 2014-5-5 22:27:02 | 显示全部楼层
那是我根据CASS生成的DTMTF.LOG文件提取的,甲方需要查看每个节点填挖高度,高程等要素。CASS这方面还有待改进
 楼主| 发表于 2014-5-5 22:29:24 | 显示全部楼层
上传一个增强属性快

本帖子中包含更多资源

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

x
 楼主| 发表于 2014-5-5 22:30:41 | 显示全部楼层
用INSERT插入
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-12-22 20:07 , Processed in 0.329043 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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