明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1772|回复: 2

[基础] 一個副程式的問題,和程式出現錯誤

[复制链接]
发表于 2010-10-9 14:22:00 | 显示全部楼层 |阅读模式

下面這段程式,是我在練習課本中的範例。

程式的實際繪圖沒有什麼問題,但是過程中有一些小錯誤和我的副程式的疑問

 

1.程式中有一個變數(hh=圓的直徑),我用pirnc把它顯示出來,但不知道什麼原因,程式算出來的數直,都不等於圖面中原的直徑

 

2.我在這程式中有使用一小段副程式來計算長度,這段副程式是之前在練習別的題目寫的。這段副程式中有計算兩個數值,一個是"直線中點座標",另一個是直線的長度。

我的疑問是,當我使用這一段副程式的時候,我要怎麼控制回傳值是"中點座標"還是"直線長度"。雖這次的例題剛好傳回了長度,但是如果我需要的是中點座標呢?  那這段程式就錯誤了。

 

以上這兩個問題,還請各位為我說明一下,小弟感激不盡!!

 

 

 

 

 

[code]

[/c (defun C:202() 
 (setq cenpt(getpoint"選擇中心點")) 
 (setq hh(getdist cenpt"選擇高度")) 
 (setq sc(getreal "指定高、寬比例。寬=1")) 
 ;=======定義點======; 
 (setq ww (* hh sc)) 
 (setq pm(polar cenpt 0 (* ww 0.5))) 
 (setq p1(polar pm (* pi 0.5) (* hh 0.5))) 
 (setq p2(polar p1 pi ww)) 
 (setq p3(polar p2 (* pi 1.5) hh)) 
 (setq p4(polar p3 0 ww)) 
 ;;==;; 
 (setq mid1(polar p1 pi (* ww 0.5))) 
 (setq mid2(polar p4 pi (* ww 0.5))) 
 (setq d1(mid p1 p3)) 
 (setq d2(/ (- d1 hh) 2)) 
 ;;======;; 
 (setq aa(polar mid1 (* pi 0.5) d2)) 
 (setq bb(polar mid2 (* pi 1.5) d2))   
 (command "rectang" p1 p3) 
 (command "circle" cenpt p1) 
 (command "line" p1 p3 "") 
 (command "line" p2 p4 "") 
 (command "circle" "2P" mid1 aa) 
 (command "circle" "2P" mid2 bb) 
 (prin1) 


(defun mid(a b) 
(setq p1x(car p1)) 
(setq p1y(cadr p1)) 
(setq p2x(car p2)) 
(setq p2y(cadr p2)) 
(setq px(/ (+ p1x p2x) 2)) 
(setq py(/ (+ p1y p2y) 2)) 
(setq mpt(list px py));中點 
(setq linelen (expt (+ (expt (- p1x p2x) 2) (expt (- p1y p2y) 2))0.5));長度 
(princ"\n兩點間的長度= ") 
(princ linelen) 
ode]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2010-10-9 17:02:00 | 显示全部楼层
單純取得中點的函數 (參考 mid 部分)
http://bbs.mjtd.com/forum.php?mod=viewthread&tid=83625&star=1
http://bbs.mjtd.com/forum.php?mod=viewthread&tid=55997 

兩點間的距離 直接用 Distance / i.e. (distance p1 p3)

函式的最後一列敘述的運算結果即是傳回值

建議造訪
http://www.upfrontezine.com/tailor/tailor01.htm
http://www.upfrontezine.com/tailor/tailor20.htm
練實基本功

Q1:1....圖面中原的直徑
AutoLisp運行期間一樣受鎖點模式影響
關閉鎖點再試 ....


 楼主| 发表于 2010-10-9 19:52:00 | 显示全部楼层

謝謝你,我原來副程式只會傳回最後的值,我還在想說算出來的東西那麼多,它會選哪一個

至於長度計算的問題,我用了distance之後,數值就完全準確了,謝謝你的說明。

 

另外,我還有一個關於副程式的問題,在底下的帖中。已經沉很深了,但是沒有人解答,能不能請你為我解惑,謝謝

http://bbs.mjtd.com/forum.php?mod=viewthread&tid=83625&extra=&page=1

 

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-10-2 12:29 , Processed in 0.229139 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表