等分问题,等分线都画在一起,问题出在哪??
(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) <p><font face="Verdana">(defun c:aa( )</font></p>
<p><font face="Verdana">(setvar "cmdecho" 0) ;指令執行過程不回應</font></p>
<p><font face="Verdana">(setq en (entsel "Select a LINE:")) ;要求碰選一條線</font></p>
<p><font face="Verdana">(setq en_data (entget (car en))) ;取得元體資料串列</font></p>
<p><font face="Verdana">;******************** 求得 pt1 & px1、py1 *********************</font></p>
<p><font face="Verdana">(setq pts (assoc 10 en_data)) ;取得群碼10的子串列</font></p>
<p><font face="Verdana">(setq pt1 (cdr pts)) ;取得起點pt1座標</font></p>
<p><font face="Verdana">(setq px1 (car pt1)) ;取得pt1座標的x值</font></p>
<p><font face="Verdana">(setq py1 (cadr pt1)) ;取得pt1座標的y值</font></p>
<p><font face="Verdana">;******************** 求得 pt2 & px2、py2 ***********************</font></p>
<p><font face="Verdana">(setq pte (assoc 11 en_data)) ;取得群碼11的子串列</font></p>
<p><font face="Verdana">(setq pt2 (cdr pte)) ;取得終點pt2座標</font></p>
<p><font face="Verdana">(setq px2 (car pt2)) ;取得pt2座標的x值</font></p>
<p><font face="Verdana">(setq py2 (cadr pt2)) ;取得pt2座標的y值</font></p>
<p><font face="Verdana">;******************** 求得 等分线 两点 pta ptb ***********************<br/>;??????????????出现问题 等分线画在一起???????<br/>(setq n (getreal "上亮等分几等分"))<br/>(setq cd (/ (- py2 py1) n)) ;等分的长度<br/>(setq i 1)<br/> (while (< i n)<br/> (progn<br/> (setq cdl (* cd i)) ;<br/> (setq pta (mapcar '+ pt1 (list cdl 0)))<br/> (setq ptb (mapcar '+ pt1 (list cdl 1000)))<br/> (command "line" pta ptb "")<br/> )<br/> (setq i (+ i 1))<br/> )</font></p><font face="Verdana">
<p><br/>(prin1)</p>
<p>)</p>
<p>(prompt "*************** <<等分 C:aa >> *****************")</p>
<p>(prin1)<br/></font></p> <p>需要关闭osmode</p>
<p>把 (command "line" pta ptb "")替换为</p>
<p> (command "line" "non" pta "non" ptb "")<br/><br/></p> <p><font face="Verdana">加了</font></p>
<p><font face="Verdana"></font> </p>
<p><font face="Verdana">(setq pz (getvar "osmode"))<br/>(setvar "osmode" 0)</font></p>
<p> </p>
<p><font face="Verdana">(command "line" "non" pta "non" ptb "")</font></p>
<p> </p>
<p> </p>
<p><font face="Verdana">(setvar "osmode" pz) ;</font></p>
<p> </p>
<p> </p>
<p><font face="Verdana">还是不行</font></p>
<p>好像是 pta ptb 变量没有变,变量的问题?</p> <p>(setq cdl (* cd i)) ;<br/></p>
<p> </p>
<p>好像是这出点问题,请教,</p>
<p> </p> <p><font face="Verdana">把</font></p>
<p><font face="Verdana">(setq cd (/ (- py2 py1) n)) ;等分的长度</font></p>
<p>改成</p>
<p><font face="Verdana">(setq cd (/ (- px2 px1) n)) ;等分的长度</font></p> <p></p>
<p> </p>
<p>没想到,会是这?出问题,</p>
<p> </p>
<p>非常感谢</p>
页:
[1]