![]() |
|
||||
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 ::: Selection, Seleção |
Como selecionar um único objeto no AutoCAD usando a função GetEntity() do objeto Editor da classe Document da AutoCAD .NET C# APIQuantidade de visualizações: 476 vezes |
|
Em algumas situações nós precisamos que o usuário selecione um objeto na área de desenho do AutoCAD. No entanto, queremos que essa seleção seja única, ou seja, apenas uma entidade deve ser selecionada. Para isso nós podemos usar a função GetEntity() do objeto Editor da classe Document da AutoCAD .NET C# API. O primeiro passo é obter uma referência ao documento atual do AutoCAD usando Application.DocumentManager.MdiActiveDocument. Em seguida obtemos a base de dados usando doc.Database. Antes de pedir para o usuário selecionar a entidade nós precisamos de um objeto PromptEntityOptions. Após isso nós chamamos a função doc.Editor.GetEntity() e retornamos um objeto PromptEntityResult. De posse do id do objeto selecionado nós efetuamos uma chamada à função GetObject() da classe Transaction para retornar um objeto Entity, o qual exibimos o seu nome usando GetRXClass().Name. Para finalizar nós convertemos a Entity em um objeto Line para mudarmos a sua cor usando ColorIndex. O valor passado para a cor foi 1, ou seja, a cor vermelha. Veja o código AutoCAD C# .NET API completo para o exemplo: ----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------
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;
// opções da seleção
PromptEntityOptions opcoes = new
PromptEntityOptions("\nSelecione uma linha: ");
// obtemos o resultado da seleção
PromptEntityResult resultado = doc.Editor.GetEntity(opcoes);
// a seleção foi feita com sucesso
if (resultado.Status != PromptStatus.OK) {
Application.ShowAlertDialog("Nenhum elemento selecionado.");
return;
}
// obtemos o id do objeto selecionado
ObjectId id_objeto = resultado.ObjectId;
// iniciamos uma transação
using (Transaction trans = db.TransactionManager.StartTransaction()) {
// obtemos a entidade selecionada
Entity ent = trans.GetObject(id_objeto, OpenMode.ForWrite) as Entity;
// vamos mostrar o nome da entidade
Application.ShowAlertDialog("Nome da entidade: " + ent.GetRXClass().Name);
// a entidade selecionada é uma linha
if (ent is Line) {
Line linha = ent as Line;
// aplicamos uma cor à linha
linha.ColorIndex = 1; // vermelho
}
else {
Application.ShowAlertDialog("Você não selecionou uma linha.");
}
// salvamos a transação
trans.Commit();
}
}
}
}
Ao executar este plug-in AutoCAD .NET C# API nós teremos o seguinte resultado: Nome da entidade: AcDbLine [Pinta a linha de vermelho] |
|
|
Veja mais Dicas e truques de AutoCAD .NET API C# |
Dicas e truques de outras linguagens |
|
GNU Octave - Como calcular o cateto oposto dadas as medidas da hipotenusa e do cateto adjascente em GNU Octave |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |






