dk-liu 发表于 2018-11-20 13:48:17

麻烦大家帮我看一下我这段程序有什么错误,先提前谢谢了

(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)
)

ntwison 发表于 2018-11-21 12:27:48

你错在没附上CAD图,方便别人测试

llsheng_73 发表于 2018-11-21 14:20:13



这两处都需要加上progn,不然程序无法运行
最后程序结束前的(exit)应该去掉,不然程序会在最后出错中断而不能正常结束
页: [1]
查看完整版本: 麻烦大家帮我看一下我这段程序有什么错误,先提前谢谢了