麻烦大家帮我看一下我这段程序有什么错误,先提前谢谢了
(defun c:wy (/ data data_list ff)(setvar "cmdecho" 0)
(setvar "blipmode" 0)
(setq dm (getreal "请输入监测断面数目"))
(setq zjdm 1)
(setq cfcs (getreal "请输入迭代次数"))
(while (<= zjdm dm)
(if (<= zjdm dm)
(
(setq wj (getstring T "请输入文件路径(例如D:\wy.txt):"))
(setq ff (open wj "r"))
;;打开并读取文件
(setq data (read-line ff))
;;读取第一个内容
(setq data_list '())
(setq data_list1 '())
;;声明一个空列表
(while data
;;如果内容不为空循环写入列表
(setq data_list (cons data data_list))
;;第一个内容写入列表
(setq data (read-line ff))
;;读取下一个
)
(setq data_list (reverse data_list))
;;颠倒列表顺序
;(close ff) ;;关闭文件
;data_list ;;列表
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(setq m (length data_list))
(setq n (getreal "请输入监测点数目"))
(setq z1 (getreal "请输入该检测纵断面距上一断面距离"))
(setq q (/ m n))
(set r 1)
(setq hd (/ pi n))
(repeat cscf
(while (<= r q)
(setq p1 (car data_list))
(setq data_list (cdr data_list))
(setq x1 (* p1 (cos hd)))
(setq y1 (* p1 (sin hd)))
(setq zb (list x1 y1 z1))
(setq data_list1 (cons zb data_list1))
(setq r (1+ r))
)
(command "spline" data_list1 "c" "")
)
)
(exit)
)
(setq zjdm (1+ zjdm))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(if (<= zjdm dm)
(
(setq wj1 (getstring "请输入文件路径,例如d://wy.txt"))
(setq ff1 (open "wj1" "r"))
(setq data1 (read-line ff1))
;;读取第一个内容
(setq data_list2 '())
(setq data_list3 '())
;;声明一个空列表
(while data1
;;如果内容不为空循环写入列表
(setq data_list2 (cons data1 data_list2))
;;第一个内容写入列表
(setq data1 (read-line ff1))
;;读取下一个
)
(setq data_list2 (reverse data_list2))
;;颠倒列表顺序
(setq m1 (length data_list2))
(setq n1 (getreal "请输入监测点数目"))
(setq z11 (getreal "请输入该检测纵断面距上一断面距离"))
(setq q1 (/ m1 n1))
(set r1 1)
(setq hd1 (/ pi n1))
(repeat cfcs
(while (<= r1 q1)
(setq p11 (car data_list2))
(setq data_list2 (cdr data_list2))
(setq x11 (* p11 (cos hd1)))
(setq y11 (* p11 (sin hd1)))
(setq zb1 (list x11 y11 z11))
(setq data_list3 (cons zb1 data_list3))
(setq r1 (1+ r1))
)
(command "spline" data_list3 "c" "")
)
)
(exit)
)
(setq ddcs 1)
(if (=zjzm 2)
(while (<= ddcs cfcs)
(command "loft"
id=
(+ 1 ddcs)
id=
(+ cfcs ddcs)
""
)
(setq ddcs (+ 1 ddcs))
)
(while (<= ddcs cfcs)
(command "loft"
id=
(+(* (- zjdm 2) cfcs) ddcs)
id=
(+ (* (- zjdm 1) cfcs) ddcs)
""
)
(setq ddcs (+ 1 ddcs))
)
)
(setq zjdm (+ 1 zjdm))
)
(exit)
)
你错在没附上CAD图,方便别人测试
这两处都需要加上progn,不然程序无法运行
最后程序结束前的(exit)应该去掉,不然程序会在最后出错中断而不能正常结束
页:
[1]