AutoCad - Macro de poligonos

   
Vista:

Macro de poligonos

Publicado por Victor (3 intervenciones) el 15/01/2009 02:00:48
Hola a todos... la ayuda que les solicito es la siguiente...

Tengo un plano con muchos poligonos, la cual quisiera extraer a un archivo excel el area y el perimetro de cada uno de ellos previamente seleccionados.... y la informacio me la coloque en las siguientes columnas

Columna A - coordenada X
Columna B - Coordenado Z
Columna C - coordenada Z
Columna D - Area
Columna E - Perimetro

y nque el resultado me lo coloque en el directorio donde se encuentra el DWG bajo el nombre de EXTRAE DATOS.XLS

Espero me puedan ayudar... sALUDOS
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:Macro de poligonos

Publicado por Gerardo (443 intervenciones) el 15/01/2009 06:08:19
-Que tipo de entidades se supone que sean los poligonos? LWPolylines?

-Las coordenadas X, Y, Z de que serian? De un centroide? Del punto inicial? De cualquier punto dentro del poligono?

-Sabes programar en autocad?
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:Macro de poligonos

Publicado por Victor (3 intervenciones) el 15/01/2009 23:02:59
- Las coordenadas deberan ser del punto inicial.
- No se programar autocad.
- Todo aquello que sea poligono

De tal manera que todo aquello que no sea poligono, deberá ser ignorado.

Espero me haya explicado bien.. Gracias por tu aporte.
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:Macro de poligonos

Publicado por Gerardo (443 intervenciones) el 16/01/2009 18:46:05
Bien Victor. Aun no me quedo claro lo del tipo de entidad porque dentro de autocad no existe una entidad que se llame poligono. Los poligonos que ves pueden estar formados por polilineas livianas (LWPOLYLINE), polilineas 3d (POLYLINE) u sucesiones de lineas (LINE). En este caso yo voy a proporcionarte una herramienta que trabaja con LWPOLYLINE, que son las que se crean desde los comandos "_rectangle", "_polygon", "_pline". Si tus entidades fueran diferentes te tocara, ante de usar la herramienta convertirlas a polilineas livianas.

La rutina crea un archivo .csv, que es un archivo de excel delimitado por comas. Hay dos simbolos que pueden variar entre computadoras, que dependen de la configuracion regional. El archivo csv puede ser delimitado por comas "," o por punto y comas ";" y el punto decimal puede ser por punto "." o por coma ",". Como mi excel trabaja con ';' para el primero y ',' para el segundo asi esta la rutina, pero si en tu caso no funciona bien tendras que cambiar esos valores en la parte de la rutina que dice:
delim ";"
ptodec ","
Ahi sustituyes lo que esta entrecomillado y listo.

Ok, Como funciona?: la rutina es un archivo con extension lsp, el cual yo no puedo adjuntar aqui porque el foro no me da la opcion, asi es que te copio el texto. Tu debes copiar este texto exacto a como esta en un archivo de texto, guardarlo con extension .LSP, por ejemplo "poligonos a excel.lsp" o "victor.lsp", despues lo cargas en autocad ya sea desde el comando "_appload" o arrastrando el icono del archivo sobre la pantalla grafica del cad. Cuando ejecutes el comando "pol2excel" se creara automaticamente el archivo csv

;;;;;;;;;;;; INICIA TEXTO DE LA RUTINA ;;;;;;;;;;;;;;;

(vl-load-com)
(defun c:pol2excel ( / ss i file delim ptodec nent lent pt1 X Y obj area peri Z name linea)
(setq ss (ssget "_X" '((0 . "LWPOLYLINE")))
i 0
name (strcat (getvar "dwgprefix") (vl-filename-base (getvar "dwgname")) ".csv")
file (open name "w")
delim ";"
ptodec ","
)
(write-line "Coordenada X;Coordenada Y;Coordenada Z;Area;Perimetro; " file)
(repeat (sslength ss)
(setq nent (ssname ss i)
lent (entget nent)
i (1+ i)
pt1 (cdr (assoc 10 lent))
)
(if (or (= (logand 1 (cdr (assoc 70 lent))) 1) (zerop (distance pt1 (cdr (assoc 10 (reverse lent))))))
(progn
(setq X (car pt1)
Y (cadr pt1)
obj (vlax-ename->vla-object nent)
area (vlax-get-property obj 'Area)
peri (vlax-get-property obj 'Length)
Z (if (assoc 38 lent) (cdr (assoc 38 lent)) 0)
linea (strcat (rtos X 2 4) delim (rtos Y 2 4) delim (rtos Z 2 4) delim (rtos area 2 4) delim (rtos peri 2 4) delim)
)
(write-line (vl-list->string (subst (ascii ptodec) 46 (vl-string->list linea))) file)
)
)
)
(close file)
(princ (strcat " Se creo el archivo: " name))
(princ)
)

(princ " Rutina cargada: "pol2excel" Por Gerardo Calvo - gerardogqa@yahoo.es ")
(textscr)

;;;;;;;;;;;; FIN DE TEXTO DE LA RUTINA ;;;;;;;;;;;;;;;
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:Macro de poligonos

Publicado por sergio (1 intervención) el 22/03/2009 12:45:35
No entendi esta ultima parte desde donde se realiza a donde se genera el csv?

. Cuando ejecutes el comando "pol2excel" se creara automaticamente el archivo csv

Me seria de mucha utilidad saber usarlo
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:Macro de poligonos

Publicado por Alejandro Ferenz (1 intervención) el 27/01/2009 17:12:09
Vi una repuesta tuya en un foro de Autocad y me imaginé que me podrías ayudar.
Estoy intentando dibujar una hélice de barco en 3D, y ya casi lo he logrado. El tema es que lo que en verdad necesito es hacer un mallado 3D de la misma y luego obtener las coordenadas de estos puntos.
Debe existir alguna macro que haga esto no?
No se programar en Autocad.
Tengo un dibujo hecho de la hélice en Autocad con la vista en planta de la misma, en algunos casos esta vista tiene la forma de una elipse perfecta. No en este.
Le hice pasar una Spline por estos puntos, lastima que no tengo forma o por lo menos no que yo conozca de conocer cual es la función que pasa por todos ellos, sino puedo obtener los puntos a través de esta.
Así que me gustaría poder encarar la resolución de este problema junto con alguien que domine más la parte de programación en Autocad, yo soy bueno dibujando y en la parte geométrica del problema.
Gracias
Alejandro Ferenz
Dibujante Cadista
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:Macro de poligonos

Publicado por Gerardo (443 intervenciones) el 02/02/2009 05:45:14
Plantealo en www.hispacad.com/foro, en el foro de autolisp. Ahi puedes poner un dibujo mostrando lo que tienes de entrada y una aproximacion del resultado esperado. Por aqui es muy dificil por que no se pueden adjuntar archivos

Yo no soy muy bueno con la geometria, tendrias que ayudar a definir el algoritmo, o a lo mejor alguien mas de ese foro sabe entrarle o tiene algo ya hecho para resolverlo

Saludos

Gerardo Calvo
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:Macro de poligonos

Publicado por Alex (1 intervención) el 26/07/2012 23:19:11
Hola Gerardo:
hice lo que dices, pero me sale este error en la linea de comandos:
(LOAD "E:/AutoCad/Victor.lsp") ; error: tipo de argumento erróneo: FILE nil
Lo he aplicado en el Autocad 2010.
que es lo que puedo esta haciendo mal
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