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

Join the forum, it's quick and easy

AutoCAD顧問
還沒有註冊嗎...即日起免費註冊,所有最完整的AutoCAD討論、教學及資源都在論壇裡喔~
AutoCAD顧問
Would you like to react to this message? Create an account in a few clicks or log in to continue.
[已解決]lisp有辦法在一數字串列內,找最接近輸入值的結果嗎? 類似excel的match Ioaoe110[已解決]lisp有辦法在一數字串列內,找最接近輸入值的結果嗎? 類似excel的match 2020-310[已解決]lisp有辦法在一數字串列內,找最接近輸入值的結果嗎? 類似excel的match Oiu15010[已解決]lisp有辦法在一數字串列內,找最接近輸入值的結果嗎? 類似excel的match 2020-211[已解決]lisp有辦法在一數字串列內,找最接近輸入值的結果嗎? 類似excel的match Ia15010[已解決]lisp有辦法在一數字串列內,找最接近輸入值的結果嗎? 類似excel的match Aizyao10[已解決]lisp有辦法在一數字串列內,找最接近輸入值的結果嗎? 類似excel的match Uos15010[已解決]lisp有辦法在一數字串列內,找最接近輸入值的結果嗎? 類似excel的match BPl3tjj[已解決]lisp有辦法在一數字串列內,找最接近輸入值的結果嗎? 類似excel的match Ziao1510
[已解決]lisp有辦法在一數字串列內,找最接近輸入值的結果嗎? 類似excel的match Oo-2-110[已解決]lisp有辦法在一數字串列內,找最接近輸入值的結果嗎? 類似excel的match Zuoiy_10[已解決]lisp有辦法在一數字串列內,找最接近輸入值的結果嗎? 類似excel的match Aizyao11[已解決]lisp有辦法在一數字串列內,找最接近輸入值的結果嗎? 類似excel的match Iyb_1510[已解決]lisp有辦法在一數字串列內,找最接近輸入值的結果嗎? 類似excel的match Aoe1-111[已解決]lisp有辦法在一數字串列內,找最接近輸入值的結果嗎? 類似excel的match Uos15011[已解決]lisp有辦法在一數字串列內,找最接近輸入值的結果嗎? 類似excel的match Aoe2da10[已解決]lisp有辦法在一數字串列內,找最接近輸入值的結果嗎? 類似excel的match Aoe2da11[已解決]lisp有辦法在一數字串列內,找最接近輸入值的結果嗎? 類似excel的match Aoe10

[已解決]lisp有辦法在一數字串列內,找最接近輸入值的結果嗎? 類似excel的match

2 posters

向下

[已解決]lisp有辦法在一數字串列內,找最接近輸入值的結果嗎? 類似excel的match Empty [已解決]lisp有辦法在一數字串列內,找最接近輸入值的結果嗎? 類似excel的match

發表 由 millerwu91 2019-02-15, 11:30

請教各位前輩:
        我正在寫一個關於決定出圖比例的lisp,但遇到了一點困難。
 我定義了幾個出圖比例,如10 20 30 100 200,假設今天由圖面框選範圍計算出來後,出圖比例是195,最接近200,我想取200這個數字,有什麼方法嗎…
有想過將195加入定義的串列,然後用vl-sort排序,找到195這個位置,用if前後比對看哪個值比較近再取,但似乎沒有查尋195在串列內是第幾個位置的函數?
或者各位前輩有沒有什麼比較好的做法


millerwu91 在 2019-02-15, 12:59 作了第 1 次修改
millerwu91
millerwu91
一般會員
一般會員

文章總數 : 36
年齡 : 37
來自 : 板橋
職業 : 土木工程
愛好 : 看電影
個性 : 友善
使用年資 : 1
使用版本 : 2012
經驗值 : 3710
威望值 : 6
注冊日期 : 2014-09-16
男 處女座 虎

回頂端 向下

[已解決]lisp有辦法在一數字串列內,找最接近輸入值的結果嗎? 類似excel的match Empty 回復: [已解決]lisp有辦法在一數字串列內,找最接近輸入值的結果嗎? 類似excel的match

發表 由 naruto018 2019-02-15, 12:47

寫個簡易函數就可以達成了
代碼:
;;;搜尋在數值列表中最接近的數值
;;;作者:naruto018
;;;時間:20190215
;;;(listnear 數值列表 搜尋數值)
;;;回傳:數值
(defun listnear ( lst num / )
    (car (vl-sort lst
     (function (lambda (a b)
   (< (abs (- a num)) (abs (- b num)))))))
    );_結束

_$ (listnear '(10 20 30 100 200) 195)
200
_$ (listnear '(10 20 30 100 200) 105)
100
_$ (listnear '(10 20 30 100 200) 25)
20
_$ (listnear '(10 20 30 100 200) 35)
30
_$ (listnear '(10 20 30 100 200) 45)
30
_$ (listnear '(10 20 30 100 200) 65)
30
_$ (listnear '(10 20 30 100 200) 75)
100


naruto018 在 2019-02-15, 12:58 作了第 1 次修改
naruto018
naruto018
中級會員
中級會員

文章總數 : 207
年齡 : 32
來自 : 高雄
職業 : 學習中(CAD,Revit,Excel VBA)
愛好 : 當個懶熊
個性 : 內向
使用年資 : 新手
使用版本 : 2015
AutoCAD基礎篇等級 : 10星級
積分 : 5
經驗值 : 4233
威望值 : 558
注冊日期 : 2016-11-29
藍鵲726號
男 摩羯座 羊

回頂端 向下

[已解決]lisp有辦法在一數字串列內,找最接近輸入值的結果嗎? 類似excel的match Empty 回復: [已解決]lisp有辦法在一數字串列內,找最接近輸入值的結果嗎? 類似excel的match

發表 由 millerwu91 2019-02-15, 12:54

OOPS,感謝NARUTO018大大,功力太弱,我來研究一下這個程式碼。
millerwu91
millerwu91
一般會員
一般會員

文章總數 : 36
年齡 : 37
來自 : 板橋
職業 : 土木工程
愛好 : 看電影
個性 : 友善
使用年資 : 1
使用版本 : 2012
經驗值 : 3710
威望值 : 6
注冊日期 : 2014-09-16
男 處女座 虎

回頂端 向下

回頂端


 
這個論壇的權限:
無法 在這個版面回復文章
[已解決]lisp有辦法在一數字串列內,找最接近輸入值的結果嗎? 類似excel的match Ioaoe110[已解決]lisp有辦法在一數字串列內,找最接近輸入值的結果嗎? 類似excel的match 2020-310[已解決]lisp有辦法在一數字串列內,找最接近輸入值的結果嗎? 類似excel的match Oiu15010[已解決]lisp有辦法在一數字串列內,找最接近輸入值的結果嗎? 類似excel的match 2020-211[已解決]lisp有辦法在一數字串列內,找最接近輸入值的結果嗎? 類似excel的match Ia15010[已解決]lisp有辦法在一數字串列內,找最接近輸入值的結果嗎? 類似excel的match Aizyao10[已解決]lisp有辦法在一數字串列內,找最接近輸入值的結果嗎? 類似excel的match Uos15010[已解決]lisp有辦法在一數字串列內,找最接近輸入值的結果嗎? 類似excel的match BPl3tjj[已解決]lisp有辦法在一數字串列內,找最接近輸入值的結果嗎? 類似excel的match Ziao1510
[已解決]lisp有辦法在一數字串列內,找最接近輸入值的結果嗎? 類似excel的match Oo-2-110[已解決]lisp有辦法在一數字串列內,找最接近輸入值的結果嗎? 類似excel的match Zuoiy_10[已解決]lisp有辦法在一數字串列內,找最接近輸入值的結果嗎? 類似excel的match Aizyao11[已解決]lisp有辦法在一數字串列內,找最接近輸入值的結果嗎? 類似excel的match Iyb_1510[已解決]lisp有辦法在一數字串列內,找最接近輸入值的結果嗎? 類似excel的match Aoe1-111[已解決]lisp有辦法在一數字串列內,找最接近輸入值的結果嗎? 類似excel的match Uos15011[已解決]lisp有辦法在一數字串列內,找最接近輸入值的結果嗎? 類似excel的match Aoe2da10[已解決]lisp有辦法在一數字串列內,找最接近輸入值的結果嗎? 類似excel的match Aoe2da11[已解決]lisp有辦法在一數字串列內,找最接近輸入值的結果嗎? 類似excel的match Aoe10