Ofereço ajuda em Java, C/C++, Python, C#, LISP, AutoLisp, AutoCAD
+55 (062) 98553-6711
Ofereço ajuda em PHP, Python, C#, JavaScript, Laravel, Google Ads e SEO
+55 (062) 98243-1195

Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidadesCódigo-Fonte Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidades
Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais
Você está aqui: AutoCAD Civil 3D .NET C# ::: Dicas & Truques ::: Superfície - Surface

Como pesquisar uma superfície por nome no AutoCAD Civil 3D usando C# e uma função personalizada GetSurfaceByName()

Quantidade de visualizações: 539 vezes
Nesta dica mostrarei como podemos escrever uma função C# personalizada chamada GetSurfaceByName() que nos permitirá pesquisar e retornar superfícies no AutoCAD Civil 3D de acordo com o seu nome.

Nome que a função aceita como primeiro argumento um objeto da classe CivilDocument e, como segundo argumento, uma string representando o nome da surface que queremos encontrar. O retorno da função é um objeto CivSurface.

Veja o código AutoCAD Civil 3D .NET C# completo para o exemplo:

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

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;

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 "TN - SUPERFÍCIE NATURAL"
      string nome = "TN - SUPERFÍCIE 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 {
            editor.WriteMessage("\nO id da superfície pesquisada é: " +
              superficie.Id);
          }
        }
        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 C# .NET nós teremos o seguinte resultado:

O id da superfície pesquisada é: (2037526743520)

Link para compartilhar na Internet ou com seus amigos:

AutoCAD Civil 3D .NET C# ::: Dicas & Truques ::: Alinhamento - Alignment

Como retornar a quantidade de perfis de um alinhamento do Civil 3D usando a função GetProfileIds() da API C# do AutoCAD Civil 3D

Quantidade de visualizações: 484 vezes
Em algumas situações nós precisamos obter a quantidade de perfis (profiles) de um determinado alinhamento do AutoCAD Civil 3D. Para isso nós podemos usar a função GetProfileIds(), que retorna uma coleção ObjectIdCollection contendo os ids de todos os perfis pertencentes a um determinado alinhamento.

Para este exemplo eu usei um alinhamento chamado "EIXO DA RODOVIA" e criei para ele um profile chamado "TN - SUPERFÍCIE NATURAL" para representar a superfície natural e outro chamado "GREIDE - PERFIL VERTICAL DA RODOVIA" para representar o alinhamento vertical.

Note que, após obtermos a coleção ObjectIdCollection por meio da função GetProfileIds(), tudo que temos a fazer é acessar a sua propriedade Count.

Veja o código AutoCAD Civil 3D .NET C# completo para o exemplo:

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

using System;
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 pesquisar o alinhamento chamado "EIXO DA RODOVIA"
      string nome = "EIXO DA RODOVIA";

      // vamos iniciar um nova transação
      using (Transaction ts = Application.DocumentManager.MdiActiveDocument.
        Database.TransactionManager.StartTransaction()) {
        try {
          // efetuamos uma chamada ao método GetAlignmentByName() passando
          // o documento atual do AutoCAD Civil 3D e o nome do alinhamento
          // que queremos encontrar
          Alignment alinhamento = GetAlignmentByName(doc, nome);

          // ops, o alinhamento não foi encontrado
          if (alinhamento == null) {
            editor.WriteMessage("\nO alinhamento não foi encontrado.");
          }
          else {
            // encontramos o alinhamento. Vamos mostrar a quantidade de perfis
            // que ele possui
            ObjectIdCollection ids_perfis = alinhamento.GetProfileIds();
            // e mostramos o resultado
            editor.WriteMessage("\nO alinhamento possui " + ids_perfis.Count +
              " perfis.\n");
          }
        }
        catch (System.Exception e) {
          // vamos tratar o erro 
          editor.WriteMessage("Erro: {0}", e.Message);
        }
      }
    }

    // função C# que retorna um alinhamento por nome, ou null em
    // caso de não encontrar o alinhamento desejado
    public Alignment GetAlignmentByName(CivilDocument doc, string nome) {
      // vamos declarar um objeto da classe Alignment
      Alignment alinhamento = null;

      // agora vamos obter os ids de todos os alinhamentos
      ObjectIdCollection alinhamentos = doc.GetAlignmentIds();

      // vamos percorrer todos os ids de alinhamentos retornados
      foreach (ObjectId idAlinhamento in alinhamentos) {
        alinhamento = idAlinhamento.GetObject(OpenMode.ForRead) as Alignment;
        // encontramos o alinhamento
        if (alinhamento.Name.Equals(nome)) {
          return alinhamento;
        }
      }

      // retorna null se o alinhamento não for encontrado
      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:

O alinhamento possui 2 perfis.


AutoCAD Civil 3D .NET C# ::: Dicas & Truques ::: Alinhamento - Alignment

Como pedir para o usuário selecionar um alinhamento no Civil 3D usando a função GetEntity() do AutoCAD Civil 3D .NET C# API

Quantidade de visualizações: 665 vezes
Em várias situações nós precisamos pedir para o usuário selecionar um alinhamento e, após a seleção, obter o id do alinhamento selecionado para efetuarmos alguma operação nele. Para isso nós podemos usar a função GetEntity() do objeto Editor da AutoCAD Civil 3D .NET C# API.

O primeiro passo é criar um objeto PromptEntityOptions passando a mensagem para o usuário selecionar o alinhamento. Se o usuário selecionar outro objeto que não seja um alinhamento, a mensagem definida em SetRejectMessage é exibida. Note o uso de AddAllowedClass para permitir a seleção apenas de objetos da classe Alignment ou derivadas dela.

Depois de solicitar a seleção, nós obtemos um objeto ObjectId, que é retornado pela função GetEntity().

Veja o código AutoCAD Civil 3D .NET C# completo para o exemplo:

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

using System;
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 o alinhamento
          PromptEntityOptions opt = new PromptEntityOptions(
            "\nSelecione um alinhamento");
          opt.SetRejectMessage("\nO objeto precisa ser um alinhamento.\n");
          opt.AddAllowedClass(typeof(Alignment), false);
          
          // vamos obter o id do alinhamento selecionado
          ObjectId id_alinhamento = editor.GetEntity(opt).ObjectId;

          editor.WriteMessage("\nO id do alinhamento selecionado é: " +
            id_alinhamento + '\n');
        }
        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 .NET C# nós teremos o seguinte resultado:

O id do alinhamento selecionado é: (1455527762496)


AutoCAD Civil 3D .NET C# ::: Dicas & Truques ::: Alinhamento - Alignment

Como retornar a quantidade de estacas de um alinhamento do Civil 3D usando a função GetStationSet() da classe Alignment da AutoCAD Civil 3D .NET API

Quantidade de visualizações: 523 vezes
Nesta dica vou mostrar como podemos obter a quantidade de estacas em um alinhamento do Civil 3D usando a função GetStationSet() da classe Alignment da AutoCAD Civil 3D .NET API. Para este exemplo eu usei um alinhamento com o nome "EIXO DA RODOVIA".

O primeiro passo é obter uma referência ao documento atual do AutoCAD Civil 3D usando CivilApplication.ActiveDocument. En seguida nós pesquisamos um alinhamento usando uma função personalizada GetAlignmentByName(), que recebe o documento atual e o nome do alinhamento que queremos pesquisar. O retorno desta função é um objeto da classe Alignment.

Agora que já temos o alinhamento, nós usamos a função GetStationSet() para retornar um vetor de objetos Station, que significa estaca no Civil 3D. Note que passei como parâmetro o valor StationTypes.Major e usei alinhamento.StationIndexIncrement como o intervalo entre as estacas.

Uma vez que já temos o vetor de objetos Station, ou seja, um vetor contendo todas as estacas do alinhamento, só precisamos obter a quantidade de itens usando a propriedade Length.

Veja o código AutoCAD Civil 3D .NET C# completo para o exemplo:

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

using System;
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 pesquisar o alinhamento chamado "EIXO DA RODOVIA"
      string nome = "EIXO DA RODOVIA";

      // vamos iniciar um nova transação
      using (Transaction ts = Application.DocumentManager.MdiActiveDocument.
        Database.TransactionManager.StartTransaction()) {
        try {
          // efetuamos uma chamada ao método GetAlignmentByName() passando
          // o documento atual do AutoCAD Civil 3D e o nome do alinhamento
          // que queremos encontrar
          Alignment alinhamento = GetAlignmentByName(doc, nome);

          // ops, o alinhamento não foi encontrado
          if (alinhamento == null) {
            editor.WriteMessage("\nO alinhamento não foi encontrado.");
          }
          else {
            // encontramos o alinhamento. Vamos mostrar a quantidade de estacas
            // que ele possui
            Station[] estacas = alinhamento.GetStationSet(StationTypes.Major,
              alinhamento.StationIndexIncrement);
            int quant_estacas = estacas.Length;
            // e mostramos o resultado
            editor.WriteMessage("\nO alinhamento possui " + quant_estacas +
              " estacas.\n");
          }
        }
        catch (System.Exception e) {
          // vamos tratar o erro 
          editor.WriteMessage("Erro: {0}", e.Message);
        }
      }
    }

    // função C# que retorna um alinhamento por nome, ou null em
    // caso de não encontrar o alinhamento desejado
    public Alignment GetAlignmentByName(CivilDocument doc, string nome) {
      // vamos declarar um objeto da classe Alignment
      Alignment alinhamento = null;

      // agora vamos obter os ids de todos os alinhamentos
      ObjectIdCollection alinhamentos = doc.GetAlignmentIds();

      // vamos percorrer todos os ids de alinhamentos retornados
      foreach (ObjectId idAlinhamento in alinhamentos) {
        alinhamento = idAlinhamento.GetObject(OpenMode.ForRead) as Alignment;
        // encontramos o alinhamento
        if (alinhamento.Name.Equals(nome)) {
          return alinhamento;
        }
      }

      // retorna null se o alinhamento não for encontrado
      return null;
    }

    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:

O alinhamento possui 152 estacas.


Vamos testar seus conhecimentos em

Pilares centrais: dimensionamento e detalhes construtivos

Em relação aos detalhes construtivos dos pilares centrais, pode-se afirmar que:

A) não deve-se deixar vãos nas formas, pois pode ocorrer perda de nata.

B) no mercado, existem apenas as formas metálicas para concretagem de pilares.

C) quando o pilar não está no prumo, deve-se utilizar teodolito.

D) As tensões de deformação em um material dúctil são lineares.

E) O desmoldante não influencia a desmolagem dos pilares.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Python

Analise o seguinte código Python

a = {5, 8, 2, 1}
b = {1, 4, 5, 3}
c = a & b
print(c)

Qual é o resultado de sua execução?

A) {5, 5, 1, 1}

B) Um erro de execução na linha 2

C) {1, 5}

D) {5, 8, 2, 1, 1, 4, 5, 3}
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em

Vidros

Qual dos tipos abaixo não é um modelo de vidro:

A) Float.

B) Acrílico.

C) Laminado.

D) Aramado.

E) Cromogênico.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Fenômeno de Transportes e Hidráulica

Camadas de escoamento

Em escoamento laminar, o perfil de velocidade é parabólico. Em escoamento turbulento, não há uma definição correta, porém o escoamento acontece em quatro camadas. Quais são elas?

A) Subcamada viscosa, camada de atrito de Darcy, camada de transição e camada externa.

B) Subcamada viscosa, subcamada amortecedora, camada laminar e camada externa.

C) Camada viscosa, camada amortecedora, camada de transição e camada limite de filme.

D) Camada viscosa, camada amortecedora, camada de atrito de Darcy e camada limite de filme.

E) Subcamada viscosa, subcamada amortecedora, camada de transição e camada externa.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Python

Qual das formas abaixo é usada para criar uma LIST em Python?

A) valores = {5, 1, 9, 4}

B) valores = [5, 1, 9, 4]

C) valores = (5, 1, 9, 4)

D) valores = [5.. 1.. 9.. 4]

E) valores = list[5, 1, 9, 4]
Verificar Resposta Estudar Cards Todas as Questões

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

Dicas e truques de outras linguagens

E-Books em PDF

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

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á 34 usuários muito felizes estudando em nosso site.