AutoCad - Insertar bloques con coordenadas y atributos desde excel

 
Vista:
sin imagen de perfil
Val: 7
Ha aumentado su posición en 4 puestos en AutoCad (en relación al último mes)
Gráfica de AutoCad

Insertar bloques con coordenadas y atributos desde excel

Publicado por Ricardo Fiol (4 intervenciones) el 13/04/2020 13:56:11
Hola.
Quisiera saber si alguien me puede ayudar para programar un cosa.
Necesito insertar una serie de bloques en un plano, teniendo en cuenta que:
- El bloque ya está creado (DET Opt-Ter)
- El bloque tiene 2 atributos (SAB-ELEMENTO y SAB-ZONA)

El problema es que si creo los bloques, exporto los atributos y los modifico en excel, al importar atributos no me modifica la posición del bloque, tan sólo me modifica el texto de los atributos.

Tengo esta base de programación para insertar los bloques en las coordenadas establecidas en el excel:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Sub InsertarBloques()
 
Dim Bloc As AcadBlockReference
Dim PtoIns(0 To 2) As Double
Dim Nombre As String
 
Fila = 2
 
Do While Cells(Fila, 1) <> ""
    Nombre = Cells(Fila, 1)
    PtoIns(0) = Cells(Fila, 2)
    PtoIns(1) = Cells(Fila, 3)
    PtoIns(2) = 0
    Set Bloc = AutoCAD.Application.ActiveDocument.ModelSpace.InsertBlock(PtoIns, Nombre, 1, 1, 1, 0)
    Fila = Fila + 1
Loop
 
End Sub

El código me inserta correctamente los bloques en las coordenadas pero lo que no sé es cómo darle a los 2 atributos de cada bloque el valor correspondiente (los atributos SAB-ELEMENTO y SAB-ZONA están en las columnas 4 y 5 del excel, respectivamente)

Gracias por cualquier ayuda que me podáis ofrecer y un saludo a todos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Juanma
Val: 171
Bronce
Ha mantenido su posición en AutoCad (en relación al último mes)
Gráfica de AutoCad

Insertar bloques con coordenadas y atributos desde excel

Publicado por Juanma (140 intervenciones) el 14/04/2020 12:28:24
te cuento como hacerlo desde autocad con una LISP

mete el valor de la celda que quieres poner en el atributo, en una variable, luego algo del estilo de:

(COMMAND "_insert" bloqueAinsertar pt0 1 1 0 contador TRI2 TRI3 TRI4 TRI5 TRI6)

donde contador, y todos los TRIx son esas variables.

poner un atributo tipo contador, o cualquier cosa que te sirva de ID, te permitirá buscar el bloque para susutituir el valor de cualquiera de sus atributoso cambiarlo por otro bloque.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 7
Ha aumentado su posición en 4 puestos en AutoCad (en relación al último mes)
Gráfica de AutoCad

Insertar bloques con coordenadas y atributos desde excel

Publicado por Ricardo Fiol (4 intervenciones) el 14/04/2020 12:47:15
Gracias por tu respuesta.
La verdad es que no conozco nada el lenguaje LIST.
Conozco un poco el VBA porque lo uso en excel y por eso había planteado la rutina desde el propio excel.

Entiendo que en la fila: (COMMAND "_insert" bloqueAinsertar pt0 1 1 0 contador TRI2 TRI3 TRI4 TRI5 TRI6)

"contador" se ha de sustituir por el nombre del atributo (p.e. SAB-ELEMENTO)
"TRI2 TRI3, etc se ha de sustituir por cada uno de los valores del atributo

¿Es así?
Si es así, lo que no me queda claro es cómo vincular cada bloque con las coordenadas en las que he de insertarlo. Tendría que haber tantos puntos de inserción como bloques. Además, los datos los debería coger del excel porque tengo algún caso con un registro enorme de bloques
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Juanma
Val: 171
Bronce
Ha mantenido su posición en AutoCad (en relación al último mes)
Gráfica de AutoCad

Insertar bloques con coordenadas y atributos desde excel

Publicado por Juanma (140 intervenciones) el 14/04/2020 13:13:21
la idea sería mediante un bucle while, leer las coordenadas del excel, lo mismo que el nombre del bloque, y el texto de los atributos, pasarlo todo a una variable, e insertarlo.
osea igual que lo haces tu, pero yo lo haría en lisp, que lo conozco algo...

intenta esto mismo pero en tu programa, busca como insertar un bloque con atributos, lo mismo es parecido a como se hace en lisp
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 7
Ha aumentado su posición en 4 puestos en AutoCad (en relación al último mes)
Gráfica de AutoCad

Insertar bloques con coordenadas y atributos desde excel

Publicado por Ricardo (4 intervenciones) el 14/04/2020 17:02:29
Lo he estado buscando y no encuentro nada.
En cualquier caso, igual me pongo a mirarme el LISP, que es más conveniente para Autocad.
Si me animo, tendré en cuenta tu planteamiento.
Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Juanma
Val: 171
Bronce
Ha mantenido su posición en AutoCad (en relación al último mes)
Gráfica de AutoCad

Insertar bloques con coordenadas y atributos desde excel

Publicado por Juanma (140 intervenciones) el 14/04/2020 22:19:47
esta lisp que subo, lee un excel y con un clip, pone el texto en donde has dado el click.

puedes modificarla para que el punto sea leído del excel, y en lugar de insertar un texto, inserte un bloque.

seguro que es una buena base. yo empezaría poco a poco, primero cambiando el texto por un bloque de ruta fija, y con un click, luego tratando que lea las coordenadas, y por ultimo que sea capaz de pedir la ruta del bloque.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 7
Ha aumentado su posición en 4 puestos en AutoCad (en relación al último mes)
Gráfica de AutoCad

Insertar bloques con coordenadas y atributos desde excel

Publicado por Ricardo (4 intervenciones) el 14/04/2020 23:44:12
Lo miraré, aunque eso ya lo tengo con VBA. Lo tenía haciendo la rutina desde el excel, pero ahora la he programado desde Autocad directamente.
Con la rutina que adjunto, abro el excel e inserto 20 bloques en las coordenadas que marca el excel. (el bloque ha de estar ya de definido en el dibujo, no lo va a buscar al archivo de origen)

Lo que no sé es cómo llamar a los atributos de cada bloque para cambiar su valor, que era mi pregunta original.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Insertar bloques con coordenadas y atributos desde excel

Publicado por Irán (1 intervención) el 11/03/2022 22:13:09
Mira, este video te puede servir. Yo he copiado el código ya y lo he adaptado a mi intensión con él. Espero te sea muy útil y, si lo consigues, compartas el código porque también me sería muy, muy útil una macro capaza de insertar un bloque con puros atributos sacados de una hoja de cálculo. Soy ingeniero electromecánico y trabajo con proyectos eléctricos en baja tensión y mi intensión es una macro que me haga más rápido el hacer el diagramas unifilares. Te comparto el .xls y el .dwg para que entiendas lo que busco. Saludos.

https://youtu.be/8Rm9Jk8qTyU
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar