找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

楼主: zhuhuifeng

毕业设计中LISP程序求救!!!!!

[复制链接]
 楼主| 发表于 2005-4-22 11:02:46 | 显示全部楼层
VBA做个对话框到是简单,但是那个"竿影日照图"不就也要用VBA编辑了吗?
两个可以分别用不同语言编辑以后同时使用吗?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-4-22 11:25:52 | 显示全部楼层
  写对话框毕竟简单。关键还是要先让你的程序正确的运行。俺想知道那个需要进行角度与弧度转换的“Ω”到底应该是赋个什么值给它。利用GETANGLE得到的两个值“δ  φ”本身就是弧度 。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-4-22 12:00:33 | 显示全部楼层
程序搞定,效果如图

[php]
;;;convert angle in degrees to radians
(defun dtr (a)
  (* pi (/ a 180.0))
)
(defun c:SUNSHADE (/   pt  hg  φ  δ  Ω  A1  A10 A11 A12 A13 A14 A15
                   A16 A17 A2  A3  A4  A5  A6  A7  A8  A9  AS  C   H
                   TT  X   Y   Z
                  )
  (command "limits" "0,0" "420,297")
  (command "zoom" "all")
  (setvar "cmdecho" 0)
  (setq pt (getpoint "\n enter a point:"))
  (setq hg (getreal "\n enter a high:"))
  (setq δ (getangle "\n 徐州地区太阳赤纬角 δ=:"))
  (setq φ (getangle "\n 徐州地区地理纬度 φ=:"))

;;;(command "layer" "m" "2" "on" "2" "1" "continuous" "2" "")
;;;(command "color" 2)

  (setq tt 4)
  (setq Ω (* 15 tt))
  (setq        x (+ (* (sin φ) (sin δ))
             (* (cos φ) (cos δ) (cos (dtr Ω)))
          )
  )
  (setq y (sqrt (- 1 (* x x))))
  (setq        H (* hg (/ y x))
  )
  (setq z (/ (* (sin (dtr Ω)) (cos δ)) y))
  (setq        as (atan (/ z (sqrt (- 1 (* z z)))))
  )
  (setq a1 (polar pt (- as (/ pi 2)) H))
  (command "line" pt a1 "")
  (command "text" a1 40 "" "8时")

  (setq tt 3.5)
  (setq Ω (* 15 tt))
  (setq        x (+ (* (sin φ) (sin δ))
             (* (cos φ) (cos δ) (cos (dtr Ω)))
          )
  )
  (setq y (sqrt (- 1 (* x x))))
  (setq        H (* hg (/ y x))
  )
  (setq z (/ (* (sin (dtr Ω)) (cos δ)) y))
  (setq        as (atan (/ z (sqrt (- 1 (* z z)))))
  )
  (setq a2 (polar pt (- as (/ pi 2)) H))
  (command "line" pt a2 "")

  (setq tt 3)
  (setq Ω (* 15 tt))
  (setq        x (+ (* (sin φ) (sin δ))
             (* (cos φ) (cos δ) (cos (dtr Ω)))
          )
  )
  (setq y (sqrt (- 1 (* x x))))
  (setq        H (* hg (/ y x))
  )
  (setq z (/ (* (sin (dtr Ω)) (cos δ)) y))
  (setq        as (atan (/ z (sqrt (- 1 (* z z)))))
  )
  (setq a3 (polar pt (- as (/ pi 2)) H))
  (command "line" pt a3 "")
  (command "text" a3 40 "" "9时")

  (setq tt 2.5)
  (setq Ω (* 15 tt))
  (setq        x (+ (* (sin φ) (sin δ))
             (* (cos φ) (cos δ) (cos (dtr Ω)))
          )
  )
  (setq y (sqrt (- 1 (* x x))))
  (setq        H (* hg (/ y x))
  )
  (setq z (/ (* (sin (dtr Ω)) (cos δ)) y))
  (setq        as (atan (/ z (sqrt (- 1 (* z z)))))
  )
  (setq a4 (polar pt (- as (/ pi 2)) H))
  (command "line" pt a4 "")

  (setq tt 2)
  (setq Ω (* 15 tt))
  (setq        x (+ (* (sin φ) (sin δ))
             (* (cos φ) (cos δ) (cos (dtr Ω)))
          )
  )
  (setq y (sqrt (- 1 (* x x))))
  (setq        H (* hg (/ y x))
  )
  (setq z (/ (* (sin (dtr Ω)) (cos δ)) y))
  (setq        as (atan (/ z (sqrt (- 1 (* z z)))))
  )
  (setq a5 (polar pt (- as (/ pi 2)) H))
  (command "line" pt a5 "")
  (command "text" a5 40 "" "10时")

  (setq tt 1.5)
  (setq Ω (* 15 tt))
  (setq        x (+ (* (sin φ) (sin δ))
             (* (cos φ) (cos δ) (cos (dtr Ω)))
          )
  )
  (setq y (sqrt (- 1 (* x x))))
  (setq        H (* hg (/ y x))
  )
  (setq z (/ (* (sin (dtr Ω)) (cos δ)) y))
  (setq        as (atan (/ z (sqrt (- 1 (* z z)))))
  )
  (setq a6 (polar pt (- as (/ pi 2)) H))
  (command "line" pt a6 "")

  (setq tt 1)
  (setq Ω (* 15 tt))
  (setq        x (+ (* (sin φ) (sin δ))
             (* (cos φ) (cos δ) (cos (dtr Ω)))
          )
  )
  (setq y (sqrt (- 1 (* x x))))
  (setq        H (* hg (/ y x))
  )
  (setq z (/ (* (sin (dtr Ω)) (cos δ)) y))
  (setq        as (atan (/ z (sqrt (- 1 (* z z)))))
  )
  (setq a7 (polar pt (- as (/ pi 2)) H))
  (command "line" pt a7 "")
  (command "text" a7 40 "" "11时")

  (setq tt 0.5)
  (setq Ω (* 15 tt))
  (setq        x (+ (* (sin φ) (sin δ))
             (* (cos φ) (cos δ) (cos (dtr Ω)))
          )
  )
  (setq y (sqrt (- 1 (* x x))))
  (setq        H (* hg (/ y x))
  )
  (setq z (/ (* (sin (dtr Ω)) (cos δ)) y))
  (setq        as (atan (/ z (sqrt (- 1 (* z z)))))
  )
  (setq a8 (polar pt (- as (/ pi 2)) H))
  (command "line" pt a8 "")

  (setq tt 0)
  (setq Ω (* 15 tt))
  (setq        x (+ (* (sin φ) (sin δ))
             (* (cos φ) (cos δ) (cos (dtr Ω)))
          )
  )
  (setq y (sqrt (- 1 (* x x))))
  (setq        H (* hg (/ y x))
  )
  (setq z (/ (* (sin (dtr Ω)) (cos δ)) y))
  (setq        as (atan (/ z (sqrt (- 1 (* z z)))))
  )
  (setq a9 (polar pt (- as (/ pi 2)) H))
  (command "line" pt a9 "")
  (command "text" a9 40 "" "12时")

  (setq tt -0.5)
  (setq Ω (* 15 tt))
  (setq        x (+ (* (sin φ) (sin δ))
             (* (cos φ) (cos δ) (cos (dtr Ω)))
          )
  )
  (setq y (sqrt (- 1 (* x x))))
  (setq        H (* hg (/ y x))
  )
  (setq z (/ (* (sin (dtr Ω)) (cos δ)) y))
  (setq        as (atan (/ z (sqrt (- 1 (* z z)))))
  )
  (setq a10 (polar pt (- as (/ pi 2)) H))
  (command "line" pt a10 "")

  (setq tt -1)
  (setq Ω (* 15 tt))
  (setq        x (+ (* (sin φ) (sin δ))
             (* (cos φ) (cos δ) (cos (dtr Ω)))
          )
  )
  (setq y (sqrt (- 1 (* x x))))
  (setq        H (* hg (/ y x))
  )
  (setq z (/ (* (sin (dtr Ω)) (cos δ)) y))
  (setq        as (atan (/ z (sqrt (- 1 (* z z)))))
  )
  (setq a11 (polar pt (- as (/ pi 2)) H))
  (command "line" pt a11 "")
  (command "text" a11 40 "" "13时")

  (setq tt -1.5)
  (setq Ω (* 15 tt))
  (setq        x (+ (* (sin φ) (sin δ))
             (* (cos φ) (cos δ) (cos (dtr Ω)))
          )
  )
  (setq y (sqrt (- 1 (* x x))))
  (setq        H (* hg (/ y x))
  )
  (setq z (/ (* (sin (dtr Ω)) (cos δ)) y))
  (setq        as (atan (/ z (sqrt (- 1 (* z z)))))
  )
  (setq a12 (polar pt (- as (/ pi 2)) H))
  (command "line" pt a12 "")

  (setq tt -2)
  (setq Ω (* 15 tt))
  (setq        x (+ (* (sin φ) (sin δ))
             (* (cos φ) (cos δ) (cos (dtr Ω)))
          )
  )
  (setq y (sqrt (- 1 (* x x))))
  (setq        H (* hg (/ y x))
  )
  (setq z (/ (* (sin (dtr Ω)) (cos δ)) y))
  (setq        as (atan (/ z (sqrt (- 1 (* z z)))))
  )
  (setq a13 (polar pt (- as (/ pi 2)) H))
  (command "line" pt a13 "")
  (command "text" a13 40 "" "14时")

  (setq tt -2.5)
  (setq Ω (* 15 tt))
  (setq        x (+ (* (sin φ) (sin δ))
             (* (cos φ) (cos δ) (cos (dtr Ω)))
          )
  )
  (setq y (sqrt (- 1 (* x x))))
  (setq        H (* hg (/ y x))
  )
  (setq z (/ (* (sin (dtr Ω)) (cos δ)) y))
  (setq        as (atan (/ z (sqrt (- 1 (* z z)))))
  )
  (setq a14 (polar pt (- as (/ pi 2)) H))
  (command "line" pt a14 "")

  (setq tt -3)
  (setq Ω (* 15 tt))
  (setq        x (+ (* (sin φ) (sin δ))
             (* (cos φ) (cos δ) (cos (dtr Ω)))
          )
  )
  (setq y (sqrt (- 1 (* x x))))
  (setq        H (* hg (/ y x))
  )
  (setq z (/ (* (sin (dtr Ω)) (cos δ)) y))
  (setq        as (atan (/ z (sqrt (- 1 (* z z)))))
  )
  (setq a15 (polar pt (- as (/ pi 2)) H))
  (command "line" pt a15 "")
  (command "text" a15 40 "" "15时")

  (setq tt -3.5)
  (setq Ω (* 15 tt))
  (setq        x (+ (* (sin φ) (sin δ))
             (* (cos φ) (cos δ) (cos (dtr Ω)))
          )
  )
  (setq y (sqrt (- 1 (* x x))))
  (setq        H (* hg (/ y x))
  )
  (setq z (/ (* (sin (dtr Ω)) (cos δ)) y))
  (setq        as (atan (/ z (sqrt (- 1 (* z z)))))
  )
  (setq a16 (polar pt (- as (/ pi 2)) H))
  (command "line" pt a16 "")

  (setq tt -4)
  (setq Ω (* 15 tt))
  (setq        x (+ (* (sin φ) (sin δ))
             (* (cos φ) (cos δ) (cos (dtr Ω)))
          )
  )
  (setq y (sqrt (- 1 (* x x))))
  (setq        H (* hg (/ y x))
  )
  (setq z (/ (* (sin (dtr Ω)) (cos δ)) y))
  (setq        as (atan (/ z (sqrt (- 1 (* z z)))))
  )
  (setq a17 (polar pt (- as (/ pi 2)) H))
  (command "line" pt a17 "")
  (command "text" "r" a17 40 "" "16时")

  (command "line" a1 a2        a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15 a16
           a17 "")
  (command "zoom" "e")
)

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

使用道具 举报

发表于 2005-4-23 09:50:59 | 显示全部楼层
程序的“上北下南”搞错了
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-4-23 15:59:37 | 显示全部楼层
最初由 无忧 发布
[B]程序的“上北下南”搞错了 [/B]


  呵呵,就事论事,俺不是学建筑的。不懂专业,估计程序原来就是这样设计的。俺只管把罗锅医好,至于死活......
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-4-24 01:58:08 | 显示全部楼层
“答辩论文”能否通过,呵呵……
以北京地区为代表,8~16时,间隔0.5小时的结果。
[php]
(load "xyp_lib")
;|
加载通用函数
如果已经下载xyp_lib并放到搜索路径下可以不再下载!
下载地址:http://www.xdcad.net/forum/showthread.php?s=&threadid=325268
如果已在acad.lsp中添加了(load "xyp_lib"),可以直接运行下面的程序。
|;

;|
日照计算 2005.04.24 by xyp1964
计算公式:
sin h = sinφsinδ+cosφcosδcost
sinA cosh =sintcosδ
其中:
h-太阳高度角;
A-太阳方位角,以正南为0,西向取正值,东向取负值;
φ-地理纬度;
t-时角,以正午为0,每小时的时角为15°,下午取正值;
δ-赤纬,冬至为-23°27′,夏至为+23°27′,二分为0°0′。
|;

(defun c:gyjs ()
  (cmdla0)
  (setq        φ   (ureal 1 "" "\n地理纬度(°北京:39.95)" 39.95)
        sj   -60                        ;早8时
        ;;(ureal 1 "" "\n时角(以正午为0,每小时的时角为15°,下午取正值)"sj)
        δ   (ureal 1
                    ""
                    "\n赤纬(冬至-23.45°; 夏至+23.45°,二分为0.0°)"
                    -23.45
             )
        leng (ureal 1 "" "\n高度(米)" leng)
        pt1  (getpoint "\n计算点 : ")
        pt00 pt1
  )
  (setvar "osmode" 0)
  (mkla "日照曲线" 3)
  (command "pline")
  (while (<= sj 60)                        ;下午4时

    (setq h1 (+        (* (sin (ang2rad φ)) (sin (ang2rad δ)))
                (* (cos (ang2rad φ))
                   (cos (ang2rad δ))
                   (cos (ang2rad sj))
                )
             )
          ;;太阳高度角
          h  (asin h1)
          A1 (/ (* (sin (ang2rad sj)) (cos (ang2rad δ))) (cos h))
          ;;太阳方位角
          A  (asin A1)
    )
    (setq rad (- (/ pi 2) A)
          pt  (polar pt1 rad (* leng (cot h)))
    )
    (gdj-fwj)
    (command pt)
    (setq sj (+ sj 7.5))
  )
  (command "")
  (setq s1 (entlast))
  (line-text);竿影及时间
  (cmdla1)
)
;;显示太阳高度角、方位角
(defun gdj-fwj ()
  (princ "\n时角 = ")
  (princ sj)
  (princ "\n太阳高度角 = ")
  (princ (rad2ang h))
  (princ "\n太阳方位角 = ")
  (princ (rad2ang A))
)

(defun line-text ()
  (setq        eobj (vlax-ename->vla-object s1)
        i    -1
        sj   -60
  )
  (while
    (setq
      pt0 (vlax-curve-getPointAtParam eobj (setq i (1+ i)))
    )
     (princ)
  )
  (if (= (dxf 70 (entget s1)) 1)
    (setq n (- i 1))
    (setq n i)
  )
  (setq        i    -1
        time 7.5
  )
  (repeat n
    (setq pt0  (vlax-curve-getPointAtParam eobj (setq i (1+ i)))
          time (+ time 0.5)
    )
    (mkla "时间" 1)
    (command "text"
             "j"
             "mc"
             (polar pt0 (* pi 0.5) (* sc 1))
             (* sc 1)
             "0"
             (rtos time 2 1)
    )
    (mkla "竿影" 8)
    (command "line" pt00 pt0 "")
  )
)

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

使用道具 举报

发表于 2005-4-24 13:32:35 | 显示全部楼层
题目:异型轧辊数控加工的自动编程系统。实质:cad的二次开发。核心内容:dxf文件数据提取,自动转化成NC代码。本人对编程一窍不通,当时选题目时正急于找工作,所以稀里糊涂选了这个题目,现在答辩在即。急!求高人不吝赐教!细节可面谈或留下联系方式。本人联系方式QQ:121764889;电话010-51941142
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-4-24 15:19:10 | 显示全部楼层
哈哈,把同学也拉来了
xd论坛的dx们成了变相的枪手
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-4-26 11:19:46 | 显示全部楼层
我不是他的同学,我只是在网上看到这里可以帮助我才来的,我也想靠自己毕业,但是这题目对我来说是在太难了,我四月初才把工作定下来,然后做了个手术,上周五老师通知我再不找他就不要毕业了,我就匆匆办了出院手续,回来和他谈了,他说你如果5。8能把lisp编程学会,编出个提取数据程序,然后在编出个程序,把前面提取出的数据自动生成NC代码。我的毕设还有戏,否则只能明年做了,但是那是不行的,如果那样我的工作就没了。和他谈完我就借了几本书,看到现在还是没有啥头绪,恳请各位大侠帮帮小弟,指导一二。不胜感激!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-4-27 14:40:17 | 显示全部楼层
我做了一个小LISP窗口编码,但是不知道怎么才可以把原来的程序连接起来,合为一个完整的程序!~~~~~
sunshade: dialog {
      label = "绘制日照棒影图";
      initial_focus = "δ";
      :row{
          :image{width = 50;
                 height = 20;
                 color = -2;
                }
       :boxed_column{
          label = "数据输入窗口";
          :edit_box{label = "太阳赤纬角 &δ(度):";
                edit_width = 8;
                key = "δ";
                value = "";
                }
          :edit_box{label = "地理纬度 &φ(度):";
                width = 8;
                mnemonic= "φ";
                key = "φ";
                value = "";
                }      
              
           :edit_box{label = "棒高 &h(mm):";
                width = 8;
                mnemonic= "h";
                key = "h";
                value = "";
                }
             }
          }
       ok_cancel;
     }

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-26 15:58 , Processed in 0.183960 second(s), 44 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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