Lisp para numeração de legenda

Dúvidas sobre VB para AutoCAD...

Moderador: Moderadores

Responder
Matheus_L
Novato
Novato
Mensagens: 1
Registrado em: Qua 24 Ago 2022 3:57:37 pm

Lisp para numeração de legenda

Mensagem por Matheus_L »

Boa tarde.


Pessoal estou com o seguinte problema:

Quando inicio o detalhamento de um projeto, pego uma referencia com as legendas ja definidas, conforme dou andamento, retiro um item ou outro do projeto, com isso a legenda fica fora de ordem, e preciso numerar manualmente, porém as vezes são muitas posições e ficar entrando em bloco por bloco demora muito tempo.

Legenda inicial:
Captura de tela 2022-08-24 162415.png
Captura de tela 2022-08-24 162415.png (7.52 KiB) Exibido 800 vezes

Tela onde altero o número de posição:
Captura de tela 2022-08-24 163753.png
Captura de tela 2022-08-24 163753.png (10.95 KiB) Exibido 800 vezes
Legenda durante o processo:
Captura de tela 2022-08-24 163118.png
Neste exemplo excluí o item 9 e movi o item 19 para sua posição.

Aproveitando os codigos de um colega, desenvolvemos este aqui:

Sub NUMERAR_LEG()

For Each elem In ThisDrawing.ModelSpace
If elem.EntityName = "AcDbBlockReference" Then
If elem.HasAttributes Then
If elem.Name = "DB_LEG" Then

Array1 = elem.GetAttributes

If Array1(0).TagString = "ITEM" Then
Array1(0).TextString = X + 1
X = X + 1

End If
End If
End If
End If
Next elem
End Sub


Porém, ele pesquisa na tela o elemento com nome "Deb_Leg" pela ordem que foi criado, no exemplo acima, todos os números iriam ficar na sequencia, porém ele pula o item que está como 19, ai quando chega la no item que esta como 18 vira o 17 normalmente e depois vai para o item que está como 19 e coloca 18, ficando assim na ordem errada, pois este comando pega a ordem de criação do bloco "Deb_Legen" e não a posição em relação ao eixo "Y", poderiam me ajudar por gentileza?

OBS:
Utilizo no serviço o ZWCAD porém se me derem um norte como funciona no próprio CAD já ajuda.
Responder