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

[已解決]IF問題請教

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

[已解決]IF問題請教

發表 由 adslwang 于 周六 11 6月 2011 - 15:01

我的問題如下:
1.我想練習一個可以輸入A或S就可以進入到那一個程序,可是不管我輸入什麼只一直停留在游標轉角度上跑
2.紅色的部份是兩相矛盾的,也嘗試刪除其中之一,依然沒有作用....
以上,我想應該是觀念出現了問題,請各位前輩幫忙一下,謝謝........

(defun c:pt()
(setq sr (getstring "請輸入 (A)兩點轉游標轉角度 (S)查角度值(A):"))
(if (= sr "")(setq sr "A"))
(setq sr (strcase sr))
(COND
(if (= sr "A")
(setq asw1 (getpoint "\n 對準物件第1點"))
(setq asw2 (getpoint asw1 "\n 對準物件第2點"))
(setq ang (angle asw1 asw2))
(setq angh (* ang 57.29))
(command "snapang" angh "")
)
(if (= sr "S")
(setq asw1 (getpoint "\n 對準物件第1點"))
(setq asw2 (getpoint asw1 "\n 對準物件第2點"))
(setq ang (angle asw1 asw2))
(setq angh (* ang 57.29))
)
(t (prompt"\n 請輸入正確字體"))
)
(prin1)
)
頭暈目眩


adslwang 在 周六 11 6月 2011 - 20:42 作了第 2 次修改
avatar
adslwang
高級會員
高級會員

文章總數 : 372
年齡 : 39
來自 : 台南
職業 : 自由業
愛好 : 電腦、旅行
個性 : 樂觀
使用年資 : 1年
使用版本 : 2009
積分 : 17
經驗值 : 4603
威望值 : 355
回帖精華 : 1
注冊日期 : 2008-10-02
藍鵲88號
男 處女座 馬

回頂端 向下

回復: [已解決]IF問題請教

發表 由 tarpon 于 周六 11 6月 2011 - 18:13

已使用cond就不用if
直接用cond做判斷即可
第一個if也拿掉
(COND
((= sr "A")
((setq asw1 (getpoint "\n 對準物件第1點"))
(setq asw2 (getpoint asw1 "\n 對準物件第2點"))
(setq ang (angle asw1 asw2))
(setq angh (* ang 57.29))
(command "snapang" angh "")
)
)
((= sr "S")
((setq asw1 (getpoint "\n 對準物件第1點"))
(setq asw2 (getpoint asw1 "\n 對準物件第2點"))
(setq ang (angle asw1 asw2))
(setq angh (* ang 57.29))
)
)
(t (prompt"\n 請輸入正確字體"))
)
我沒測試您試一下吧

Tiger&蘋果爸 寫到:讚啦!! 謝謝熱心回覆~< 積分 +1>
[公告]關於團隊成員的回文及貢獻


Tiger&蘋果爸 在 周六 11 6月 2011 - 22:45 作了第 1 次修改 (原因 : 非常專業喔~)
avatar
tarpon
中級會員
中級會員

文章總數 : 201
年齡 : 27
來自 : 台北
職業 : 設計
愛好 : 打球
個性 : 溫和
使用年資 : 5年
使用版本 : 2006
積分 : 6
經驗值 : 3593
威望值 : 238
注冊日期 : 2010-07-01
串連貼紙成功 男 巨蟹座 馬

回頂端 向下

回復: [已解決]IF問題請教

發表 由 adslwang 于 周六 11 6月 2011 - 20:34

tarpon 寫到:已使用cond就不用if
直接用cond做判斷即可
第一個if也拿掉
(COND
((= sr "A")
((setq asw1 (getpoint "\n 對準物件第1點"))
(setq asw2 (getpoint asw1 "\n 對準物件第2點"))
(setq ang (angle asw1 asw2))
(setq angh (* ang 57.29))
(command "snapang" angh "")
)
)
((= sr "S")
((setq asw1 (getpoint "\n 對準物件第1點"))
(setq asw2 (getpoint asw1 "\n 對準物件第2點"))
(setq ang (angle asw1 asw2))
(setq angh (* ang 57.29))
)
)
(t (prompt"\n 請輸入正確字體"))
)
我沒測試您試一下吧

前輩,謝謝您 的確是多加了IF的問題,練習終於成功了,謝謝您的幫忙。
竊喜
avatar
adslwang
高級會員
高級會員

文章總數 : 372
年齡 : 39
來自 : 台南
職業 : 自由業
愛好 : 電腦、旅行
個性 : 樂觀
使用年資 : 1年
使用版本 : 2009
積分 : 17
經驗值 : 4603
威望值 : 355
回帖精華 : 1
注冊日期 : 2008-10-02
藍鵲88號
男 處女座 馬

回頂端 向下

回復: [已解決]IF問題請教

發表 由 Tiger&蘋果爸 于 周一 13 6月 2011 - 22:58

lsj 寫到:1. 可再修改限制輸入A或S
(initget "A a S s")
(setq sr (getkword "\n請輸入[兩點轉游標轉角度(A)/查角度值(S)] :"))
(if (= sr nil)(setq sr "A"))
2. 57.29為(/ 180 pi)略值,若用在計算上不建議取略值
個人淺見供參考
的確!
再將已上2點加入後,整個程式就更完整!
讚啦!!
avatar
Tiger&蘋果爸
系統管理員
系統管理員

文章總數 : 17200
年齡 : 41
來自 : 台北市文山區
職業 : AutoCAD顧問
愛好 : 蹓狗/戶外活動/拍照
個性 : 幽默/樂觀/善良
使用年資 : 15↑
使用版本 : AutoCAD 2016
經驗值 : 64642
威望值 : 12750
注冊日期 : 2008-04-23
2D基礎函授 2D進階函授 3D基礎函授 https://i11.servimg.com/u/f11/19/71/67/71/2d3d10.png2D+3D線上 顧問外掛程式 經典問與答讀者 藍鵲1號
2009聚會勳章 2010聚會勳章 2011聚會勳章 2012聚會勳章 2013勳章-2D基礎 2014聚會勳章 2015聚會勳章 2016聚會勳章 串連貼紙成功 男 水瓶座 兔

http://mypaper.pchome.com.tw/kv1012tiger

回頂端 向下

回復: [已解決]IF問題請教

發表 由 adslwang 于 周日 19 6月 2011 - 20:39

謝謝兩位前輩教導
再請問一下57.29我有兩個問題想問:
1.如不採用57.29則採用(/ 180 pi)是比較好的方式嘛 還是有其它的方法呢
avatar
adslwang
高級會員
高級會員

文章總數 : 372
年齡 : 39
來自 : 台南
職業 : 自由業
愛好 : 電腦、旅行
個性 : 樂觀
使用年資 : 1年
使用版本 : 2009
積分 : 17
經驗值 : 4603
威望值 : 355
回帖精華 : 1
注冊日期 : 2008-10-02
藍鵲88號
男 處女座 馬

回頂端 向下

回復: [已解決]IF問題請教

發表 由 avene 于 周四 7 7月 2011 - 12:57

感謝版大分享這各問題~有學到歐~
avatar
avene
一般會員
一般會員

文章總數 : 61
年齡 : 39
來自 : 桃園
職業 : 製圖
愛好 : 羽毛球
個性 : 內向
使用年資 : 5
使用版本 : 2009
經驗值 : 2497
威望值 : 9
注冊日期 : 2011-05-13
女 巨蟹座 馬

回頂端 向下

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


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