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 API

Quantidade 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)

Link para compartilhar na Internet ou com seus amigos:

Veja mais Dicas e truques de AutoCAD Civil 3D .NET C#

Dicas e truques de outras linguagens

E-Books em PDF

E-Book 350 Exercícios Resolvidos de Java - PDF com 500 páginas
Domine lógica de programação e a linguagem Java com o nosso E-Book 350 Exercícios Exercícios de Java, para você estudar onde e quando quiser.

Este e-book contém exercícios resolvidos abrangendo os tópicos: Java básico, matemática e estatística, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book
E-Book 650 Dicas, Truques e Exercícios Resolvidos de Python - PDF com 1.200 páginas
Domine lógica de programação e a linguagem Python com o nosso E-Book 650 Dicas, Truques e Exercícios Exercícios de Python, para você estudar onde e quando quiser.

Este e-book contém dicas, truques e exercícios resolvidos abrangendo os tópicos: Python básico, matemática e estatística, banco de dados, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: C
6º lugar: Delphi
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



© 2025 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 36 usuários muito felizes estudando em nosso site.