Pular para o conteúdo principal

Postagens

Mostrando postagens de fevereiro, 2020

Criando uma tabela baseada em desenhos do AutoCAD usando .NET

A muito tempo que utilizo tabelas dentro de desenhos DWG. As vezes preciso converter uma tabela em Excel para o AutoCAD o que por vezes é chato e as vezes fica muito ruim principalmente porque as tabelas não respeitam os tipos de fonte do desenho etc... Estava buscando na internet formas alternativas de o faze-lo e encontrei no blog do Kean Walmsley um post com este código que envolve duas coisas que precisarei: (i) manipulação de múltiplos documentos DWG com importação e (ii) manipulação de tabelas e construção dinâmica baseadas em código. Aqui está o código em C#: using Autodesk.AutoCAD.ApplicationServices ; using Autodesk.AutoCAD.DatabaseServices ; using Autodesk.AutoCAD.EditorInput ; using Autodesk.AutoCAD.Runtime ; using Autodesk.AutoCAD.Windows ; using System.IO ; using System.Linq ; namespace Recursos_Blocos { public class Comandos_Blocos { [CommandMethod("LISTAR_BLOCOS_DESENHOS")] public void ListarDesenhosDosBlocos ()

Páginas são como Layers - Múltiplas Páginas no AutoCAD, o curioso caso do Elétron

A algum tempo comecei a trabalhar em subestações e me deparei com um programa que é bem popular aqui no Brasil chamado Elétron . O Elétron é desenvolvido pela Cadgrah em Object ARX e .NET para AutoCAD que permite a criação de diagramas trifilares e funcionais, diagrama construtivo e diagrama de interligação em projetos de subestações de energia. Em subestações de potência existe o conceito de um caderno funcional. Um Caderno é um único desenho que pode englobar diversos painéis que em conjunto controlam um conjunto de dispositivos com uma função específica. Esse conceito veio dos EUA na década de 60 quando os primeiros projetos que alavancaram o setor elétrico brasileiro começaram principalmente com a CHESF e as grandes obras de interligação de ITAIPU e da construção de Brasília. Então, diferentemente dos projetos industriais de painéis onde cada desenho (caderno) corresponde a um painel fisicamente isolado e todos os cabos que seguem para outros painéis são referenciados

Obtendo atributos dos blocos no AutoCAD usando .NET

Esses dias comecei a trabalhar com projetos usando objetos e blocos para legendas e me veio a necessidade de listar todos as propriedades de um bloco em uma lista no prompt de comando. Este pequeno código é uma prova de funcionalidade de como é possível listar as propriedades de um Block Reference da tela. Associado com outras funções que já apresentei nesse blog é possível criar uma ferramenta completa até mesmo listando e referenciando. Código em C#: using Autodesk.AutoCAD ; using Autodesk.AutoCAD.Runtime ; using Autodesk.AutoCAD.ApplicationServices ; using Autodesk.AutoCAD.DatabaseServices ; using Autodesk.AutoCAD.EditorInput ; namespace Exemplos { public class FunccoesParaBlocos { [CommandMethod("LISTA_ATRIBUTOS")] public void LISTA_ATRIBUTOS () { Editor ed = Application.DocumentManager.MdiActiveDocument.Editor; Database db = HostApplicationServices.WorkingDatabase; Transact

Criando um palette dinâmico no AutoCAD para comandos e métodos usando o .NET

Eu queria criar um palette para colocar uma família de funções para alguns amigos meus que não usam .NET. Na verdade eu sempre faço alguns pequenos comandos e funções no trabalho para auxiliar as pessoas a realizarem o trabalho mais rapidamente. Todos esses comandos eu somei em uma única DLL. O fato é que depois que eu o faço simplesmente esqueço que já fiz então tenho que buscar o comando no programa ou como, já aconteceu, fazer novamente a mesma coisa... Resolvi então fazer um palette onde coloco dinamicamente os comandos como botões. O palette em si é um objeto do Windows.Forms então basicamente o que queremos é fazer um código para criar dinamicamente um formulário do Windows. O primeiro passo foi descobrir como chamar os comandos de maneira sistemática a partir dos botões. Para isso existe os tipos personalizados de do atributo CommandMethod (). Criei um comando - denominado MeusComandos, para MyCmdListPalette - que usa expressão do módulo principal do assembly em exec