Hoje surgiu uma questão num grupo de whatsapp (mórre deabo!!) de como seria uma maneira de ordenar os layouts no AutoCAD.
Bem, considere o código abaixo:
(defun c:ordenalayout (/ ordem listaLayouts layouts)
;carrega as extensoes VL
(vl-load-com)
(setq
;obtem a coleção de layouts do desenho atual
listaLayouts (vla-get-layouts (vla-get-activedocument (vlax-get-acad-object)))
;obtem a lista de nomes de layout, ordenados em ordem crescente
layouts (vl-sort (layoutlist) '<)
;inicializa a ordem
ordem 1)
;para todo nome de layout na lista de nomes ordenados
(foreach layout layouts
;poe a ordem do layout igual a 'ordem'
(vla-put-taborder (vla-item listaLayouts layout) ordem)
;incrementa a ordem
(setq ordem (1+ ordem))
)
)
Ele ordena os layouts em ordem alfabética (ok, lexicograficamente em ordem crescente).
Note, estou supondo que se tem número no nome do layout, você escreveu algo parecido com:
"FL-01", "FL-02", ... "FL-55", ... "FL-XX"
E não:
"FL-1", "FL-2", ... "FL-55", ... "FL-XX"
Note que os números menores que 10, tem o zero na frente.
Muito Obrigado, ajudou muito aqui!!!
ResponderExcluir