Você está aqui: AutoCAD Civil 3D .NET C# ::: Dicas & Truques ::: Superfície - Surface |
Como retornar as coordenadas x e y mínimas e máximas de uma superfície do Civil 3D usando a AutoCAD Civil 3D .NET APIQuantidade de visualizações: 405 vezes |
|
Em várias situações, principalmente quando estamos processando os pontos de uma superfície do Civil 3D, nós queremos saber os limites das coordenadas x e y. Para isso nós podemos usar as propriedades MinimumCoordinateX, MaximumCoordinateX, MinimumCoordinateY e MaximumCoordinateY da classe GeneralSurfaceProperties da AutoCAD Civil 3D .NET API. Você pode ver essa informação indo na aba Prospector da Toolspace e selecionando o item Surfaces. Em seguida clique com o botão direito na superfície desejada (em nosso caso a superfície TERRENO NATURAL) e escolha Surface Properties. Os valores mínimos e máximos das coordenadas x e y da superfície são encontrados na aba Statistics no item General. 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 System;
using Autodesk.AutoCAD.Runtime;
using Autodesk.Civil.ApplicationServices;
using Autodesk.AutoCAD.DatabaseServices;
using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.EditorInput;
using CivSurface = Autodesk.Civil.DatabaseServices.Surface;
using Autodesk.Civil.DatabaseServices;
namespace Estudos {
public class Class1 : IExtensionApplication {
[CommandMethod("Superficie")]
public void Superficie() {
// 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 pesquisar a superfície chamada "TERRENO NATURAL"
string nome = "TERRENO NATURAL";
// vamos iniciar um nova transação
using (Transaction ts = Application.DocumentManager.MdiActiveDocument.
Database.TransactionManager.StartTransaction()) {
try {
// efetuamos uma chamada ao método GetSurfaceByName() passando
// o documento atual do AutoCAD Civil 3D e o nome da superfície
// que queremos encontrar
CivSurface superficie = GetSurfaceByName(doc, nome);
// e mostramos o resultado
if (superficie == null) {
editor.WriteMessage("\nA superfície não foi encontrada.");
}
else {
// agora que já temos a superfície, vamos obter suas propriedades
// por meio do objeto GeneralSurfaceProperties
GeneralSurfaceProperties prop = superficie.GetGeneralProperties();
// vamos obter as coordenadas x e y mínimas e máximas
// para esta superfície
double x_minimo = prop.MinimumCoordinateX;
double x_maximo = prop.MaximumCoordinateX;
double y_minimo = prop.MinimumCoordinateY;
double y_maximo = prop.MaximumCoordinateY;
// e mostramos o resultado
editor.WriteMessage("\nA coordenada x mínima é: " +
x_minimo);
editor.WriteMessage("\nA coordenada x máxima é: " +
x_maximo);
editor.WriteMessage("\nA coordenada y mínima é: " +
y_minimo);
editor.WriteMessage("\nA coordenada y máxima é: " +
y_maximo + "\n");
}
}
catch (System.Exception e) {
// handle bad file path
editor.WriteMessage("Erro: {0}", e.Message);
}
}
}
// função C# que retorna uma superfície por nome, ou null em
// caso de não encontrar a surface desejada
public CivSurface GetSurfaceByName(CivilDocument doc, string nome) {
// vamos declarar um objeto da classe
CivSurface superficie = null;
// agora vamos obter os ids de todas as superfícies
ObjectIdCollection superficies = doc.GetSurfaceIds();
// vamos percorrer todos os ids de superfícies retornados
foreach (ObjectId idSuperficie in superficies) {
superficie = idSuperficie.GetObject(OpenMode.ForRead) as CivSurface;
// encontramos a superfície
if (superficie.Name.Equals(nome)) {
return superficie;
}
}
// retorna null se a superfície não for encontrada
return null;
}
public void Initialize() {
// pode deixar em branco
}
public void Terminate() {
// pode deixar em branco
}
}
}
Ao executar este código AutoCAD Civil 3D .NET C# nós teremos o seguinte resultado: A coordenada x mínima é: 1023169.2036 A coordenada x máxima é: 1026491.4668 A coordenada y mínima é: 76754.3068 A coordenada y máxima é: 79149.3905 |
|
|
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 |







