En los proyectos de ingeniería civil o de diseño vial, realizar los planos de señalización de una carretera comprende también uno de los trabajos más arduos de realizar, debido a que después de realizar el análisis, basarse en las normas y establecer la ubicación de las señales verticales a lo largo de la vía, viene el trabajo de dibujar o insertar los bloques de todas estas señales a lo largo del eje de la carretera.
Mediante esta rutina y tomando nuevamente los datos de un archivo CSV resultantes de un estudio, podremos insertar los bloques creados para dibujar la señalización de una vía en cuestión de segundos.
ACTUALIZACIÓN 2.05: Esta rutina como es lógico funciona en base a datos que se deben de tener por anticipado para poder realizar su trabajo, los datos que se necesitan son los siguientes:
- Una entidad tipo polilínea “LWPOLYLINE” o también es posible seleccionar un objeto alignment o “AECC_ALIGNMENT” de Civil 3D, NO es posible usar un objeto de gráficos Proxy, ya que no podría evaluarse.
- Bloques de todas las señales u objetos que se insertarán a lo largo del eje de la vía.
- Un listado en formato CSV, en donde se tendrán los siguientes datos ordenados por columnas: Progresiva (en formato de número sin el signo +), Sentido de ubicación de la señal (D=Derecha e I=Izquierda), el nombre del bloque a insertar y por último todos los atributos que correspondan a ese bloque a insertar.
- Cada bloque podrá tener «n» atributos, no es necesario que todos los bloques tengan igual número de atributos.
Cada bloquedeberá de tener un atributo en donde se escribirá automáticamente la progresiva con un formato incluyendo el signo “+”. - El orden en la definición de los atributos en el bloque creado es sumamente importante, debido a que la rutina establece el contenido del atributo en el orden de definición del mismo, si el orden de los atributos en el bloque no es el deseado, entonces se deberá de reordenar los mismos antes de usar la rutina.

Desde aquí podrás descargar esta segunda versión de la aplicación Lisp, un archivo de CAD DWG que incluye varias señales y además un archivo CSV de ejemplo, tu puedes crear tus propios bloques y crear tu propio archivo CSV con los datos necesarios para la inserción de dichos bloques, si deseas puedes compartir en el foro de la comunidad los bloques que puedas crear para que puedan ser de ayuda a otros usuarios.

Es recomendable que todos los bloques estén ya insertados o copiados en el archivo del eje a ubicar (cópialos y pégalos todos en el archivo que vas a trabajar), también se aconseja que los bloques sean dinámicos, para ajustar su posición en caso de que se superpongan entre ellos y ordenarlos, en otras palabras, créalos lo mejor posible.
El archivo CSV tiene el siguiente formato:


Para utilizar esta rutina debes de hacer lo siguiente:
- Carga el archivo lisp en AutoCAD.
- Ingresa el nombre del comando: SENAL
- Selecciona el eje de la carretera (polilínea o un objeto alignment de Civil 3D).
- Ingresa la progresiva inicial del eje (por defecto es 0.00 = 0+000), si sigues el archivo de ejemplo, deberás de ingresar 123000.
- Ingresa la escala de inserción de los bloques, por defecto es 1.00.
- Ingresa la separación de inserción de los bloques con respecto al eje, por defecto es 3.5 (para ambos lados).
- ¿Cambiar inicio del eje (polilínea)? [Sí/No] <No>: Solo si el objeto seleccionado es una polilínea, la rutina preguntará si se desea cambiar el inicio del eje (algunas veces el inicio es reconocido como el final, todo depende de cómo se ha construido la polilínea), por defecto es No.
- Elige el archivo de CSV con los datos que la rutina lisp debe de considerar para insertar los bloques correctamente.
- Es todo.
El resultado es la inserción de todos los bloques que están listados en el archivo CSV, los bloques se insertan en cada punto de ubicación (PK) a una separación desde el eje ingresada y la señal se inserta con la rotación adecuada para que siempre se muestre perpendicular al eje.

Saludos, cuando pruebo me da un error: no funciona definición: c: SENAL, estoy en civil 3d 2022 y tratando de usar una librería de bloques propia en un vial de prueba. Gracias anticipadas
Buenas quisiera adquirir este lisp sin limite de tiempo
cuanto cuesta?
ya no funciona el lips
No me deja cargar el archivo csv me sale este msm (Elije el archivo CSV de datos (Texto delimitado por comas ‘,’)tipo de argumento erróneo: stringp nil) que puedo hacer ??
te dio respuesta el creador?
Hola Jhanner/Abel.
Es más que seguro que se trate de un error en el formato de los datos del archivo, quizá no está delimitado por comas «,» sino por puntos y comas «;».
Revisen que el archivo tenga el formato según el indicado en el post de ejemplo o archivo de ejemplo.
EXCELENTE APORTE, POR FAVOR, TENÍA UNA CONSULTA ¿SE PODRÍA HACER EL CASO CONTRARIO?, ES DECIR, INSERTAR EN EL PLANO LAS SEÑALES DE MANERA INDIVIDUAL Y POSTERIORMENTE GENERAR EL LISTADO CON LAS PROGRESIVAS LOS CÓDIGOS DE LAS SEÑALES Y TODO ESO.
EXELENTE TRABAJO AMIGO, ME PODRIA FACILITAR LOS BLOQUES DE LA SEÑALIZACION, GRACIAS.
POR FAVOR ME PRODRIA FACILITAR
Exelente Amigo gracias por Compartir
hace mucho que buscaba algo asi seguro me sera de mucha utilidad Bendiciones
y mis Felicitaciones
Pingback: Rutina Lisp para insertar bloques con "n" atributos desde un archivo CSV | DevCADLisp
muy buena podria compartir el lisp
Hola Mario, me gustaría adquirir una rutina con prestaciones similares a la que se menciona en este post, tiene ciertas variaciones en el ingreso ya que los bloques están con coordenadas (georeferenciadas), si me pudieras ayudar con esto por favor.
Hola Pablo. Te escribí a tu correo.
Saludos.
buenas noches mi estimado quisiera adquirir su programita cuanto me costaría?
hola que tal queria hacer mi consulta por los bloques q no estan en el archivo cad
Estimado Mario, por favor me gustaría que me compartas el Archivo de ejemplo con señales-Eje CAD.dwg ya que cuando cargo el programa no me inserta los bloques, te agradeciera me ayudes. carlos_oyolav@hotmail.com
Hola, muchas gracias por la rutina, muy útil para utilizarlo.
Aprovecho de consultar si se tendrá una rutina para agregar elementos lineales como las defensas camineras.
Hi when i load lisp. Something wrong
Command:
Command: (LOAD «C:/Users/chan2/Downloads/Compressed/Insertar-señalizacion-de-una-carretera-Version-2.05/Insertar señalizacion de una carretera v2.VLX») ; error: LOAD failed: «C:/Users/chan2/Downloads/Compressed/Insertar-señalizacion-de-una-carretera-Version-2.05/Insertar señalizacion de una carretera v2.VLX»
como puedo correr lips no ejecuta da mi carretera es de 3+900
Buenas tardes cuando trato de cargar el csv modelo que deja como modelo para descargar me sale error en formato no me reconoce que este en como me podria decir como solucionarlo para probar el lisp
Hola Geraldo, verifica que el formato sea CSV (separado con comas). Abre el archivo desde el bloc de notas para comprobarlo.
El archivo esta separado por , pero me sigue apareciendo el Error.
Hola Alexander, gracias por contarnos como solucionaste el problema al correr con los archivos del ejemplo:
«Ingresaba la progresiva inicial del eje (por defecto es 0.00=0+000), lo dejaba igual, y ahora ingresé el 123000 y me corrió sin problemas.».
Saludos.
Interesante rutina, sin embargo me gustaría saber por que razón no se puede usar el símbolo + en el nombre de la progresiva ?. seria muy útil poder conservar ese símbolo ya que representa el lenguaje principal de comunicación en una obra. pienso que quizas se pueda mejorar eso.
Hola Esteban, en realidad cuando indicamos que no se debe de incluir el signo «+» en la progresiva que se ubica en la primera columna del archivo de formato, es debido a que este valor se toma como una distancia que es ubicada desde el inicio del eje, entonces como tal, se debe de trata de un valor numérico para efectuar las operaciones.
Para el caso de que se desee indicar la progresiva como tal por ejemplo «145+100», esta debe de ir como un atributo y se debe de indicar a partir de la 5ta columna del archivo de formato, incluso si deseas, la puedes indicar con formato, ejm: «PK 145+100» ya que se trata de un texto para rellenar un atributo.
De todas maneras, gracias por tu comentario y punto de vista.