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: 219 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: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- ; 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 |
Dicas e truques de outras linguagens |
MySQL - Como adicionar uma chave primária a uma tabela MySQL usando o comando ALTER TABLE ADD PRIMARY KEY Python - Como contar quantas vezes um elemento aparece em uma lista do Python usando a função count() |
Códigos Fonte |
![]() Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais |
![]() Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais |
Linguagens Mais Populares |
1º lugar: Java |