<?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: Increment Numbers after = sign in Multileaders in Visual LISP, AutoLISP and General Customization Forum</title>
    <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/increment-numbers-after-sign-in-multileaders/m-p/13431620#M990</link>
    <description>&lt;P&gt;hey you there,&lt;/P&gt;&lt;P&gt;and another one goes below&lt;/P&gt;&lt;LI-CODE lang="lisp"&gt;;*****************************************************************************************************************
;
;	'add_value_mleaderss' custom command adds value to certain numbers within mleader strings
;	komondormrex, apr, 2025
;	totally lm free
;
;*****************************************************************************************************************

(defun string_to_list (string delimiter_string / out_list)
    (setq char_list (vl-string-&amp;gt;list string))
  (defun parse_string (char_list delimiter_string / substring)
    (setq char_list_remainder char_list)
    (if (vl-some '(lambda (ascii_code)
              (setq substring (cons ascii_code substring)
                  char_list_remainder (cdr char_list_remainder)
            )
              (member ascii_code (vl-string-&amp;gt;list delimiter_string))
              )
              char_list
      )
      (progn
        (setq delimiter_char (chr (car substring)))
          (if (/= "" (setq substring (vl-list-&amp;gt;string (reverse (cdr substring)))))
          (setq out_list (append out_list (list substring delimiter_char)))
          (setq out_list (append out_list (list delimiter_char)))
        )
        (parse_string (setq char_list char_list_remainder) delimiter_string)
      )
      (if (/= "" (setq substring (vl-list-&amp;gt;string (reverse substring))))
        (setq out_list (append out_list (list substring)))
      )
     )
     out_list
  )
  (parse_string char_list delimiter_string)
)

;*****************************************************************************************************************

(defun c:add_value_mleaders (/ addition mleader_sset new_text_list do_add old_text_group)
  (if (null addition_saved) (setq addition_saved 1.0)) 
  (if (null (setq addition (getreal (strcat "\nEnter addition +-number &amp;lt;" (rtos addition_saved) "&amp;gt;: "))))
	(setq addition addition_saved)
	(setq addition_saved addition)
  )
  (if (setq mleader_sset (ssget '((0 . "multileader") (304 . "*#*"))))
    (foreach text (vl-remove-if 'listp (mapcar 'cadr (ssnamex mleader_sset)))
      (setq new_text_list nil do_add nil old_text_group (assoc 304 (entget text)))
      (foreach sub_string (string_to_list (cdr (setq old_text_group (assoc 304 (entget text)))) "\\P=")
        (if (and (wcmatch (strcase sub_string) "=")
                 (null do_add)
            )
            (setq do_add t)
        )
        (if (and (vl-every '(lambda (asc) (member asc (vl-string-&amp;gt;list "0123456789.")))
                   	    (vl-string-&amp;gt;list sub_string)
                 )
                 do_add
            )
            (setq new_text_list (append new_text_list (list (rtos (+ (atof sub_string) addition))))
            	  do_add nil
            )
            (setq new_text_list (append new_text_list (list sub_string)))
        )
      )
      (entmod (subst (cons 304 (apply 'strcat new_text_list)) old_text_group (entget text)))
    )
  )
  (princ)
)

;*****************************************************************************************************************&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Thu, 17 Apr 2025 19:30:33 GMT</pubDate>
    <dc:creator>komondormrex</dc:creator>
    <dc:date>2025-04-17T19:30:33Z</dc:date>
    <item>
      <title>Increment Numbers after = sign in Multileaders</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/increment-numbers-after-sign-in-multileaders/m-p/13429941#M986</link>
      <description>&lt;P&gt;Greetings,&lt;BR /&gt;&lt;BR /&gt;We have switched datums and so all Invert levels and Lid Levels need to be globally incremented (added or subtracted) by an amount. This factor varies between different plans so would be a user input value.&lt;BR /&gt;&lt;BR /&gt;Our levels are displayed in a Multileader in the format&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="shahrose_chatha_0-1744842700319.png" style="width: 600px;"&gt;&lt;img src="https://forums.autodesk.com/t5/image/serverpage/image-id/1490335i03052AA68D7F655D/image-size/medium?v=v2&amp;amp;px=400" role="button" title="shahrose_chatha_0-1744842700319.png" alt="shahrose_chatha_0-1744842700319.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;So the increment should ignore the numbers in the top two lines and should ignore the numbers succeeding the IL letters since they are just a nomenclature that will remain the same. e.g IL1, IL2, IL3, IL4 keep these numbers as is. The numbers that will be adjusted are the ones after the equals sign.&lt;BR /&gt;&lt;BR /&gt;In summary a lisp that increments numbers after an equals sign in selected multileaders.&lt;BR /&gt;&lt;BR /&gt;I have attached an INC lisp that does not have a filter feautre&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 16 Apr 2025 22:43:50 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/increment-numbers-after-sign-in-multileaders/m-p/13429941#M986</guid>
      <dc:creator>ShadowJag</dc:creator>
      <dc:date>2025-04-16T22:43:50Z</dc:date>
    </item>
    <item>
      <title>Re: Increment Numbers after = sign in Multileaders</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/increment-numbers-after-sign-in-multileaders/m-p/13430057#M987</link>
      <description>&lt;P&gt;Post a sample dwg if its a common block used in the leader may be easier to look at attributes and update them.&lt;/P&gt;</description>
      <pubDate>Thu, 17 Apr 2025 00:55:43 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/increment-numbers-after-sign-in-multileaders/m-p/13430057#M987</guid>
      <dc:creator>Sea-Haven</dc:creator>
      <dc:date>2025-04-17T00:55:43Z</dc:date>
    </item>
    <item>
      <title>Re: Increment Numbers after = sign in Multileaders</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/increment-numbers-after-sign-in-multileaders/m-p/13430222#M988</link>
      <description>&lt;P&gt;Please see attached&lt;/P&gt;</description>
      <pubDate>Thu, 17 Apr 2025 03:18:16 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/increment-numbers-after-sign-in-multileaders/m-p/13430222#M988</guid>
      <dc:creator>ShadowJag</dc:creator>
      <dc:date>2025-04-17T03:18:16Z</dc:date>
    </item>
    <item>
      <title>Re: Increment Numbers after = sign in Multileaders</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/increment-numbers-after-sign-in-multileaders/m-p/13430763#M989</link>
      <description>&lt;P&gt;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/15488475"&gt;@ShadowJag&lt;/a&gt;&amp;nbsp; hi,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;check INC-ML command.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;enjoy&lt;/P&gt;&lt;P&gt;Moshe&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="lisp"&gt;(vl-load-com) ; load activex support

(defun c:inc-ml (/ askreal  _isNumeric ; local functions
		   adoc definc savDimzin inc ss ename elist mtext i ch digits data^)

 (defun askreal (msg def / ask)
  (initget 2)
  (if (not (setq ask (getreal (strcat "\n" msg " &amp;lt;" (rtos def 2 2) "&amp;gt;: "))))
   (setq ask def)
   (setq def ask)
  )
 ); askreal


 ; return T if 's' is number
 (defun _isNumeric (s)
  (or
    (=  (atoi s) 46)
    (&amp;gt;= (atoi s) 48) (&amp;lt;= (atoi s) 57)
  )
 ); _isNumeric


 ; here start c:inc-ml
 (setq adoc (vla-get-activedocument (vlax-get-acad-object)))
 (vla-startUndomark adoc)

 (if (= (getvar "userr1") 0.0)
  (setq definc (setvar "userr1" 0.1))
  (setq definc (getvar "userr1"))
 )

 (setq savDimzin (getvar "dimzin"))
 (setvar "dimzin" 0)

 (if (and
       (setvar "userr1" (setq inc (askreal "Increment" definc)))
       (setq ss (ssget '((0 . "MULTILEADER"))))
     )
  (progn
   (foreach ename (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss)))
    (setq elist (entget ename))
    (setq mtext (cdr (assoc '304 elist)))

    (setq i 1 ch (substr mtext i 1))
    (while (/= ch "")
     (if (eq ch "=")
      (progn
       (setq i (1+ i) ch (substr mtext i 1) digits "")
       (while (and (/= ch "\\") (/= ch ""))
        (if (_isNumeric ch)
         (setq digits (strcat digits ch))
        )
        (setq i (1+ i) ch (substr mtext i 1))
       ); while

       (setq data^ (cons digits data^))
      ); progn
     ); if

     (setq i (1+ i) ch (substr mtext i 1))
    ); while

    (foreach digits data^
     (while (vl-string-search digits mtext)
      (setq mtext (vl-string-subst (rtos (+ (atof digits) inc) 2 2) digits mtext))
     )
    ); foreach

    (entmod (subst (cons '304 mtext) (assoc '304 elist) elist)) ; update mleader text
   ); foreach
  ); progn
 ); if

 (setvar "dimzin" savDimzin)
  
 (vla-endUndomark adoc)
 (vlax-release-object adoc)

 (princ)
); c:inc-ml&lt;/LI-CODE&gt;</description>
      <pubDate>Thu, 17 Apr 2025 11:06:40 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/increment-numbers-after-sign-in-multileaders/m-p/13430763#M989</guid>
      <dc:creator>Moshe-A</dc:creator>
      <dc:date>2025-04-17T11:06:40Z</dc:date>
    </item>
    <item>
      <title>Re: Increment Numbers after = sign in Multileaders</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/increment-numbers-after-sign-in-multileaders/m-p/13431620#M990</link>
      <description>&lt;P&gt;hey you there,&lt;/P&gt;&lt;P&gt;and another one goes below&lt;/P&gt;&lt;LI-CODE lang="lisp"&gt;;*****************************************************************************************************************
;
;	'add_value_mleaderss' custom command adds value to certain numbers within mleader strings
;	komondormrex, apr, 2025
;	totally lm free
;
;*****************************************************************************************************************

(defun string_to_list (string delimiter_string / out_list)
    (setq char_list (vl-string-&amp;gt;list string))
  (defun parse_string (char_list delimiter_string / substring)
    (setq char_list_remainder char_list)
    (if (vl-some '(lambda (ascii_code)
              (setq substring (cons ascii_code substring)
                  char_list_remainder (cdr char_list_remainder)
            )
              (member ascii_code (vl-string-&amp;gt;list delimiter_string))
              )
              char_list
      )
      (progn
        (setq delimiter_char (chr (car substring)))
          (if (/= "" (setq substring (vl-list-&amp;gt;string (reverse (cdr substring)))))
          (setq out_list (append out_list (list substring delimiter_char)))
          (setq out_list (append out_list (list delimiter_char)))
        )
        (parse_string (setq char_list char_list_remainder) delimiter_string)
      )
      (if (/= "" (setq substring (vl-list-&amp;gt;string (reverse substring))))
        (setq out_list (append out_list (list substring)))
      )
     )
     out_list
  )
  (parse_string char_list delimiter_string)
)

;*****************************************************************************************************************

(defun c:add_value_mleaders (/ addition mleader_sset new_text_list do_add old_text_group)
  (if (null addition_saved) (setq addition_saved 1.0)) 
  (if (null (setq addition (getreal (strcat "\nEnter addition +-number &amp;lt;" (rtos addition_saved) "&amp;gt;: "))))
	(setq addition addition_saved)
	(setq addition_saved addition)
  )
  (if (setq mleader_sset (ssget '((0 . "multileader") (304 . "*#*"))))
    (foreach text (vl-remove-if 'listp (mapcar 'cadr (ssnamex mleader_sset)))
      (setq new_text_list nil do_add nil old_text_group (assoc 304 (entget text)))
      (foreach sub_string (string_to_list (cdr (setq old_text_group (assoc 304 (entget text)))) "\\P=")
        (if (and (wcmatch (strcase sub_string) "=")
                 (null do_add)
            )
            (setq do_add t)
        )
        (if (and (vl-every '(lambda (asc) (member asc (vl-string-&amp;gt;list "0123456789.")))
                   	    (vl-string-&amp;gt;list sub_string)
                 )
                 do_add
            )
            (setq new_text_list (append new_text_list (list (rtos (+ (atof sub_string) addition))))
            	  do_add nil
            )
            (setq new_text_list (append new_text_list (list sub_string)))
        )
      )
      (entmod (subst (cons 304 (apply 'strcat new_text_list)) old_text_group (entget text)))
    )
  )
  (princ)
)

;*****************************************************************************************************************&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 17 Apr 2025 19:30:33 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/increment-numbers-after-sign-in-multileaders/m-p/13431620#M990</guid>
      <dc:creator>komondormrex</dc:creator>
      <dc:date>2025-04-17T19:30:33Z</dc:date>
    </item>
    <item>
      <title>Re: Increment Numbers after = sign in Multileaders</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/increment-numbers-after-sign-in-multileaders/m-p/13441386#M991</link>
      <description>&lt;P&gt;Hi Moshe, I have tested your code and it completes majority of the function however it deletes some lines from the multileaders. I have attached another DWG file for better reference. If you run the lisp and compare to the original you can see some lines have been deleted.&lt;/P&gt;</description>
      <pubDate>Thu, 24 Apr 2025 01:54:51 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/increment-numbers-after-sign-in-multileaders/m-p/13441386#M991</guid>
      <dc:creator>ShadowJag</dc:creator>
      <dc:date>2025-04-24T01:54:51Z</dc:date>
    </item>
    <item>
      <title>Re: Increment Numbers after = sign in Multileaders</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/increment-numbers-after-sign-in-multileaders/m-p/13441397#M992</link>
      <description>&lt;P&gt;Hi Komondor, I have tested your code and it completes majority of the function however it skips some lines and they remain free from the increment applied to the rest.&amp;nbsp;I have attached another DWG file for better reference. If you run the lisp and compare to the original you can see some lines have been skipped. Also i want the numbers to retain a 2dp formating so if its incremented to a number ending in zero say 24.53 to 26.70 I want the zero to be displayed instead of 26.7.&lt;BR /&gt;In case there any confusion any number after an equals sign represents a level that needs to be adjusted.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 24 Apr 2025 02:08:38 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/increment-numbers-after-sign-in-multileaders/m-p/13441397#M992</guid>
      <dc:creator>ShadowJag</dc:creator>
      <dc:date>2025-04-24T02:08:38Z</dc:date>
    </item>
    <item>
      <title>Re: Increment Numbers after = sign in Multileaders</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/increment-numbers-after-sign-in-multileaders/m-p/13441811#M993</link>
      <description>&lt;P&gt;hey, check the update&lt;/P&gt;&lt;LI-CODE lang="lisp"&gt;;*****************************************************************************************************************
;
;	'add_value_mleaderss' custom command adds value to certain numbers within mleader strings
;	komondormrex, apr, 2025
;	totally lm free
;
;*****************************************************************************************************************

(defun string_to_list (string delimiter_string / out_list)
    (setq char_list (vl-string-&amp;gt;list string))
  	(defun parse_string (char_list delimiter_string / substring)
  	  	(setq char_list_remainder char_list)
  	  	(if (vl-some '(lambda (ascii_code) (setq substring (cons ascii_code substring)
  	  	              							 char_list_remainder (cdr char_list_remainder)
  	  	        						   )
  	  	          						   (member ascii_code (vl-string-&amp;gt;list delimiter_string))
  	  	          	  )
  	  	          	  char_list
  	  	    )
  	  	  	(progn
  	  	  	  	(setq delimiter_char (chr (car substring)))
  	  	  	    (if (/= "" (setq substring (vl-list-&amp;gt;string (reverse (cdr substring)))))
  	  	  	    	(setq out_list (append out_list (list substring delimiter_char)))
  	  	  	    	(setq out_list (append out_list (list delimiter_char)))
  	  	  	 	)
  	  	  	 	(parse_string (setq char_list char_list_remainder) delimiter_string)
  	  	  	)
  	  	  	(if (/= "" (setq substring (vl-list-&amp;gt;string (reverse substring))))
  	  	  	  	(setq out_list (append out_list (list substring)))
  	  	  	)
  	  	 )
  	   	 out_list
  	)
  	(parse_string char_list delimiter_string)
)

;*****************************************************************************************************************

(defun number_format_str (number after_point / zeroes str_number point_pos)
	(setq zeroes "0000000000")
	(cond
		((null (setq point_pos (vl-string-position (ascii ".") (setq str_number (rtos number 2 after_point)))))
			(strcat str_number "." (substr zeroes 1 after_point))
		)
		(t (strcat str_number (substr zeroes 1 (- after_point (- (strlen str_number) (1+ point_pos))))))
	)
)
;*****************************************************************************************************************

(defun c:add_value_mleaders (/ addition mleader_sset new_text_list do_add old_text_group)
  	(if (null addition_saved) (setq addition_saved 1.0))
  	(if (null (setq addition (getreal (strcat "\nEnter addition +-number &amp;lt;" (rtos addition_saved) "&amp;gt;: "))))
  		(setq addition addition_saved)
  		(setq addition_saved addition)
  	)
  	(if (setq mleader_sset (ssget '((0 . "multileader") (304 . "*#*"))))
  	  	(foreach text (vl-remove-if 'listp (mapcar 'cadr (ssnamex mleader_sset)))
  	  	  	(setq new_text_list nil do_add nil old_text_group (assoc 304 (entget text)))
  	  	  	(foreach sub_string (string_to_list (cdr (setq old_text_group (assoc 304 (entget text)))) "\\P=")
  	  	  	  	(if (and (wcmatch (strcase sub_string) "=")
  	  	  	  	         (null do_add)
  	  	  	  	    )
  	  	  	  	    (setq do_add t)
  	  	  	  	)
  	  	  	  	(if (and (vl-every '(lambda (asc) (member asc (vl-string-&amp;gt;list "0123456789. ")))
  	  	  	  	           	    (vl-string-&amp;gt;list sub_string)
  	  	  	  	         )
  	  	  	  	         do_add
  	  	  	  	    )
  	  	  	  	    (setq new_text_list (append new_text_list (list (number_format_str (+ (atof sub_string) addition) 2)))
  	  	  	  	    	  do_add nil
  	  	  	  	    )
  	  	  	  	    (setq new_text_list (append new_text_list (list sub_string)))
  	  	  	  	)
  	  	  	)
  	  	  	(entmod (subst (cons 304 (apply 'strcat new_text_list)) old_text_group (entget text)))
  	  	)
  	)
  	(princ)
)

;*****************************************************************************************************************&lt;/LI-CODE&gt;</description>
      <pubDate>Thu, 24 Apr 2025 08:22:29 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/increment-numbers-after-sign-in-multileaders/m-p/13441811#M993</guid>
      <dc:creator>komondormrex</dc:creator>
      <dc:date>2025-04-24T08:22:29Z</dc:date>
    </item>
    <item>
      <title>Re: Increment Numbers after = sign in Multileaders</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/increment-numbers-after-sign-in-multileaders/m-p/13441834#M994</link>
      <description>&lt;P&gt;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/15488475"&gt;@ShadowJag&lt;/a&gt;&amp;nbsp;hi,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;the problem is not in AutoLISP but AutoCAD it self they changing the format of mtext in&amp;nbsp; database.&lt;/P&gt;&lt;P&gt;attached a fix.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;enjoy&lt;/P&gt;&lt;P&gt;Moshe&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 24 Apr 2025 08:38:41 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/increment-numbers-after-sign-in-multileaders/m-p/13441834#M994</guid>
      <dc:creator>Moshe-A</dc:creator>
      <dc:date>2025-04-24T08:38:41Z</dc:date>
    </item>
    <item>
      <title>Re: Increment Numbers after = sign in Multileaders</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/increment-numbers-after-sign-in-multileaders/m-p/13613319#M995</link>
      <description>&lt;P&gt;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/15488475"&gt;@ShadowJag&lt;/a&gt;&amp;nbsp;,&lt;/P&gt;&lt;P&gt;Can we translate that to "change only the number that is prefixed with LL=?"&lt;/P&gt;</description>
      <pubDate>Sun, 04 May 2025 22:22:43 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/increment-numbers-after-sign-in-multileaders/m-p/13613319#M995</guid>
      <dc:creator>john.uhden</dc:creator>
      <dc:date>2025-05-04T22:22:43Z</dc:date>
    </item>
  </channel>
</rss>

