Você está aqui: Visual LISP ::: Dicas & Truques ::: Layer, Layers |
Como testar se uma layer existe em um documento do AutoCAD usando Visual LISP e uma função personalizadaQuantidade de visualizações: 247 vezes |
Nesta dica mostrarei como podemos escrever uma função Visual LISP personalizada para testar se uma determinada layer existe em um documento do AutoCAD. Como acontece nas outras dicas, o primeiro passo é usar as funções vlax-get-acad-object e vla-get-ActiveDocument para obter o objeto AutoCAD e o documento ativo. O passo seguinte é obter a coleção de layers usando a função vla-get-Layers. Note que nossa função personalizada recebe a coleção de layers do documento e o nome da layer a ser pesquisada e retorna verdadeiro ou falso dependendo da existência dela. Nossa função Pesquisar_Layer faz uso das funções vl-catch-all-error-p e vl-catch-all-apply para verificar se há algum erro de automação na chamada à função vla-item, que acessa um item na coleção de layers. Se houver erro, então sabemos que a layer pesquisada não existe. Veja o código Visual LISP completo para o exemplo: ; Esta função mostra como testar se uma ; layer existe em um documento do AutoCAD (defun c:Layer_Existe() ; o primeiro passo é obter o objeto AutoCAD (setq obj_autocad (vlax-get-acad-object)) ; agora obtemos o documento atual (setq doc (vla-get-ActiveDocument obj_autocad)) ; obtemos a coleção de layers (setq colecao_layers (vla-get-Layers doc)) ; agora vamos testar se a layer chamada "ESCADA" ; existe no documento (if (Pesquisar_Layer colecao_layers "ESCADA") (princ "A layer existe") (princ "A layer não existe") ) (princ) ) ; função personalizada que recebe o nome de uma ; layer e retorna verdadeiro ou falso se ela existir ; ou não (defun Pesquisar_Layer(colecao_layers nome_layer) (not (vl-catch-all-error-p (vl-catch-all-apply 'vla-item (list colecao_layers nome_layer)) ) ) ) Ao executar este código Visual LISP nós teremos uma de duas mensagens possíveis: A layer existe A layer não existe |
![]() |
Veja mais Dicas e truques de Visual LISP |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |