Pasar datos de Excel a Autocad

19/06/2007 - 12:45 por Antonio Jesús | Informe spam
Hola a todos y gracias de antemano. Estoy intentando automatizar una hoja
excel de tal forma que todos los datos me los exporte a dibujo autocad, y
casi lo tengo. He conseguido a través de macros exportar los puntos y unirlos
con polilíneas, pero me falta saber como si insertan bloques. Es decir, yo
abro (desde excel siempre) una plantilla de autocad con todos lo bloques que
necesito de los cuales sus nombres están en una columna de excel. Pues bien,
necesito la rutina que me inserte esos bloques. ¿Alguien me puede ayudar? El
código con el que lo estoy intentando es éste:

Public AcadApp As Object
Public Bloque As Object

Sub AcadConnect()

On Error Resume Next
Set AcadApp = GetObject(, "Autocad.Application")
If Err Then
Err.Clear
Set AcadApp = CreateObject("Autocad.Application")
AcadApp.Visible = True
If Err Then
MsgBox Err.Description
Exit Sub
End If
End If

Dim dwgName As String
dwgName = "c:\datos.dxf" 'ruta donde se encuentra en archivo
If Dir(dwgName) <> "" Then
AcadApp.Documents.Open dwgName
Else
MsgBox "El Archivo " & dwgName & " No se encuentra"
End If

Dim coordenadas(0 To 2) As Double
coordenadas(0) = 1
coordenadas(1) = 1
coordenadas(2) = 0
Dim nombre As String
nombre = Cells(1, 1)

Set Bloque = AcadApp.ActiveDocument.Blocks.Add(coordenadas, nombre)

End Sub

En teoría, debería de insertar un bloque en el punto (1,1,0) con el nombre
que pongamos en la casilla A1.

Por favor que alguien me ayude que estoy desesperado.

Preguntas similare

Leer las respuestas

#1 Juan M
19/06/2007 - 14:40 | Informe spam
"Antonio Jesús" escribió

Hola a todos y gracias de antemano. Estoy intentando automatizar una hoja
excel de tal forma que todos los datos me los exporte a dibujo autocad, y
casi lo tengo. He conseguido a través de macros exportar los puntos y
unirlos
con polilíneas, pero me falta saber como si insertan bloques. Es decir, yo
abro (desde excel siempre) una plantilla de autocad con todos lo bloques
que
necesito de los cuales sus nombres están en una columna de excel. Pues
bien,
necesito la rutina que me inserte esos bloques. ¿Alguien me puede ayudar?
El
código con el que lo estoy intentando es éste:

Public AcadApp As Object
Public Bloque As Object

Sub AcadConnect()

On Error Resume Next
Set AcadApp = GetObject(, "Autocad.Application")
If Err Then
Err.Clear
Set AcadApp = CreateObject("Autocad.Application")
AcadApp.Visible = True
If Err Then
MsgBox Err.Description
Exit Sub
End If
End If

Dim dwgName As String
dwgName = "c:\datos.dxf" 'ruta donde se encuentra en archivo
If Dir(dwgName) <> "" Then
AcadApp.Documents.Open dwgName
Else
MsgBox "El Archivo " & dwgName & " No se encuentra"
End If

Dim coordenadas(0 To 2) As Double
coordenadas(0) = 1
coordenadas(1) = 1
coordenadas(2) = 0
Dim nombre As String
nombre = Cells(1, 1)

Set Bloque = AcadApp.ActiveDocument.Blocks.Add(coordenadas, nombre)

End Sub

En teoría, debería de insertar un bloque en el punto (1,1,0) con el nombre
que pongamos en la casilla A1.

Por favor que alguien me ayude que estoy desesperado.




Hola Antonio Jesús,

cambia la instrucción

Set Bloque = AcadApp.ActiveDocument.Blocks.Add(coordenadas, nombre)



por esta otra

Set Bloque = AcadApp.ActiveDocument.ModelSpace.InsertBlock(coordenadas,
nombre, 1#, 1#, 1#, 0)

Lo que haces con la que has puesto es añadir un nombre mas a los bloques.
Para comprobarlo, pon un nombre que no exista de bloque y ejecuta tu código,
ahora ve al menú insertar bloque y verás que ha aparecido el que acabas de
escribir.

Te paso los parámetros de insertar bloque

object.InsertBlock(InsertionPoint, Name, Xscale, Yscale, ZScale, Rotation [,
Password])

Un saludo,
Juan
Respuesta Responder a este mensaje
#2 Antonio Jesús
19/06/2007 - 17:17 | Informe spam
Juan estoy en casa y no puedo comprobar el código que me has puesto. Mañana
en la oficina lo haré. Como funcione, me haces el tío más feliz del día de
hoy. Gracias y un fuerte abrazo por responder. Mañana te comento.

Saludos
Respuesta Responder a este mensaje
#3 Antonio Jesús
20/06/2007 - 08:25 | Informe spam
Pues efectivamente funciona. No sabes lo que te lo agradezco. Si estás cerca
de Jaén te invito a un café o a lo que quieras. Gracias de nuevo amigo.
Respuesta Responder a este mensaje
#4 Juan M
20/06/2007 - 11:20 | Informe spam
"Antonio Jesús" escribió
Pues efectivamente funciona. No sabes lo que te lo agradezco. Si estás
cerca
de Jaén te invito a un café o a lo que quieras. Gracias de nuevo amigo.



Gracias a ti por la invitación.

Un saludo,
Juan
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida