<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Finding the smallest number in Visual LISP, AutoLISP and General Customization Forum</title>
    <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/finding-the-smallest-number/m-p/9411836#M76472</link>
    <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/940934"&gt;@marko_ribar&lt;/a&gt;&amp;nbsp;wrote:&lt;/BLOCKQUOTE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;(cond
  ( (= ba1 (min ba1 ba2 ba3 ba4))
    (setq tmp ba1)
  )
  ( (= ba2 (min ba1 ba2 ba3 ba4))
    (setq tmp ba2)
  )
  ( (= ba3 (min ba1 ba2 ba3 ba4))
    (setq tmp ba3)
  )
  ( (= ba4 (min ba1 ba2 ba3 ba4))
    (setq tmp ba4)
  )
)
...
do with tmp all like you wanted with ba* (min)
...&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;HR /&gt;&lt;P&gt;Still I don' quite undertand what OP wants to achieve... Without (cond), why this couldn't all be simply :&lt;/P&gt;&lt;P&gt;(setq tmp (min ba1 ba2 ba3 ba4))&lt;/P&gt;&lt;P&gt;And 'tmp' could be used instead of any 'ba*'...&lt;/P&gt;</description>
    <pubDate>Tue, 31 Mar 2020 11:06:17 GMT</pubDate>
    <dc:creator>marko_ribar</dc:creator>
    <dc:date>2020-03-31T11:06:17Z</dc:date>
    <item>
      <title>Finding the smallest number</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/finding-the-smallest-number/m-p/9411219#M76462</link>
      <description>&lt;P&gt;HI&lt;BR /&gt;I’ll like to knot the smallest number form 4 different variables ,&lt;/P&gt;&lt;P&gt;but I need to keep track of the variable name.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Example.&lt;/P&gt;&lt;P&gt;Ba1 =3&lt;BR /&gt;Ba2 = 14&lt;BR /&gt;Ba3 = 40&lt;BR /&gt;Ba4 = 10&lt;BR /&gt;(min ba1 ba2 ba3 ba4)&lt;BR /&gt;Returns 3, but I need to know it is ba1&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;Henrik&lt;/P&gt;</description>
      <pubDate>Tue, 31 Mar 2020 04:58:35 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/finding-the-smallest-number/m-p/9411219#M76462</guid>
      <dc:creator>Henrik_Lo</dc:creator>
      <dc:date>2020-03-31T04:58:35Z</dc:date>
    </item>
    <item>
      <title>Re: Finding the smallest number</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/finding-the-smallest-number/m-p/9411251#M76463</link>
      <description>&lt;P&gt;Use a double list ((4 bal1)(45 bal5)(12 bal3)……… sort on X you will need to look at set read and eval though to get the variable name its a lambda thing which I am not very good at.&lt;/P&gt;&lt;P&gt;&lt;FONT&gt;(setq lst (list '("ba1" 1) '("bal2" 23) '("bal3" 12) '("bal4" 15)))&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT&gt;sort list on 2nd item cadr.&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT&gt;(set (read (car (nth 1 lst)))(cadr (nth 0 lst)))&lt;BR /&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 31 Mar 2020 05:43:21 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/finding-the-smallest-number/m-p/9411251#M76463</guid>
      <dc:creator>Sea-Haven</dc:creator>
      <dc:date>2020-03-31T05:43:21Z</dc:date>
    </item>
    <item>
      <title>Re: Finding the smallest number</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/finding-the-smallest-number/m-p/9411257#M76464</link>
      <description>&lt;LI-CODE lang="markup"&gt;(cond
  ( (= ba1 (min ba1 ba2 ba3 ba4))
    (setq tmp ba1)
  )
  ( (= ba2 (min ba1 ba2 ba3 ba4))
    (setq tmp ba2)
  )
  ( (= ba3 (min ba1 ba2 ba3 ba4))
    (setq tmp ba3)
  )
  ( (= ba4 (min ba1 ba2 ba3 ba4))
    (setq tmp ba4)
  )
)
...
do with tmp all like you wanted with ba* (min)
...&lt;/LI-CODE&gt;</description>
      <pubDate>Tue, 31 Mar 2020 05:45:15 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/finding-the-smallest-number/m-p/9411257#M76464</guid>
      <dc:creator>marko_ribar</dc:creator>
      <dc:date>2020-03-31T05:45:15Z</dc:date>
    </item>
    <item>
      <title>Re: Finding the smallest number</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/finding-the-smallest-number/m-p/9411287#M76465</link>
      <description>&lt;P&gt;For a long list of variables&lt;/P&gt;
&lt;P&gt;use vl-sort-i and vl-position&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 31 Mar 2020 06:02:22 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/finding-the-smallest-number/m-p/9411287#M76465</guid>
      <dc:creator>cadffm</dc:creator>
      <dc:date>2020-03-31T06:02:22Z</dc:date>
    </item>
    <item>
      <title>Re: Finding the smallest number</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/finding-the-smallest-number/m-p/9411290#M76466</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;You can try this:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="markup"&gt;(defun minSym (l)
  (nth (car (vl-sort-i (mapcar 'eval l) '&amp;lt;)) l)
)&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;(minSym '(ba1 ba2 ba3 ba4)) returns BA1.&lt;/P&gt;</description>
      <pubDate>Tue, 31 Mar 2020 06:11:04 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/finding-the-smallest-number/m-p/9411290#M76466</guid>
      <dc:creator>_gile</dc:creator>
      <dc:date>2020-03-31T06:11:04Z</dc:date>
    </item>
    <item>
      <title>Re: Finding the smallest number</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/finding-the-smallest-number/m-p/9411291#M76467</link>
      <description>&lt;P&gt;Nice idea , so rather than multiple conds with unknown number of variables could write a script (foreach val '(bal1 bal2.…..&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Have to find it again send a string which is lisp of your cond to the command line as its repeated but with new BalX.&lt;/P&gt;</description>
      <pubDate>Tue, 31 Mar 2020 06:06:33 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/finding-the-smallest-number/m-p/9411291#M76467</guid>
      <dc:creator>Sea-Haven</dc:creator>
      <dc:date>2020-03-31T06:06:33Z</dc:date>
    </item>
    <item>
      <title>Re: Finding the smallest number</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/finding-the-smallest-number/m-p/9411302#M76468</link>
      <description>&lt;P&gt;&lt;FONT face="Arial" size="2" color="#000000"&gt;HI all&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="Arial" size="2" color="#000000"&gt;Tangs a lot, simply a fantastic forum, tangs for helping med out&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT face="Arial" size="2" color="#000000"&gt;Regards&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="Arial" size="2" color="#000000"&gt;Henrik&lt;/FONT&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 31 Mar 2020 06:16:43 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/finding-the-smallest-number/m-p/9411302#M76468</guid>
      <dc:creator>Henrik_Lo</dc:creator>
      <dc:date>2020-03-31T06:16:43Z</dc:date>
    </item>
    <item>
      <title>Re: Finding the smallest number</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/finding-the-smallest-number/m-p/9411324#M76469</link>
      <description>&lt;P&gt;You can also use a 'reduce' function.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="markup"&gt;(defun reduce (fun lst)
  (setq fun (eval fun))
  (while (cdr lst)
    (setq lst (cons (fun (car lst) (cadr lst)) (cddr lst)))
  )
  (car lst)
)&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;(reduce '(lambda (a b) (if (&amp;lt; (eval a) (eval b)) a b)) '(ba1 ba2 ba3 ba4)) return BA1&lt;/P&gt;</description>
      <pubDate>Tue, 31 Mar 2020 06:36:32 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/finding-the-smallest-number/m-p/9411324#M76469</guid>
      <dc:creator>_gile</dc:creator>
      <dc:date>2020-03-31T06:36:32Z</dc:date>
    </item>
    <item>
      <title>Re: Finding the smallest number</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/finding-the-smallest-number/m-p/9411361#M76470</link>
      <description>&lt;LI-CODE lang="markup"&gt;(defun set_min (lst)(mapcar 'set '(Ba1 Ba2 Ba3 Ba4)(vl-sort lst '&amp;lt;)))

(set_min '(40 30 20 10)) -&amp;gt;(10 20 30 40)

!ba1 -&amp;gt; 10
!ba2 -&amp;gt; 20
!ba3 -&amp;gt; 30
!ba4 -&amp;gt; 40 &lt;/LI-CODE&gt;&lt;P&gt;This way ba1 will allways hold smallest value and ba4 will be largest&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;(defun set_min (lst)(mapcar 'set '(Ba1 Ba2 Ba3 Ba4)(vl-sort lst '&amp;lt;)))

(set_min '(40 30 20 10)) -&amp;gt;(10 20 30 40)

!ba1 -&amp;gt; 10
!ba2 -&amp;gt; 20
!ba3 -&amp;gt; 30
!ba4 -&amp;gt; 40 ​&lt;/LI-CODE&gt;</description>
      <pubDate>Tue, 31 Mar 2020 06:59:16 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/finding-the-smallest-number/m-p/9411361#M76470</guid>
      <dc:creator>hak_vz</dc:creator>
      <dc:date>2020-03-31T06:59:16Z</dc:date>
    </item>
    <item>
      <title>Re: Finding the smallest number</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/finding-the-smallest-number/m-p/9411826#M76471</link>
      <description>&lt;P&gt;Let say you have run some code and instead of checkin which of vars in minimal you can reasign them all in a range from ba1 to ba4&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;;let say this are results of some previous calculations
(setq ba1 50.2 ba2 30.3 ba3 70.4 ba4 10.4)
;we assign values to new list p
(setq p (list ba1 ba2 ba3 ba4))
; and reassign values to vars ba1 ..ba4
(set_min (list ba1 ba2 ba3 ba4))
!ba1 -&amp;gt; 10.4
!ba2 -&amp;gt; 30.3
!ba3 -&amp;gt; 50.2
!ba4 -&amp;gt; 70.4&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 31 Mar 2020 11:03:49 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/finding-the-smallest-number/m-p/9411826#M76471</guid>
      <dc:creator>hak_vz</dc:creator>
      <dc:date>2020-03-31T11:03:49Z</dc:date>
    </item>
    <item>
      <title>Re: Finding the smallest number</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/finding-the-smallest-number/m-p/9411836#M76472</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/940934"&gt;@marko_ribar&lt;/a&gt;&amp;nbsp;wrote:&lt;/BLOCKQUOTE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;(cond
  ( (= ba1 (min ba1 ba2 ba3 ba4))
    (setq tmp ba1)
  )
  ( (= ba2 (min ba1 ba2 ba3 ba4))
    (setq tmp ba2)
  )
  ( (= ba3 (min ba1 ba2 ba3 ba4))
    (setq tmp ba3)
  )
  ( (= ba4 (min ba1 ba2 ba3 ba4))
    (setq tmp ba4)
  )
)
...
do with tmp all like you wanted with ba* (min)
...&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;HR /&gt;&lt;P&gt;Still I don' quite undertand what OP wants to achieve... Without (cond), why this couldn't all be simply :&lt;/P&gt;&lt;P&gt;(setq tmp (min ba1 ba2 ba3 ba4))&lt;/P&gt;&lt;P&gt;And 'tmp' could be used instead of any 'ba*'...&lt;/P&gt;</description>
      <pubDate>Tue, 31 Mar 2020 11:06:17 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/finding-the-smallest-number/m-p/9411836#M76472</guid>
      <dc:creator>marko_ribar</dc:creator>
      <dc:date>2020-03-31T11:06:17Z</dc:date>
    </item>
    <item>
      <title>Re: Finding the smallest number</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/finding-the-smallest-number/m-p/9412015#M76473</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/940934"&gt;@marko_ribar&lt;/a&gt;&amp;nbsp;wrote:
&lt;P class="1585658104488"&gt;....&lt;/P&gt;
&lt;HR /&gt;
&lt;P&gt;Still I don' quite undertand what OP wants to achieve... Without (cond), why this couldn't all be simply :&lt;/P&gt;
&lt;P&gt;(setq tmp (min ba1 ba2 ba3 ba4))&lt;/P&gt;
&lt;P&gt;....&lt;/P&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;I thought it was pretty clear in Message 1 -- they want to know &lt;STRONG&gt;&lt;EM&gt;which of the variable names&lt;/EM&gt;&lt;/STRONG&gt;&amp;nbsp; holds the smallest value, not &lt;EM&gt;what that smallest value is&lt;/EM&gt;, which is what that expression returns.&lt;/P&gt;</description>
      <pubDate>Tue, 31 Mar 2020 12:41:39 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/finding-the-smallest-number/m-p/9412015#M76473</guid>
      <dc:creator>Kent1Cooper</dc:creator>
      <dc:date>2020-03-31T12:41:39Z</dc:date>
    </item>
    <item>
      <title>Re: Finding the smallest number</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/finding-the-smallest-number/m-p/9412224#M76474</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/69526"&gt;@Kent1Cooper&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/940934"&gt;@marko_ribar&lt;/a&gt;&amp;nbsp;wrote:&lt;P class="1585658104488"&gt;....&lt;/P&gt;&lt;HR /&gt;&lt;P&gt;Still I don' quite undertand what OP wants to achieve... Without (cond), why this couldn't all be simply :&lt;/P&gt;&lt;P&gt;(setq tmp (min ba1 ba2 ba3 ba4))&lt;/P&gt;&lt;P&gt;....&lt;/P&gt;&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;I thought it was pretty clear in Message 1 -- they want to know &lt;STRONG&gt;&lt;EM&gt;which of the variable names&lt;/EM&gt;&lt;/STRONG&gt;&amp;nbsp; holds the smallest value, not &lt;EM&gt;what that smallest value is&lt;/EM&gt;, which is what that expression returns.&lt;/P&gt;&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;Then simply :&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;(setq tmp (min ba1 ba2 ba3 ba4))
(setq tmp
  (cond
    ( (= tmp ba1)
      "ba1"
    )
    ( (= tmp ba2)
      "ba2"
    )
    ( (= tmp ba3)
      "ba3"
    )
    ( (= tmp ba4)
      "ba4"
    )
  )
)
(princ tmp)&lt;/LI-CODE&gt;</description>
      <pubDate>Tue, 31 Mar 2020 13:57:37 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/finding-the-smallest-number/m-p/9412224#M76474</guid>
      <dc:creator>marko_ribar</dc:creator>
      <dc:date>2020-03-31T13:57:37Z</dc:date>
    </item>
    <item>
      <title>Re: Finding the smallest number</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/finding-the-smallest-number/m-p/9412411#M76475</link>
      <description>&lt;P&gt;Another one more succinct...&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;(defun smallestvar ( lstvars / l minval minvar )
  (setq l (mapcar 'eval lstvars))
  (setq minval (apply 'min l))
  (setq minvar (vl-some '(lambda ( x ) (if (= (eval x) minval) x)) lstvars))
  minvar
)

(setq lstvars '(ba1 ba2 ba3 ba4))
(setq ba1 10.0 ba2 5.0 ba3 15.0 ba4 20.0)

(princ (smallestvar lstvars))
(princ)&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;HTH.&lt;/P&gt;</description>
      <pubDate>Tue, 31 Mar 2020 15:14:08 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/finding-the-smallest-number/m-p/9412411#M76475</guid>
      <dc:creator>marko_ribar</dc:creator>
      <dc:date>2020-03-31T15:14:08Z</dc:date>
    </item>
    <item>
      <title>Re: Finding the smallest number</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/finding-the-smallest-number/m-p/9413243#M76476</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/251764"&gt;@Henrik_Lo&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;
&lt;P&gt;....&lt;BR /&gt;I’ll like to knot the smallest number form 4 different variables ,&lt;/P&gt;
&lt;P&gt;....&lt;/P&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Would it always be 4 and only 4?&amp;nbsp; It appears some of the things suggested here so far depend on that, so you would need different versions for different numbers of variables, but others presumably could work with any number of them.&lt;/P&gt;</description>
      <pubDate>Tue, 31 Mar 2020 20:30:01 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/finding-the-smallest-number/m-p/9413243#M76476</guid>
      <dc:creator>Kent1Cooper</dc:creator>
      <dc:date>2020-03-31T20:30:01Z</dc:date>
    </item>
  </channel>
</rss>

