SCORG

Fecha actual Vie Sep 10, 2010 6:33 am

Todos los horarios son UTC - 4 horas




Nuevo tema Responder al tema  [ 15 mensajes ] 
Autor Mensaje
 Asunto: Arcos de excel a autocad
NotaPublicado: Lun Feb 08, 2010 1:25 pm 
Desconectado

Registrado: Jue May 21, 2009 11:27 am
Mensajes: 68
Buenas tardes a todos y gracias por adelantado.
Aunque sé que hay muchos en este foro que "controlan bastante" me voy a dirigir frany porque es él quien está más al día sobre mis dudas.
frany, se trata de realizar el mismo proceso que en el excel último, pero en vez de con líneas con arcos, se decir se tomarán una serie de puntos de distintos rangos y se unirán por medio de arcos. Estoy intentando primero con un solo arco pero me lanza este error " error de compilación. se esperaba una matriz". Ya no sé dónde mirar. Os pongo el código. Echazle un vistazo por favor.

Public AcadApp As Object
Public AcadDoc As Object
Public moSpace As Object
Public paSpace As Object
Public TextObj As Object
Public LineObj As Object
Public PLineObj As Object
Public CircleObj As Object
Public puntobj As Object
Public TextStyle As Object
Public LayerObj As Object
Public acadLineType As Object
Public ArcoObj 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
End Sub

Sub AcadClose()
Set AcadApp = Nothing
End Sub
Sub AcadArco(cp() As Double, radio() As Double, anginicio() As Double, angfinal() As Double)

Set ArcoObj = AcadApp.ActiveDocument.ModelSpace.AddArc(cp, radio, anginicio, angfinal)
ArcoObj.layer = "geometria"

End Sub


Sub main()
Dim cp(0 To 2) As Double
Dim radio As Double
Dim anginicio As Double
Dim angfinal As Double

cp(0) = 1628.4346: cp(1) = 717.0694: cp(2) = 0#
radio = 500#
anginicio = 1.8569
angfinal = 5.4469

AcadArco cp(), radio(), anginicio(), angfinal()

End Sub
disculpad si estoy poniendo ulguna burrada


Arriba
 Perfil Email  
 
 Asunto: Re: Arcos de excel a autocad
NotaPublicado: Lun Feb 08, 2010 5:47 pm 
Desconectado
Avatar de Usuario

Registrado: Mar Oct 18, 2005 6:34 pm
Mensajes: 492
Ubicación: Marbella (Malaga) España
Has los cambios que te marco.
es decir quita los parentesis donde no existen matrices.
Código:
Sub AcadArco(cp() As Double, radio As Double, anginicio As Double, angfinal As Double)

Set ArcoObj = AcadApp.ActiveDocument.ModelSpace.AddArc(cp, radio, anginicio, angfinal)
ArcoObj.layer = "geometria"

End Sub

y en main debes hacer la llamada a Acad con AcadConnect y ademas cambiar la linea de creación de arco por la que te pongo.
Ten en cuenta que la unica matriz es la de puntos, el resto son valores tipo double.
Código:
Sub main()
Dim cp(0 To 2) As Double
Dim radio As Double
Dim anginicio As Double
Dim angfinal As Double
AcadConnect' AÑADIR ESTA LINEA PARA PODER CONECTAR
cp(0) = 1628.4346: cp(1) = 717.0694: cp(2) = 0#
radio = 500#
anginicio = 1.8569
angfinal = 5.4469

'AcadArco cp(), radio(), anginicio(), angfinal()
'CAMBIAR POR LA SIGUIENTE
AcadArco cp, radio, anginicio, angfinal

End Sub


Ya cuentas.

Por cierto usa el sistema de colocar código del foro es mas legible y evita errores tipo smiles.
Ademas todo lo que sea de VBA deberias ponerlo en el foro de VBA no en Vlisp.
Un saludo.

_________________
Mi nuevo amor es 35 años mas pequeña que yo :-) y la quiero con locura.


Arriba
 Perfil Email  
 
 Asunto: Re: Arcos de excel a autocad
NotaPublicado: Mar Feb 09, 2010 8:20 am 
Desconectado

Registrado: Jue May 21, 2009 11:27 am
Mensajes: 68
Ok frany. A lo mejor es una pregunta estúpida pero ¿Cúal es el sistema para colocar código del foro?.
Todavía no he podido probar los cambios que me comentas, porque resulta que el excel de las líneas me está dando problemas.
Me lanza el error "clave no encontrada". Hasta esta mañana funcionaba correctamente. yo creo que el error está en el rango ejeestructura, yo le paso 66-67 pero continua con el 68 que está vacío. Joder no sé por qué? te adjunto el excel por si puedes echarle un vistazo. Si quito esa main funciona, o si las capas están creadas en el autocad también.
Me voy a poner con tus cambios
Gracias


No tiene los permisos requeridos para ver los archivos adjuntos a este mensaje.


Arriba
 Perfil Email  
 
 Asunto: Re: Arcos de excel a autocad
NotaPublicado: Mar Feb 09, 2010 9:32 am 
Desconectado
Avatar de Usuario

Registrado: Mar Ago 23, 2005 9:25 pm
Mensajes: 1831
Ubicación: Third rock from the sun
estimado ppluis aqui hay una guía de como insertar código en nuestros mensajes.
viewtopic.php?f=14&t=4301

a propósito, soy de la idea que no existe pregunta estupida , tranquilo, en todo caso como decia un profe mio, la unica pregunta estupida es aquella que nunca preguntas y te la guardas quedandote sin saber la respuesta.
salu2!
8)


Arriba
 Perfil Email  
 
 Asunto: Re: Arcos de excel a autocad
NotaPublicado: Mar Feb 09, 2010 10:25 am 
Desconectado
Avatar de Usuario

Registrado: Mar Oct 18, 2005 6:34 pm
Mensajes: 492
Ubicación: Marbella (Malaga) España
ppluis, revisa que si creas una nueva raporpoint sea igual
te falta esto
Código:
AcadNewLayer "Ocultas", Cells(10, 10), "trazos"
AcadNewLayer "Puntos_replanteo", Cells(12, 10), "continuous"
AcadNewLayer "Ejes", Cells(13, 10), "trazo_y_punto"

Por eso no crea la capa necesaria.

en cuanto a que se pase a la linea 68 a mi no me sucede. :shock: no se que puede ser.

Por cierto estoy con atari, en cuanto a lo de la pregunta.

Un saludo.

_________________
Mi nuevo amor es 35 años mas pequeña que yo :-) y la quiero con locura.


Arriba
 Perfil Email  
 
 Asunto: Re: Arcos de excel a autocad
NotaPublicado: Mar Feb 09, 2010 11:05 am 
Desconectado

Registrado: Jue May 21, 2009 11:27 am
Mensajes: 68
Tienes razón frany pero es que tengo un lío de líneas ya...... Ahora funcionando OK.
De todas formas me doy cuenta que no sé dar dos pasos yo solo. Error "es necesaria una expresión de constante" me sale en este código, que por cierto funciona bien en el otro excel.
Código:
Sub AcadArco(np, PName$(), x() As Double, y() As Double, h() As Double, radio() As Double, anginicio() As Double, angfinal() As Double)
Dim ArcoObj As Object
Dim vertice(1 To 3 * np) As Double

AcadConnect

AcadNewLayer "Ocultas", Cells(10, 10), "trazos"
AcadNewLayer "Puntos_replanteo", Cells(12, 10), "continuous"
AcadNewLayer "Ejes", Cells(13, 10), "trazo_y_punto"
'Stop
For i = 1 To np
        vertice(3 * i - 2) = x(i)
        vertice(3 * i - 1) = y(i)
        vertice(3 * i) = h(i)

Next
    Set ArcoObj = AcadApp.ActiveDocument.ModelSpace.AddArc(vertice, radio, anginicio, angfinal)
    ArcoObj.layer = "ejes"
    ArcoObj.LineType = "bylayer"
   
End Sub

Si es necesario te copio todo el código.
Un saludo


Arriba
 Perfil Email  
 
 Asunto: Re: Arcos de excel a autocad
NotaPublicado: Mar Feb 09, 2010 11:08 am 
Desconectado

Registrado: Jue May 21, 2009 11:27 am
Mensajes: 68
Vale, es con redim. Hoy estoy espesito.


Arriba
 Perfil Email  
 
 Asunto: Re: Arcos de excel a autocad
NotaPublicado: Mar Feb 09, 2010 11:52 am 
Desconectado

Registrado: Jue May 21, 2009 11:27 am
Mensajes: 68
Ya me queda menos. error "no coinciden los tipos".

Código:
Sub AcadArco(np, PName$(), x() As Double, y() As Double, h() As Double, radio() As Double, anginicio() As Double, angfinal() As Double)
Dim ArcoObj As Object
ReDim vertice(1 To 3 * np) As Double
ReDim radio1(1 To 1 * np) As Double
ReDim anginicio1(1 To 1 * np) As Double
ReDim angfinal1(1 To 1 * np) As Double

  AcadConnect

AcadNewLayer "Ocultas", Cells(10, 10), "trazos"
AcadNewLayer "Puntos_replanteo", Cells(12, 10), "continuous"
AcadNewLayer "Ejes", Cells(13, 10), "trazo_y_punto"
'Stop
For i = 1 To np
        vertice(3 * i - 2) = x(i)
        vertice(3 * i - 1) = y(i)
        vertice(3 * i) = h(i)
        radio1(1 * np) = radio(i)
        anginicio1(1 * np) = anginicio(i)
        angfinal1(1 * np) = angfinal(i)
        'Stop
Next
[color=#FFFF00]Set ArcoObj = AcadApp.ActiveDocument.ModelSpace.AddArc(vertice, radio1, anginicio1, angfinal1)[/color]
    ArcoObj.layer = "ejes"
    ArcoObj.LineType = "bylayer"
   
End Sub

el caso es que las variables pasan bien pero no dibuja los arcos


Arriba
 Perfil Email  
 
 Asunto: Re: Arcos de excel a autocad
NotaPublicado: Mar Feb 09, 2010 3:14 pm 
Desconectado
Avatar de Usuario

Registrado: Mar Oct 18, 2005 6:34 pm
Mensajes: 492
Ubicación: Marbella (Malaga) España
:lol: :lol:
Animo ppluis que ya queda poco. :si:

Por comodidad prefiero me incluyas el archivo excel completo sino me pierdo pues no se donde te da el error.
A ver si antes del finde lo acabas animo.

Un saludo.

_________________
Mi nuevo amor es 35 años mas pequeña que yo :-) y la quiero con locura.


Arriba
 Perfil Email  
 
 Asunto: Re: Arcos de excel a autocad
NotaPublicado: Mié Feb 10, 2010 4:59 am 
Desconectado

Registrado: Jue May 21, 2009 11:27 am
Mensajes: 68
Ahí va.


No tiene los permisos requeridos para ver los archivos adjuntos a este mensaje.


Arriba
 Perfil Email  
 
 Asunto: Re: Arcos de excel a autocad
NotaPublicado: Mié Feb 10, 2010 10:06 am 
Desconectado
Avatar de Usuario

Registrado: Mar Oct 18, 2005 6:34 pm
Mensajes: 492
Ubicación: Marbella (Malaga) España
:shock: :shock:
Te has pasado siete pueblos.
Revisa los datos que le pasas al arco
le has pasado una supermatriz con todos los vertices y todos los demas datos juntos.
Deberas pasarle la matriz con tan solo tres puntos y los demas datos como un solo dato tipo double, olvidate de las matrices.
Ademas deberas ponerlo dentro de tu for next para que lo haga uno a uno.
No lo he probado por falta de tiempo pero ese es el error mas grave que detecto.

Un saludo.
Código:
    Set ArcoObj = AcadApp.ActiveDocument.ModelSpace.AddArc(vertice, radio1, anginicio1, angfinal1)
    ArcoObj.layer = "ejes"
    ArcoObj.LineType = "bylayer"
  Next

_________________
Mi nuevo amor es 35 años mas pequeña que yo :-) y la quiero con locura.


Arriba
 Perfil Email  
 
 Asunto: Re: Arcos de excel a autocad
NotaPublicado: Mié Feb 10, 2010 10:17 am 
Desconectado
Avatar de Usuario

Registrado: Mar Oct 18, 2005 6:34 pm
Mensajes: 492
Ubicación: Marbella (Malaga) España
Asi funciona
Bueno ponlo un poco mas presentable claro.
Un saludo.
Código:
Sub AcadArco(np, PName$(), x() As Double, y() As Double, h() As Double, radio() As Double, anginicio() As Double, angfinal() As Double)
Dim ArcoObj As Object
'ReDim vertice(1 To 3 * np) As Double
Dim vertice(1 To 3) As Double
'ReDim radio1(1 To 1 * np) As Double
'ReDim anginicio1(1 To 1 * np) As Double
'ReDim angfinal1(1 To 1 * np) As Double
' Dim VERT
  AcadConnect

AcadNewLayer "Ocultas", Cells(10, 10), "trazos"
AcadNewLayer "Puntos_replanteo", Cells(12, 10), "continuous"
AcadNewLayer "Ejes", Cells(13, 10), "trazo_y_punto"

For i = 1 To np
        'vertice(3 * i - 2) = x(i)
        'vertice(3 * i - 1) = y(i)
        'vertice(3 * i) = h(i)
        'radio1(1 * np) = radio(i)
        'anginicio1(1 * np) = anginicio(i)
        'angfinal1(1 * np) = angfinal(i)
       
        vertice(1) = x(i)
        vertice(2) = y(i)
        vertice(3) = h(i)
        radio1 = radio(i)
        anginicio1 = anginicio(i)
        angfinal1 = angfinal(i)
        'Stop

    Set ArcoObj = AcadApp.ActiveDocument.ModelSpace.AddArc(vertice, radio1, anginicio1, angfinal1)
    ArcoObj.layer = "ejes"
    ArcoObj.LineType = "bylayer"
  Next
End Sub

_________________
Mi nuevo amor es 35 años mas pequeña que yo :-) y la quiero con locura.


Arriba
 Perfil Email  
 
 Asunto: Re: Arcos de excel a autocad
NotaPublicado: Mié Feb 10, 2010 11:47 am 
Desconectado

Registrado: Jue May 21, 2009 11:27 am
Mensajes: 68
Perfecto frany. Que facilidad tienes para ver los errores, mira que lo revisé y no ví lo del for next. Supongo que con el tiempo yo también los detectaré. Ahora mi pregunta es por qué en el de las polilíneas utilizas en el for next
Código:
ReDim vertice(1 To 3 * np) As Double
y
Código:
       
vertice(3 * i - 2) = x(i)
vertice(3 * i - 1) = y(i)
vertice(3 * i) = h(i)

y en el de los arcos
Código:
Dim vertice(1 To 3) As Double
y
Código:
       
vertice(1) = x(i)
vertice(2) = y(i)
vertice(3) = h(i)
. Es decir por qué no utilizas np
Creo que si llego a entender esto avanzaré más rápido. Quizás esta pregunta delate mi ignorancia, pero, como comente en el otro foro, vengo de Autolisp y mis rutinas no necesitaban de conceptos claros de programación.
Gracias de nuevo


Arriba
 Perfil Email  
 
 Asunto: Re: Arcos de excel a autocad
NotaPublicado: Jue Feb 11, 2010 10:14 am 
Desconectado
Avatar de Usuario

Registrado: Mar Oct 18, 2005 6:34 pm
Mensajes: 492
Ubicación: Marbella (Malaga) España
Con el tiempo claro que los detectaras, yo llevo un cierto tiempo jajaja.
Lo principal es ver donde te da el error y darle a la tecla depurar error.
Luego tienes que ver que argumentos tiene cada tipo de entidad, en concreto a una polilinea le has de pasar la matriz de puntos completa de todos sus vertices esa matriz puede ser de 6 para una poli detipo una sola liena o de cientos para una polilinea con muchso vertices, es por eso que yo lo aplique tras el ciclo for next, sin embargo en un arco su definicion es mediante un punto que seria una matriz de tan solo tres elementos, los demas elementos del arco son elementos de valor numerico es por esos que no le puedes pasar una matriz.
Creo conveniente que mires en la ayuda de autocad sobre vba para ver que argumentos se le han de pasar a cada entidad.

Bueno cualquier duda comentas.

Un saludo.

_________________
Mi nuevo amor es 35 años mas pequeña que yo :-) y la quiero con locura.


Arriba
 Perfil Email  
 
 Asunto: Re: Arcos de excel a autocad
NotaPublicado: Jue Feb 11, 2010 12:20 pm 
Desconectado

Registrado: Jue May 21, 2009 11:27 am
Mensajes: 68
Ahora lo entiendo frany.
Muchas gracias de nuevo y ya sabes, para lo que necesites.
Un abrazo


Arriba
 Perfil Email  
 
Mostrar mensajes previos:  Ordenar por  
Nuevo tema Responder al tema  [ 15 mensajes ] 

Todos los horarios son UTC - 4 horas


¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado


No puede abrir nuevos temas en este Foro
No puede responder a temas en este Foro
No puede editar sus mensajes en este Foro
No puede borrar sus mensajes en este Foro
No puede enviar adjuntos en este Foro

Saltar a:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Traducción al español por phpBB-es