 - (defun c:tqgc();对等高线附近位置进行高程注记
- (setvar "osmode" 512)
- (setq v2(getvar"cmdecho"));保存当前的普通命令提示状态
- (setvar"cmdecho"0);不显示普通命令的提示
- (setq ss(ssget"x"'((0 . "POLYLINE")(8 . "DGX")))j -1);建立重量线选择集
- (if ss(command"tolwpoly"ss""));将全部重量线转为轻量线
- (setq loop t)
- (while loop
- (while(not(setq li1(entsel"\n请选择第一条等高线:")))
- (alert"没有选中实体,请重新选择!")
- )
- (while(not(setq li2(entsel"\n请选择第二条等高线:")))
- (alert"没有选中实体,请重新选择!")
- )
- (setq en1(car li1) pt1(cadr li1))
- (setq en2(car li2) pt2(cadr li2))
- (setq pt1 (list (car pt1)(cadr pt1)))
- (command "line" pt1 pt2 "");构造辅助直线
- (setq en(entlast));获取line图元名
- (setq pt(getpoint"\n请选择高程注记位置:"))
- (setq pt(list (car pt)(cadr pt)))
- (setq s1(distance pt1 pt))
- (setq el1(entget en1)el2(entget en2))
- (setq gc1(cdr(assoc 38 el1))gc2(cdr(assoc 38 el2)))
- (setq bz(/ s1(distance pt2 pt1)))
- (setq dgj(- gc2 gc1))
- (setq h (+ gc1 (* dgj bz)))
- (command "drawgcd" "" pt h "")
- (entdel en);删除辅助直线
- ;;;是否结束标志
- (setq loop (getpoint "\n左键继续/右键结束:"))
- )
- (setvar"cmdecho"v2);恢复普通命令提示原来的显示状态
- )
|