搜索

CAD中高程点提取横断面数据的方法

发布网友 发布时间:2022-04-20 17:13

我来回答

5个回答

热心网友 时间:2023-09-25 15:59

1、首先需要打开软件。

2、接下来开始点击上方栏工具。

3、然后接着点击数据提取。

4、在打开的页面中勾选CREAT A NEW DATA。

5、然后在弹出的页面中接着点击NEXT。

6、文件类型为DXE,最后保存即可。

热心网友 时间:2023-09-25 16:00

方法1:结合EXCEL,先用ID命令依次点取各点,之后从命令行选择X,Y,Z坐标数据,导入用EXCEL中计算。

方法2:用lisp编程。大概写了下,边桩数量7个,前4个一组,后3个一组,按你给的格式定的,先选取桩号,然后是中桩,再是边桩,然后是下一组桩号,中桩,边桩,以此类推,源代码:



;;从这里开始往下复制

(defun getinput()

  (setqss1 (ssget '((0 . "TEXT,MTEXT")))

tt  (entget (ssname ss1 0))

ttt (cdr (assoc 1 tt))

aa  (getpoint "\n点取中桩点:")

ax  (car aa)

ay  (cadr aa)

az  (caddr aa)

bb  (getpoint "\n点取第一个边桩点:")

bx  (car bb)

by  (cadr bb)

bz  (caddr bb)

bzz (abs (- bz az))

bl  (sqrt (- (expt (distance aa bb) 2) (expt bzz 2)))

cc  (getpoint "\n点取第二个边桩点:")

cx  (car cc)

cy  (cadr cc)

cz  (caddr cc)

czz (abs (- cz az))

cl  (sqrt (- (expt (distance aa cc) 2) (expt czz 2)))

dd  (getpoint "\n点取第三个边桩点:")

dx  (car dd)

dy  (cadr dd)

dz  (caddr dd)

dzz (abs (- dz az))

dl  (sqrt (- (expt (distance aa dd) 2) (expt dzz 2)))

ee  (getpoint "\n点取边第四个桩点:")

ex  (car ee)

ey  (cadr ee)

ez  (caddr ee)

ezz (abs (- ez az))

el  (sqrt (- (expt (distance aa ee) 2) (expt ezz 2)))

ff  (getpoint "\n点取另一侧第一个边桩点:")

fx  (car ff)

fy  (cadr ff)

fz  (caddr ff)

fzz (abs (- fz az))

fl  (sqrt (- (expt (distance aa ff) 2) (expt fzz 2)))

gg  (getpoint "\n点取另一侧第二个边桩点:")

gx  (car gg)

gy  (cadr gg)

gz  (caddr gg)

gzz (abs (- gz az))

gl  (sqrt (- (expt (distance aa gg) 2) (expt gzz 2)))

hh  (getpoint "\n点取另一侧第三个边桩点:\n")

hx  (car hh)

hy  (cadr hh)

hz  (caddr hh)

hzz (abs (- hz az))

hl  (sqrt (- (expt (distance aa hh) 2) (expt hzz 2)))

  )

  (list

    (cons 10 bl)

    (cons 11 bzz)

    (cons 12 cl)

    (cons 13 czz)

    (cons 14 dl)

    (cons 15 dzz)

    (cons 16 el)

    (cons 17 ezz)

    (cons 18 fl)

    (cons 19 fzz)

    (cons 20 gl)

    (cons 21 gzz)

    (cons 22 hl)

    (cons 23 hzz)

    (cons 24 ttt)

  )

)



(defun c:hdm ()

  (setqnum  0

ctim (menucmd "M=$(edtime,$(getvar,date),H:MM:MM)")

  )

  (write-file

    "d:\\横断面数据.txt"

    "\n*********************************\n"

  )

  (write-file "d:\\横断面数据.txt" "*****")

  (write-file "d:\\横断面数据.txt" ctim)

  (write-file "d:\\横断面数据.txt" "*****\n")

  (write-file

    "d:\\横断面数据.txt"

    "*********************************\n"

  )

  (while (>= num 0)

    (setq data (getinput)

 bl   (cdr (assoc 10 data))

 bzz  (cdr (assoc 11 data))

 cl   (cdr (assoc 12 data))

 czz  (cdr (assoc 13 data))

 dl   (cdr (assoc 14 data))

 dzz  (cdr (assoc 15 data))

 el   (cdr (assoc 16 data))

 ezz  (cdr (assoc 17 data))

 fl   (cdr (assoc 18 data))

 fzz  (cdr (assoc 19 data))

 gl   (cdr (assoc 20 data))

 gzz  (cdr (assoc 21 data))

 hl   (cdr (assoc 22 data))

 hzz  (cdr (assoc 23 data))

 ttt  (cdr (assoc 24 data))

    )

    (if(/= ttt "")

      (progn

(write-file "d:\\横断面数据.txt" ttt)

(write-file "d:\\横断面数据.txt" "\n")

      )

    )

    (if(not ttt)

      (

       (write-file "d:\\横断面数据.txt" "桩号缺失!\n")

      )

    )

    (setq num (+ num 1))

    (write-file "d:\\横断面数据.txt" (rtos num 2 0))

    (write-file "d:\\横断面数据.txt" "      ")

    (write-file "d:\\横断面数据.txt" (rtos bl 2 4))

    (write-file "d:\\横断面数据.txt" "   ")

    (write-file "d:\\横断面数据.txt" (rtos bzz 2 4))

    (write-file "d:\\横断面数据.txt" "      ")

    (write-file "d:\\横断面数据.txt" (rtos cl 2 4))

    (write-file "d:\\横断面数据.txt" "   ")

    (write-file "d:\\横断面数据.txt" (rtos czz 2 4))

    (write-file "d:\\横断面数据.txt" "      ")

    (write-file "d:\\横断面数据.txt" (rtos dl 2 4))

    (write-file "d:\\横断面数据.txt" "   ")

    (write-file "d:\\横断面数据.txt" (rtos dzz 2 4))

    (write-file "d:\\横断面数据.txt" "      ")

    (write-file "d:\\横断面数据.txt" (rtos el 2 4))

    (write-file "d:\\横断面数据.txt" "   ")

    (write-file "d:\\横断面数据.txt" (rtos ezz 2 4))

    (write-file "d:\\横断面数据.txt" "\n")

    (setq num (+ num 1))

    (write-file "d:\\横断面数据.txt" (rtos num 2 0))

    (write-file "d:\\横断面数据.txt" "      ")

    (write-file "d:\\横断面数据.txt" (rtos fl 2 4))

    (write-file "d:\\横断面数据.txt" "   ")

    (write-file "d:\\横断面数据.txt" (rtos fzz 2 4))

    (write-file "d:\\横断面数据.txt" "      ")

    (write-file "d:\\横断面数据.txt" (rtos gl 2 4))

    (write-file "d:\\横断面数据.txt" "   ")

    (write-file "d:\\横断面数据.txt" (rtos gzz 2 4))

    (write-file "d:\\横断面数据.txt" "      ")

    (write-file "d:\\横断面数据.txt" (rtos hl 2 4))

    (write-file "d:\\横断面数据.txt" "   ")

    (write-file "d:\\横断面数据.txt" (rtos hzz 2 4))

    (write-file "d:\\横断面数据.txt" "\n\n")

  )

)



(defun write-file (filename content)

  (setqstream (open filename "a")

  )

  (princ content stream)

  (close stream)

)

;;复制到这一行为止

把上面源代码存入写字板内,另存成XX.LSP,

CAD-->工具-->加载应用程序-->选XX.LSP-->确定。

命令行输入hdm开始执行;看命令行提示。最后在D:\横断面数据.tx内输出结果如下样式,我CAD里的图形没有Z坐标高差所以高差都为0:


追问数据组数是指每侧有几个点,这个是根据测量的数据变化的,不是固定值。我发消息给你了,

追答看到了,详情慢慢联系修改吧。

热心网友 时间:2023-09-25 16:00

CAD中高程点一般有两种方式存在,一是文本方式(文本高是高程),二是块的方式(块中属性是高程)
提取横断面数据也就是提取横断面上的高程点的起点距与高程,需采用编程解决
编程思路如下:
1 在断面位置画一根辅助线,
2 搜索辅助线两侧一定范围内的高程点
3 将高程点的高程投射到辅助线上,得出起点距(也就是该点到辅助线端点的距离)与高程
4 将得到的起点距与高程输出到某个文件保存,比如TXT文件,或者EXCEL文件

热心网友 时间:2023-09-25 16:01

这个问题成处理方法是需要利用 CAD插件可以轻松处理,10秒批量完成数百个断面, 通测工作室 开发有专业的插件处理

热心网友 时间:2023-09-25 16:01

根据高程点 提取断面数据 纬地 eicad cass 鸿业等
声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
Top