AutoCad - Autocad desde Excel

   
Vista:

Autocad desde Excel

Publicado por guihe (6 intervenciones) el 25/05/2010 10:08:59
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
información
Otras secciones de LWP con contenido de AutoCad
- Cursos de AutoCad
- Temas de AutoCad
- Chat de AutoCad
información
Cursos y Temas de AutoCad
- AutoCAD 2005 - Manual de Usuario
- Manual de AutoCad
- Manual AutoCAD Map 2000