Mudar tudo no desenho para uma nova layer automaticamente.

Mudar tudo no desenho para uma nova layer automaticamente.

Anonymous
Não aplicável
5.488Exibições
10Respostas
Mensagem 1 de 11

Mudar tudo no desenho para uma nova layer automaticamente.

Anonymous
Não aplicável

Bom dia pessoal, 

Gostaria de uma ajuda com o pessoal mais antigo de AutoCAD. 

Quando eu recebo um desenho de algum cliente, preciso ficar dando explode no desenho inteiro varias vezes, para depois mudar tudo para uma layer que chamo de CINZA, e mudar a cor do projeto inteiro para cinza. Para que eu faça o meu projeto elétrico em cima do projeto que recebi.
Esse processo de ficar explodindo todos os detalhes do projeto consome muita capacidade do computador, como são projetos grandes leva um tempo para ser executado manualmente. 

Existe  alguma técnica capaz de explodir o desenho inteiro de uma vez, mesmo que tenham blocos dentro de blocos, dentro de outros blocos. Algo que seja capaz de explodir tudo e mudar todo o desenho para uma layer só ?

 

Ou alguma outra técnica que dê pra eu desenhar em cima do outro desenho com ele todo cinza.

 

Pra ilustrar segue uma imagem do meu CAD travando após eu tentar selecionar o projeto inteiro para dar o explode. Ele destrava e seleciona, mas eu perco horas com isso as vezes.
cadtrav.png

Obrigado.

0 Curtidas
Soluções aceitas (1)
5.489Exibições
10Respostas
Respostas (10)
Mensagem 2 de 11

hidroform
Advisor
Advisor

@Anonymous  boa tarde.

 

Para explodir, principalmente blocos com atributos eu recomendo o comando BURST.

O comando explode os blocos selecionados, preservando a camada de bloco e convertendo valores de atributos em objetos de texto.

https://knowledge.autodesk.com/support/autocad/learn-explore/caas/CloudHelp/cloudhelp/2021/ENU/AutoC...

Um dos comandos mais úteis conforme descreveu o seu fluxo de trabalho é o LAYMGR (Merge).

Neste recurso você escolha as Layers que quer mesclar e depois a Layer de destino.

Ao confirmar a escolha, todas as entidades da Layer a serem mescladas são transferidas automaticamente para a Layer de destino e as respectivas Layers são deletadas.

Veja, no link abaixo, as duas maneiras de usar o recurso.

https://knowledge.autodesk.com/support/autocad/learn-explore/caas/CloudHelp/cloudhelp/2020/ENU/AutoC...

Espero ter ajudado.

 

Sérgio Murilo

 

 

Mensagem 3 de 11

f_santana
Mentor
Mentor
Solução aceita

li o sua publicação e notei um "erro" de workflow.
o ideal não é inserir as bases de projeto com o comando insert. isso gera muito retrabalho "sem o menor sentido".

o melhor workflow é trabalhar com referencias externas. sempre inseridas no ponto 0,0,0 e uma planta por arquivo (isso muitos não fazem e dá um trabalho enorme na compatibilização).

escrevi uma seria sobre referencias externas no meu blog
https://rf2s.wordpress.com/2012/07/20/referencias-externas/
https://rf2s.wordpress.com/2013/06/11/referencias-externas-e-o-autocad/
https://rf2s.wordpress.com/2015/07/01/referencias-externas-e-o-autocad-parte-02/


Você achou uma postagem útil? Então fique à vontade para curtir essas postagens!
Sua pergunta obteve uma resposta que resolveu a duvida? Então clique no botão Aceitar Solução.


Fábio Santana
Architect | CAD/BIM Manager

EESignature

Mensagem 4 de 11

MatiasWendt
Advisor
Advisor

Para auxiliar no seu processo, podes criar uma LISP com um código semelhante ao código abaixo, onde ao chamar a lisp através do comando BL>Enter, o AutoCAD enviar todos os objetos de seu arquivo para a Layer CINZA, com demais propriedades definidas como Bylayer..

 

(defun c:bl() 

(command "change" "all" "" "P" "LA" "CINZA" "")
(command "change" "all" "" "P" "C" "Bylayer" "")
(command "change" "all" "" "P" "LT" "Bylayer" "")
(command "change" "all" "" "P" "LW" "Bylayer" "")

)

claro que essa lisp é simples, ou seja, ela não altera as propriedades internas de blocos...

Se a resposta resolveu o seu problema clique em ACEITAR SOLUÇÃO, isso ajuda os outros usuários a encontrar rapidamente uma resposta, e se gostou, cliquem em CURTIR.


Matias I. Wendt


YouTube | Facebook | LinkedIn | Instagram

EESignature

             
0 Curtidas
Mensagem 5 de 11

Anonymous
Não aplicável

(defun c:bl() 

(command "change" "all" "" "P" "LA" "CINZA" "")
(command "change" "all" "" "P" "C" "Bylayer" "")
(command "change" "all" "" "P" "LT" "Bylayer" "")
(command "change" "all" "" "P" "LW" "Bylayer" "")

)

É um pouco mais complexo que isso, aqui está um um programa que te ajuda a conseguir o resultado esperado. 

 

;;Referencia: https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general
(defun c:mudartodasascores ( / d )
  (vlax-for b (vla-get-blocks (setq d (vla-get-activedocument (vlax-get-acad-object))))
    (if (and (= :vlax-false (vla-get-isxref b)) (not (wcmatch (vla-get-name b) "`*D*,_*")))
      (vlax-for o b (vl-catch-all-apply 'vla-put-color (list o 251))) 
      ;;substituao 251 por o numero de sua cor.
    )
  )
  (vla-regen d acallviewports)
  (princ)
)
(princ)

 

Mensagem 6 de 11

MatiasWendt
Advisor
Advisor

não entendo pq seria mais complexo, pois eu tenho uma lisp exatamente igual ao código que postei acima (apena o nome da Layer é diferente), e funciona muito bem...

Se a resposta resolveu o seu problema clique em ACEITAR SOLUÇÃO, isso ajuda os outros usuários a encontrar rapidamente uma resposta, e se gostou, cliquem em CURTIR.


Matias I. Wendt


YouTube | Facebook | LinkedIn | Instagram

EESignature

             
0 Curtidas
Mensagem 7 de 11

Anonymous
Não aplicável

Simples:

  1. O seu código não altera a cor nem de xrefs e nem blocos. 
  2.  Como o Henrique postou "Esse processo de ficar explodindo todos os detalhes do projeto consome muita capacidade do computador "O seu código MUDA ( change = mudança) usando o mesmo comando do acad então não terá ganho de performance.
Mensagem 8 de 11

f_santana
Mentor
Mentor

mesmo a programação, mas efetiva que voce fez demanda muito processamento em grandes projetos.
por isso que existe a opção da referencia externa. efetivamente não é a resposta a pergunta inicial, mas é o melhor workflow, principalmente pensando em grandes projetos.


Você achou uma postagem útil? Então fique à vontade para curtir essas postagens!
Sua pergunta obteve uma resposta que resolveu a duvida? Então clique no botão Aceitar Solução.


Fábio Santana
Architect | CAD/BIM Manager

EESignature

Mensagem 9 de 11

MatiasWendt
Advisor
Advisor

Por isso que eu escrevi: "claro que essa lisp é simples, ou seja, ela não altera as propriedades internas de blocos.."

 

para o que ela se propõe a fazer, ela funciona muito bem.

Se a resposta resolveu o seu problema clique em ACEITAR SOLUÇÃO, isso ajuda os outros usuários a encontrar rapidamente uma resposta, e se gostou, cliquem em CURTIR.


Matias I. Wendt


YouTube | Facebook | LinkedIn | Instagram

EESignature

             
0 Curtidas
Mensagem 10 de 11

MatiasWendt
Advisor
Advisor

Concordo com vc @f_santana , seria a melhor opção a ser utilizada.

Se a resposta resolveu o seu problema clique em ACEITAR SOLUÇÃO, isso ajuda os outros usuários a encontrar rapidamente uma resposta, e se gostou, cliquem em CURTIR.


Matias I. Wendt


YouTube | Facebook | LinkedIn | Instagram

EESignature

             
0 Curtidas
Mensagem 11 de 11

Anonymous
Não aplicável

Ola pessoal, eu trabalho com topsolid e autocad, gero os desenhos em 2d no topsolid e envio para dwg para finaliza-los no autocad.

Porem para passar todas as linhas para minhas layers padrao, preciso fazer manualmente selecionando as linhas por cores e passando para uma layer correspondente, por exemplo:

>seleciono todas as linhas que estao na cor cyan para minha layer nomeada de "contorno", com a cor, expessura e tipo correta. 

e faço  o mesmo processo com cada linha especifica do projeto, "linha de centro", "linha de corte" e etc.

todo projeto preciso fazer o mesmo trabalho, teria como automatizar esse processo?

Obrigado

0 Curtidas