vken7az2p 发表于 2005-12-25 08:00:00

[1225][求助]请教矩形指令问题?

<P>[求助]请教矩形指令问题?<BR>在指令行输入中绘制矩形指定另一对角点时可以输入<BR>相对座标 如(@100,200)</P>
<P>想问的是在 LISP 中该怎样叙述呢<BR>烦请各位高手解答~<BR>谢谢~<BR></P>

ZZXXQQ 发表于 2005-12-25 09:54:00

<P>方法一:(command "rectang" "0,0" "@100,200")</P>
<P>方法二:(setq p1 (list 10 20) p2 (polar (polar p1 0 100) (/ pi 2) 200))</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (command "rectang" p1 p2)</P>
<P>还可以这样算:(setq p2 (list (+ (car p1) 100) (+ (cadr p1) 200)))</P>

vken7az2p 发表于 2005-12-25 11:41:00

<P>那如果将对此"@100,200"的值转换为</P>
<P>变数距离如 "@hh,dd"</P>
<P>该怎样叙述呢</P>

vken7az2p 发表于 2005-12-25 14:10:00

<P>如果要在判断程序中数值得正值及负值该怎样处理呢</P>
<P>以下是小弟写的程序</P>
<P>但有问题</P>
<P>烦请各位高手修正一下</P>
<P>谢谢了</P>(defun c:ts ()
<P>(setq pa (getpoint "Enter First Point:"))<BR>(setq ww (getdist pa "\nWidth:"))<BR>(setq hh (getdist pa "\nHeight:"))</P>
<P>(setq pc1 (list (+ (car pa) ww)(+ (cadr pa) hh)))<BR>(setq pc2 (list (- (car pa) ww)(+ (cadr pa) hh)))<BR>(setq pc3 (list (- (car pa) ww)(- (cadr pa) hh)))<BR>(setq pc4 (list (+ (car pa) ww)(- (cadr pa) hh)))</P>
<P>(cond<BR>(and(&lt; ww 0)(&lt; hh 0))<BR>(command "RECTANG" pa pc1)<BR>(and(&gt; ww 0)(&lt; hh 0))<BR>(command "RECTANG" pa pc2)<BR>(and(&gt; ww 0)(&gt; hh 0))<BR>(command "RECTANG" pa pc3)<BR>(and(&lt; ww 0)(&gt; hh 0))<BR>(command "RECTANG" pa pc4)<BR>)</P>
<P>)</P>

mkhsj928 发表于 2005-12-25 14:58:00


(defun c:ts ()
(setq pa (getpoint "Enter First Point:"))
(setq ww (getdist pa "\nWidth:"))
(setq hh (getdist pa "\nHeight:"))
(setq pc (m_polar width height))
(command "RECTANG" pa pc)
(princ)
)
(defun m_polar(m_pt m_xlen m_ylen / )
;;返回点向X方向移动m_xlen长度,向Y方向移动m_ylen长度之后的点
(if (< m_xlen 0)
    (setq m_pt (polar m_pt (angtof "180") (abs m_xlen)))
    (setq m_pt (polar m_pt 0 m_xlen))
)
(if (< m_ylen 0)
    (polar m_pt (angtof "270") (abs m_ylen))
    (polar m_pt (angtof "90") m_ylen)
)
)

vken7az2p 发表于 2005-12-25 15:22:00

<P>谢谢<A name=76176><FONT color=#000066><B>mkhsj928</B></FONT></A>楼主的回答</P>
<P>但如果使用我那程序</P>
<P>该怎样叙述呢?</P>

vken7az2p 发表于 2005-12-25 15:45:00

再请教<BR>如果现在要画的矩形输入的距离是由右而左时<BR>所產生的值要设为负值<BR>好让矩形可以由右往左画<BR>该怎样叙述呢?<BR>烦请各位高手可以解答一下<BR>谢谢~<BR>

mkhsj928 发表于 2005-12-25 16:19:00

<P>问题出在getdist函数上,如果你拥鼠标定距离,则不论你往左、往右,返回距离均为正,但直接手工输入,则距离就会有正负之分</P>

vken7az2p 发表于 2005-12-25 17:12:00

那有其他方法可以解决吗?

ZZXXQQ 发表于 2005-12-25 20:35:00


(DEFUN C:TS ()
(SETQ PA (GETPOINT "Enter First Point: "))
(SETQ PB (GETCORNER PA "Enter Second Point: "))
(COMMAND "RECTANG" PA PB)
(PRINC)
)
页: [1]
查看完整版本: [1225][求助]请教矩形指令问题?