Você está aqui: AutoCAD Civil 3D .NET C# ::: Dicas & Truques ::: Alinhamento - Alignment |
Como criar um alinhamento a partir de uma polyline usando a função Alignment.Create() da AutoCAD Civil 3D .NET APIQuantidade de visualizações: 488 vezes |
Nesta dica mostrarei como podemos criar um novo alinhamento a partir de uma polilinha, ou seja, uma polyline, usando programação C# no AutoCAD Civil 3D. Para isso nós vamos usar a função Alignment.Create() da AutoCAD Civil 3D .NET API. Como sabemos, para criar um alinhamento a partir de uma polyline, só precisamos acessar a aba Home, ir até a seção Create Design -> Alignment -> Create Alignment from Objects. A partir daí é só selecionar a polilinha desejada e criar o alinhamento. Via programação o processo é muito parecido. No código abaixo nós vamos pedir para o usuário selecionar uma polyline e, em seguida, nosso código C# vai criar o alinhamento automaticamente, usando as configurações de polyline definidas no objeto PolylineOptions. Ao executar o código, você só precisa ficar atento para não fornecer o nome de um alinhamento já existente e informar a layer, o estilo e o conjunto de labels já existentes no seu template. Caso isso não seja feito, a função Alignment.Create() pode falhar. Veja o código AutoCAD Civil 3D .NET C# completo para o exemplo: using Autodesk.AutoCAD.Runtime; using Autodesk.Civil.ApplicationServices; using Autodesk.AutoCAD.DatabaseServices; using Autodesk.AutoCAD.ApplicationServices; using Autodesk.AutoCAD.EditorInput; using Autodesk.Civil.DatabaseServices; namespace Estudos { public class Class1 : IExtensionApplication { [CommandMethod("Alinhamento")] public void Alinhamento() { // vamos obter uma referência ao documento atual do Civil 3D CivilDocument doc = CivilApplication.ActiveDocument; // obtemos o editor Editor editor = Application.DocumentManager.MdiActiveDocument.Editor; // vamos iniciar um nova transação using (Transaction ts = Application.DocumentManager.MdiActiveDocument. Database.TransactionManager.StartTransaction()) { try { // vamos pedir para o usuário selecionar a polilinha que vamos // converter em um alinhamento PromptEntityOptions opt = new PromptEntityOptions( "\nSelecione uma polyline para converter em um alinhamento"); opt.SetRejectMessage("\nO objeto deve ser uma polyline."); opt.AddAllowedClass(typeof(Polyline), false); PromptEntityResult res = editor.GetEntity(opt); // precisamos ajustar algumas opções de polilinha antes de // criar o alinhamento a partir dela PolylineOptions plops = new PolylineOptions(); plops.AddCurvesBetweenTangents = true; plops.EraseExistingEntities = true; plops.PlineId = res.ObjectId; // vamos criar o alinhamento. Note que forneci o documento atual do // AutoCAD Civil 3D, as propriedades da Polyline, o nome do alinhamento, // o valor null para a criação de um alinhamento sem um site definido, // o nome da layer para a criação do alinhamento, o nome do estilo e // o nome do conjunto de labels. ObjectId id_alinhamento = Alignment.Create(doc, plops, "Alinhamento Via C", null, "F-HZ-EIXO", "EIXO COMPLETO-(PROJETO)", "PADRAO-100mX20m"); // conclui a transação editor.WriteMessage("\nO alinhamento foi criado com o ID " + id_alinhamento.ToString() + "\n"); ts.Commit(); } catch (System.Exception e) { // vamos tratar o erro editor.WriteMessage("Erro: {0}", e.Message); } } } public void Initialize() { // pode deixar em branco } public void Terminate() { // pode deixar em branco } } } Ao executar este código AutoCAD Civil 3D C# .NET nós teremos o seguinte resultado: Selecione uma polyline para converter em um alinhamento: O alinhamento foi criado com o ID (2181297655248) |
![]() |
Veja mais Dicas e truques de AutoCAD Civil 3D .NET C# |
Dicas e truques de outras linguagens |
Java - Exercícios Resolvidos de Java - Como converter de binário para decimal em Java usando o laço for |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |