Rutina Para Generar Una ...Ft Excel _ ConstrucGeek

5
E s t a c i ó n T o t a l L e i c a P e r ú w w w . o m c t r a d e . c o m N u e v a s y u s a d a s c o n g a r a n t í a T e l . 5 6 5 5 2 9 0 s a l e s @ o m c t r a d e . c o m R e d e s F a c e b o o k T w i t t e r G o o g l e + S e g u i r a S e g u i r a @ c o n s t r u c g e e k @ c o n s t r u c g e e k M e g u s t a T e g u s t a e T w e e t T w e e t 0 0 R u t i n a p a r a g e n e r a r u n a p o l i l í n e a a p a r t i r d e d a t o s d e M i c r o s o f t E x c e l P o r M a r i o T o r r e s e l M a r , 2 6 / 0 8 / 2 0 0 8 - 1 0 : 5 2 C u e r p o : E s t e r u t i n a s e h a d e s a r r o l l a d o e n A u t o l i s p y V i s u a l L i s p p a r a a p r o v e c h a r l a s p o t e n c i a d e e s t a s d o s l e n g u a j e s d e p r o g r a m a c i ó n . L o q u e n o s p e r m i t e h a c e r e s t a r u t i n a e s l e e r d a t o s d e s d e M i c r o s o f t E x c e l ( p u e d e s e r l a v e r s i ó n 2 0 0 7 o l a s a n t e r i o r e s ) p a r a o b t e n e r p u n t o s y g e n e r a r u n a p o l i l i n e a , l o s d a t o s e n e l a r c h i v o s e e n c u e n t r a n e n d o s c o l u m n a s ( i z q = X y d e r = Y ) , p o r l o q u e s e f o r m a e l p a r o r d e n a d o n e c e s a r i o p a r a d e f i n i r u n p u n t o . E n e l l i s p e s t á d e f i n i d o , d e s d e d o n d e h a s t a d o n d e , d e s e a m o s q u e e l p r o g r a m a r e c o r r a l a s c e l d a s p a r a q u e v a y a o b t e n i e n d o l o s d a t o s y v a y a d i b u j a n d o l a p o l i l i n e a , p e r o , s e p u e d e r e - p r o g r a m a r p a r a q u e e l u s u a r i o i n g r e s e u n r a n g o d e c e l d a s . A c o n t i n u a c i ó n p r o c e d e r e m o s a e x p l i c a r d e u n a m a n e r a m á s d e t a l l a d a l a f o r m a d e c a m b i a r l o s v a l o r e s p o r d e f e c t o d e l a s c e l d a s q u e s e r á n l e í d a s p o r l a r u t i n a : E n p r i m e r l u g a r a p e s a r d e q u e s e p u e d e s o l i c i t a r l o s d a t o s d e c e l d a s y c o l u m n a s a t r a v é s d e l a l í n e a d e c o m a n d o , e n e s t e c a s o e s t a r u t i n a e n e s p e c i a l n o l o h a c e , l a s i n d i c a c i o n e s d e q u e c e l d a s l e e r á e l l i s p s e h a c e m e d i a n t e c ó d i g o , q u e e s e l s i g u i e n t e : L í n e a d e c ó d i g o 1 p a r a d i b u j a r l a p o l i l i n e a a l a i z q u i e r d a d e l p u n t o i n d i c a d o e n e l e j e d e l a s e c c i ó n : ( O b t e n e r V a l o r e s 8 2 8 3 4 - ) L í n e a d e c ó d i g o 2 p a r a d i b u j a r l a p o l i l i n e a a l a d e r e c h a d e l p u n t o i n d i c a d o e n e l e j e d e l a s e c c i ó n : ( O b t e n e r V a l o r e s 8 2 1 6 7 + ) A q u í l a l í n e a d e c ó d i g o 1 y l a l í n e a d e c ó d i g o 2 , a m b a s o b t i e n e n v a l o r e s d e s d e E x c e l y a m b a s d i b u j a n u n a p o l i l i n e a , e n e s t e c a s o e s n e c e s a r i o y a q u e s e t r a t a d e l d i b u j o d e u n a s e c c i ó n t r a n s v e r s a l , p e r o s o l o c o n u n a l í n e a d e c ó d i g o s e r í a s u f i c i e n t e p a r a q u e d i b u j e u n a p o l i l i n e a . v e a m o s q u e s i g n i f i c a c a d a 1 d e l o s v a l o r e s d e e j e m p l o d e l a p r i m e r a l í n e a d e c ó d i g o : O b t e n e r V a l o r e s : E s l a f u n c i ó n q u e p e r m i t e o b t e n e r l o s v a l o r y d i b u j a r l a s p o l i l i n e a s . 8 : E l n ú m e r o t o t a l d e f i l a s q u e s e l e e r á n , e s d e c i r e l n ú m e r o d e f i l a s q u e c o n t i e n e n l o s d a t o s a s e r l e í d o s p o r l a r u t i n a . 2 8 : E s e l n ú m e r o d e f i l a d e l a r c h i v o d e E x c e l , e n l a q u e l a f u n c i ó n c o m e n z a r á a l e e r . 3 : E s e l n ú m e r o d e c o l u m n a e n E x c e l q u e i n t e r s e c t a a l a f i l a i n d i c a d a a n t e r i o r , l a f u n c i ó n o b t i e n e u n v a l o r d e l l a c e l d a 2 8 , 3 y l o e s t a b l e c e c o m o v a l o r d e l a c o o r d e n a d a X , p a r a e l p r i m e r p u n t o d e l a p o l i l i n e a a g e n e r a r . 4 : E s o t r o n ú m e r o d e c o l u m n a e n E x c e l q u e i n t e r s e c t a a l a f i l a i n d i c a d a a n t e r i o r , l a f u n c i ó n o b t i e n e u n v a l o r d e l l a c e l d a 2 8 , 4 y l o e s t a b l e c e c o m o v a l o r d e l a c o o r d e n a d a Y , p a r a e l p r i m e r p u n t o d e l a p o l i l i n e a a g e n e r a r . - ( O p e r a d o r n e g a t i v o ) : I n d i c a q u e l o s v a l o r e s d e l a c o o r d e n a d a X s e r á n n e g a t i v o s , e s d e c i r s e d i b u j a r á l a p o l i l i n e a a l a i z q u i e r d a d e l e j e d e l a s e c c i ó n , s i e l o p e r a d o r e s p o s i t i v o a p a r t i r d e l o s v a l o r e s o b t e n i d o s , l a p o l i l i n e a s e d i b u j a r á a l a d e r e c h a d e l e j e d e l a s e c c i ó n . C o m o s e p u e d e v e r b a s t a c o n m i r a r q u e c o l u m n a s , f i l a s y c u a n t a s c o l u m n a s s e l e e r á n y c o n e s t o s d a t o s r e e m p l a z a r l o s v a l o r e s p o r d e f e c t o p o r l o s n u e v o s , p a r a u n a m a y o r c o m p r e n s i ó n d e e s t e l i s p s e d e b e r á d e a b r i r e l a r c h i v o d e E x c e l y u b i c a r l a s c e l d a s d e e j e m p l o . P a r a u t i l i z a r e s t a r u t i n a d e b e s d e h a c e r l o s i g u i e n t e : 1 . C a r g a e l a r c h i v o l i s p e n A u t o C A D . 2 . I n g r e s a e l n o m b r e d e l c o m a n d o : i m p 3 . I n d i c a u n p u n t o q u e s e r á l a i n t e r s e c c i ó n d e l e j e d e l a s e c c i ó n c o n l a l i n e a d e l a c o t a 0 : M e g u s t a 4 E n v i a r L O C A L R E C U R S O S C U R S O S I M A G E N V I D E O C E R R A R S E S I Ó N C G

Transcript of Rutina Para Generar Una ...Ft Excel _ ConstrucGeek

Page 1: Rutina Para Generar Una ...Ft Excel _ ConstrucGeek

Estación Total Leica Perú

www.omctrade.com

Nuevas y usadas con garantía Tel. 5655290 [email protected]

Redes Facebook

Twitter

Google +

Seguir a Seguir a @construcgeek@construcgeek

Me gusta Te gusta e

TweetTweet 0

0

Rutina para generar una polilínea a partir de datos de MicrosoftExcelPor Mario Torres el Mar, 26/08/2008 - 10:52

Cuerpo:

Este rutina se ha desarrollado en Autolisp y Visual Lisp para aprovechar las potencia de estas dos lenguajes

de programación. Lo que nos permite hacer esta rutina es leer datos desde Microsoft Excel (puede ser la

versión 2007 o las anteriores) para obtener puntos y generar una polilinea, los datos en el archivo se encuentran en dos

columnas (izq=X y der=Y), por lo que se forma el par ordenado necesario para definir un punto.

En el lisp está definido, desde donde hasta donde, deseamos que el programa recorra las celdas para que vaya obteniendo los datos y vaya dibujando la

polilinea, pero, se puede re-programar para que el usuario ingrese un rango de celdas.

A continuación procederemos a explicar de una manera más detallada la forma de cambiar los valores por defecto de las celdas que serán leídas por la

rutina:

En primer lugar a pesar de que se puede solicitar los datos de celdas y columnas a través de la línea de comando, en este caso esta rutina en especial no

lo hace, las indicaciones de que celdas leerá el lisp se hace mediante código, que es el siguiente:

Línea de código 1 para dibujar la polilinea a la izquierda del punto indicado en el eje de la sección:

(ObtenerValores 8 28 3 4 -)

Línea de código 2 para dibujar la polilinea a la derecha del punto indicado en el eje de la sección:

(ObtenerValores 8 21 6 7 +)

Aquí la línea de código 1 y la línea de código 2, ambas obtienen valores desde Excel y ambas dibujan una polilinea, en este caso es necesario ya que se

trata del dibujo de una sección transversal, pero solo con una línea de código sería suficiente para que dibuje una polilinea.

veamos que significa cada 1 de los valores de ejemplo de la primera línea de código:

ObtenerValores: Es la función que permite obtener los valor y dibujar las polilineas.

8: El número total de filas que se leerán, es decir el número de filas que contienen los datos a ser leídos por la rutina.

28: Es el número de fila del archivo de Excel, en la que la función comenzará a leer.

3: Es el número de columna en Excel que intersecta a la fila indicada anterior, la función obtiene un valor del la celda 28,3 y lo establece como valor de la

coordenada X, para el primer punto de la polilinea a generar.

4: Es otro número de columna en Excel que intersecta a la fila indicada anterior, la función obtiene un valor del la celda 28,4 y lo establece como valor de

la coordenada Y, para el primer punto de la polilinea a generar.

- (Operador negativo): Indica que los valores de la coordenada X serán negativos, es decir se dibujará la polilinea a la izquierda del eje de la sección, si el

operador es positivo a partir de los valores obtenidos, la polilinea se dibujará a la derecha del eje de la sección.

Como se puede ver basta con mirar que columnas, filas y cuantas columnas se leerán y con estos datos reemplazar los valores por defecto por los

nuevos, para una mayor comprensión de este lisp se deberá de abrir el archivo de Excel y ubicar las celdas de ejemplo.

Para utilizar esta rutina debes de hacer lo siguiente:

1. Carga el archivo lisp en AutoCAD.

2. Ingresa el nombre del comando: imp

3. Indica un punto que será la intersección del eje de la sección con la linea de la cota 0:

Me gusta 4 Enviar

LOCAL RECURSOS CURSOS IMAGEN VIDEO CERRAR SESIÓN CG

Page 2: Rutina Para Generar Una ...Ft Excel _ ConstrucGeek

VISUALLISP

MARTINSOLITO Mié, 22/10/2008 - 17:15 Enlace permanente

responder

Mario Torres Mié, 22/10/2008 - 17:44 Enlace permanente

responder

4. Selecciona el archivo de Excel desde donde se va a leer los datos.

Y listo, el programa te genera una polilinea con los datos leidos desde Excel.

Archivos adjuntos:

Adjunto Tamaño

premium_importdatav2.lsp 5.4 KB

importdatav2.fas 2.71 KB

importdatav2-ejm.rar 89.45 KB

27712 lecturas

Conversaciones (32)

les agradesco amigos buena informacion voy a probarla para comentar

Esperamos que esta rutina te sea muy útil, cualquier comentario será bienvenido.

Page 3: Rutina Para Generar Una ...Ft Excel _ ConstrucGeek

enrique Vie, 24/10/2008 - 02:49 Enlace permanente

responder

Mario Torres Vie, 24/10/2008 - 09:31 Enlace permanente

responder

enrique Sáb, 25/10/2008 - 03:31 Enlace permanente

responder

LUIVL Lun, 27/10/2008 - 18:55 Enlace permanente

responder

gcm_86 Mar, 28/10/2008 - 07:28 Enlace permanente

responder

Mario Torres Mar, 28/10/2008 - 10:07 Enlace permanente

responder

gcm_86 Mié, 29/10/2008 - 08:22 Enlace permanente

responder

Mario Torres Mié, 29/10/2008 - 09:40 Enlace permanente

responder

RENZO1510 Sáb, 17/01/2009 - 22:35 Enlace permanente

responder

GustavoSalinasC... (visitante) Mié, 04/03/2009 - 15:38 Enlace permanente

responder

por lo que leo debe estar muy bueno pero he descargado el primer link, he cargado el lisp pero no me ha resultado nada tengo que descargar todos los link?

gracias.

No es necesario descargar los demás archivos, pero éstos de tan una idea del formato que debe de tener el archivo en excel y de como insertar la polilinea de

la sección en AutoCAD, nos comentas que no te ha dado resultado pero sería bueno que nos expliques un poco mas obre el tema, por ejemplo que mensajes

te muestra el comando cuando lo ejecutas.

He descargado el segundo link pero no encuentro el formato del que tu me hablas creo que ahy tengo el problema

Bueno yo corro el comando me pide el punto de interseccion, next me pide el archivo le doy la ruta y ya, sale la ventana impordata con un mensaje que dice

listo pero no me sale la polilinea, como te digo creo que el formato de excel podria estar el error me gustaria ver un archivo ejemplo

me parece muy interesante y es algo q yo estaba buscando lo probare y os contare el resultado saludos y grasias por el aporte....

hola, parece muy interesante esta rutina. Yo tengo un problema con ella, no me dibuja la polilinea, me dice qe desconoce el comando PLINE, alguien sabe x q

sucede esto?

muxas gracias

Hola gcm_86, Enrique, el AutoCAD que tienen debe de estar en idioma español, por lo que no reconoce el comando PLINE, en este caso deberian de hacer lo

siguiente:

1.- Abrir el archivo Importdata.lsp

2.- Ubicar la línea: (command "PLINE")

3.- Agregarle un guión abajo a PLINE de tal manera que quede así: (command "_PLINE")

Se debe de tener en cuenta que los archivos adicionales (de AutoCAD y Excel) ayudan mucho para entender el comando y así utilizarlo de una forma personalizada.

Este comando se manipula mediante modificación de valores en el código (rango de celdas que leerá el comando), por lo que es importante saber que valores se

modificarán de acuerdo al archivo que tengamos.

Este comando se podría optimizar si los rangos de celdas fueran solicitadas en la línea de comandos, por lo que queda a disposición de cada uno el realizarlo, si

desean compartir las optimizaciones, lo pueden hacer desde los Foro de ConstrucGeek.

GRACIAS MARION70

corregi el .txt tal como me dijo y ahora ya no me dice que el comando pline sea desconocido. Ahora no hace nada, despues de seleccionar el archivo .xls me

sale una ventanita de titulo importdata, en la que pone listo, pero no ha sucedido nada.....no se ya xqe puede ser.

y que formato de excel es el archivo adicional que viene en xlsx?¿

gracias de nuevo x contestar y un saludo!

Si no ha salido ningún error es porque aparentemente todo está bien, si deseas puedes borrar la plataforma que está en la sección del archivo de ejemplo

y deja solamente el terreno natural, lo que pasa es que si se dibuja encima no notarás que se genera la polilinea de ejemplo (el Talud).

El archivo Importdata.xlsx que viene adjunto, es un archivo de Excel normal en versión 2007 cuya finalidad es solo mostrar que valores se están obteniendo

desde la rutina. Esta rutina no funcionará correctamente con otros archivos de Excel si es que no se modifica interiormente, lo que pasa es que dentro del

archivo lisp, se han especificado celdas que leerá desde el archivo Excel de ejemplo, estas definiciones de celdas no serán las mismas con otros archivos,

como por ejemplo con tu propio archivo.

Para que esta función funcione correctamente debes de abrir el archivo LSP y modificar las referencias de ubicación de las celdas en la rutina, de

acuerdo lo que deseas que leer, las ubicaciones de celdas las defines tu y serán de acuerdo a los datos que tienes en tu propio archivo de Excel.

NO SE COMO CORRER ESTA RUTINA, CUAL ES EL FORMATO QUE DEBO UTILIZAR, PODRIAN COLOCAR UN FORMATO, PARA PODER PROBAR LA RUTINA

Hola Mario, no se por donde empezar. Necesito la aplicacion lisp para cargarla pero donde la encuentro?

Luego tengo que digitar el comando imp?

Contesta por favor porque tengo un trabajo muy grande y esto me lo facilitaria mucho.

Gracias.

Page 4: Rutina Para Generar Una ...Ft Excel _ ConstrucGeek

Mario Torres Mié, 04/03/2009 - 15:57 Enlace permanente

responder

tin Jue, 26/03/2009 - 15:04 Enlace permanente

responder

Lincoln Sáb, 28/03/2009 - 23:16 Enlace permanente

responder

Mario Torres Dom, 29/03/2009 - 00:13 Enlace permanente

responder

juanpmarin Dom, 10/05/2009 - 00:00 Enlace permanente

responder

anisel Lun, 01/06/2009 - 15:04 Enlace permanente

responder

Mario Torres Lun, 01/06/2009 - 16:59 Enlace permanente

responder

Deadpool87 Dom, 21/06/2009 - 17:37 Enlace permanente

responder

nikki_19 Dom, 05/07/2009 - 22:35 Enlace permanente

responder

Mario Torres Lun, 06/07/2009 - 09:40 Enlace permanente

responder

aj Mar, 22/09/2009 - 14:05 Enlace permanente

responder

HARIWALD Mié, 14/04/2010 - 12:29 Enlace permanente

Hola Gustavo,

Para que puedas descargar los archivos es necesario que te registres, solo te tomará un minuto y es totalmente gratuito.

Sls.

SALUDOS PROBARE Y COMENTARE, LO QUE YOANDO BUSCANDO ES ALGO SIMILAR PERO QUE LEA VARIAS SECCIONES ,SUPONIENDO COMO 50 .

Hola, estuve viedno esta rutina pero cuando lo descargo el archivo excel no descarga queria para ver su funcionameinto agradecere bastante si vefica el link del

archivo o algo estoy haciendo mal......muhcas gracias de antemano

Hola Lincoln, cambie la versión del archivo, estaba en version Excel 2007 y quizá eso causaba algún impase, ahora esta en versión 2003, parece que con eso

se corrigió el problema, descargalo nuevamente y comprueba que todo marche bien.

Sls.

tengo un problema con esto no function definition: VLAX-GET-OR-CREATE-OBJECT. La primera vez que hice su ejemplo me salio de maravilla. excelente. cuando fui

a trazar mi polilinea me sale este mensaje. Que paso? le agradezco su aporte y espero su pronta respuesta

antes que nada agradecerte por la rutina y espero me sea util, mi problema esta en que no puedo cargar el achivo en excel me sale un mensaje "ACET-ERROR-

INIT" espero me puedar colaborar

Hola, ese mensaje de error generalmente se presenta cuando no se ha instalado las utilidades de Express, revisa tu configuración de instalación y si no esta

instalado los Express Tools deberás de instalarlo para utilizar correctamente ésta y otras rutinas.

Saludos

Pues a mi no me funciona para nada cargo la rutina y lo unico q hace es cargar en la barra de comandos la direccion de la web. escribo e comando imp y no pasa

nada tengo autocad 2008.

hola..soy nueva..y pues no entiendo mucho de esto..pero quisiera pedir un programa para trazar isolineas..soy estudiante de ing. meteorologica...

O alguna sugerencia de lo que yo pueda hacer..estoy en 4to ciclo de la universidad..

Hola Nikki_19, cuando mencionas isolineas, ¿te refieres a curvas de nivel?, para trabajar con curvas de nivel existen programas completos que no solo te

generan esas curvas, sino tambien que te permiten relizar múltiples trabajos con ellas.

Aunque por lo que nos cuentas que estas estudiando meteorología entiendo que el tipo de curva es Isobara, lo que nos gustaría saber es como son los datos

originales para poder elaborar ese tipo de curvas, segun eso te podriamos recomendar otro tipo de aplicaciones.

hola la rutina es muy buena, pero yo intento hacerla llego hasta el comando imp, despues me pide el pto de interseccion y n c q colocar, podria ser mas explicativo,

no entiendo mucho

HOLA, SOY NUEVO EN EL MANEJO DE RUTINAS CON AUTOCAD, PERO NO HE ENCONTRADO LA MANERA DE RELIZAR UNA RUTINA QUE ME DIVIDA UNA LINEA

EN VARIAS PARTES.

AGRADEZCO A QUIEN ME PUEDA COLABORAR.

Page 5: Rutina Para Generar Una ...Ft Excel _ ConstrucGeek

responder

Rider Reategui Mié, 14/04/2010 - 17:58 Enlace permanente

responder

italogsm Mié, 26/01/2011 - 17:13 Enlace permanente

responder

rocajime Mar, 05/04/2011 - 11:17 Enlace permanente

responder

samuelcad Vie, 02/09/2011 - 10:54 Enlace permanente

responder

Jackson jbjc Mar, 11/10/2011 - 23:46 Enlace permanente

responder

Mario Torres Mié, 12/10/2011 - 01:24 Enlace permanente

responder

Jackson jbjc Mié, 12/10/2011 - 08:44 Enlace permanente

responder

groserote Mar, 31/07/2012 - 03:43 Enlace permanente

responder

GRACIAS.

Hola HARIWALD

Hay dos opciones interesantes que vienen con el autocad para dividir polilineas:

"Divide" Divide la polilinea en N partes

y "Measure" Divide la polilinea a una distancia D

Si quieres hacer un rutina, quizas puedas empezar por ahí y crear un "Break at Point" en cada punto que te genera estos comandos

Suerte

Hay varias con duda en el funcionamiento de autolisp solamente arrastras el archivo a CAD y después en la barra de comando digitas imp y listo después te pide

una cota especifica del eje y seleccionas el archivo de excel donde esta la información

Buenos dias.

Amigos no se como hacer para que el archivo de texto que descargue se convierta en un archivo lsp, iintente cambiandole la extension del archivo , lo cargue en

autocad pero al darle el coomando imp, me sale importar pero un archivo ?, les agradeceria me comentaran que hago, o si alguno ha creado bien el lisp y lo adjunta.

muchas gracias

como genero varias secciones en el mismo archivo???

Hola... primeramente gracias por compartir este conocimiento... Mario no se si me puedes hacer un favor grande... necesito aprender a ingresar puntos desde un

fichero ya sea .txt o .lsp, por ejemplo quiero leer la primera linea (1000,1000,1000) , y guardarla como una lista, algo simple, por ejemplo en VBa es

Open ARCHIVO For Input As #1 ' Abre el archivo para recibir los datos.

Do While Not EOF(1) ' Repite el bucle hasta el final del archivo.

Line Input #1, Linea ' Lee la linea de datos

espero me puedas ayudar, estoy empazando a utilizar este lenguaje... Saludos...

Hola Jackson,

Me parece una muy buen desición que te estes iniciando en la programación con AutoLisp, verdaderamente es una gran ayuda para avanzar rápidamente con el

trabajo, para mejorar estos conocimientos te puedo recomendar este curso:

http://www.construcgeek.com/cursos/curso-practico-en-linea-de-programacion-en-autolisp-para-usuarios-principiantes-e-intermedios

Es totalmente práctico y con la opción de hacer todas tus preguntas con respecto a el.

Saludos.

Gracias Mario... más adelante me animaré a entrar a este curso... me parece interesante... pero por ahora no puedo... necesitaba esa pequeña ayudilla de

antemano... de todos modos muchas gracias... y sigue adelante con este gran proyecto....Éxitos!!!

Saludos

Tengo un problema,

Puedo cargar el archivo, pero al momento de trazar la polilinea sobre el eje de las x si le doy un valor de fracciones lo manda como enteros alguna recomendación?

Ejemplo mando a trazar 1.5, 2.56 2.56,3.73 y lo que traza es 1,2.56 3,3.73

Agradezco su ayuda