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: 556 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: ----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------
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 |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |







