Excel - Autocad desde Excel

   
Vista:

Autocad desde Excel

Publicado por guihe (40 intervenciones) el 25/05/2010 10:08:06
Hola a todos, a ver si me podeis echar una mano con el codigo. Tengo una macro de Excel que llama a Autocad y dibuja una serie splines sobre una plantilla en que hay rectas. El caso es que, quiero sacar las coordenadas de la interseccion de las rectas con el spline y esto es lo que no me funciona. Desarrollando la macro desde Autocad si funciona, pero al meterla en excel no. La parte del codigo que tiene el apostrofo para que no se lea es la de autocad.
El codigo que no fucniona es la funcion 'IntersectWith'
aCaDaP es la aplicacion de Autoicad.
Espero haberme explicado y muchas gracias de antemano.
PD: pondre este post tambien en los foros de Autocad y Excel.

CODIGO
'Seleciona la recta de 0.05 mm de diametro
aCaDaP.ActiveDocument.Utility.GetEntity rectaLIMO, basePnt, "Selecciona la recta de 0.05 mm"
'ThisDrawing.Utility.GetEntity rectaLIMO, basePnt, "Selecciona la recta de 0.05 mm"
Set recta1 = rectaLIMO

'Seleciona la recta de 0.002 mm de diametro
aCaDaP.ActiveDocument.Utility.GetEntity rectaARCI, basePnt, "Selecciona la recta de 0.002 mm"
'ThisDrawing.Utility.GetEntity rectaARCI, basePnt, "Selecciona la recta de 0.002 mm"
Set recta2 = rectaARCI

'para simplificar llamamos a Excel para ir metiendo los datos
nombrearchivo = aCaDaP.ActiveDocument.Utility.GetString(False, "Nombre del archivo de resultados: ")
'nombrearchivo = ThisDrawing.Utility.GetString(False, "Nombre archivo de resultados: ")
Set ExcelAppObj = New Excel.Application
ExcelAppObj.Visible = True
Set ExcelWorkbook = Excel.Workbooks.Add
Set ExcelSheet = ExcelAppObj.ActiveSheet
aCaDaP.Visible = True

'ahora vamos encendiendolas poco a poco y seleccionamos las curvas
For cont = 2 To numcapas + 1
aCaDaP.ActiveDocument.ActiveLayer = aCaDaP.ActiveDocument.Layers(cont)
'ThisDrawing.ActiveLayer = ThisDrawing.Layers(cont)
Set capa = aCaDaP.ActiveDocument.Layers(cont)
'Set capa = ThisDrawing.Layers(cont)
capa.LayerOn = True
aCaDaP.ActiveDocument.Regen acActiveViewport
'ThisDrawing.Regen acActiveViewport

' Seleccionar que curva (spline)
aCaDaP.ActiveDocument.Utility.GetEntity returnObj, basePnt, "Seleciona la curva"
'ThisDrawing.Utility.GetEntity returnObj, basePnt, "Seleciona la curva"
Set curva = returnObj

'busca la interseccion de la curva (spline) y la recta de 0.005
'Dim interLIMO As Variant
interLIMO = aCaDaP.ActiveDocument.rectaLIMO.IntersectWith(curva, acExtendNone)
'interLIMO = recta1.IntersectWith(curva, acExtendNone)

'busca la interseccion de la curva (spline) con la recta de 0.002
'Dim interARCI As Variant
Set interARCI = aCaDaP.ActiveDocument.rectaARCI.IntersectWith(curva, acExtendNone)
'interARCI = recta2.IntersectWith(curva, acExtendNone)



capa.LayerOn = False
Next cont
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 JuanC

RE:Autocad desde Excel

Publicado por JuanC (1053 intervenciones) el 28/05/2010 14:54:26
particularmente no me queda nada claro
si querés enviame los archivos (excel/autocad) y veo si puedo...
(juanc2942@gmail.com)

Saludos, desde Baires, JuanC
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

RE:Autocad desde Excel

Publicado por guihe (40 intervenciones) el 31/05/2010 09:17:00
Hola JuanC,
Muchas gracias, ya sé que me explico fatal. :)
Lo he solucionado de otra manera. Desde Excel he cargado la macro de VB de Autocad y ya funciona todo. Muchas gracias por las molestias y un saludo

guille
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