找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 598|回复: 4

[求助] [求助]:请帮忙查找程序的问题出在什么地方?谢谢

[复制链接]
发表于 2005-6-14 12:59:07 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
;(defun c:test()
;(setq file-new (getfiled "选择数据文件" "d:/" "dat" 8))
;(setq zg (getreal "   输入字高< 0.4 >:"))
;(if (not zg)
  (setq ZG 0.4)
;)
;(command "layer" "m" "kzd" "color" "red" "" "")
;(setq file (open file-new "r"))
(setq file(open "d://data.dat" "r"))
;-------------------------------------------------------------
(setq   xg1 0 yg1 0  xg2 0  yg2 0  xg3 0    yg3 0  s 0  sg 0  xg 0   yg 0  xx nil )
;------------------------------------------------------------
(while (setq text0(read-line file))
        (setq len (strlen text0)
            n1(vl-string-search "," text0)
            n2(vl-string-search "," text0 (+ n1 1))
            n3(vl-string-search "," text0 (+ n2 1))
            n4(vl-string-search "," text0 (+ n3 1))
            dh(substr text0 1 n1)
            bm(substr text0 (+ n1 2) (- n2 n1 1))
             y(atof(substr text0(+ n2 2) (- n3 n2 1)))
             x(atof(substr text0(+ n3 2) (- n4 n3 1)))
             h(substr text0(+ n4 2) (- len n4 1))
             pt-crd(list y x)
             pt-dh(list (+ y 8.5) (+ x 1))
             pt-gc(list (+ y 8.5) (- x 3))               
          );setq 束
;----------------------------------------------------------------------
           (setq s(sqrt(+ (* (- x xg) (- x xg)) (* (- y yg) (- y yg)))))
           (setq ab1(list y x) ab2(list yg xg))
           (setq xg x yg y
            s(if (= xg 0) 0 s)
            jd(angle ab1 ab2)
            jd(if (<= PI()) (+ jd 1.570796327) (- jd 1.570796327))
           )
(if (/= bm xx)
      (progn
        (command "")
        (command "pline" pt-crd)
    (if (> s sg)
      (progn
        (setq xg2 xg2 yg2 yg2 xg3 x yg3 y)
        (setq pg2(list yg2 xg2) pg3(list yg3 xg3))
        (setq pgzd(list (/ (+ yg2 yg3) 2) (/ (+ xg2 xg3) 2)))
               
      );end progn
       (progn
        (setq xg1 xg1 yg1 yg1 xg2 x yg2 y)
        (setq pg1 (list yg1 xg1) pg2 (list yg2 xg2))
        (setq pgzd(list (/ (+ yg2 yg1) 2) (/ (+ xg2 xg1) 2)))
        );end progn
     );end if
      (setq xg2 x yg2 y xg1 x yg1 y)
        (setq sg s)
        (setq xg x yg y)
        );end progn
      (command "pline" pt-crd)
         );end if
     
    ;(if (/= bm xx)
      ;(command "text" "j" "c" pgzd zg jd bm)
    ;)
  
   (setq xx bm
      xg1 0
      yg1 0
      xg2 0
      yg2 0
      xg3 0
      xg3 0
        s 0
       sg 0
    )
);end while
(command "")
(close file)
(command "zoom" "e")
;)

数据格式如下:d:\data.dat
1,1000,-160.216,128.774,-2.074
2,1000,-143.778,126.558,-1.834
3,1000,-146.267,126.542,-3.021
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2005-6-14 15:39:34 | 显示全部楼层
语句
        (command "pline" pt-crd)        中,"pline" 后面要求2个以上的点,如
        (command "pline" p1 p2 "")

供参考。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-6-15 11:25:44 | 显示全部楼层
谢谢,然而:(command "pline" pt-crd)
                        (command pt-crd)
这种用法也是可以的。我程序里面要把if 外面的:(command "pline" pt-crd)这一句改为(command pt-crd),但我还是不知道问题出在什么地方。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-6-15 13:36:43 | 显示全部楼层
数据格式不好,可以参照签名栏下“实用程序汇总(test系列程序)”之test061及test141两个类似实例。
[php](defun c:test ()
  (setq        filename (getfiled "选择数据文件" "" "txt" 2)
        ZG         0.4
        file         (open filename "r")
        xg1 0
        yg1 0
        xg2 0
        yg2 0
        xg3 0
        yg3 0
        s   0
        sg  0
        xg  0
        yg  0
        xx  nil
  )
  (while (setq text0 (read-line file))
    (setq len         (strlen text0)
          n1         (vl-string-search "," text0)
          n2         (vl-string-search "," text0 (+ n1 1))
          n3         (vl-string-search "," text0 (+ n2 1))
          n4         (vl-string-search "," text0 (+ n3 1))
          dh         (substr text0 1 n1)
          bm         (substr text0 (+ n1 2) (- n2 n1 1))
          y         (atof (substr text0 (+ n2 2) (- n3 n2 1)))
          x         (atof (substr text0 (+ n3 2) (- n4 n3 1)))
          h         (substr text0 (+ n4 2) (- len n4 1))
          pt-crd (list y x)
          pt-dh         (list (+ y 8.5) (+ x 1))
          pt-gc         (list (+ y 8.5) (- x 3))
          s         (sqrt (+ (* (- x xg) (- x xg)) (* (- y yg) (- y yg))))
          ab1         (list y x)
          ab2         (list yg xg)
          xg         x
          yg         y
          s         (if (= xg 0)
                   0
                   s
                 )
          jd         (angle ab1 ab2)
          jd         (if (<= PI ())
                   (+ jd (* pi 0.5))
                   (- jd (* pi 0.5))
                 )
    )
    (if        (/= bm xx)
      (progn
        ;(command "");多余
        (command "pline" pt-crd)
        (if (> s sg)
          (progn
            (setq xg2  xg2
                  yg2  yg2
                  xg3  x
                  yg3  y
                  pg2  (list yg2 xg2)
                  pg3  (list yg3 xg3)
                  pgzd (list (/ (+ yg2 yg3) 2) (/ (+ xg2 xg3) 2))
            )
          )
          (progn
            (setq xg1  xg1
                  yg1  yg1
                  xg2  x
                  yg2  y
                  pg1  (list yg1 xg1)
                  pg2  (list yg2 xg2)
                  pgzd (list (/ (+ yg2 yg1) 2) (/ (+ xg2 xg1) 2))
            )
          )
        )
        (setq xg2 x
              yg2 y
              xg1 x
              yg1 y
              sg s
              xg x
              yg y
        )
      )
      ;(command "pline" pt-crd);此句错误
      (command pt-crd)
    )
    (setq xx bm
          xg1 0
          yg1 0
          xg2 0
          yg2 0
          xg3 0
          xg3 0
          s 0
          sg 0
    )
  )
  (command "")
  (close file)
  (command "zoom" "e")
)[/php]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-6-15 16:58:36 | 显示全部楼层
谢谢,经大侠修改过的程序确实明了很多。谢谢你的指点。我将去看看。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2025-9-28 07:00 , Processed in 0.173238 second(s), 40 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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