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

cchessbd 发表于 2024-6-6 12:35
付钱肯定有人愿意帮你改,找楼上liuhe大神。

:'(:'(:'(:'(

cchessbd 发表于 2024-6-6 13:24:46

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


你要别人付出时间和劳动,又不想出钱,难道想白嫖?

自贡黄明儒 发表于 2024-6-6 14:46:38

无人机飞出的,这种情况会越来越多。以往我处理等高线,同时处理带属性的块。

yjccwf 发表于 2024-6-6 16:25:34

可以加我qq 562860217

xyp1964 发表于 2024-6-6 18:53:16

飞时达、南方cass、湘源控规估计都没戏……

依然小小鸟 发表于 2024-6-6 20:04:23

自贡黄明儒 发表于 2024-6-6 14:46
无人机飞出的,这种情况会越来越多。以往我处理等高线,同时处理带属性的块。

嗯有个程序挺好的

弥勒 发表于 2024-6-6 22:39:49


依然小小鸟 发表于 2024-6-7 09:09:50

弥勒 发表于 2024-6-6 22:39


有程序吗{:1_1:}

弥勒 发表于 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)
)

依然小小鸟 发表于 2024-6-7 11:29:27

我感觉应该还有更牛的程序
页: 1 [2] 3
查看完整版本: 如何将文字转化为高程点?