Pular para o conteúdo principal

Postagens

Mostrando postagens de março, 2020

Criando um Layout do AutoCAD com plot e viewport configuradas usando .NET

Esses dias precisei fazer um diagrama unifilar. Esse tipo diagrama vem de uma longa multiplicação diagramática de muitos anos o que significa que os documentos são formado por linhas básicas, em model space e com cada folha em um arquivo dwg separado. Pensado assim fiz alguns ajustes na elaboração dos documentos e a primeira coisa que queria era colocar todas as folhas em um único documento dwg, ponto crucial. Se o documento tem poucas folhas é fácil mas e quando o documento tem muitas folhas seria interessante ter algum mecanismo para criar todos os Layout’s de modo automático. Outro ponto é que sempre que se cria um Layout no AutoCAD o Layout vem sem nenhuma configuração e com uma viewport bizarra no meio do documento. Usar o Layout é nitidamente uma atividade geral que muitas pessoas precisam automatizar. using System ; using System.Collections.Generic ; using System.Linq ; using System.Text ; using Autodesk.AutoCAD.ApplicationServices ; using Autodesk.AutoC

Capturando um desenho ativo na tela do AutoCAD usando .NET

A ideia desse pequeno código é facilitar a inserção de desenhos de AutoCAD em relatórios, uma prática comum em que faz projetos de engenharia. Esse código usa a API - Document.CapturePreviewImage(). Com esse código pode ser feita uma captura em tamanho real da tela e convertido para um arquivo de imagem para salva-lo no disco. O que geralmente faço é criar no paper space uma janela com fundo branco já no tamanho que eu quero e enquadrar a parte do desenho que quero exportar então daria para exportar sempre uma imagem no tamanho da tela e com resolução. Aqui está a implementação em C# de um comando ExportarImg que usa a API para salvar uma imagem de "visualização" com o mesmo tamanho exato da janela do documento. using Autodesk.AutoCAD.ApplicationServices ; using Autodesk.AutoCAD.EditorInput ; using Autodesk.AutoCAD.Runtime ; using System ; using System.Drawing.Imaging ; using System.IO ; using System.Windows ; using System.Drawing ; namespace AutoCAD.NET

Bloqueando e Desbloqueando visibilidade de Layers usando .NET

Esses dias me deparei com alguns documentos que estavam organizados em Layers o que é bem raro onde trabalho porque a maior parte das pessoas simplesmente ignora a existência de Layers no AutoCAD e começa a desenhar qualquer coisas sem escala ou controle de qualquer natureza. Eu não queria desmontar essa organização então pensei em uma maneira de permitir que bloquear os objetos de modo que eu mesmo não pudesse edita-los. Como eram muito layers isso estava sendo trabalhoso então resolvi buscar na internet algum código que permitisse realizar isso de maneira automática. Não demorei muito para encontrar esse artigo do Kean que mostra como fazê-lo. Realmente como ele mesmo relata no artigo existem muitos casos em que o AutoCAD trava fazendo isso, nas minhas primeiras tentativas isso também ocorreu usando o SendCommand(). Seguindo o exemplo dele mudei a configuração do comando para criar a propriedade IsOff/IsFrozen como um ativador para a função personalizada Editor.ApplyCurDwgLa