明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 392|回复: 2

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

[复制链接]
发表于 2018-11-20 13:48 | 显示全部楼层 |阅读模式
(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)
)

发表于 2018-11-21 12:27 | 显示全部楼层
你错在没附上CAD图,方便别人测试
发表于 2018-11-21 14:20 | 显示全部楼层


这两处都需要加上progn,不然程序无法运行
最后程序结束前的(exit)应该去掉,不然程序会在最后出错中断而不能正常结束

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-4-25 07:56 , Processed in 0.177601 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表