bearbear1 发表于 2010-6-23 11:11:00

求方法: 平分线 n等分 画垂足线,成四部分

<p>如下图:</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>给个类似的程序,想参考一下,初学不知如何下手,</p>
<p>&nbsp;</p>
<p>&nbsp;</p>

bearbear1 发表于 2010-6-23 12:09:00

<p>选择6900上一根线,知道首点,根据等分,再求出等分点 p1 p2 p3 ,再求出下垂足点 p1' p2'p3'&nbsp; 画直线</p>
<p>&nbsp;</p>
<p>这是想的笨办法,</p>
<p>&nbsp;</p>
<p>有没有好一点,灵活点的</p>

bearbear1 发表于 2010-6-24 11:11:00

(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)

天天向上t 发表于 2012-8-31 14:44:24

楼主,你这个问题解决了么

yaokui25 发表于 2012-8-31 23:39:22

楼主,你这个问题解决了么

成仔 发表于 2012-9-1 18:47:50

bearbear1 发表于 2010-6-24 11:11 static/image/common/back.gif
(defun c:aa( )

(setvar "cmdecho" 0) ;指令執行過程不回應


请问,弧线及多义线支持吗???
页: [1]
查看完整版本: 求方法: 平分线 n等分 画垂足线,成四部分