免费视频|新人指南|投诉删帖|广告合作|地信网APP下载

查看: 28737|回复: 52
收起左侧

[其他] 如何在别人提供的cad横断面设计图中提取横断面地面线数据

  [复制链接]

7

主题

3621

铜板

26

好友

助理工程师

Rank: 5Rank: 5

积分
304
发表于 2019-2-21 13:53 | 显示全部楼层 |阅读模式
本帖最后由 dx002386 于 2021-6-20 17:38 编辑

如何在别人提供的cad横断面设计图中提取横断面地面线数据。
比如别人给我的是cad版本的1:200的横断面设计图,该如何来提取这个设计图中每个桩号的横断面地面线数据

已经实现批量提取,输出格式为
1、纬地、EICAD使用的抬杆法hdm和dmx数据,
2、输出cass横断面数据格式文件,
3、偏距+高程数据格式,
4、在图形中标注折点的偏距和高程,可设置标注字体大小。
批量提取,速度快。

从断面图中提取地面线数据Hd_Hs版2021.6.6.zip (4.32 MB, 下载次数: 1942)

评分

参与人数 2铜板 +4 收起 理由
LPS + 2
ggaxx + 2

查看全部评分

7

主题

3621

铜板

26

好友

助理工程师

Rank: 5Rank: 5

积分
304
 楼主| 发表于 2019-2-21 21:19 | 显示全部楼层

怎么实现啊??  请教
回复 支持 1 反对 0

使用道具 举报

0

主题

223

铜板

1

好友

实习生

Rank: 1

积分
3
发表于 2019-4-19 22:29 | 显示全部楼层
animal513 发表于 2019-2-25 17:05
打个小广告,有需要二次开发的朋友可以加我QQ3332900349

animal513大神,求横断面反推平距高差的lisp
回复 支持 1 反对 0

使用道具 举报

0

主题

2万

铜板

3

好友

地信院士

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

积分
2086
发表于 2019-2-21 17:51 | 显示全部楼层
高手啊高手,学习学习。
回复 支持 反对

使用道具 举报

2

主题

1829

铜板

1

好友

助理工程师

Rank: 5Rank: 5

积分
111
发表于 2019-2-21 20:15 手机频道 | 显示全部楼层
这个不难实现
回复 支持 反对

使用道具 举报

2

主题

1829

铜板

1

好友

助理工程师

Rank: 5Rank: 5

积分
111
发表于 2019-2-22 08:10 | 显示全部楼层
(defun c:test()
(setq desktop (strcat (lt:sys-deskTopDir) "\\坐标导出.txt"))
(setq ff (open desktop "w"))
  (setq b (getreal "\n请输入纵向比例尺.<200>:"))
  (setq c (getreal "\n请输入横向比例尺.<200>:"))
  (if (not b) (setq b 0.2) (setq b (/ b 1000)))
  (if (not c) (setq c 0.2) (setq c (/ c 1000)))
(while
(SETQ ENT1 (ENTSEL "\n选择桩号 :"))
      (IF (= ENT1 NIL)(PRINC "\n无效选择")
          (PROGN
          (SETQ ENT1 (ENTGET (CAR ENT1)))
          (IF (/= (CDR (ASSOC 0 ENT1)) "TEXT")
              (PRINC "\n选择对象非文本对象")
              (PROGN
                (setq ZZHH (cdr (assoc 1 ent1)))
              )
           )
           )
      )
(princ "选择基准位置:")
(setq point (getpoint) pty (cadr point))
(SETQ ENT (ENTSEL "\n选择基准位置参照高程对象 :"))
      (IF (= ENT NIL)(PRINC "\n无效选择")
          (PROGN
          (SETQ ENT (ENTGET (CAR ENT)))
          (IF (/= (CDR (ASSOC 0 ENT)) "TEXT")
              (PRINC "\n选择对象非文本对象")
              (PROGN
                (setq GCZ (atof (cdr (assoc 1 ent))))
              )
           )
           )
      )
(princ "选择提取位置")
(princ ZZHH ff)
(princ "\n" ff)
(while
(setq point2 (getpoint))
(setq y2 (cadr point2))
(setq pianju (- (car point2) (car point)))
(setq x0 (car point) y0 (cadr point))
  (setq pianju (* pianju c))
  (setq d (* (- y2 pty) b) yz (rtos (+ GCZ d) 2 2))

  (princ yz ff)
(princ " " ff)
  (princ pianju ff)
(princ "\n" ff)
(princ)
)
)
(close ff)
)

(defun lt:sys-deskTopDir ()
(vlax-invoke-method
(vlax-get-property (vlax-create-object "wscript.shell") 'SpecialFolders)
'Item
"desktop"
)
)

回复 支持 反对

使用道具 举报

0

主题

677

铜板

1

好友

技术员

Rank: 3Rank: 3

积分
56
发表于 2019-2-22 08:28 | 显示全部楼层
我觉得1)把断面数据变成相对基点的,起点距,高程数据。
2)根据基点坐标,和断面线的方位角,求得每个点的 x,y,z.完毕。
回复 支持 反对

使用道具 举报

0

主题

1676

铜板

1

好友

助理工程师

Rank: 5Rank: 5

积分
283

爱心勋章组织勋章地信元老灌水勋章荣誉会员勋章活跃勋章地信专家组贡献勋章名人堂勋章成就学员勋章

发表于 2019-2-22 10:02 | 显示全部楼层
代码好多啊!
回复 支持 反对

使用道具 举报

7

主题

3621

铜板

26

好友

助理工程师

Rank: 5Rank: 5

积分
304
 楼主| 发表于 2019-2-22 12:54 | 显示全部楼层
本帖最后由 dx002386 于 2020-7-19 23:04 编辑
animal513 发表于 2019-2-22 08:10
(defun c:test()
(setq desktop (strcat (lt:sys-deskTopDir) "\\坐标导出.txt"))
(setq ff (open deskto ...

大师   批量处理的能实现么
输出 txt 就行

提取横地线.zip

1.11 MB, 下载次数: 1946

回复 支持 反对

使用道具 举报

2

主题

1829

铜板

1

好友

助理工程师

Rank: 5Rank: 5

积分
111
发表于 2019-2-23 11:37 | 显示全部楼层
dx002386 发表于 2019-2-22 12:54
大师 这样的  批量处理的能实现么
输出 txt 就行

你不是有这个工具了吗?这个可以实现。有空我编个出来看看。
回复 支持 反对

使用道具 举报

7

主题

3621

铜板

26

好友

助理工程师

Rank: 5Rank: 5

积分
304
 楼主| 发表于 2019-2-23 14:13 | 显示全部楼层
animal513 发表于 2019-2-23 11:37
你不是有这个工具了吗?这个可以实现。有空我编个出来看看。

横断面横地线.pdf.zip (696.95 KB, 下载次数: 1439)
回复 支持 反对

使用道具 举报

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

本版积分规则

在线客服
快速回复 返回顶部 返回列表