求助,标注高程点距离和坡度的问题
本帖最后由 2224243113 于 2025-3-9 01:00 编辑本人纯小白,对编程一窍不通,一直想找个能计算两个RTK测绘点距离和坡度的插件。昨天在论坛里找到一个帖子,里面有相似的功能,原帖地址如下:高程属性块标注箭头,坡度和距离。(附高程属性块) - AutoLISP/Visual LISP 编程技术 - AutoCAD论坛 - 明经CAD社区 - Powered by Discuz!
帖子里提供的测试图纸1。
使用时出现下面的问题:这个插件在我的图纸里不能用,要指定文字的旋转角度然后就进行不下去了,但是把测绘点原位复制到测试图1里后,插件就可以使用了,能计算并标注。
综上,请大佬帮忙看看是怎么回事,是两张图有什么不同?还是插件的问题,如果插件不对,为什么在原测试图里又能正常用?
先用style命令设置文本的高度。
或用textsize系统变量设置文本的高度。
或直将原图存为模型图。
以上三种方法均可满足你的要求。
ocoipw 发表于 2025-3-9 01:21
先用style命令设置文本的高度。
或用textsize系统变量设置文本的高度。
或直将原图存为模型图。
能不能帮忙修改一下插件,在新图里使用插件时,新建一个黑体样式,高度1.5 (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)
)
调整后的插件,箭头太长了 能否选择2个点,自动让箭头指向高程低的 坡度的计算方式错了 ,坡度=垂直高度/水平投影距离 炫色ペ水域の 发表于 2025-3-9 13:34
能否选择2个点,自动让箭头指向高程低的
牛啊,厉害啊 本帖最后由 2224243113 于 2025-3-9 22:42 编辑
xyp1964 发表于 2025-3-9 14:26
非常好用,十分感谢!
页:
[1]