DOTNET, AutoCAD e blocos

É, as imagens do blog sumiram… mas não adianta ficar choramingando… pede pra sair!!!! pede pra sair sr 01!!!!

Hoje vou mudar um pouco e postar um código pra substituir blocos de diversos desenhos.

O caso é o seguinte: nosso contratante sismou que queria um bloco do carimbo diferente com layers diferentes, etc.

Temos trocentos arquivos DWG, com trocentos layouts cada. Imagina o trabalhão de substituir cada bloco de cada desenho….

Sim, você deve (deveria!!!) ter usado XREF, mas por algum motivo, não o fez. Terá de fazer não mão!!!

Serviço, não?

Bom, existem muitas formas de fazer isso, e como sou programador (ou não!!!), claro que escrevi algumas linhas pra me resolver isso

O programa resultou nisto:

No primeiro campo informamos o nome do bloco antigo.

No segundo campo, informamos um dwg que contem um bloco com o mesmo nome, porem editado.

Fiz assim, porque este bloco possui atributos dinâmicos.

Depois, no terceiro campo você escolhe a pasta onde estão os trocentos arquivos a modificar.

O último campo tem o nome do atributo dinâmico de “Visibility State”. Se não tiver isso, deixe em branco.

Bem simples, né?

Aí é só mandar rodar e esperar…..
Um fiz aqui com 125 arquivos de 1.2MB cada e levou uns 5 minutos!!! Isso porque usei o RAMDISK e porque a técnica que usei para abrir o desenho, não precisa fazer nenhum “Regen”, que é o que realmente demora no autocad.

Bom, o programa em sí é funcional, e nele voce poderá ver como abrir um dwg, editar e salvar

Compilei para o cad 2012, a DLL está na pasta ./bin/debug

use NETLOAD para carregar e TROCABLOCOS para usar

o código fonte está disponível. Usei o VS 2010

Se você gostar, posta um comentário aí!!!

O código fonte e o executável estão aqui

10 comentários em “DOTNET, AutoCAD e blocos”

  1. para instalar:
    digite APPLOAD na linha de comando e selecione a DLL do programa, que está na pasta "./bin/debug"

    para substituir uma palavra em vários layouts da mesma forma que este programa faz, você terá de ter condições de localizar ela. Exemplo: se a palavra é um atributo de bloco, bastaria achar as inserções dos blocos, iterar sobre seus atributos e localizar um atributo específico.

    mas se o texto é um text, terá de criar um filtro de seleção que aceite TEXT ou MTEXT, onde o conteúdo seja o texto antigo e depois substituir o texto

  2. Olá Neyton,
    você falou que usa uma técnica "Jedi" para acelerar processos…

    "…a técnica que usei para abrir o desenho,
    não precisa fazer nenhum 'Regen',
    que é o que realmente demora no autocad."

    Te pergunto: Essa "técnica Jedi" também serve para plotagem? Ou existe alguma semelhante para isso?

    Meu arquivos de CAD (de terraplenagem principalmente) tem uns 150 ou mais layouts e isso leva horas para gerar os PDFs, sem contar que passear de aba em aba no geométrico é outro suplício na hora de plotar… Um projeto já levou 10 minutos para mudar de aba e outros tantos para imprimir…

    Lembra do AutoCAD 10?
    Ele tinha um menu no início e você escolhia a opção 1) New, 2) Open, 3) Plot, etc.
    Você plotava direto sem abrir/visualizar o desenho.

    Tem alguma "técnica" que possibilite plotar todos os layouts sem abrir o desenho?
    Ou o PUBLISH é a única saida?

    []s

Deixe um comentário

Carrinho de compras
Rolar para cima