![]() |
|
||||
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 ::: Input e Output (Entrada e Saída) |
Como ler a entrada do usuário no AutoCAD como uma string usando a função GetString() da AutoCAD .NET APIQuantidade de visualizações: 384 vezes |
|
Em várias situações nós precisamos pedir para o usuário informar valores do tipo string, ou seja, uma palavra, frase ou texto. Para isso nós podemos usar a função GetString() do objeto Editor da classe Document. A forma como os dados inseridos pelo usuário serão controlados é feita por meio de um objeto PromptStringOptions. Se a propriedade AllowSpaces desse objeto for definida como true, os espaços são permitidos, caso contrário, a entrada do usuário é interrompida ao pressionar a barra de espaços. Nesta dica mostrarei como podemos usar a função GetString() da AutoCAD .NET API para pedir ao usuário que informe o nome do projeto e então vamos usar a string informada para escrever o nome do projeto na área de desenho. O primeiro passo é obter uma referência ao documento atual do AutoCAD usando Application.DocumentManager.MdiActiveDocument. Em seguida nós obtemos uma referência à base de dados do AutoCAD usando doc.Database. O passo seguinte é definir as opções de entrada do usuário usando um objeto PromptStringOptions. Note o valor true para a propriedade AllowSpaces. Em seguida fazemos a leitura do usuário usando doc.Editor.GetString e guardamos o resultado como um objeto PromptResult. Para verificar se o usuário não pressionou ESC ou outra forma de saída do comando, nós testamos o status do resultado com PromptStatus.Cancel. Para finalizar nós criamos uma nova transação db.TransactionManager.StartTransaction(), criamos um novo texto DBText, passamos o texto informado pelo usuário para a sua propriedade TextString, desenhamos o texto e fechamos a transação. Veja o código AutoCAD .NET API C# 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;
// criamos as opções de leitura da entrada do usuário
PromptStringOptions opcoes = new PromptStringOptions("\nNome do Projeto: ");
// 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;
}
// iniciamos uma nova transação
using (Transaction trans = db.TransactionManager.StartTransaction()) {
BlockTable tabela_blocos;
BlockTableRecord reg_tabela_blocos;
// abre o model space para escrita
tabela_blocos = trans.GetObject(db.BlockTableId,
OpenMode.ForRead) as BlockTable;
reg_tabela_blocos = trans.GetObject(tabela_blocos[BlockTableRecord.ModelSpace],
OpenMode.ForWrite) as BlockTableRecord;
// criamos um novo texto
DBText texto = new DBText();
texto.TextString = resultado.StringResult;
texto.SetDatabaseDefaults();
texto.Height = 20;
texto.Position = new Point3d(10, 40, 0);
// adicionamos o texto no desenho
reg_tabela_blocos.AppendEntity(texto);
trans.AddNewlyCreatedDBObject(texto, true);
// fechamos a transação
trans.Commit();
}
}
}
}
Ao executar o código deste plug-in AutoCAD .NET API C#, informe o nome de um projeto na janela de comandos do AutoCAD e automaticamente você verá o nome informado ser desenhado na área de desenho. |
|
|
Veja mais Dicas e truques de AutoCAD .NET API C# |
Dicas e truques de outras linguagens |
|
Java - Como comparar strings em Java usando os métodos compareTo() e compareToIgnoreCase() da classe String |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |






