• Este fórum é a tradução automática de www.cad3d.it/forum1 - a comunidade italiana de design. Vários termos não foram traduzidos corretamente.

Explorando um bloco contido em outro bloco

  • Criador do tópico Criador do tópico rdilecce80
  • Start date Start date

rdilecce80

Guest
Olá, pessoal.
Boas festas para todos.
Tenho um problema que nunca aconteceu em autocad.
dime creme para o corte de pele.
cada centavo em autocad é um bloco para si mesmo.
desta vez, no entanto, eu tenho um arquivo que contém todas as lâminas, mas, dentro das lâminas há os saltos famosos que, no entanto, são "blocos nos blocos" ou, o entalhe é uma linha, mas um bloco.
Uma vez que são 280 centavos e eu tenho que salvá-los em dxf e depois importá-los para o programa específico, eu precisaria explodir apenas o bloco do calcanhar.
resultado final para cada centavo, será um conjunto de linhas, txt e polilinee agrupados em um bloco.

por mão o procedimento é:
1 - bloco aberto "dima1" no editor de bloco
2 - Explodes bloco "tacca"
3 - fechar e salvar.

Obrigado a quem me pudesse decepcionar nesta pergunta
 
selecionar todos os blocos de tack usando os comandos _filter
_filter lança, escolha a partir do menu drop-down "bloquear nome" (ou bloquear nome) e escreva no caselline seus entalhes, em seguida, adicione.
feito isso quando você dá ok acad permite que você selecione todo o dwg e ele descarta os blocos de entalhes de nome, deixando-o como seleção todos os blocos entalhes.
de uma explosão e para os objetos de seleção responder com um p (previous) et voilà o jogo é feito.
 
Obrigado pela resposta.
não age :

Então:
1. existem 280 blocos cada um com seu próprio nome (por exemplo, bloco1; bloco2; bloco3... )
2. cada bloco é formado por um polilinea, um txt e outro bloco chamado notchs2 (que é o famoso entalhe)
3. Eu vou para o filtro - nome do bloco - adicionar bloco notchs2 - aplicar - me diz: selecione objetos.
4. Eu tento selecionar todos os blocos, mas me diz: 0 encontrado
 
seu comando é válido se todos os 280 blocos explodiram, mas para filtrar apenas o bloco no bloco, ele não vai
 
esperando em lisp eu sugiro uma escamotage, que pode não ser rápido embora:
entrar no bloco que você quer explodir
inserir uma figura que a destaca do resto do desenho como um círculo de uma cor não presente ou em uma camada dedicada
sair do bloco salvando-o
Agora você tem todos os blocos que contêm o bloco para explodir
selecione um círculo e altere o primeiro bloco de nível onde você explora o conteúdo e exclua o círculo. para acelerar o procedimento associa o duplo clique no bloco sua modificação.
 
esperando em lisp eu sugiro uma escamotage, que pode não ser rápido embora:
entrar no bloco que você quer explodir
inserir uma figura que a destaca do resto do desenho como um círculo de uma cor não presente ou em uma camada dedicada
sair do bloco salvando-o
Agora você tem todos os blocos que contêm o bloco para explodir
selecione um círculo e altere o primeiro bloco de nível onde você explora o conteúdo e exclua o círculo. para acelerar o procedimento associa o duplo clique no bloco sua modificação.
hmm já tentou colocar todos os saltos em uma camada que entra no bloco notchs2. Se eu desligar todos os níveis, exceto que, na verdade, me faz ver apenas os saltos, mas eu não posso explorá-los caso contrário cada bloco explode: sapo:
 
já tentou colocar todos os saltos em uma camada que entra no bloco notchs2
Não foi isso que escrevi.
no entanto, que também é um sistema válido; identificando o bloco notchs2 você entra em modificação do bloco que contém e você pode explodir notchs2.
usando o comando Modifrif você trabalha sem entrar no modo de gerenciamento de blocos, permitindo uma maior velocidade de execução.
como você vê na imagem com o comando Modifrif abre uma janela mostrando os blocos editáveis em vários níveis e você pode decidir sobre qual agir; no caso em questão você selecionará o superior a notchs2, sendo assim capaz de explodir o bloco dentro dele. você sai com o comando O que se passa? que salva o blocoImmagine.jpg
 
Muito obrigado pelas respostas.
Agora eu começo assim esperando por algumas almas boas que criam um lisp para acelerar muito o trabalho.

Eu desabilitei todas as camadas, exceto o "4" para que nem sempre deve ampliar em cada peça :rolleyes:

Bom Ano Novo!
 
Experimente este programa que só explode os saltos, sem explodir as lâminas. a seleção necessária é apenas para os blocos. blocos que não contêm entalhes2 não sendo tratados.
Código:
(defun c:esptac (/ blocos gru dima index listadima count)
(blocos setq (vla-get-blocks (vla-get-activedocument (vlax-get-acad-object))))))
gru(sget '((0 . "inserir"))))
)
(repetir (índice de setq (comprimento gru))
(setq dima(sname gru (setq index(1-index))))
listadima(vla-item blocos (cdr(assoc 2)))))
contagem 0
)
(vlax para elem listadima
(se (e (equal (vla-get-objectname (vla-item listadima count))
(equal (vla-get-name (vla-item listadima count)) "notchs2")
)
(vla-item listadima count)
)
(contagem de setq(1+ contagem)
)
)
)
 
Confutatis, muito obrigado pela resposta.

É um lábios ou devo colocá-lo em vba?

Se vba como posso inseri-lo? Não estou a agendar. Com licença.
 
Tentei criar um lisp chamado esptac.

Eu o enviei, mas o seguinte erro sai:
comando: _appload esptac.lsp caricato.
comando:
comando:
comando: esptac
; erroe: no function definition: vlax-get- acad-object
uso autocad 14 64bit su win7
 
Última edição:
depois de uma pesquisa no Google, cheguei à conclusão de que você tinha que adicionar a linha (vl-load-com) e trabalhos.

Código completo:
(defun c:esptac (/ blocos gru dima index listadima count)(vl-load-com)(blocos setq (vla-get-blocks (vla-get-activedocument (vlax-get-acad-object))))))
gru(sget '((0 . "inserir"))))
)
(repetir (índice de setq (comprimento gru))
(setq dima(sname gru (setq index(1-index))))
listadima(vla-item blocos (cdr(assoc 2)))))
contagem 0
)
(vlax para elem listadima
(se (e (equal (vla-get-objectname (vla-item listadima count))
(equal (vla-get-name (vla-item listadima count)) "notchs2")
)
(vla-item listadima count)
)
(contagem de setq(1+ contagem)
)
)
)

problema resolvidomuito obrigado a todos por paciência e apoio
 
Vejo que cancelou o seu pedido para inserir o entalhe explodido na camada "4". esta versão resolve o problema
 

Anexos

Sim, eu tinha excluído o pedido para inserir o entalhe explodido na camada "4" porque eu entrei no bloco entalhe2, eu inseri-o manualmente na camada 4 e tudo funciona.
Eu então tentei este último lsp você me enviou, mas não automantly colocá-los em camada 4. cmq não importa.
para mim o importante era explodir os saltos todos juntos e não um bloco de cada vez.

Muito obrigado por tudo:
 
ao limite, se você quiser mudar a camada, basta alterar a linha (vla-put-layer listent "4"), onde "4" é o nome da camada
 

Estatísticas do fórum

Tópicos
58,521
Mensagens
499,056
Membros
104,110
Último membro
ChristianR

Membros online

Nenhum membro online agora.
Voltar
Topo