求方法: 平分线 n等分 画垂足线,成四部分
<p>如下图:</p><p> </p>
<p> </p>
<p>给个类似的程序,想参考一下,初学不知如何下手,</p>
<p> </p>
<p> </p> <p>选择6900上一根线,知道首点,根据等分,再求出等分点 p1 p2 p3 ,再求出下垂足点 p1' p2'p3' 画直线</p>
<p> </p>
<p>这是想的笨办法,</p>
<p> </p>
<p>有没有好一点,灵活点的</p> (defun c:aa( )
(setvar "cmdecho" 0) ;指令執行過程不回應
(setq en (entsel "Select a LINE:")) ;要求碰選一條線
(setq en_data (entget (car en))) ;取得元體資料串列
;******************** 求得 pt1 & px1、py1 *********************
(setq pts (assoc 10 en_data)) ;取得群碼10的子串列
(setq pt1 (cdr pts)) ;取得起點pt1座標
(setq px1 (car pt1)) ;取得pt1座標的x值
(setq py1 (cadr pt1)) ;取得pt1座標的y值
;******************** 求得 pt2 & px2、py2 ***********************
(setq pte (assoc 11 en_data)) ;取得群碼11的子串列
(setq pt2 (cdr pte)) ;取得終點pt2座標
(setq px2 (car pt2)) ;取得pt2座標的x值
(setq py2 (cadr pt2)) ;取得pt2座標的y值
;******************** 求得 等分线 两点 pta ptb ***********************
;??????????????出现问题 等分线画在一起???????
(setq n (getreal "上亮等分几等分"))
(setq cd (/ (- py2 py1) n)) ;等分的长度
(setq i 1)
(while (< i n)
(progn
(setq cdl (* cd i)) ;
(setq pta (mapcar '+ pt1 (list cdl 0)))
(setq ptb (mapcar '+ pt1 (list cdl 1000)))
(command "line" pta ptb "")
)
(setq i (+ i 1))
)
(prin1)
)
(prompt "*************** <<等分 C:aa >> *****************")
(prin1) 楼主,你这个问题解决了么
楼主,你这个问题解决了么
bearbear1 发表于 2010-6-24 11:11 static/image/common/back.gif
(defun c:aa( )
(setvar "cmdecho" 0) ;指令執行過程不回應
请问,弧线及多义线支持吗???
页:
[1]