Skip to content

Repository files navigation

AutoCADTools

Biblioteca profissional e suíte modular de plugins e automações para AutoCAD 2022, desenvolvida em C# e .NET Framework 4.8 com foco em projetos de Arquitetura e Engenharia.

Build and Test Target Platform License


1. Objetivo do Projeto

O AutoCADTools foi concebido como uma base modular, escalável e de longo prazo para eliminar tarefas manuais e repetitivas nos projetos técnicos de CAD. Seu objetivo é estruturar uma biblioteca padronizada que suporte futuras ferramentas especializadas em:

  • Arquitetura (paredes, esquadrias, áreas, paginações);
  • Projetos Elétricos e Hidráulicos (diagramas, tabelas de cargas, tubulações);
  • Estrutural (eixos, armações, perfis);
  • Manipulação de Layers, Blocos, Textos e Cotas;
  • Viewports, Layouts e automação de pranchas;
  • Seleção e filtragem avançada de entidades no DWG;
  • Padronização e auditoria técnica de desenhos.

Nesta fase de fundação, o foco é estabelecer uma arquitetura desacoplada, segura e com testes automatizados.


2. Status do Projeto

  • Versão Atual: 0.1.0 (Fase 0 — Foundation concluída).
  • Estado: Infraestrutura base consolidada, CI configurado, suíte de 31 testes unitários aprovados e comando inicial de validação (AT_INFO) implementado e funcional.

3. Versão Suportada do AutoCAD

  • Alvo Primário: AutoCAD 2022 (versão interna R24.1, release 24.1.x).
  • Arquitetura: x64 (64-bit obrigatório).

4. Stack Tecnológica

  • Linguagem: C# 10.0.
  • Framework: .NET Framework 4.8 (net48).
  • API Host: AutoCAD Managed .NET API (accoremgd.dll, acdbmgd.dll, acmgd.dll).
  • Pacote de Compilação: AutoCAD.NET versão 24.1.51000 (referência oficial Autodesk via NuGet).
  • Testes: xUnit 2.9.3 + Microsoft.NET.Test.Sdk.
  • Build System: MSBuild / .NET SDK (SDK-style projects).

5. Requisitos do Sistema

Para compilar e executar o projeto em ambiente local:

  • Sistema Operacional Windows 10 ou 11 (64-bit);
  • AutoCAD 2022 instalado;
  • .NET Framework 4.8 Developer Pack (Targeting Pack);
  • .NET SDK 8.0 ou superior;
  • Visual Studio 2022 (Community, Professional ou Enterprise) com a carga de trabalho .NET Desktop Development ou Antigravity IDE / VS Code.

6. Instalação para Desenvolvimento

  1. Clone o repositório:

    git clone https://github.com/igorfelib/AutoCADTools.git
    cd AutoCADTools
  2. Restaure as dependências via CLI:

    dotnet restore AutoCADTools.sln
  3. (Opcional) Caso seu AutoCAD 2022 esteja instalado fora do caminho padrão C:\Program Files\Autodesk\AutoCAD 2022, crie um arquivo local AutoCAD.Local.props na raiz:

    <Project>
      <PropertyGroup>
        <AutoCADPath>D:\SeuCaminho\AutoCAD 2022</AutoCADPath>
      </PropertyGroup>
    </Project>

7. Compilação

Via Scripts PowerShell (Recomendado):

# Compila em Release (x64)
.\scripts\build.ps1 -Configuration Release

# Executa todos os testes unitários
.\scripts\test.ps1 -Configuration Release

Via .NET CLI:

dotnet build AutoCADTools.sln -c Release
dotnet test AutoCADTools.sln -c Release

8. Carregamento do Plugin no AutoCAD

Método A: Comando NETLOAD (Manual para Desenvolvimento)

  1. Inicie o AutoCAD 2022 e abra qualquer desenho (.dwg).
  2. Digite o comando:
    NETLOAD
    
  3. Navegue até a pasta do build e selecione:
    src\AutoCADTools.Plugin\bin\x64\Release\net48\AutoCADTools.Plugin.dll
    
  4. Observe a mensagem de inicialização no prompt:
    [AutoCADTools v0.1.0] Inicializado com sucesso!
    Digite 'AT_INFO' para informacoes e comandos.
    

Método B: Autoloader Bundle (Recomendado para Produção)

  1. Execute o script de empacotamento:
    .\scripts\package-bundle.ps1
  2. Copie a pasta gerada distribution/AutoCADTools.bundle para a pasta de plugins do usuário:
    %APPDATA%\Autodesk\ApplicationPlugins\
    
  3. Ao abrir o AutoCAD 2022, o plugin será carregado automaticamente na inicialização.

9. Arquitetura

O projeto adota os princípios da Clean Architecture, dividindo estritamente as responsabilidades:

graph LR
    Core["AutoCADTools.Core\n(Domínio Puro / Cálculos / Unidades)"]
    AutoCAD["AutoCADTools.AutoCAD\n(Integração API / Transações / Locks)"]
    Plugin["AutoCADTools.Plugin\n(Comandos AT_* / IExtensionApplication)"]
    Tests["AutoCADTools.Core.Tests\n(Testes xUnit Automatizados)"]

    Plugin --> AutoCAD
    Plugin --> Core
    AutoCAD --> Core
    Tests --> Core
Loading
  • AutoCADTools.Core: Lógica pura e algoritmos independentes do AutoCAD. Não referencia nenhuma biblioteca Autodesk. 100% testável fora do processo do CAD.
  • AutoCADTools.AutoCAD: Encapsulamento de banco de dados DWG (Database), transações atômicas (ExecuteInTransaction), DocumentLock e manipulação de Editor.
  • AutoCADTools.Plugin: Ponto de entrada (EntryPoint), registro em catálogo e métodos [CommandMethod].
  • AutoCADTools.Core.Tests: Suíte automatizada de validação.

Consulte o documento completo em docs/architecture/overview.md.


10. Estrutura do Repositório

/
├── src/
│   ├── AutoCADTools.Core/        # Regras de negócio puras, geometria e unidades
│   ├── AutoCADTools.AutoCAD/     # Integração transacional e adaptadores Autodesk
│   └── AutoCADTools.Plugin/      # Ponto de entrada, lifecycle e comandos AT_*
│
├── tests/
│   └── AutoCADTools.Core.Tests/  # Testes unitários com xUnit
│
├── distribution/
│   └── AutoCADTools.bundle/      # Especificação Autoloader (PackageContents.xml)
│
├── docs/
│   ├── architecture/             # Visão arquitetural e ADRs formais
│   ├── development/              # Guias de setup, novos comandos e debug
│   ├── commands/                 # Catálogo detalhado de comandos
│   └── references/               # Referências técnicas oficiais da Autodesk
│
├── scripts/                      # Scripts de automação (build, test, package)
│
├── .agents/                      # Governança de IA (regras, subagente, skills)
│   ├── rules/
│   ├── agents/
│   └── skills/
│
├── .github/                      # Automações de CI e templates de colaboração
│
├── Directory.Build.props         # Configuração centralizada do MSBuild
├── Directory.Build.targets       # Supressão de cópia de DLLs proprietárias
├── AutoCADTools.sln              # Solução principal
├── README.md                     # Documentação geral
├── CONTRIBUTING.md               # Guia de contribuição
├── CHANGELOG.md                  # Histórico de versões
├── LICENSE                       # Licença de uso (MIT)
├── AGENTS.md                     # Regras mestras para agentes e LLMs
└── .editorconfig                 # Padrões de formatação de código

11. Comandos Disponíveis

Comando Descrição Domínio Status
AT_INFO Exibe diagnóstico completo, versões detectadas do AutoCAD e do plugin, layer atual e unidades DWG. Diagnóstico Ativo (v0.1.0)
AT_LAYER_AUDIT Audita layers do DWG, computa estatísticas e aponta layers não utilizados. Layers / Auditoria Ativo (v0.2.0)
AT_LAYER_LIST Lista todos os layers em tabela formatada com cores, tipos de linha, uso e estados. Layers / Produtividade Ativo (v0.2.0)

Para especificações detalhadas de cada comando, consulte docs/commands/.


12. Roadmap

Phase 0 — Foundation (Concluída)

  • Estrutura da solução e projetos desacoplados;
  • Build configurado para AutoCAD 2022 (.NET 4.8 / x64);
  • Isolamento de dependências via NuGet oficial (AutoCAD.NET);
  • Regras permanentes de governança e agente especialista (AGENTS.md);
  • Workflow GitHub Actions para CI;
  • Comando de validação inicial (AT_INFO);
  • Suíte de testes unitários automatizados (31 testes aprovados).

Phase 1 — Core Infrastructure (Em Andamento)

  • Infraestrutura de auditoria e inspeção de Layers (ILayerService, LayerService);
  • Identificação nativa de layers não utilizados via Database.Purge;
  • Comandos de produtividade de layers (AT_LAYER_AUDIT, AT_LAYER_LIST);
  • Helpers transacionais avançados e seletores tipados por DxfCode;
  • Utilitários de manipulação de Layers (criação em lote, purgação seletiva);
  • Utilitários de inspeção de blocos dinâmicos e atributos.

Phase 2 — Discipline Modules

  • Módulo de Arquitetura (cálculo de áreas de ambientes, cotas automáticas);
  • Módulo de Elétrica e Hidráulica (contagem de símbolos, circuitos);
  • Módulo de Estruturas e Perfis.

Phase 3 — Distribution & Tooling

  • Instalador automatizado MSI / Inno Setup;
  • Custom Ribbon e menus de contexto no AutoCAD.

13. Como Contribuir

Contribuições são muito bem-vindas! Por favor, leia nosso Guia de Contribuição para detalhes sobre nosso fluxo de trabalho, padrões de código e diretrizes de submissão de Pull Requests.


14. Licença

Este projeto é licenciado sob a licença MIT — veja o arquivo LICENSE para mais detalhes.


15. Referências Técnicas Oficiais

About

Professional AutoCAD 2022 .NET automation library and plugin suite for Architecture and Engineering.

Topics

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages