AutoCAD顧問
還沒有註冊嗎...即日起免費註冊,所有最完整的AutoCAD討論、教學及資源都在論壇裡喔~

[已解決] 程式(inters nil)怎麼會錯誤

上一篇主題 下一篇主題 向下

[已解決] 程式(inters nil)怎麼會錯誤

發表 由 s924310 于 2011-07-19, 08:55

執行程式到inters 為什麼就抓不到值了
損壞的引數類型: 2D/3D 點: nil

為什麼會這樣...

(inters nil) 不是可以抓非真實線段的點嗎?
為什麼抓不到....

(defun c:dd ( )
(setq D (getint"\n請輸入大直徑"))
(setq d (getint"\n請輸入小直徑"))
(setq H (getint"\n請輸入高"))
(setq point (getpoint"\n插入點"))

(setq p14 (polar point (/ (* 3 pi )) (+ D 100 )))
(setq p23 (polar p14 (/ (* 3 pi )) H ))
(setq p1 (polar p14 pi (/ d 2 )))
(setq p4 (polar p14 0 (/ d 2 )))
(setq p3 (polar p23 0 (/ D 2 )))
(setq p2 (polar p23 pi (/ D 2 )))
(setq cen (inters p1 p2 p3 p4 nil))

------------------------------------------------
謝謝您的意見提供
這程式已經可以用了
程式改如下

(setq D1 (getint"\n請輸入大直徑: "))
(setq D2 (getint"\n請輸入小直徑: "))
(setq H (getint"\n請輸入高: "))
(setq point (getpoint"\n請插入點"))

(setq do (+ D1 100 ))
(setq p14 (polar point (* 1.5 pi) do))
(setq p23 (polar p14 (* 1.5 pi) H ))
(setq p1 (polar p14 pi (* D2 0.5 )))
(setq p4 (polar p14 0 (* D2 0.5 )))
(setq p3 (polar p23 0 (/ D1 2 )))
(setq p2 (polar p23 pi (/ D1 2 )))
(setq cen (inters p1 p2 p3 p4 nil))



s924310 在 2011-07-21, 11:19 作了第 2 次修改
avatar
s924310
初級會員
初級會員

文章總數 : 31
年齡 : 26
來自 : 高雄
職業 : 電腦繪圖
愛好 : 看熱鬧
個性 : 隨性
使用年資 : 4年
使用版本 : 2006
積分 : 2
經驗值 : 3062
威望值 : 21
注冊日期 : 2009-09-21
男 水瓶座 馬

回頂端 向下

回復: [已解決] 程式(inters nil)怎麼會錯誤

發表 由 pizg 于 2011-07-19, 11:22

你這程式有不少問題:
1.AutoCAD的變數是不分大小寫的, 所以D 和d 會是同一個值.
2.這兩行
(setq p14 (polar point (/ (* 3 pi )) (+ D 100 )))
(setq p23 (polar p14 (/ (* 3 pi )) H ))

(/ (* 3 pi ))
(/ (* 3 pi ))
錯誤.
3.請注意(/ D 2) 的傳回值

以上錯誤甚多, 請先修訂錯誤才能判斷 inters的值

avatar
pizg
高級會員
高級會員

文章總數 : 253
年齡 : 52
來自 : 桃園縣
職業 : 建築設計;程式設計
愛好 : 音樂;攝影;繪畫;棋奕;電腦
個性 : 隨和
使用年資 : 20↑
使用版本 : 2010
積分 : 10
經驗值 : 4089
威望值 : 320
發帖精華 : 1
注冊日期 : 2010-04-16
串連貼紙成功 男 摩羯座 龍

回頂端 向下

上一篇主題 下一篇主題 回頂端


 
這個論壇的權限:
無法 在這個版面回復文章