
- ;画四边形 yshf
- ;以四边形对角线的第一点为准,四条边顺时针排列
- (defun c:4b()
- (defun jj(a b c / p s h)
- (setq p (* 0.5 (+ a b c))
- s (sqrt (* p (- p a) (- p b) (- p c)))
- h (/ (* 2.0 s) c)
- d (sqrt (- (* a a) (* h h)))
- p (atan h d)
- )
- )
- (setq cm (getvar "cmdecho")
- os (getvar "osmode")
- )
- (setvar "cmdecho" 0)
- (setvar "osmode" 33)
- (while (setq p1 (getpoint "\n四边形对角线的第一点<回车退出>:"))
- (if (setq p3 (getpoint p1 "\n四边形对角线的另一点所在方向:"))
- (if (and (setq djx (getdist "\n四边形对角线长度:"))
- (setq a1 (getdist "\n四边形第1条边长度:"))
- (setq b1 (getdist "\n四边形第2条边长度:"))
- (setq a2 (getdist "\n四边形第3条边长度:"))
- (setq b2 (getdist "\n四边形第4条边长度:"))
- )
- (progn
- (setq aa (angle p1 p3)
- p3 (polar p1 aa djx)
- p2 (polar p1 (+ aa (jj a1 b1 djx)) a1)
- p4 (polar p1 (- aa (jj b2 a2 djx)) b2)
- )
- (setvar "osmode" 0)
- (command "_pline" p1 p2 p3 p4 "c")
- )
- )
- )
- (setvar "osmode" 33)
- )
- (setvar "osmode" os)
- (setvar "cmdecho" cm)
- (princ)
- )
|