左右括号不匹配,未经测试:
 - [FONT=courier new]
- (defun c:lkx ()
- (setq p0 (getpoint "\n请确定起点:")
- pn (getpoint "\n请确定终点:")
- pnx (car pn)
- p0z (getreal "\n请输入起点高程:")
- pnz (getreal "\n请输入终点高程:")
- p1z (getreal "\n请输入第一条等高线高程:")
- zz (getreal "\n请输入放大倍数:")
- dd p1z
- )
- (command "pline") ;启动多段线命令
- (setq yy (Polar p0 (/ pi 2) (* p0z zz))) ;计算起点偏移坐标
- (command yy) ;用多段线在起点开始画线
- (setq p1 (getpoint "\n请确定第一点:")
- yy (Polar p1 (/ pi 2) (* p1z zz))
- ) ;计算起点偏移坐标
- (command yy) ;画第一条等高线高程
- (setq h0 0)
- ; ;等高距h0清0
- ;开始进入循环
- (while (setq pp (getpoint "\n请确定下一点:"))
- (setq pm (car pp)) ;求pp的x值赋于pm
- (cond ;如果pm大于或等于pnx就终止画线,跳出循环
- ((>= pm pnx)
- (setq yy (Polar pn (/ pi 2) (* pnz zz)))
- (command yy "")
- ) ;如果pm小于pnx就继续下面的程序
- ((< pm pnx)
- (princ "\n请输入距离<")
- (print h0)
- (setq h0 (getreal ">:"))
- (setq dd (+ dd (* h0 zz)))
- (setq yy (Polar pp (/ pi 2) dd))
- (command yy)
- )
- )
- )
- (princ)
- )[/FONT]
|