AutoCad - Como extraer informacion de un bloque con macros?

 
Vista:

Como extraer informacion de un bloque con macros?

Publicado por Claudia (3 intervenciones) el 12/03/2007 20:34:31
Hola, quiero saber si hay una forma de leer datos que están almacenados en un bloque de un dibujo en autocad, y llevar esta informacion a una tabla en excel. Alguien ha hecho algo similar??
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:Como extraer informacion de un bloque con macro

Publicado por Jose Luis (419 intervenciones) el 16/03/2007 12:44:33
Te voy a ser de poca ayuda. Poderse se puede, pero no se decirte como. Ojala alguien pueda resolvertelo.
Ya siento no poder hacer mas.

Un saludo.
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:Como extraer informacion de un bloque con macro

Publicado por Claudia (3 intervenciones) el 20/03/2007 14:17:38
Muchas gracias José Luis, al menos saber que se puede me sirve para seguir investigando.
Salu2
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

El comando es EATTEXT

Publicado por Mariaol M.S (1 intervención) el 29/03/2007 02:24:24
El comando EATTEXT extrae los atributos de los bloques q ud. seleccione en el dibulo, puede exportarlos a excel si es lo q necesita.
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:El comando es EATTEXT

Publicado por Claudia (3 intervenciones) el 29/03/2007 23:37:17
Muchas gracias Marisol, lo probe en autocad y funciona perfecto, pero no tengo claro como usarlo desde excel, es decir si puedo hacer una macro que use este comando tendria que primero lograr abrir el archivo .dwg y luego ejecutar EATTEXT??? alguna pista?
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
sin imagen de perfil

RE:El comando es EATTEXT

Publicado por Luis Alonso (5 intervenciones) el 21/09/2023 15:35:06
A mí también me gustaría saber cómo, estoy trabajando en un código, que extrae ciertas propiedades de layers, poliline o bloques, pero hay ciertos comandos que aún no encuentro o identifico para especificar que requiero extraer, podríamos trabajar juntos esa macro por el bien común.
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
sin imagen de perfil
Val: 1.285
Oro
Ha mantenido su posición en AutoCad (en relación al último mes)
Gráfica de AutoCad

RE:El comando es EATTEXT

Publicado por Gerardo (989 intervenciones) el 21/09/2023 20:17:23
Que tendría esa macro de diferente o adicional al comando eattext?
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
sin imagen de perfil

RE:El comando es EATTEXT

Publicado por Luis Alonso (5 intervenciones) el 23/09/2023 08:03:12
Bueno amigo, no se si lo sabías, pero ATTEXT, no funciona en todas les versiones de AutoCAD como lo es 2024 LT, de igual manera Data Extraction, si tienes alguna solución, agradecería tu aportación.

Además, si vas a programar la macro que extraiga propiedades, sería bueno que te vaciara dicha información de manera directa en los Generadores de Obra, con la finalidad de que lo puedan usar personas que no esten familiarizada con dicho entorno, después de todo, hay que adaptarse cuando la situación lo amerite.
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
sin imagen de perfil
Val: 1.285
Oro
Ha mantenido su posición en AutoCad (en relación al último mes)
Gráfica de AutoCad

RE:El comando es EATTEXT

Publicado por Gerardo (989 intervenciones) el 23/09/2023 08:14:36
Correcto. AutoCad LT no incluye nada de las express tools.

Entonces estás satisfecho con el attext (o dataextraction que son lo mismo) pero quieres cargarlo en el autocad LT 2024
(La solución sería básicamente para LT2024 ya que es difícil superar lo que ofrece el profesional y además las versiones de LT anteriores a la 2024 no soportaban macros o rutinas)

En fin, Si delimitas el alcance sin ser muy pretenciosos al principio (después se va ampliando), y compartes lo que dices que estás trabajando para analizarlo, yo te puedo ayudar tanto a afinar lo que tienes como con esas funciones que dices que no conoces.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

RE:El comando es EATTEXT

Publicado por Luis Alonso (5 intervenciones) el 25/09/2023 21:14:37
En efecto e buscado soluciones solamente para la versión LT 2024, no soy muy profesional en esto, pero busque he intenté con varios códigos, espero me puedas ayudar, pude rescatar esto

Dim Acad, AcadDoc, AcadModel As Object
Dim TitApli As String


Sub PRUEBA()
Set Acad = GetObject _
("C:\Users\Escritorio\"Prueba CAD.dwg")

With Acad
TitApli = .Caption
End With
TitApli = Acad.ActiveDocument.Name

TitApli = Acad.Caption


TitApli = Acad.Caption
MsgBox TitApli
End Sub


espero me des algún consejo, o a tu experiencia, ¿es mejor desistir con esto?
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
sin imagen de perfil
Val: 1.285
Oro
Ha mantenido su posición en AutoCad (en relación al último mes)
Gráfica de AutoCad

RE:El comando es EATTEXT

Publicado por Gerardo (989 intervenciones) el 26/09/2023 06:56:17
Bueno.
Eso que compartiste no es nada que te pueda servir. Primero porque solo es un pequeñísimo código para extraer el nombre de un archivo a como se muestra en la barra de títulos. Segundo porque es código Visual Basic, y en ese lenguaje solo correría en el AutoCad profesional. El LT solo acepta rutinas de Autolisp y módulos de extensión en C++ o .NET, pero lo segundo requiere de conocimiento mucho más profesional

Así que empecemos de cero. Si quieres aprender y resolver lo tuyo no desistas

Puedes leer sobre autolisp en el manual de Johnathan Prestamo que está en este mismo web en la seccion de cursos, específicamente el capítulo 11 es el que requerirías.

Yo te ofrezco ayudarte con la lógica de los algoritmos y con fragmentos de código para que armes tus primeros "Frankesteins", y a vos te tocará armarlo y probarlo en el lt porque no tengo esa versión

Solo muestra un dwg con el tipo de dibujo del que quisieras extraer datos y un archivo en texto plano o de excel donde se vea el resultado de la extracción.
Y estudia un poco ese capítulo 11 del manual intentando hacer rutinas pequeñas como modificar objetos gráficos o extraer una propiedad y mostrarla.
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:El comando es EATTEXT

Publicado por Luis Alonso (5 intervenciones) el 26/09/2023 07:04:45
Gracias por tu ayuda y tu repuesta, precisamente amigo, ese es el gran problema, que una vez que ejecutó el código, solo me habré el archivo y hasta ahí, por más código que le ponga, no me permite ejecutar nad más, me da un aviso de problema de ejecución o por error en desbordamiento, o sea, que no tolera ningún otro proceso o procedimiento con macros, en verdad, le he intentado con muchos códigos y he leído, lo cual sospecho que no metiendome a al lenguaje ACAD, se podrá resolver en la versión LT 2024
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
sin imagen de perfil
Val: 1.285
Oro
Ha mantenido su posición en AutoCad (en relación al último mes)
Gráfica de AutoCad

RE:El comando es EATTEXT

Publicado por Gerardo (989 intervenciones) el 26/09/2023 08:15:37
el autolisp es otro lenguaje muy diferente a ese que tienes (si le echas un ojo al manual que te mencioné verás que es totalmente otra cosa)

Y bueno, yo no dimensiono si lo que estás pensando en resolver es simple como por ejemplo listar atributos de bloques o si es algo muy complejo como catalogar partes. por eso es importante que muestres el alcance en dwg y los datos extraídos. Podrían ser unas cuantas líneas de código que se escriben en un rato o un programa complejo de semanas de trabajo, y de eso dependerá la ayuda que se te brinde
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
sin imagen de perfil

RE:El comando es EATTEXT

Publicado por Luis (5 intervenciones) el 26/09/2023 17:49:29
Es solo para listare atributos de layers, con con sus propiedades, o sea, tampoco será como una sub rutina o algo así.
Y haciendo caso a las recomendaciones, me pondré a revisar el curso que me has recomendado.
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
sin imagen de perfil
Val: 1.285
Oro
Ha mantenido su posición en AutoCad (en relación al último mes)
Gráfica de AutoCad

RE:El comando es EATTEXT

Publicado por Gerardo (989 intervenciones) el 26/09/2023 23:09:08
Muestra un dibujo con algún (os) objeto (s) como el que quisieras analizar y un archivo TXT, XLS o CSV como te gustaría que se muestren las propiedades.


En todo caso te dejo un código por aquí por si quieres analizarlo.

Ponelo en un archivo de texto (puede ser en el VLIDE de Autocad que te lo muestra más bonito o en un simple block de notas.)

Guardalo con la extension .LSP

Cargalo en el Autocad con el comando appload o simplemente arrastrando el ícono del LSP sobre la pantalla o presionando Ctrl+Alt+E en el VLIDE

Ejecuta el comando datos y selecciona cualquier objeto del dibujo para obtener las propiedades de la capa en la que está el objeto

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
(defun c:datos nil		;declaración de nuevo comando llamado datos
	;seleccionar una entidad
	(setq entidad (car (entsel)))
 
	;leer las propiedades de la entidad
	(setq props (entget entidad))
 
	;obtener el nombre de la capa
	(setq ncapa (cdr (assoc 8 props)))
 
	;obtener objeto de la capa
	(setq capa	(tblobjname "LAYER" ncapa))
 
	;leer las propiedades de la capa
	(setq propscapa (entget capa))
 
	;obtener las propiedades de la capa
	(setq color		(cdr (assoc 62 propscapa))
			ltype		(cdr (assoc 6 propscapa))
			noimpri	(zerop (cdr (assoc 290 propscapa)))
			grosor	(cdr (assoc 370 propscapa))
	)
 
	;mostrar datos en un mensaje
	(alert
		(strcat
			"La entidad está en la capa "
			ncapa
			"\n\nPropiedades de la capa:\n\tColor: "
			(vl-princ-to-string color)
			"\n\tTipo de línea: "
			ltype
			"\n\tImprimible: "
			(if noimpri "No" "Si")
			"\n\tGrosor de línea: "
			(cond
				(	(= grosor -1) "Bylayer")
				(	(= grosor -2) "Byblock")
				(	(= grosor -3) "Default")
				(	(strcat (rtos (/ grosor 100.) 2 2) "mm"))
			)
		)
	)
)
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