01 / EL PUNTO DE PARTIDA
La problemática que encontré
Tenía una serie de layouts creados con Section View Sheets. El membrete se repetía en cada hoja, pero su rango debía cambiar para corresponder a las secciones presentadas en ella. Al principio esos datos estaban dentro de un texto MText.
El criterio de ese trabajo era empezar la primera hoja en 0+000.000 y comenzar cada siguiente 20 m después de la última sección de la anterior. Además, los cadenamientos debían conservar tres decimales y el formato 0+000.000. El orden de las pestañas debía coincidir con el orden de las hojas.
02 / EL SOFTWARE Y LA NECESIDAD
Las hojas ya estaban creadas; faltaba aplicar la regla del membrete
Civil 3D incluye Create Section Sheets para generar layouts y opciones para configurar los nombres y el formato de estación de las vistas. AutoCAD también dispone de campos de texto actualizables. En este caso necesitaba trasladar estaciones de vistas concretas a dos atributos de un membrete existente, siguiendo el orden de las hojas y la regla de inicio de ese proyecto.
No se demostró que todas las alternativas nativas fueran incapaces de resolverlo. Los errores de acceso a objetos, orden y formato documentados pertenecen al desarrollo de las rutinas. La solución describe una automatización específica, no un fallo general de Civil 3D.
03 / LA HERRAMIENTA
En qué consiste la solución
Organicé los campos variables del membrete como atributos EST_INI y EST_FIN del bloque MEMBRETE_DRENAJE. La rutina pide seleccionar en Model la Section View final de cada hoja, obtiene la estación desde su línea de muestreo y ordena esas estaciones de menor a mayor.
El código ordena los layouts por TabOrder y relaciona cada uno con una estación final. Para el primer inicio usa cero; para los siguientes suma 20 m al final anterior. Escribe los dos valores en los atributos de los bloques encontrados en cada layout.
Durante las iteraciones se corrigieron el orden y el incremento entre hojas. Una versión recibió confirmación de uso, pero después reapareció un problema de formato. La última entrega separa kilómetros, metros y milésimos para construir el texto. La revisión estática encontró que todavía falta normalizar el acarreo cuando el redondeo de los milésimos llega a 1000.
- 01Seleccionar la vista final de cada hoja
- 02Ordenar estaciones y layouts
- 03Escribir inicio y fin en el membrete
04 / EVIDENCIA Y ALCANCE
Qué está documentado
V000466 recibió una confirmación explícita de funcionamiento. Meses después, Adal compartió el mismo código y reportó un problema de formato. V000470 fue entregada para atenderlo y no tuvo respuesta posterior en la rama exportada. La ausencia de respuesta no confirma que el formato ni todos los casos de redondeo hayan quedado resueltos.
Desarrollo documentado · requiere validación
La descarga conserva V000470 para evaluación. Su funcionamiento actual queda en UNKNOWN: no se ha ejecutado en Civil 3D para este portafolio y no existe confirmación atribuible a esta variante. La revisión estática identificó un límite de redondeo que requiere corrección y prueba antes de uso en producción.
Qué debe comprobarse
- Comparar una vista final por hoja con el número de layouts y confirmar que no existan portadas u hojas ajenas intercaladas.
- Cotejar cada estación seleccionada y cada atributo escrito; comprobar el primer inicio cero y los siguientes a fin anterior +20 m.
- Revisar ceros iniciales, tres decimales y fronteras de redondeo, incluidas estaciones cercanas al siguiente metro y kilómetro.
- Comprobar qué ocurre con estaciones repetidas, bloques o atributos faltantes y una selección incompleta.
- Revisar todos los membretes después de cualquier error o cancelación y volver a generar los valores si cambian estaciones u orden de hojas.
Requisitos y limitaciones de esta versión
Civil 3D de escritorio en Windows, con Visual LISP/COM y objetos AECC_GRAPH_SECTION_VIEW. Versión exacta por comprobar. Copia de un DWG con estaciones en metros, un único eje y layouts de una sola serie, ordenados por cadenamiento. Cada layout debe contener MEMBRETE_DRENAJE con atributos editables de una línea EST_INI y EST_FIN. El caso requiere inicio cero y separación de 20 m entre el final de una hoja y el inicio de la siguiente.
- El orden de pestañas se usa como correspondencia. No detecta geometría dentro de viewports ni filtra layouts ajenos; todas las hojas del dibujo deben pertenecer a la misma serie.
- El inicio cero y el incremento de 20 m están fijados en el código. No mide la separación real entre secciones ni admite otra regla sin adaptación.
- La rutina ordena estaciones con vl-sort, que puede eliminar valores duplicados. No compara automáticamente el número de vistas y hojas.
- El formateador final no resuelve el acarreo cuando los milésimos redondean a 1000. Tampoco se ha validado para estaciones negativas o ecuaciones de estación.
- Escribe directamente los atributos, sin vínculo dinámico posterior, informe detallado de omisiones ni recuperación de escrituras parciales si falla. El mensaje final no sustituye el cotejo de cada hoja.
CÓDIGO Y DOCUMENTACIÓN
Descargar para evaluar
RANGOS_SECCIONES · guía de preparación del membrete · protocolo de comprobación.
La descarga conserva V000470 para evaluación. Su funcionamiento actual queda en UNKNOWN: no se ha ejecutado en Civil 3D para este portafolio y no existe confirmación atribuible a esta variante. La revisión estática identificó un límite de redondeo que requiere corrección y prueba antes de uso en producción. Revisa las instrucciones y trabaja con copias de prueba.
Descargar paquete ZIP ↓Desarrollado por Adal Pérez