Você está aqui: Cards de AutoCAD Civil 3D
Card 1 de 30
Cogo Points no AutoCAD Civil 3D



No AutoCAD Civil 3D, "Cogo Points" (ou pontos COGO) são pontos de controle ou referência que você pode usar para definir localizações específicas em um projeto de engenharia civil. Esses pontos podem representar diversas coisas, como marcos topográficos, elementos de infraestrutura ou pontos de interesse em um terreno.

1. Cogo points são exibidos apenas na aba Prospector.

2. Cogo points possuem um ícone que se parece com um círculo combinado com um alvo.

3. Cogo points podem ser movidos, até mesmo usando comandos de desenho básicos não específicos do Civil 3D.

4. Cogo points podem ser editados na janela Properties.

Filtrar Cards
Use esta opção para filtrar os cards pelos tópicos que mais lhe interessam.
Termos:
Aviso Importante: Nos esforçamos muito para que o conteúdo dos cards e dos testes e conhecimento seja o mais correto possível. No entanto, entendemos que erros podem ocorrer. Caso isso aconteça, pedimos desculpas e estamos à disposição para as devidas correções. Além disso, o conteúdo aqui apresentado é fruto de conhecimento nosso e de pesquisas na internet e livros. Caso você encontre algum conteúdo que não deveria estar aqui, por favor, nos comunique pelos e-mails exibidos nas opções de contato.
Link para compartilhar na Internet ou com seus amigos:

PHP ::: Dicas & Truques ::: Arquivos e Diretórios

Como verificar se um arquivo existe usando a função file_exists() do PHP

Quantidade de visualizações: 13149 vezes
Em algumas situações nós precisamos verificar a existência de um arquivo ou diretório no sistema de arquivos de um determinado site. Para isso nós podemos usar a função file_exists() da linguagem PHP.

Esta função retorna um valor true se o arquivo ou diretório existir no caminho especificado, e false em caso contrário.

Veja um exemplo completo de seu uso:

<?php
// pesquisa no diretório atual
$arquivo = "testes.txt";

if(file_exists($arquivo)){
  echo "O arquivo já existe.";
}
else{
  echo "O arquivo não existe ainda.";
}
?>

Ao executar este código PHP nós teremos o seguinte resultado:

O arquivo já existe.


Revit Python Shell ::: Dicas & Truques ::: Selection, Seleção

Como pedir para o usuário selecionar somente um elemento no Revit usando a função PickObject() do objeto Selection do Revit Python Shell

Quantidade de visualizações: 419 vezes
Nesta dica mostrarei como podemos usar a função PickObject() do objeto Selection do Revit Python Shell para pedir para o usuário selecionar somente um elemento na área de desenho do Revit. Note que o objeto Selection é obtido a partir do objeto uidoc, carregado automaticamente pelo Revit Python Shell.

Depois que o usuário seleciona o elemento, nós usamos a função doc.GetElement() para receber a referência ao elemento e convertê-la para um elemento real. Então, para finalizar, nós acessamos a propriedade Id do elemento e a exibimos na tela.

Veja o código Revit Python Shell completo para o exemplo:

# faz o import necessário
from Autodesk.Revit.UI.Selection import ObjectType

# precisamos ocultar a janela do Revit Python Shell
__window__.Hide()
 
# agora fazemos uma chamada à função PickObject() do objeto Selection e retornamos
# uma Reference
selecionado = uidoc.Selection.PickObject(ObjectType.Element, "Selecione um elemento")
 
# depois que o usuário fizer a seleção nós mostramos a janela do
# Revit Python Shell novamente
__window__.Show()
__window__.Topmost = True
 
# obtemos o elemento a partir de sua referência usando a função
# GetElement() do objeto Document
elemento = doc.GetElement(selecionado)
 
# e mostramos o resultado
print("O id do elemento selecionado é: {0}".format(elemento.Id))

Ao executar este código Revit Python Shell nós teremos o seguinte resultado:

O id do elemento selecionado é: 359410

Veja como usei as funções __window__.Hide(), __window__.Show() e __window__.Topmost = True para ocultar a janela do Revit Python Shell e exibí-la novamente depois que o usuário fizer a seleção do elemento. Sem essas funções essa operação não pode ser realizada.


Java ::: Estruturas de Dados ::: Árvore Binária e Árvore Binária de Busca

Como percorrer uma árvore binária em Java usando o algorítmo depth-first search (DFS) de forma iterativa

Quantidade de visualizações: 1192 vezes
Nesta dica mostrarei como podemos implementar o algorítmo da Busca em Profundidade (DFS, do inglês depth-first search) em Java de forma iterativa, ou seja, sem usar recursão. Não farei a busca, mas sim o percurso, para que você entenda como a lógica dessa busca funciona.

Antes de iniciarmos, veja a árvore binária que vamos usar no exemplo:



Note que esta árvore possui seis nós. O nó 5 é o nó raiz, e possui como filhos os nós 4 e 9. O nó 4, por sua vez, possui apenas um filho, o nó 2, ou seja, o filho da esquerda. O nó 9 possui dois filhos: o nó 3 é o filho da esquerda e o nó 12 é o filho da direita. Os filhos da árvore binária que não possuem outros filhos são chamados de folhas.

Com a abordagem da busca em profundidade, começamos com o nó raiz e viajamos para baixo em uma única ramificação. Se o nó desejado for encontrado naquela ramificação, ótimo. Do contrário, continuamos subindo e pesquisando por nós não visitados. Esse tipo de busca também tem uma notação big O de O(n).

Vamos à implementação? Veja o código para a classe No, que representa um nó na árvore binária:

// implementação da classe No
class No{
  public int valor; // o valor do nó
  public No esquerdo; // o filho da esquerda
  public No direito; // o filho da direita
  
  public No(int valor){
    this.valor = valor;
    this.esquerdo = null;
    this.direito = null;
  }
}

Veja agora o código completo para o exemplo. Note que usei uma implementação não-recursiva, na qual todos os nós expandidos recentemente são adicionados a uma pilha, para realizar a exploração. O uso da pilha permite o retrocesso (backtracking) de forma a reiniciarmos o percurso ou busca no próximo nó.

Para manter o código o mais simples possível, eu usei a classe Stack do Java, juntamente com seus métodos push() e pop() para simular a pilha. Usei também uma ArrayList para guardar os valores da árvore binária na ordem depth-first.

Eis o código:

package estudos;

import java.util.ArrayList;
import java.util.Stack;

// implementação da classe No
class No{
  public int valor; // o valor do nó
  public No esquerdo; // o filho da esquerda
  public No direito; // o filho da direita
  
  public No(int valor){
    this.valor = valor;
    this.esquerdo = null;
    this.direito = null;
  }
}

public class Estudos{
  public static void main(String[] args){
    // vamos criar os nós da árvore
    No cinco = new No(5); // será a raiz da árvore
    No quatro = new No(4);
    No nove = new No(9);
    No dois = new No(2);
    No tres = new No(3);
    No doze = new No(12);
    
    // vamos fazer a ligação entre os nós
    cinco.esquerdo = quatro;
    cinco.direito = nove;
    quatro.esquerdo = dois;
    nove.esquerdo = tres;
    nove.direito = doze;
    
    // agora já podemos efetuar o percurso depth-first
    ArrayList<Integer> valores = percursoDepthFirst(cinco);
    System.out.println("Os valores na ordem Depth-First são: " + valores);
  }
  
  public static ArrayList<Integer> percursoDepthFirst(No no){
    // vamos usar uma ArrayList para retornar os elementos
    // na ordem Depth-First
    ArrayList<Integer> valores = new ArrayList<>();
    
    // vamos criar uma nova instância de uma pilha
    Stack<No> pilha = new Stack<>();
    // já vamos adicionar o primeiro nó recebido, que é a raiz
    pilha.push(no);
    
    // enquanto a pilha não estiver vazia
    while(pilha.size() > 0){
      // vamos obter o elemento no topo da pilha
      No atual = pilha.pop();
      // adicionamos este valor no ArrayList
      valores.add(atual.valor);
	  
      // vamos colocar o filho direito na pilha
      if(atual.direito != null){
        pilha.push(atual.direito);
      }
      
      // vamos colocar o filho esquerdo na pilha
      if(atual.esquerdo != null){
        pilha.push(atual.esquerdo);
      }
    }
    
    return valores; // retorna os valores da árvore
  }
}

Ao executarmos este código Java nós teremos o seguinte resultado:

Os valores na ordem Depth-First são: [5, 4, 2, 9, 3, 12]

Compare estes valores com a imagem vista anteriormente para entender ainda melhor o percurso ou busca Depth-First.


AutoLISP ::: Dicas & Truques ::: Passos Iniciais

O que é AutoLISP e como escrever seu primeiro programa nessa linguagem de programação

Quantidade de visualizações: 1593 vezes
O que é AutoLISP?

Se você chegou até este artigo vindo de um mecanismo de busca, é bem provável que você já saiba o que é a AutoLISP e para que ela serve. No entanto, é sempre bom reforçar. A AutoLISP é um dialeto, ou seja, uma derivação, da linguagem de programação LISP.

LISP vem de LISt Processing (Processamento de listas, vetores, matrizes, etc). Imagina-se que a LISP seja a linguagem de programação de alto nível mais antiga que se conhece, perdendo apenas para o FORTRAN. Embutida por padrão no AutoCAD, a LISP é a linguagem preferida para inteligência artificial em robótica.

Para que serve a AutoLISP no AutoCAD?

A AutoLISP, como mencionei acima, é linguagem de programação padrão do AutoCAD e já vem embutida nele, da mesma forma que a linguagem Python já vem embutida no FreeCAD. É claro que podemos manipular os objetos do AutoCAD usando VBA (Visual Basic for Applications), mas esta opção já não vem mais embutida por padrão na ferramenta.

No AutoCAD, a AutoLISP é usada para automatizar tarefas e tornar menos tediosos os desenhos com detalhes muito repetitivos. Um programa AutoLISP nos permite, entre outras coisas, desenhar linhas, círculos, retângulos, polígonos, etc, selecionar objetos no GA (área de desenho do AutoCAD), solicitar entrada do usuário, exibir saída, ler e escrever em arquivos e muitas outras funcionalidades.

Como escrever e executar um programa AutoLISP no AutoCAD

Agora que já sabemos o que é a AutoLISP e seus objetivos, vamos escrever nosso primeiro programa. Abra o seu editor de código favorito (aqui eu usei o Notepad++) e digite a seguinte listagem:

; Este programa é usado para desenhar uma
; linha a partir de dois pontos indicados
; pelo usuário
(defun desenharLinha()
  ; Vamos obter o primeiro ponto e guardar suas
  ; coordenadas na variável p
  (setq p (getpoint "Clique primeiro ponto na GA"))

  ; Vamos obter o segundo ponto e guardar suas
  ; coordenadas na variável q
  (setq q (getpoint "\nClique segundo ponto na GA"))

  ; Agora chamamos o comando LINE passando os
  ; dois pontos geométricos obtidos
  (command "LINE" p q "")
)

Veja que, já no início do código, nós temos uma função chamada desenharLinha(). Dessa forma, salve o arquivo com o nome "desenharLinha.lsp" no diretório de sua preferência.

Como carregar um programa AutoLISP no AutoCAD?

Agora que já temos o arquivo .lsp pronto, vamos aprender como carregá-lo no AutoCAD. Para isso, vá até o menu Manage e escolha a opção Load Application. Selecione o arquivo desejado e clique o botão Load. Se tudo correu bem, você receberá uma mensagem "_appload desenharLinha.lsp successfully loaded".

Agora já podemos usar nossa rotina para desenhar linhas no AutoCAD. Com a aba Model ativada, digite:

(DESENHARLINHA)

na janela de comandos do AutoCAD. Ao pressionar Enter você verá a mensagem "Clique primeiro ponto na GA". Lembrando que GA é a General Arrangement Drawing, ou seja, a área de desenho. Dessa forma, clique na área de desenho para que o código AutoLISP registre o primeiro ponto (coordenadas x, y, z).

No mesmo momento uma mensagem "Clique segundo ponto na GA" será exibida. Clique na área de desenho para registrar o segundo ponto e pronto! Você verá uma linha ser desenhada entre os dois pontos geométricos que você informou.


C++ ::: Desafios e Lista de Exercícios Resolvidos ::: Laços de Repetição

Exercícios Resolvidos de C++ - Como calcular e exibir os 50 primeiros números primos em C++

Quantidade de visualizações: 10072 vezes
Pergunta/Tarefa:

Um inteiro é um número primo se ele for divisível somente por 1 e por ele mesmo. Assim, 2, 3, 5 e 7 são primos, enquanto 4, 6, 8 e 9 não são. Note que o número 1 não é primo.

Escreva um programa C++ que usa um laço for, while ou do...while para calcular e exibir os 50 primeiros números primos. A saída do programa deverá ser parecida com:

50 primeiros números primos:

     2     3     5     7    11    13    17    19    23    29
    31    37    41    43    47    53    59    61    67    71
    73    79    83    89    97   101   103   107   109   113
   127   131   137   139   149   151   157   163   167   173
   179   181   191   193   197   199   211   223   227   229
Resposta/Solução:

Veja a resolução comentada deste exercício em C++:

#include <cstdlib>
#include <iostream>
#include <iomanip>

using namespace std;

int main(int argc, char *argv[]){
  int quantidade = 50; // quantidade de números primos
  int contador = 0; // quantidade de números primos encontrados
  int numero = 0; // inteiro inicial             
               
  // Lembre-se! O número 1 não é primo
  cout << quantidade << " primeiros numeros primos:\n" << endl;
  
  // laço while será executado até encontrar os 50 primeiros números primos 
  while(contador < quantidade){
    bool primo = true;
                       
    // se o valor de i for 7, a variável j do laço contará
    // de 2 até 7 / 2 (divisão inteira), ou seja, 3. Se o 
    // módulo de 7 por qualquer um dos valores neste intervalo 
    // for igual a 0, então o número não é primo
    for(int j = 2; j <= (numero / 2); j++){
      if(numero % j == 0){
        primo = false; // não é primo
        break;
      }
    }
    
    if((primo) && (numero > 1)){
      cout << setw(6) << numero;
      contador++; // encontramos um número primo
      
      if(contador % 10 == 0){
        cout << "\n";
      }
    }  
      
    numero++;  
  }
  
  cout << "\n\n";
  
  system("PAUSE");
  return EXIT_SUCCESS;
}



Mais Desafios de Programação e Exercícios e Algoritmos Resolvidos de C++

Veja mais Dicas e truques de 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


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 Apenas R$ 19,90


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