依然小小鸟 发表于 2024-6-6 09:01:54

如何将文字转化为高程点?



业主发过来的地形图 没有高程信息 标高全是文字 这些文字只有高程数值但是没有Z坐标有没有一个程序 能实现将这些文字 转化为带高程的点
这样我能将这些高程点 导入犀牛或者su中 生成面 进而建模 生成场地模型

三涂彼岸 发表于 2024-6-6 09:37:02

4年前写的一个类似的,在1:2000比例尺的图上做的,可以自己改别的比例尺图中的搜索距离和定位点距离,也可以在模式2里面根据图形比例尺加一个定位点,当时够用就没加这些功能了:
    模式1是在文字注记的周围搜索高程点散点(即定位点),将散点作为新高程点的定位点,将该文字注记内容作为高程值。最后删除文字注记和高程散点。
    模式2是利用文字注记的位置,将文字内的文本转换为高程值,将文字注记偏左的位置(按2000比例尺的距离计算的)作为定位点,生成新的高程点。最后删除文字注记;

弥勒 发表于 2024-6-7 10:21:10

依然小小鸟 发表于 2024-6-7 09:09
有程序吗

我的思路,定位提取高程文字,剔除错误点再展绘高程。;创建图层
(defun LL(str)
            (command "layer" "m" str "")
)

;取组码中的文字
(defun V#(n e / pt_)
(if (not (listp e)) (setq e (entget e)))
(setq pt_ (cdr (assoc n e)))
(if (and (> n 9) (< n 34) (/= pt_ nil) ) (trans pt_ 0 1) (setq pt_ pt_) )
)


;写出CAD中Text内容到记事本,序号,X,Y ,文本内容
(defun c:ctextout();                提取文本转换高度
   (setq ffn(getfiled "写出文件" "" "txt" 1))
   (setq zwd1 (getpoint "\n 请选择范围左下角点"))
   (setq zwd2 (getcorner zwd1 "\n请选择范围对角点"))
   (setq ss1 (ssget "_W"zwd1 zwd2(list (cons 0 "TEXT"))) );text为X,y 高程点为 X,Y,Z
    ;(setq ss1(ssget "X" (list (cons 0 "TEXT"))))全选文本
   (setq n1   (sslength ss1) n0 0 str_e2 "")
   (LL "DLG_TEXT")
   (setq ff (open ffn "w"))
   (repeat n1
          (setq e1 (ssnamess1 n0) n0 (+ 1 n0) p1 (V# 10 e1) )
          (setq str_e2 (v# 1 e1))
          (setq txtz (strcat(rtos n0 2 0) "," "h" ","( rtos (nth 0 p1) 2 3 )"," ( rtos (nth 1 p1) 2 3 ) "," str_e2 ))
                  ;高程点str_e2替换为( rtos (nth 2 p1) 2 3 )
          (princ txtz ff)
          (princ "\n" ff)
          (print n0)
      ) ;end repeat
    (close ff)
)

lzspain 发表于 2024-6-6 09:33:29

飞时达土方可以,其他小插件就不清楚了

love1030312 发表于 2024-6-6 09:54:42

你的高程数据内还有这种奇葩的值    生成不了高程点   升不上去

依然小小鸟 发表于 2024-6-6 11:13:11

lzspain 发表于 2024-6-6 09:33
飞时达土方可以,其他小插件就不清楚了

飞时达和南方cass 湘源控规都可以我就是不想再单独安装一个软件

依然小小鸟 发表于 2024-6-6 11:14:57

三涂彼岸 发表于 2024-6-6 09:37
4年前写的一个类似的,在1:2000比例尺的图上做的,可以自己改别的比例尺图中的搜索距离和定位点距离,也可 ...

总图的比例一般是1比1的所以只要有1比1的就行 不需要再换算比例 容易乱

依然小小鸟 发表于 2024-6-6 11:16:09

love1030312 发表于 2024-6-6 09:54
你的高程数据内还有这种奇葩的值    生成不了高程点   升不上去

所以能不能先把这些奇葩的东西 转为文字文字再转高程点
因为 业主发过来的总图 有时候 还有一些文字块 之类的

cchessbd 发表于 2024-6-6 12:21:10

依然小小鸟 发表于 2024-6-6 11:16
所以能不能先把这些奇葩的东西 转为文字文字再转高程点
因为 业主发过来的总图 有时候 还有一些文字 ...

因为2楼发了代码了,你这应该比较简单,依据此代码修改为高程点坐标=(文字中心坐标+文字内容组成)即可。

依然小小鸟 发表于 2024-6-6 12:33:04

cchessbd 发表于 2024-6-6 12:21
因为2楼发了代码了,你这应该比较简单,依据此代码修改为高程点坐标=(文字中心坐标+文字内容组成)即可。

我不会编程呢 也不会写代码有大神能帮忙吗

cchessbd 发表于 2024-6-6 12:35:10

依然小小鸟 发表于 2024-6-6 12:33
我不会编程呢 也不会写代码有大神能帮忙吗

付钱肯定有人愿意帮你改,找楼上liuhe大神。
页: [1] 2 3
查看完整版本: 如何将文字转化为高程点?