求助,标注高程点距离和坡度的问题
本帖最后由 2224243113 于 2025-3-9 01:00 编辑本人纯小白,对编程一窍不通,一直想找个能计算两个RTK测绘点距离和坡度的插件。昨天在论坛里找到一个帖子,里面有相似的功能,原帖地址如下:高程属性块标注箭头,坡度和距离。(附高程属性块) - AutoLISP/Visual LISP 编程技术 - AutoCAD论坛 - 明经CAD社区 - Powered by Discuz!
帖子里提供的测试图纸1。
使用时出现下面的问题:这个插件在我的图纸里不能用,要指定文字的旋转角度然后就进行不下去了,但是把测绘点原位复制到测试图1里后,插件就可以使用了,能计算并标注。
综上,请大佬帮忙看看是怎么回事,是两张图有什么不同?还是插件的问题,如果插件不对,为什么在原测试图里又能正常用?
(defun c:tt ()
(while (and (setq s1 (car (entsel "\n选择较低的高程块<退出>: ")))
(setq s2 (car (entsel "\n选择较高的高程块<退出>: ")))
)
(setq pt1 (cdr (assoc 10 (entget s1)))
pt2 (cdr (assoc 10 (entget s2)))
z1(atof (cdr (assoc 1 (entget (entnext s1)))))
z2(atof (cdr (assoc 1 (entget (entnext s2)))))
pt(mapcar '(lambda (x y) (* (+ x y) 0.5)) pt1 pt2)
dd(distance pt1 pt2)
po(strcat "i="
(rtos (* (/ (abs (- z1 z2)) dd) 100) 2 2)
"%"
)
r0(angle pt1 pt2)
dr(* (/ r0 pi) 180)
p1(polar pt r0 (* (/ dd 4) -1))
p2(polar pt r0 (* (- (/ dd 4) 3) -1))
p3(polar pt r0 (/ dd 4))
ll(strcat "L=" (rtos dd 2 2) "m")
)
(if (and (> dr 90) (< dr 270))
(setq dr (+ dr 180))
)
(command "pline" p1 "w" "0" "0.5" p2 "w" "0" "0" p3 "")
(command "text" "j" "tc" pt 1. dr ll)
(command "text" "j" "bc" pt 1. dr po)
)
(princ)
)
(defun cul()
(princ "选择较低的高程块")
(setq obj1 (car (entsel)))
(princ "选择较高的高程块")
(setq obj2 (car (entsel)))
(setq pt1 (cdr (assoc 10 (entgetobj1))))
(setq pt2 (cdr (assoc 10 (entgetobj2))))
(setq num1 (atof (cdr (assoc 1 (entget (entnext obj1))))))
(setq num2 (atof (cdr (assoc 1 (entget (entnext obj2))))))
(setq mpt (list (/ (+ (car pt1) (car pt2)) 2) (/ (+ (cadr pt1) (cadr pt2)) 2) ))
(setq dis (distance pt1 pt2))
这里计算出来的DIS值应该是斜长,建议版主核对坡度系数--通常把水平宽度B和坡面的铅直高度H的比。通常使用百分比表示。 即:i=B/H×100%。坡度系数与坡度互为倒数,意义:路基或基坑每高1米对应的边坡水平的宽度。中文名称:坡度系数;别称:延迟系数;英文表示字母:i;公式i=B/H边坡坡度:【grade of side slope】指的是边坡的垂直高度h与水平宽度b之比=h/b。
江湖夜雨 发表于 2025-3-9 10:14
能不能帮忙修改一下插件,在新图里使用插件时,新建一个黑体样式,高度1.5
(command "-style" "坡度标注" "宋体.shx,宋体big.shx" "100" "0.667" "" "" "" "N")
; 标注坡度值
(command "text" "s" "坡度标注" "j" "bc" mpt rot po)
替换一下100可以变成你要的1.5自行设置 先用style命令设置文本的高度。
或用textsize系统变量设置文本的高度。
或直将原图存为模型图。
以上三种方法均可满足你的要求。
ocoipw 发表于 2025-3-9 01:21
先用style命令设置文本的高度。
或用textsize系统变量设置文本的高度。
或直将原图存为模型图。
能不能帮忙修改一下插件,在新图里使用插件时,新建一个黑体样式,高度1.5 调整后的插件,箭头太长了 能否选择2个点,自动让箭头指向高程低的 坡度的计算方式错了 ,坡度=垂直高度/水平投影距离 炫色ペ水域の 发表于 2025-3-9 13:34
能否选择2个点,自动让箭头指向高程低的
牛啊,厉害啊 本帖最后由 2224243113 于 2025-3-9 22:42 编辑
xyp1964 发表于 2025-3-9 14:26
非常好用,十分感谢!
页:
[1]
2