Os desenhos CAD (Computer-Aided Design) são normalmente usados para criar planos e modelos arquitetônicos usando programas de software CAD. Alguns dos formatos de arquivo AutoCAD mais conhecidos são DWG, DXF, DGN, DWF. Discutimos visualizar os desenhos CAD usando Java em um artigo separado. Hoje, neste artigo, discutiremos como visualizar arquivos CAD programaticamente usando C# em aplicativos .NET.

Os seguintes tópicos são abordados abaixo em breve:

API do visualizador CAD .NET – DWG, DXF, DWF, DGN

Neste artigo, usarei o GroupDocs.Viewer for .NET que permite renderizar programaticamente os arquivos CAD como DWG para PDF, JPG, PNG e HTML em aplicativos .NET. Além de DWG, a API suporta DWF, DGN, DWT, DXF, IFC, STL, documentos Plotter e muitos mais.

Além dos formatos de arquivo CAD, a API fornece os mesmos recursos de renderização para documentos de processamento de texto, planilhas, apresentações, páginas da Web, imagens, vetores, eBooks, desenhos do Visio, muitos arquivos de código-fonte de diferentes linguagens de programação.

Baixe o instalador DLLs ou MSI da seção de downloads ou instale a API em seu aplicativo .NET via NuGet.

PM> Install-Package GroupDocs.Viewer

Converter desenhos CAD para visualização como HTML, PNG, JPG ou PDF em C#

Neste artigo, estou usando apenas o formato DWG para a conversão e renderização para outros formatos com exemplos. Vamos começar com a conversão do arquivo de design DWG para renderizá-lo como HTML com opções de recursos incorporados e externos usando C#.

Converter DWG para HTML com recursos incorporados em C#

A seguir estão as etapas de como converter o arquivo DWG para renderizar como HTML.

O código-fonte a seguir converte o arquivo DWG e o renderiza como HTML com recursos incorporados usando C#.

// Renderize o desenho DWG CAD para visualizar como HTML com recursos incorporados usando C#
using (Viewer viewer = new Viewer("drawing.dwg"))
{
    HtmlViewOptions viewOptions = HtmlViewOptions.ForEmbeddedResources("page_{0}.html");
    viewer.View(viewOptions);
}

Converter DWG para HTML com recursos externos em C#

A seguir estão as etapas para converter o arquivo DWG e renderizá-lo como arquivo(s) HTML com recursos externos.

O código-fonte a seguir renderiza o arquivo DWG como HTML com recursos externos em C#.

// Renderize o desenho C# CAD para visualizar como HTML com recursos externos usando C#
using (Viewer viewer = new Viewer("drawing.dwg"))
{
    HtmlViewOptions viewOptions = HtmlViewOptions.ForExternalResources(
        "page_{0}.html","page_{0}/resource_{1}","page_{0}/resources");

    viewer.View(viewOptions);
}

Converta DWG para PDF, JPG e PNG em C#

Assim como a conversão para o formato HTML, os arquivos DWG podem ser renderizados nos formatos PDF, PNG e JPG usando as respectivas ViewOptions da seguinte forma:

Obter layouts e camadas de DWG em C#

Os arquivos CAD podem conter vários layouts e camadas, você pode obter esses layouts e camadas usando as etapas a seguir.

  • Carregue o arquivo DWG usando a classe Viewer.
  • Crie o ViewInfoOptions para renderização de visualização HTML.
  • Usando o Viewer, obtenha o CadViewInfo que possui layouts.
  • Obtenha os layouts do CadViewInfo e itere sobre eles.
  • Da mesma forma, obtenha as camadas do CadViewInfo e itere sobre elas.

O código a seguir mostra como obter os layouts e as camadas do arquivo ا DWG usando C#.

// Obtenha layouts e camadas de desenho DWG CAD em C#
using (Viewer viewer = new Viewer("drawing.dwg"))
{
    ViewInfoOptions viewInfoOptions = ViewInfoOptions.ForHtmlView();
    CadViewInfo viewInfo = viewer.GetViewInfo(viewInfoOptions) as CadViewInfo;

    Console.WriteLine("File type: " + viewInfo.FileType);
    Console.WriteLine("Pages count: " + viewInfo.Pages.Count);

    foreach (Layout layout in viewInfo.Layouts)
        Console.WriteLine(layout);

    foreach (Layer layer in viewInfo.Layers)
        Console.WriteLine(layer);
}

Renderize camadas CAD do arquivo DWG em C#

Se você não deseja renderizar todas as camadas, mas apenas algumas camadas específicas do DWG, isso pode ser feito definindo os nomes das camadas.

  • Carregue o desenho DWG usando a classe Viewer.
  • Crie opções de visualização.
  • Adicione camadas CAD às Opções de Visualização
  • Renderize DWG para HTML usando o método View.

O código a seguir renderiza as camadas de um arquivo CAD no formato DWG em C#.

// Renderizar camadas de desenho CAD .dwg em C#
using (Viewer viewer = new Viewer("drawing.dwg"))
{
    HtmlViewOptions viewOptions = HtmlViewOptions.ForEmbeddedResources();
    viewOptions.CadOptions.Layers = new List<Layer>
    {
        new Layer("Walls"),
        new Layer("Windows")
    };
    viewer.View(viewOptions);
}

Renderizar layouts CAD de arquivo DWG em C#

Por padrão, só obtemos a apresentação do modelo quando renderizamos um arquivo CAD. Podemos definir propriedades para renderizar todos os layouts não vazios junto com o modelo.

  • Carregue o desenho DWG usando a classe Viewer.
  • Crie opções de visualização.
  • Defina a propriedade Render Layouts como true.
  • Renderize DWG para HTML usando o método View.

O código a seguir renderiza todos os layouts não vazios junto com o modelo de um desenho CAD com formato DWG em C#.

// Renderizar layouts de desenho CAD .dwg em C#
using (Viewer viewer = new Viewer("drawing.dwg"))
{
   HtmlViewOptions viewOptions = HtmlViewOptions.ForEmbeddedResources();
   viewOptions.CadOptions.RenderLayouts = true;
   viewer.View(viewOptions);
}

Obtenha uma licença de API gratuita

Você pode obter uma licença temporária gratuita para usar a API sem limitações de avaliação.

Conclusão

Para concluir, espero que você tenha aprendido a visualizar arquivos CAD em C# dentro dos aplicativos .NET. Além disso, você viu como obter e mostrar modelos, layouts e camadas de arquivos CAD em seu aplicativo. Você deve estar confiante para construir seu próprio CAD Viewer usando C#. Você pode experimentar os aplicativos on-line para visualizar qualquer um de seus arquivos. Eles são criados usando GroupDocs.Viewer.

Você pode aprender mais sobre GroupDocs.Viewer for .NET usando a documentação. Caso você tenha alguma dúvida, sinta-se à vontade para nos informar através do nosso fórum.

Veja também