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: 298 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: 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 |
PHP - Como obter o caminho da raiz do site usando a variável global $_SERVER['DOCUMENT_ROOT'] do PHP |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |