Desafios e Lista de Exercícios Resolvidos: Java | Python | VisuAlg | Portugol | C | C# | VB.NET | C++
Você está aqui: AutoCAD .NET API C# ::: Dicas & Truques ::: Criação de Plug-ins e Add-ons

Como criar o seu primeiro plug-in para o AutoCAD usando ObjectARX, Visual Studio 2019 e C#

Quantidade de visualizações: 180 vezes
Nesta dica mostrarei passo-a-passo como você pode criar o seu primeiro plug-in para o AutoCAD 2023 usando ObjectARX, Visual Studio 2019 e C#. O primeiro passo é ter em mente que o AutoCAD 2023 requer códigos C# ou VB.NET que têm como alvo o .NET Framework 4.8. Mesmo se a versão do seu .NET Framework for superior a isso, teremos que alterar o alvo para 4.8. Mais adiante eu mostro como isso pode ser feito.

Como o tempo passa muito rápido, pode ser que você esteja lendo essa dica com uma instalação do AutoCAD 2024 ou mais recente. Antes de continuar, pesquise a versão do .NET Framework exigida pela sua versão.

Então, vamos começar. Na minha máquina eu tenho o AutoCAD 2023, o Visual Studio 2019 (embora eu já tenha o VS 2022, uso a versão 2019 para o desenvolvimento de plug-ins para o AutoCAD e o Revit) e o .NET Framework 5.0. Lembre-se: mais adiante vou mostrar como colocar como target o .NET Framework 4.8.

Como instalar o ObjectARX SDK

Antes de iniciarmos o desenvolvimento de plug-ins para o AutoCAD, nós precisamos do SDK do ObjectARX. Para fazer o download, acesse a URL https://www.autodesk.com/developer-network/platform-technologies/autocad/objectarx-download e escolha a versão para a sua instalação do AutoCAD. Na minha máquina o diretório "inc" do ObjectARX que contém os assemblies que vamos usar no nosso plug-in está localizado em "C:\Autodesk\ObjectARX\inc".

Criando o projeto C# no Visual Studio

Inicie o Visual Studio 2019 e vá no menu Arquivo -> Novo -> Projeto. Na janela "Criar um novo projeto", selecione Biblioteca de Classes e marque a linguagem C#. Clique o botão Próximo.

Na janela "Configurar seu novo projeto", dê o nome "PrimeiroPluginAutoCAD" para o campo Nome do projeto e, em seguida, escolha o local que você quer salvá-lo. Para este exemplo eu salvei o projeto no diretório "C:\estudos_autocad". Clique o botão Próximo.

Na janela "Informações adicionais" nós podemos selecionar a Estrutura de Destino. Se você não tiver o .NET Framework 4.8, escolha a mais superior e recente. Para esta dica eu coloquei .NET 5.0. Mais adiante a gente vai editar o arquivo de configuração do projeto para termos como alvo o .NET Framework 4.8. Clique o botão Criar.

Até o momento o nosso plug-in contém o seguinte código:



Veja que ainda está longe do nosso objetivo, mas vamos com calma.

Como adicionar referências aos assemblies do ObjectARX SDK

Antes de continuarmos nós precisamos resolver as dependências para os assemblies do ObjectARX SDK. Para isso, vá no Gerenciador de Soluções, expanda o item PrimeiroPluginAutoCAD, clique com o botão direito no nó Dependências e escolha a opção Adicionar Referência de Projeto.

Na janela Gerenciador de Referências, vá na opção Procurar -> Recente. Clique o botão Procurar e vá até o diretório "C:\Autodesk\ObjectARX\inc". Localize o arquivo AcMgd.dll, selecione-o e clique o botão Adicionar. Faça o mesmo com os arquivos AcDbMgd.dll e AcCoreMgd.dll. Para finalizar, clique o botão Ok na janela Gerenciador de Referências, expanda cada uma das referências que adicionamos e marque a opção Local da Cópia como "não".

Código completo para o plug-in do AutoCAD usando ObjectARX, Visual Studio 2019 e C#

Já temos tudo que precisamos. Está na hora de escrever o código do Plug-in. Modifique o conteúdo do arquivo Program.cs para a seguinte versão:



Agora, vá até o diretório "C:\estudos_autocad\PrimeiroPluginAutoCAD" e abra o arquivo PrimeiroPluginAutoCAD.csproj para edição (pode ser no Bloco de Notas, Notepad++, etc). Altere o valor do elemento <TargetFramework> para:



Hora de compilar o plug-in. Clique na opção Compilação -> Compilar Solução. Se tudo correu bem você encontrará um arquivo PrimeiroPluginAutoCAD.dll no diretório "C:\estudos_autocad\PrimeiroPluginAutoCAD\", dentro da pasta "bin\Debug\net4.8". Este é o arquivo do nosso plug-in do AutoCAD.

Como executar o meu plug-in C# no AutoCAD

Agora que já temos o arquivo PrimeiroPluginAutoCAD.dll, abra o AutoCAD e digite NETLOAD na janela de comando e pressione Enter. Na janela Choose .NET Assembly você deverá selecionar o arquivo PrimeiroPluginAutoCAD.dll e clicar o botão Open.

Não se assuste com o texto "O autor deste complemento não pôde ser verificado. O que deseja fazer?". Este aviso é muito comum quando estamos instalando plug-ins no AutoCAD. Se você tem certeza que o plug-in foi baixado de uma fonte confiável, basta clicar no botão Sempre Carregar e ir em frente.

Agora é só digitar "DESENHARLINHA" na janela de comandos e ver uma linha ser desenhada automaticamente nas coordenadas (0, 0, 0) e (50, 100, 0). Deu tudo certo? Agora é só aprofundar os seus conhecimentos no desenvolvimento de plug-ins para o AutoCAD usando ObjectARX, Visual Studio 2019 e C#.

Link para compartilhar na Internet ou com seus amigos:

Python ::: Dicas & Truques ::: Geometria, Trigonometria e Figuras Geométricas

Como testar se um ponto está dentro de um círculo em Python - Desenvolvimento de Games com Python

Quantidade de visualizações: 824 vezes
Quando estamos trabalhando com computação gráfica, geometria e trigonometria ou desenvolvimento de jogos em Python, é comum precisarmos verificar se um determinado ponto (uma coordenada x, y) está contido dentro de um círculo.

Para melhor entendimento, veja a imagem a seguir:



Veja que temos um círculo com raio igual a 115 e com centro nas coordenadas (x = 205; y = 166). Temos também dois pontos. O ponto vermelho está nas coordenadas (x = 140; y = 90) e o ponto azul está nas coordenadas (x = 330; y = 500.

Como podemos ver na imagem, o ponto vermelho está dentro do círculo, enquanto o ponto azul está fora. E nosso intenção nesta dica é escrever o código Python que permite fazer essa verificação. Tenha em mente que está técnica é muito útil para o teste de colisões no desenvolvimento de games.

Veja o código completo para o exemplo:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

# vamos importar o módulo Math
import math

# vamos declarar a classe Circulo
class Circulo:
  # construtor da classe
  def __init__(self, xc, yc, raio):
    self.xc = xc
    self.yc = yc
    self.raio = raio
  
# agora vamos declarar a classe Ponto
class Ponto:
  def __init__(self, x, y):
    self.x = x # coordenada x
    self.y = y # coordenada y	

# método principal
def main():
  # vamos criar um objeto Circulo
  c = Circulo(205, 166, 115)
  # vamos criar um objeto Ponto
  p = Ponto(140, 90)
  
  # vamos verificar se o ponto está dentro do
  # círculo
  dx = p.x - c.xc;
  dy = p.y - c.yc;
  
  if((math.pow(dx, 2) + math.pow(dy, 2)) < math.pow(c.raio, 2)):
    print("O ponto está dentro do círculo")
  else:
    print("O ponto NÃO está dentro do círculo")

if __name__== "__main__":
  main()

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

O ponto está dentro do círculo.

Experimente com círculos de raios e coordenadas centrais diferentes e também com pontos em várias coordenadas e veja como os resultados são interessantes.


Java ::: Projetos Java Completos - Códigos Fonte Completos Java ::: Jogos (Games)

Como criar o jogo Pedra, Papel, Tesoura em Java - Jogo completo em Java com código comentado

Quantidade de visualizações: 5563 vezes
Faça o download do código-fonte Pedra, Papel, Tesoura em Java

Nesta dica mostrarei como criar o famoso joguinho Pedra, Papel, Tesoura na linguagem Java. Trata-se de um código bem simples e que vou comentar linha a linha, para que você extraia todo o conteúdo necessário para deixar a sua lógica de programação ainda mais afiada.

Nesta versão eu mostrarei como jogar Pedra, Papel, Tesoura contra o computador. Depois de entender todo o código você não terá dificuldade para implementar uma versão que lhe permitirá jogar contra seus amigos.

Antes de vermos o código, eis uma imagem do jogo em execução:



Quais técnicas de programação vou aprender com o código desse jogo?

O joguinho Pedra, Papel, Tesoura é ótimo para estudantes de programação que está iniciando em Java e que gostariam de aprimorar sua lógica de programação, afinal, se você desenvolver uma boa lógica de programação, você conseguirá desenvolver soluções em qualquer linguagem.

Além de entender como funciona o desenvolvimento de jogos em Java, você reforçará o seu conhecimento de laços, estrutura condicional if...else, entrada e saída e fluxo e desvio do algorítmo.

Veja, por exemplo, um trecho de código no qual testamos se o jogador escolheu Pedra, Papel ou Tesoura, e também a escolha feita pelo computador:

// o jogador escolheu Pedra?
else if(jogador == 1){
  // o computador escolheu Papel?
  if(computador == 2){
    System.out.println("Você perdeu. Papel embrulha Pedra");
    vitoriasComputador++; // aumenta as vitórias do computador
  }
  else{ // o computador escolheu Tesoura
    System.out.println("Você ganhou. Pedra amassa Tesoura");
    vitoriasJogador++; // aumenta as vitórias do jogador
  }
}
// o jogador escolheu Papel?
else if(jogador == 2){
  // o computador escolheu Tesoura?
  if(computador == 3){
    System.out.println("Você perdeu. Tesoura corta Papel");
    vitoriasComputador++; // aumenta as vitórias do computador
  }
  else{ // o ocmputador escolheu Pedra
    System.out.println("Você ganhou. Papel embrulha Pedra");
    vitoriasJogador++; // aumenta as vitórias do jogador
  }
}
Como posso obter este código fonte?

Os links para você baixar todas as versões deste projeto estão abaixo:

1) PEDPAPTESJC - Jogo Pedra, Papel, Tesoura em Java Console - NetBeans IDE - Faça o download do código-fonte Pedra, Papel, Tesoura em Java.

Não se esqueça: Uma boa forma de estudar o código é fazendo pequenas alterações e rodando para ver os resultados. Outra opção é começar um projeto Java do zero e ir adicionando trechos do código fonte para melhor entendimento de suas partes.


Java ::: Dicas & Truques ::: Geometria, Trigonometria e Figuras Geométricas

Como calcular a equação reduzida da reta em Java dados dois pontos pertencentes à reta

Quantidade de visualizações: 1074 vezes
Nesta dica de Java veremos como calcular a equação reduzida da reta quando temos dois pontos pertencentes à esta reta. Não, nessa dica não vamos calcular a equação geral da reta, apenas a equação reduzida. Em outras dicas do site você encontra como como isso pode ser feito.

Para relembrar: a equação reduzida da reta é y = mx + n, em que x e y são, respectivamente, a variável independente e a variável dependente; m é o coeficiente angular, e n é o coeficiente linear. Além disso, m e n são números reais. Com a equação reduzida da reta, é possível calcular quais são os pontos que pertencem a essa reta e quais não pertencem.

Vamos começar então analisando a seguinte figura, na qual temos dois pontos que pertencem à uma reta:



Note que a reta da figura passa pelos pontos A(5, 5) e B(9, 2). Então, uma vez que já temos os dois pontos, já podemos calcular a equação reduzida da reta. Veja o código Java completo para esta tarefa:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

package estudos;

import java.util.Scanner;

public class Estudos{
  public static void main(String[] args){
    // vamos usar a classe Scanner para ler os dados
    Scanner entrada = new Scanner(System.in);
    
    // vamos ler as coordenadas do primeiro ponto
    System.out.print("Coordenada x do primeiro ponto: ");
    double x1 = Double.parseDouble(entrada.nextLine());
    System.out.print("Coordenada y do primeiro ponto: ");
    double y1 = Double.parseDouble(entrada.nextLine());
    
    // vamos ler as coordenadas do segundo ponto
    System.out.print("Coordenada x do segundo ponto: ");
    double x2 = Double.parseDouble(entrada.nextLine());
    System.out.print("Coordenada y do segundo ponto: ");
    double y2 = Double.parseDouble(entrada.nextLine());
    
    String sinal = "+";
    // vamos calcular o coeficiente angular da reta
    double m = (y2 - y1) / (x2 - x1);
    // vamos calcular o coeficiente linear
    double n = y1 - (m * x1);
 
    // coeficiente linear menor que zero? O sinal será negativo
    if (n < 0){
      sinal = "-";
      n = n * -1;
    }
  
    // mostra a equação reduzida da reta
    System.out.println("Equação reduzida: y = " + m + "x" 
      + " " + sinal + " " + n);
    
    System.exit(0);
  }
}

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

Coordenada x do primeiro ponto: 5
Coordenada y do primeiro ponto: 5
Coordenada x do segundo ponto: 9
Coordenada y do segundo ponto: 2
Equação reduzida: y = -0,75x + 8,75

Para testarmos se nossa equação reduzida da reta está realmente correta, considere o valor 3 para o eixo x da imagem acima. Ao efetuarmos o cálculo:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

>> y = (-0.75 * 3) + 8.75
y = 6.5000

temos o valor 6.5 para o eixo y, o que faz com que o novo ponto caia exatamente em cima da reta considerada na imagem.


JavaScript ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes)

Adicionando três elementos ao final de um vetor em JavaScript usando o método push() do objeto Array - Como adicionar elementos ao final de um vetor usando JavaScript - Revisado

Quantidade de visualizações: 6967 vezes
Neste dica mostrarei como usar o método push() do objeto Array da linguagem JavaScript para adicionar três elementos ao final de um vetor. Veja o código completo, incluindo a página HTML que permite executar o exemplo:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

<html>
<head>
  <meta charset="utf-8">
  <title>Estudos JavaScript</title>
</head>
<body>

<script type="text/javascript">
  // vamos declarar e instanciar um vetor com 5 elementos
  var valores = new Array(1, 2, 3, 4, 5);
  document.write("Valores no vetor: " + valores + "<br>");
  
  // agora vamos adicionar mais três elementos
  valores.push(6, 7, 8);
  document.write("Valores no vetor: " + valores);
</script>

</body>
</html>

Ao abrir esta página HTML nós teremos o seguinte resultado:

Valores no vetor: 1,2,3,4,5
Valores no vetor: 1,2,3,4,5,6,7,8


Java ::: Pacote java.awt.image ::: BufferedImage

Como desenhar um BufferedImage em um JComponent do Java

Quantidade de visualizações: 10771 vezes
Neste exemplo nós usamos o método drawImage() da classe Graphics para desenhar o conteúdo de um BufferedImage (que contém uma imagem JPG) em uma JFrame do Java Swing:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

import java.awt.*;
import java.io.*;
import java.awt.image.*;
import java.awt.event.*;
import javax.swing.*;
import javax.imageio.*;

public class Estudos extends JFrame{
  private BufferedImage imagem;
  
  public Estudos(){
    super("Estudos Java");
    
    Container c = getContentPane();
    c.setLayout(new FlowLayout());
	
    JButton btn = new JButton("Carregar Imagem");
    btn.addActionListener(
      new ActionListener(){
        public void actionPerformed(ActionEvent e){
          imagem = null;
          
          try{
            imagem = ImageIO.read(
              new File("imagens/fundo.jpg"));
          }
          catch(IOException exc){
            JOptionPane.showMessageDialog(null, 
              "Erro ao carregar a imagem: " + 
              exc.getMessage());
          }

          if(imagem != null){
            desenhar();   
          }
        }
      }
    );

    c.add(btn);
    	
    setSize(400, 300);
    setVisible(true);
  }

  public void desenhar(){
    // desenha a imagem no JFrame
    Graphics g = getGraphics();   
    g.drawImage(imagem, 0, 0, this);
  }
  
  public static void main(String args[]){
    Estudos app = new Estudos();
    app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  }
}



Desafios, Exercícios e Algoritmos Resolvidos de Java

Veja mais Dicas e truques de Java

Dicas e truques de outras linguagens

Quem Somos

Osmar J. Silva
Programador Freelancer
WhatsApp +55 (062) 98553-6711

Goiânia-GO
Programador Freelancer - Full Stack Developer, Professional Java Developer, PHP, C/C++, Python Programmer, wxWidgets Professional C++ Programmer, Freelance Programmer. Formado em Ciência da Computação pela UNIP (Universidade Paulista Campus Goiânia) e cursando Engenharia Civil pela PUC-Goiás. Possuo conhecimentos avançados de Java, Python, JavaScript, C, C++, PHP, C#, VB.NET, Delphi, Android, Perl, e várias tecnologias que envolvem o desenvolvimento web, desktop, front-end e back-end. Atuo há mais de 20 anos como programador freelancer, atendendo clientes no Brasil, Portugal, Argentina e vários outros paises.
Entre em contato comigo para, juntos, vermos em que posso contribuir para resolver ou agilizar o desenvolvimento de seus códigos.
José de Angelis
Programador Freelancer
WhatsApp +55 (062) 98243-1195

Goiânia-GO
Programador Freelancer - Formado em Sistemas de Informação pela Faculdade Delta, Pós graduado em Engenharia de Software (PUC MINAS), Pós graduado Marketing Digital (IGTI) com ênfase em Growth Hacking. Mais de 15 anos de experiência em programação Web. Marketing Digital focado em desempenho, desenvolvimento de estratégia competitiva, analise de concorrência, SEO, webvitals, e Adwords, Métricas de retorno. Especialista Google Certificado desde 2011 Possui domínio nas linguagens PHP, C#, JavaScript, MySQL e frameworks Laravel, jQuery, flutter. Atualmente aluno de mestrado em Ciência da Computação (UFG)
Não basta ter um site. É necessário ter um site que é localizado e converte usuários em clientes. Se sua página não faz isso, Fale comigo e vamos fazer uma analise e conseguir resultados mais satisfatórios..

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: Delphi
6º lugar: C
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby

Códigos Fonte

Programa de Gestão Financeira Controle de Contas a Pagar e a Receber com Cadastro de Clientes e FornecedoresSoftware de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimento
Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais
Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidadesControle 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


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