明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2672|回复: 10

[函数] 请 [院长] 看下这个程序,有小小出入,不知为什么

[复制链接]
发表于 2010-12-29 15:01:23 | 显示全部楼层 |阅读模式
本帖最后由 429014673 于 2010-12-30 16:50 编辑




请大家帮忙看下下面的程序有什么问题

1)图三是编程用的,我用这个命令画图一时,但不知为什么图二的尺寸14和图一的12对不上.
2)学院派的这两行看不明呀
aaa (/ (+ (* a a) (* b b) (* c c -1.)) (* 2. a b))
aa  (XYP-TF-ACOS aaa)



(defun c:4L ( / p1 a d e c b p2 aaa aa dd p4 bbb bb cc p3)
  (setq
p1  (getpoint "\n四边形初始位置:")
a   (getreal "\n四边形一条边: ")
d   (getreal "\n四边形二条边: ")
e   (getreal "\n四边形三条边: ")
c   (getreal "\n四边形四条边: ")
b   (getreal "\n四边形左对角线: ")
p2  (polar p1 0 a)
aaa (/ (+ (* a a) (* b b) (* c c -1.)) (* 2. a b))
aa  (XYP-TF-ACOS aaa)
dd  (- pi aa)
p4  (polar p2 dd b)
bbb (/ (+ (* b b) (* e e) (* d d -1.)) (* 2. b e))
bb  (XYP-TF-ACOS bbb)
cc  (- pi (+ aa bb))
p3  (polar p2 cc d)
  )
  (command "pline" "non" p1 "non" p2 "non" p3 "non" p4 "c")
  (princ)
)

本帖子中包含更多资源

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

x
"觉得好,就打赏"
还没有人打赏,支持一下
 楼主| 发表于 2010-12-29 18:13:10 | 显示全部楼层
各位老大帮忙呀
发表于 2010-12-29 20:02:15 | 显示全部楼层
自己输对角线多麻烦啊,还要先算
 楼主| 发表于 2010-12-29 20:56:34 | 显示全部楼层
回复 crazylsp 的帖子

我也没有办法,由于要画这样的四边形多了,想编一个,但不知在哪里出现了问题,可以帮我看下吗?
 楼主| 发表于 2010-12-30 11:21:47 | 显示全部楼层
发表于 2010-12-30 13:44:34 | 显示全部楼层
因为你缺少条件,根据你提供的四边一个对角线,根本就不足以画出唯一的四边形!
 楼主| 发表于 2010-12-30 16:46:22 | 显示全部楼层
回复 danxingpen 的帖子

两个三角形组成的四边形怎么画不出来呀???/???
发表于 2010-12-30 21:06:29 | 显示全部楼层
(defun c:4L (/ p1 a d e c b p2 aa p4 bb p3)
  (setq        p1 (getpoint "\n四边形初始位置: ")
        a  (getreal "\n四边形一条边: ")
        d  (getreal "\n四边形二条边: ")
        e  (getreal "\n四边形三条边: ")
        c  (getreal "\n四边形四条边: ")
        b  (getreal "\n四边形左对角线: ")
        p2 (polar p1 0 a)
        aa (xyp-TF-yxdl-3Side a b c)
        p4 (polar p2 (- pi aa) b)
        bb (xyp-TF-yxdl-3Side b d e)
        p3 (polar p2 (- pi (+ aa bb)) d)
  )
  (command "pline" "non" p1 "non" p2 "non" p3 "non" p4 "c")
  (princ)
)
发表于 2010-12-30 21:28:11 | 显示全部楼层
(defun c:tt (/ ilst l1 l2)
  (cmdla0)
  (defun main-pro (/ p1 p2 s1)
    (while (setq p1 (getpoint "\n四边形初始位置<退出>: "))
      (setq p2 (polar p1 0 a))
      (if (setq s1 (XYP-ACUTE-2PT2SIDE P1 P2 c b))
(XYP-ACUTE-2PT2SIDE (cadr s1) P2 e d)
      )
    )
  )
  (xyp-initSet '(a d e c b) '(30. 40. 40. 30. 50.))
  (setq ilst '(("a" "第一条边长" "real" "8")
        ("d" "第二条边长" "real" "8")
        ("e" "第三条边长" "real" "8")
        ("c" "第四条边长" "real" "8")
        ("b" "左对角线长" "real" "8")
        (nil nil "spacer;")
       )
  )
  (if (= (xyp-Dcl-Init Ilst "【测试】" t) 1)
    (main-pro)
  )
  (cmdla1)
)

本帖子中包含更多资源

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

x
 楼主| 发表于 2010-12-31 21:03:12 | 显示全部楼层
本帖最后由 429014673 于 2010-12-31 21:09 编辑
xyp1964 发表于 2010-12-30 21:06
(defun c:4L (/ p1 a d e c b p2 aa p4 bb p3)
  (setq        p1 (getpoint "\n四边形初始位置: ")
        a  (getrea ...


院长,你的程序我试了下,但提示有问题....我想要的就是这个,下面那个工作起来不够快
命令: 4L
四边形初始位置:
四边形一条边: 41
四边形二条边: 47
四边形三条边: 57
四边形四条边: 49
四边形左对角线: 64
; 错误: no function definition: XYP-TF-YXDL-3SIDE
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-25 21:23 , Processed in 0.187360 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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