Sort layout by name

Sort layout by name

LeoManu
Contributor Contributor
8,970 Views
4 Replies
Message 1 of 5

Sort layout by name

LeoManu
Contributor
Contributor

Hi, I'm looking for a LISP to sort the layouts in numerical order, for example:

 

8, 5, 22, 13, 16, 150, 3, 1, 24.

It should end up as:

1, 3, 5, 8, 13, 16, 22, 24, 150.

 

Thanks!

0 Likes
Accepted solutions (1)
8,971 Views
4 Replies
Replies (4)
Message 2 of 5

Sea-Haven
Mentor
Mentor

Do you mean move the layouts so visually in correct order ?

 

TabSort | Lee Mac Programming (lee-mac.com)

0 Likes
Message 3 of 5

LeoManu
Contributor
Contributor

Yes, I mean to move the tabs of each layout so that they appear in order

0 Likes
Message 4 of 5

komondormrex
Mentor
Mentor
Accepted solution

hey there,

for layouts whose names are stringed integers.

 

(defun c:sort_num_layouts (/ layouts layout_list index)
	(vlax-map-collection (setq layouts 
								(vla-get-layouts 
									(vla-get-activedocument 
										(vlax-get-acad-object)
									)
								)
						 )
		'(lambda (layout)
			(setq layout_list (cons (vla-get-name layout) layout_list))
		 )
	)
	(setq layout_list (vl-sort (mapcar 'atoi (vl-remove "Model" layout_list)) '<)
		  index 1
	)
	(foreach layout layout_list 
		(vla-put-taborder (vla-item layouts (itoa layout)) index) 
		(setq index (1+ index))
	)
	(princ)
)

 

 

 

0 Likes
Message 5 of 5

LeoManu
Contributor
Contributor

Thank you so much, it was exactly what I needed!

0 Likes