AutoCad - Busqueda de texto con VBA

 
Vista:

Busqueda de texto con VBA

Publicado por Manuel (1 intervención) el 28/09/2006 17:36:46
Hola:

Me han encargado un programa, que ya casi tengo terminado, solo me falta un tema, el proglema es que es lo único que no soy capaz de hacer y no consigo encontrar la forma de hacerlo, llevo más de una semana intentando solucionar el tema y nada. A ver si podeis hecharme una mano.

El programa utiliza varios informes, y en uno de ellos, tengo que incrustar parte de un plano de AutoCAD. La parte que tengo que visualizar depende de los otros datos de ese informe.
He puesto strings en cada una de las partes del plano, pero, aqui el problema, desde AutoCAD, con la funcion find, puedo buscar el string y por encima hacer zoom sobre esa zona.
Ahora el problema, eso mismo que hago directamente sobre AutoCAD tengo que hacerlo en un informe en Access XP. Tanto Access como AutoCAD disponen de VBAplications y estoy intentando modificar lo que se ve en el orbjeto vinculado que puse en el informe de Access (el objeto vinculado es el plano). Pero no soy capaz y no encuentro ninguna función que me permita hacerlo. Ahí mi petición, cual es el código en VBA para buscar un texto en Autocad y hacer zoom sobre esa zona, lo que seria el equivalente a la función find.

Gracias por adelantado.
Un Saludo
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

RE:Busqueda de texto con VBA

Publicado por Zeusovsky (1 intervención) el 26/12/2008 18:18:17
tengras que barrer el dibujo tipo

Dim Item as AcadObject
Dim Texto as String

For Each Item in ThisDrawing.Blocks
If ThisDrawing.Blocks.Entityname = "AcDbText" Then
'Aqui pondrias lo que quieres hacer con ese texto por ejemplo
'capturarlo en una variable tipo string

Texto = Item

End if
Next Each

Necesitaria ver como esta creado tu dibujo para ver como accesar a los textos

Tambien puedes navegarlo con un contador i as integer en lugar del Each.
For i = 0 to ThisDrawing.Blocks.Count-1

Next

igual si lo tienes en layer pues navega en el layer
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