仿CASS坐标展点
本帖最后由 陈伟 于 2024-3-22 23:08 编辑命令:ZD
展点后是属性块,如图
现在两个文件配合着用,一个展点高程,一个展点编号;用图框比例这个文件调整属性块的及文字大小
注意:VLX程序XY坐标反着的,源码坐标正确。测绘数据文件后缀名自行改成DAT格式后再做测试
能不能将它们二合一,展点后为一个属性块,高程点右侧上方、点号在点右侧下方,一次可以看清高程及点号 坐标展点高程为0,能不能修改一下 (DEFUN PARSE2 (STR DELIM / LST POS)
(while (and (setq POS (VL-STRING-SEARCH DELIM STR)))
(setq LST (APPEND LST (LIST (SUBSTR STR 1 POS))))
(setq STR (SUBSTR STR (+ 2 POS)))
)
(if (> (STRLEN STR) 0)
(PROGN (APPEND LST (LIST STR)))
(PROGN LST)
)
)
; 定义一个新函数get-last-three,用于获取列表中的最后三个元素
(defun get-last-three (lst / len)
(setq len (length lst)) ; 获取列表的长度
(if (<= len 3) ; 如果列表长度小于或等于3
lst ; 直接返回列表
(progn ; 否则执行以下步骤
(repeat (- len 3) ; 重复执行,直到列表只剩下三个元素
(setq lst (cdr lst)) ; 移除列表的第一个元素
)
lst ; 返回最后三个元素
)
)
)
(defun c:TT2 ()
(setq S "Pt1,1,2,3,4,609036.512,2730628.308,1463.504")
; 使用get-last-three函数获取最后三个坐标值
;(setq P (get-last-three (PARSE2 S ",")))
; 使用PARSE2函数解析字符串S
(setq P (PARSE2 S ","))
(print P)
; 使用get-last-three函数获取最后三个坐标值
(setq P (get-last-three P))
)
页:
[1]