我写的autolisp哪里错了,请大侠帮忙解决下。加载的时候出现(命令: ; 错误: 输入的列表有缺陷)
(defunc:bg()(setqdd(getint"输入标高精度:"))(setqbg1(getint"输入起始标高:"));getreal(setqpoint1(ge...
(defun c:bg()
(setq dd (getint "输入标高精度:"))
(setq bg1 (getint "输入起始标高:")) ;getreal
(setq point1 (getpoint "选择起始点:"))
(setq px1 (nth 0 point1)) ;得到点的X坐标值
(setq py1 (nth 1 point1)) ;得到点的Y坐标值
(setq tx1 (strcat "bg1")) ;得到标高的字符串
(while
(progn
(initget 16)
(setq point2 (getpoint "选择标注的坐标点:"))
)
(setq px2 (nth 0 point2)) ;得到点的X坐标值
(setq py2 (nth 1 point2)) ;得到点的Y坐标值
(setq bg2 (rtos (+ (- py2 py1) bg1)) 2 dd) ;求得bg2值
(setq px3 (+ px2 0.15))
(setq py3 (+ py2 0.2))
(setq px4 (- px2 0.15))
(setq py4 (+ py2 0.2))
(setq px5 (+ px2 0.3))
(setq py5 (+ py2 0))
(setq tx2 (strcat "bg2")) ;得到标高的字符串
(setq p1 (list px2 py2)) ;结合px1 & py1成p1点
(setq p2 (list px3 py3)) ;结合px1 & py1成p2点
(setq p3 (list px4 py4)) ;结合px1 & py1成p3点
(setq p4 (list px5 py5)) ;结合px1 & py1成p4点
(command "line" p1 p2 p3 "C") ;添加标高符号
(command "text" p4 0.2 0 "tx2") ;添加标高数值
)
) 展开
(setq dd (getint "输入标高精度:"))
(setq bg1 (getint "输入起始标高:")) ;getreal
(setq point1 (getpoint "选择起始点:"))
(setq px1 (nth 0 point1)) ;得到点的X坐标值
(setq py1 (nth 1 point1)) ;得到点的Y坐标值
(setq tx1 (strcat "bg1")) ;得到标高的字符串
(while
(progn
(initget 16)
(setq point2 (getpoint "选择标注的坐标点:"))
)
(setq px2 (nth 0 point2)) ;得到点的X坐标值
(setq py2 (nth 1 point2)) ;得到点的Y坐标值
(setq bg2 (rtos (+ (- py2 py1) bg1)) 2 dd) ;求得bg2值
(setq px3 (+ px2 0.15))
(setq py3 (+ py2 0.2))
(setq px4 (- px2 0.15))
(setq py4 (+ py2 0.2))
(setq px5 (+ px2 0.3))
(setq py5 (+ py2 0))
(setq tx2 (strcat "bg2")) ;得到标高的字符串
(setq p1 (list px2 py2)) ;结合px1 & py1成p1点
(setq p2 (list px3 py3)) ;结合px1 & py1成p2点
(setq p3 (list px4 py4)) ;结合px1 & py1成p3点
(setq p4 (list px5 py5)) ;结合px1 & py1成p4点
(command "line" p1 p2 p3 "C") ;添加标高符号
(command "text" p4 0.2 0 "tx2") ;添加标高数值
)
) 展开
1个回答
展开全部
问题一:
(setq px2 (nth 0 point2)) ;得到点的X坐标值
(setq py2 (nth 1 point2)) ;得到点的Y坐标值
(setq bg2 (rtos (+ (- py2 py1) bg1)) 2 dd) ;求得bg2值----此句有问题,
变成了下面的这个样子
(setq bg2 (rtos (+ (- py2 py1) bg1))
2 dd
)
问题二:
最后的两个括号请将 )改成 )
即全角改成半角
(setq px2 (nth 0 point2)) ;得到点的X坐标值
(setq py2 (nth 1 point2)) ;得到点的Y坐标值
(setq bg2 (rtos (+ (- py2 py1) bg1)) 2 dd) ;求得bg2值----此句有问题,
变成了下面的这个样子
(setq bg2 (rtos (+ (- py2 py1) bg1))
2 dd
)
问题二:
最后的两个括号请将 )改成 )
即全角改成半角
更多追问追答
追问
最后那两个括号改了之后就变成(命令: ; 错误: 语法错误)了。还问题一为什么要那么改啊。谢谢
追答
帮你改了一下,至少可以运行了,请看下面的内容。(你是初学者吧,有这个样子也算不错了)
(defun c:bg ()
(setq dd (getint "输入标高精度:"))
(setq bg1 (getint "输入起始标高:")) ;getreal
(setq point1 (getpoint "选择起始点:"))
(setq px1 (nth 0 point1)) ;得到点的X坐标值
(setq py1 (nth 1 point1)) ;得到点的Y坐标值
(setq tx1 (strcat "bg1")) ;得到标高的字符串
(while
(progn
(initget 16)
(setq point2 (getpoint "选择标注的坐标点:"))
)
(setq px2 (nth 0 point2)) ;得到点的X坐标值
(setq py2 (nth 1 point2)) ;得到点的Y坐标值
(setq bg2 (rtos (+ (- py2 py1) bg1))
dd 2
) ;求得bg2值
(setq px3 (+ px2 0.15))
(setq py3 (+ py2 0.2))
(setq px4 (- px2 0.15))
(setq py4 (+ py2 0.2))
(setq px5 (+ px2 0.3))
(setq py5 (+ py2 0))
(setq tx2 (strcat "bg2")) ;得到标高的字符串
(setq p1 (list px2 py2)) ;结合px1 & py1成p1点
(setq p2 (list px3 py3)) ;结合px1 & py1成p2点
(setq p3 (list px4 py4)) ;结合px1 & py1成p3点
(setq p4 (list px5 py5)) ;结合px1 & py1成p4点
(command "line" p1 p2 p3 "C") ;添加标高符号
(command "text" p4 0.2 0 "tx2") ;添加标高数值
)
)
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询