![]() |
|
||||
![]() Planilha Web - Planilhas e Calculadoras online para estudantes e profissionais de Engenharia Civil, Engenharia Elétrica e Engenharia Mecânica. |
|||||
Você está aqui: AutoCAD .NET API C# ::: Dicas & Truques ::: Linha, Linhas, Comando LINE |
Como retornar a quantidade de linhas em um documento do AutoCAD usando a AutoCAD C# .NET e a classe LineQuantidade de visualizações: 234 vezes |
Em algumas situações nós precisamos saber quantas linhas estão contidas em um documento do AutoCAD, ou seja, a quantidade de objetos do tipo LINE. Para isso podemos usar a AutoCAD C# .NET e a classe Line. Veja um código AutoCAD C# .NET completo que analisa o documento do AutoCAD e retorna a quantidade de linhas encontradas: using Autodesk.AutoCAD.Runtime; using Autodesk.AutoCAD.ApplicationServices; using Autodesk.AutoCAD.DatabaseServices; using System.Collections.Generic; using System; using System.Linq; [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; // vamos criar um tipo função para validar os objetos que // queremos listar Func<Type, RXClass> getClass = RXObject.GetClass; // um set dos tipos aceitáveis var tipos_aceitaveis = new HashSet<RXClass>{ getClass(typeof(Line)) }; // iniciamos uma transação using (Transaction trans = db.TransactionManager.StartTransaction()) { // vamos abrir a tabela de blocos para leitura BlockTable tabela_blocos = trans.GetObject(db.BlockTableId, OpenMode.ForRead) as BlockTable; // agora abrimos o registro da tabela de blocos do model space // para escrita BlockTableRecord reg_tabela_blocos = trans.GetObject( tabela_blocos[BlockTableRecord.ModelSpace], OpenMode.ForWrite) as BlockTableRecord; // vamos obter os ids de todas as linhas no documento List<ObjectId> ids_linhas = (from id in reg_tabela_blocos.Cast<ObjectId>() where tipos_aceitaveis.Contains(id.ObjectClass) select id).ToList(); // agora vamos percorrer todas as linhas encontradas int quant_linhas = 0; foreach (ObjectId id_linha in ids_linhas) { Line linha = trans.GetObject(id_linha, OpenMode.ForRead) as Line; // aumentamos a quantidade de linhas quant_linhas++; } // e mostramos o resultado doc.Editor.WriteMessage("\nO documento possui " + quant_linhas + " linhas\n"); // fechamos a transação trans.Commit(); } } } } Ao executar este código AutoCAD C# .NET nós teremos o seguinte resultado: O documento possui 3 linhas |
![]() |
Veja mais Dicas e truques de AutoCAD .NET API C# |
Dicas e truques de outras linguagens |
LISP - Como converter Coordenadas Cartesianas para Coordenadas Polares em LISP - LISP para Engenharia Fórmulas da Física - Fórmula da Distância - Como calcular a distância dados a velocidade e o tempo decorrido JavaScript - Como testar se ao menos um elemento de um array satisfaz uma condição em JavaScript usando a função some() |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |