Você está aqui: AutoCAD .NET API C# ::: Dicas & Truques ::: Layer, Layers |
Como testar se uma layer existe no AutoCAD usando a função Has() da classe LayerTable da AutoCAD .NET API C#Quantidade de visualizações: 369 vezes |
Nesta dica mostrarei como podemos usar a função Has() da classe LayerTable da AutoCAD .NET API C# para testar se um determinada layer existe no documento do AutoCAD. Para isso nós vamos usar a função doc.Editor.GetString() para pedir para o usuário informar o nome da layer a ser pesquisada e, em seguida, vamos verificar se a layer existe no documento. A tabela de layers do AutoCAD é representada por um objeto LayerTable, que é obtido usando a função GetObject() da classe Transaction. Observe o uso da função doc.Editor.WriteMessage() para mostrar o resultado da pesquisa na janela de comandos do AutoCAD. Veja o código AutoCAD .NET C# API completo para o exemplo: ---------------------------------------------------------------------- Precisa de ajuda? Chama no WhatsApp +55 (62) 98553-6711 (Osmar) Este código foi útil? Paga um cafezinho pra mim :-( PIX: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- using System; using Autodesk.AutoCAD.Runtime; using Autodesk.AutoCAD.ApplicationServices; using Autodesk.AutoCAD.DatabaseServices; using Autodesk.AutoCAD.Geometry; using Autodesk.AutoCAD.EditorInput; [assembly: CommandClass(typeof(PluginEstudos.Class1))] namespace PluginEstudos { public class Class1 { [CommandMethod("estudos")] public void Estudos() { // vamos obter o documento atual Document doc = Application.DocumentManager.MdiActiveDocument; // vamos obter a base de dados Database db = doc.Database; // iniciamos uma transação using (Transaction trans = db.TransactionManager.StartTransaction()) { // vamos obter a tabela de layers LayerTable tabela_layers; tabela_layers = trans.GetObject(db.LayerTableId, OpenMode.ForRead) as LayerTable; // agora vamos pedir para o usuário informar o nome da layer // a ser pesquisa // criamos as opções de leitura da entrada do usuário PromptStringOptions opcoes = new PromptStringOptions("\nNome da layer: "); // vamos permitir espaços opcoes.AllowSpaces = true; // agora pedimos para o usuário digitar a entrada PromptResult resultado = doc.Editor.GetString(opcoes); // se o usuário pressionar ESC ou cancelar o comando if (resultado.Status == PromptStatus.Cancel) { return; } // agora vamos testar se a layer existe if (tabela_layers.Has(resultado.StringResult)) { doc.Editor.WriteMessage("\nA layer " + resultado.StringResult + " foi encontrada com sucesso."); } else { doc.Editor.WriteMessage("\nA layer " + resultado.StringResult + " não existe."); } } } } } Ao executar este código AutoCAD .NET C# API nós teremos o seguinte resultado: Nome da layer: PAREDES A layer PAREDES foi encontrada com sucesso. |
![]() |
Veja mais Dicas e truques de AutoCAD .NET API C# |
Dicas e truques de outras linguagens |
Delphi - Como obter a quantidade de registros em um TClientDataSet do Delphi usando a propriedade RecordCount |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |