+ Responder tema
Resultados 1 al 6 de 6

Tema: Ke pena, pero sigo teniendo problemas con algunos codigos...

  1. #1
    Member luisocr va por un camino distinguido
    Fecha de ingreso
    28 ene, 10
    Mensajes
    38
    Agradecimientos

    Ke pena, pero sigo teniendo problemas con algunos codigos...

    Estimados Foristas:

    Perdonen que los vuelva a molestar tan seguido con una nueva duda...pero es que simplemente todavía no puedo jugarmela solo en Latex. Resulta que estoy realizando un diagrama de flujo para mi tesis, y me preguntaba si era posible emplear el formato que les muestro en la siguiente imagen:

    [img width=615 height=1024]http://img641.imageshack.us/img641/8932/diagrama.png[/img]

    Gracias a sus recomendaciones, he revisado el paquete Tiks y es genial por cierto, sin embargo aun no descubro como hacer para incluir además del diagrama, los pasos al costado. Con toda la pena del mundo recurro a ustedes para que me ayuden a ver como se hace este código. Muchisimas gracias de antemano por la ayuda que me puedan brindar. Saludos, Luis.

  2. #2
    Senior Member gm es un nombre conocido por todos gm es un nombre conocido por todos gm es un nombre conocido por todos gm es un nombre conocido por todos gm es un nombre conocido por todos gm es un nombre conocido por todos Avatar de gm
    Fecha de ingreso
    12 sep, 09
    Mensajes
    2,344
    Agradecimientos

    Re: Ke pena, pero sigo teniendo problemas con algunos codigos...

    Hola,

    efectivamente, PGF/TikZ es el paquete a usar (hay otra opción, pero ésta está de moda). La idea: construir la tabla y en las celdas apropiadas poner los nodos correspondientes al diagrama de flujo. Usar las opciones remember picture y overlay (consultar el manual de PGF/TikZ) para poder luego conectar, por fuera de la tabla, los nodos antes definidos.

    La implementación: el siguiente código muestra, de manera esquemática, cómo proceder. El código contiene algunos comentarios útiles, pero es necesario leer la documentación de los paquetes utilizados para entenderlo plenamente. Algunas notas: utilicé el paquete booktabs para trazar la tabla (con este paquete no es conveniente usar líneas verticales; en este caso concreto, me parece a mí que sobran y que la tabla queda mejor sin verticales (ya tú decidirás si las vuelves a poner o no)). Agregué algo de color al diagrama de flujo; también ya tú verás si lo dejas, lo modificas o lo quitas.

    El código:

    Código:
    \documentclass{article}
    \usepackage{array}
    \usepackage{booktabs}% permite mejorar el aspecto de las tablas
    \usepackage{tikz}
    \usetikzlibrary{shapes,arrows}
     
    % definición del comando que crea texto rápidamente
    \newcommand\texto{texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto}
    
    % definición del estilos para los nodos rectangulares
    \tikzset{rectangular/.style=
     rectangle,
     minimum height=9mm,minimum width=20mm,
     very thick
    }
    % definición del estilo de las flechas
    \tikzset{>=triangle 45}
    % para definir nodos y referirnos a ellos después
    \tikzstyle{every picture}+=[remember picture]
    
    \begin{document}
    
    % definición de un nuevo tipo de columna
    \newcolumntype{A}[1]{>{\centering\arraybackslash}m{#1}}
    
    \begin{table}[!ht]
     \centering
     \begin{tabular}{A{.4cm}m{6cm}A{2.5cm}A{2.5cm}}
      \toprule
      & \multicolumn{1}{c}{\textit{Texto}} & \textit{Texto} &\textit{Texto} \\\midrule
      & \rule{0pt}{1.3cm} & 
        \begin{tikzpicture}
         \node [rectangular,rounded corners=4.5mm,draw=red,fill=red!20] (A) {0};   
        \end{tikzpicture} & \\
      1 & \texto & 
        \begin{tikzpicture}
         \node [rectangular,draw=blue,fill=blue!20] (B) {1};
        \end{tikzpicture}& \\
      2 & \texto & & 
        \begin{tikzpicture}
         \node [rectangular,draw=blue,fill=blue!20] (C) {2};
        \end{tikzpicture} \\
      3 & \texto & 
        \begin{tikzpicture}
         \node [diamond,minimum height=7mm,minimum width=15mm,
             draw=blue,fill=blue!20] (D) {3};
        \end{tikzpicture} & \\
      \bottomrule
     \end{tabular}
    
     % ahora conectamos los nodos
     \begin{tikzpicture}[overlay]
      \draw[->] (A) -- (B);
      \draw[->] (B) |- +(2.8,-0.7) -| (C);
      \draw[->] (C) |- +(-2.8,-0.7) -| (D);
     \end{tikzpicture}
    \end{table}
    
    \end{document}

  3. #3
    Member luisocr va por un camino distinguido
    Fecha de ingreso
    28 ene, 10
    Mensajes
    38
    Agradecimientos

    Re: Ke pena, pero sigo teniendo problemas con algunos codigos...

    Muchisimas gracias GM. No tengo como pagarte. Eres demasiado genial en esto. Voy a ver si me pongo las pilas a aprender mas para no depender tanto de su ayuda ... ja ja

  4. #4
    Member luisocr va por un camino distinguido
    Fecha de ingreso
    28 ene, 10
    Mensajes
    38
    Agradecimientos

    Re: Ke pena, pero sigo teniendo problemas con algunos codigos...

    Estimados Compañeros:

    Me puse un poco las pilas y logré completar el diagrama de flujo de mi tesis. Adjunto el codigo utilizado por mi, asi como una imagen con el resultado. Siguiendo con el proceso de aprendizaje, me preguntaba si había una forma de espaciar las filas de forma que todas tuvieran la misma altura indiferentemente del contenido de las mismas. Además cualquier otra recomendación de formato será bien recibida.



    %Diagrama de Flujo.
    \newcommand\pasob{Accesa al programa Sap2000 atrav\'es la Interfaz de Programaci\'on de Aplicaciones.}
    \newcommand\pasoc{Importa desde Excel una base de datos con las propiedades de los materiales y secciones.}
    \newcommand\pasod{Define los patrones y las combinaciones de carga.}
    \newcommand\pasoe{Importa desde excel las coordenadas de los nudos y define los elementos estructurales.}
    \newcommand\pasof{Asigna las cargas distribuidas, seg\'un el patr\'on de carga especificado, a los elementos estructurales.}
    \newcommand\pasog{Asigna las condiciones de apoyo a las columnas.}
    \newcommand\pasoh{Define los diafragmas r\'igidos de cada nivel.}
    \newcommand\pasoi{Importa desde excel y asigna la carga s\'ismica.}
    \newcommand\pasoj{Guarda el modelo, realiza el an\'alisis estructural y exporta los desplazamientos a Excel.}
    \newcommand\pasoka{Recalcula el periodo de la estructura mediante el m\'etodo de Rayleigh. Recalcula las fuerzas s\'ismica con base en el nuevo periodo}
    \newcommand\pasokb{Calcula la diferencia entre el periodo estimado y el calculado.?`La diferencia es menor a 0.01? Si: Paso 11. No: Paso 8}
    \newcommand\pasol{Exporta los momentos, cortantes y cargas axiales \'ultimas de dise\~no a excel.}

    % definición del estilos para los nodos rectangulares
    \tikzset{rectangular/.style= rectangle, minimum height=6mm, minimum width=20mm}

    % para definir nodos y referirnos a ellos después
    \tikzstyle{every picture}+=[remember picture]

    % definición de un nuevo tipo de columna
    \newcolumntype{A}[1]{>{\centering\arraybackslash}m{#1}}

    \begin{center}
    Diagrama de Flujo 4.1:
    \end{center}

    \begin{table}[!ht]
    \centering
    \begin{tabular}{A{.5cm}m{7.5cm}A{2.5cm}A{2.5cm}}
    \toprule
    \textbf{Paso} & \multicolumn{1}{c}{\textbf{Descripci\'on}} & \textbf{Excel} &\textbf{Sap2000} \\\midrule
    & \rule{0pt}{1.3cm} &
    \begin{tikzpicture}
    \node [rectangular,rounded corners=3.0mm,draw=black,line width=0.85pt] (A) {\small{Inicio}};
    \end{tikzpicture} & \\
    1 & \small{\pasob} &
    \begin{tikzpicture}
    \node [rectangular,draw=black,line width=0.85pt] (B) {\small{1}};
    \end{tikzpicture}& \\
    2 & \small{\pasoc} & &
    \begin{tikzpicture}
    \node [rectangular,draw=black,line width=0.85pt] (C) {\small{2}};
    \end{tikzpicture} \\
    3 & \small{\pasod} & &
    \begin{tikzpicture}
    \node [rectangular,draw=black,line width=0.85pt] (D) {\small{3}};
    \end{tikzpicture} \\
    4 & \small{\pasoe} & &
    \begin{tikzpicture}
    \node [rectangular,draw=black,line width=0.85pt] (E) {\small{4}};
    \end{tikzpicture} \\
    5 & \small{\pasof} & &
    \begin{tikzpicture}
    \node [rectangular,draw=black,line width=0.85pt] (F) {\small{5}};
    \end{tikzpicture} \\
    6 & \small{\pasog} & &
    \begin{tikzpicture}
    \node [rectangular,draw=black,line width=0.85pt] (G) {\small{6}};
    \end{tikzpicture} \\
    7 & \small{\pasoh} & &
    \begin{tikzpicture}
    \node [rectangular,draw=black,line width=0.85pt] (H) {\small{7}};
    \end{tikzpicture} \\
    8 & \small{\pasoi} & &
    \begin{tikzpicture}
    \node [rectangular,draw=black,line width=0.85pt] (I) {\small{8}};
    \end{tikzpicture} \\
    9 & \small{\pasoj} & &
    \begin{tikzpicture}
    \node [rectangular,draw=black,line width=0.85pt] (J) {\small{9}};
    \end{tikzpicture} \\
    10 & \small{\pasoka} &
    \begin{tikzpicture}
    \node [rectangular,draw=black,line width=0.85pt] (Ka){\small{10}};
    \end{tikzpicture} & \\
    & \small{\pasokb} &
    \begin{tikzpicture}
    \node [diamond,minimum height=7mm,minimum width=15mm, draw=black,line width=0.85pt] (Kb) {};
    \end{tikzpicture} &\\
    11 & \small{\pasol} & &
    \begin{tikzpicture}
    \node [rectangular,draw=black,line width=0.85pt] (L) {\small{11}};
    \end{tikzpicture} \\
    & \\ &&&
    \begin{tikzpicture}
    \node [rectangular,rounded corners=3.0mm,draw=black,line width=0.85pt] (M) {\small{Fin}};
    \end{tikzpicture} \\
    \bottomrule
    \end{tabular}

    % ahora conectamos los nodos
    \begin{tikzpicture}[overlay,->,>=stealth']
    \draw[->] (A) -- (B);
    \draw[->] (B) |- +(2.8,-0.5) -| (C);
    \draw[->] (C) -- (D);
    \draw[->] (D) -- (E);
    \draw[->] (E) -- (F);
    \draw[->] (F) -- (G);
    \draw[->] (G) -- (H);
    \draw[->] (H) -- (I);
    \draw[->] (I) -- (J);
    \draw[->] (J) |- +(-2.8,-0.5) -| (Ka);
    \draw[->] (Ka) -- (Kb);
    \draw[->] (Kb) |- +(2.8,-0.5) -| (L);
    \draw[->] (L) -- (M);
    \end{tikzpicture}
    \end{table}

  5. #5
    Senior Member gm es un nombre conocido por todos gm es un nombre conocido por todos gm es un nombre conocido por todos gm es un nombre conocido por todos gm es un nombre conocido por todos gm es un nombre conocido por todos Avatar de gm
    Fecha de ingreso
    12 sep, 09
    Mensajes
    2,344
    Agradecimientos

    Re: Ke pena, pero sigo teniendo problemas con algunos codigos...

    Hola, luisocr

    en el siguiente código definí un comando que se encarga de adicionar espacio vertical entre las filas; por supuesto, modifícalo según tus necesidades. Además, agregué una arista en el condicional y los rótulos "sí" y "no" correspondientes:

    Código:
    \documentclass{article}
    \usepackage{array}
    \usepackage{booktabs}
    \usepackage{tikz}
    \usetikzlibrary{shapes,arrows}
    
    % comando (una "caja vertical fantasma") para adicionar espacio vertical
    % entre las filas 
    \newcommand\espacio{\vphantom{\parbox{1cm}{a\\b\\c}}}
    
    %Diagrama de Flujo. 
    \newcommand\pasob{Accesa al programa Sap2000 atrav\'es la Interfaz de Programaci\'on de Aplicaciones.}
    \newcommand\pasoc{Importa desde Excel una base de datos con las propiedades de los materiales y secciones.}
    \newcommand\pasod{Define los patrones y las combinaciones de carga.}
    \newcommand\pasoe{Importa desde excel las coordenadas de los nudos y define los elementos estructurales.}
    \newcommand\pasof{Asigna las cargas distribuidas, seg\'un el patr\'on de carga especificado, a los elementos estructurales.}
    \newcommand\pasog{Asigna las condiciones de apoyo a las columnas.}
    \newcommand\pasoh{Define los diafragmas r\'igidos de cada nivel.}
    \newcommand\pasoi{Importa desde excel y asigna la carga s\'ismica.}
    \newcommand\pasoj{Guarda el modelo, realiza el an\'alisis estructural y exporta los desplazamientos a Excel.}
    \newcommand\pasoka{Recalcula el periodo de la estructura mediante el m\'etodo de Rayleigh. Recalcula las fuerzas s\'ismica con base en el nuevo periodo}
    \newcommand\pasokb{Calcula la diferencia entre el periodo estimado y el calculado.?`La diferencia es menor a 0.01? Si: Paso 11. No: Paso 8}
    \newcommand\pasol{Exporta los momentos, cortantes y cargas axiales \'ultimas de dise\~no a excel.}
    
    % definición del estilos para los nodos rectangulares
    \tikzset{rectangular/.style= rectangle, minimum height=6mm, minimum width=20mm}
    
    % para definir nodos y referirnos a ellos después
    \tikzstyle{every picture}+=[remember picture]
    
    % definición de un nuevo tipo de columna
    \newcolumntype{A}[1]{>{\centering\arraybackslash}m{#1}}
    
    \begin{document}
    
    \begin{center}
    Diagrama de Flujo 4.1:
    \end{center}
    
    \begin{table}[!ht]
     \centering
     \begin{tabular}{A{.5cm}m{7.5cm}A{2.5cm}A{2.5cm}}
      \toprule
      \textbf{Paso} & \multicolumn{1}{c}{\textbf{Descripci\'on}} & \textbf{Excel} &\textbf{Sap2000} \\\midrule
      \espacio & & 
        \begin{tikzpicture}
         \node [rectangular,rounded corners=3.0mm,draw=black,line width=0.85pt] (A) {\small{Inicio}};  
        \end{tikzpicture} & \\
      1\espacio & \small{\pasob} & 
        \begin{tikzpicture}
         \node [rectangular,draw=black,line width=0.85pt] (B) {\small{1}};
        \end{tikzpicture}& \\
      2\espacio & \small{\pasoc} & & 
        \begin{tikzpicture}
         \node [rectangular,draw=black,line width=0.85pt] (C) {\small{2}};
        \end{tikzpicture} \\
      3\espacio & \small{\pasod} & & 
        \begin{tikzpicture}
         \node [rectangular,draw=black,line width=0.85pt] (D) {\small{3}};
        \end{tikzpicture} \\
      4\espacio & \small{\pasoe} & & 
        \begin{tikzpicture}
         \node [rectangular,draw=black,line width=0.85pt] (E) {\small{4}};
        \end{tikzpicture} \\
      5\espacio & \small{\pasof} & & 
        \begin{tikzpicture}
         \node [rectangular,draw=black,line width=0.85pt] (F) {\small{5}};
        \end{tikzpicture} \\
      6\espacio & \small{\pasog} & & 
        \begin{tikzpicture}
         \node [rectangular,draw=black,line width=0.85pt] (G) {\small{6}};
        \end{tikzpicture} \\
      7\espacio & \small{\pasoh} & & 
        \begin{tikzpicture}
         \node [rectangular,draw=black,line width=0.85pt] (H) {\small{7}};
        \end{tikzpicture} \\
      8\espacio & \small{\pasoi} & & 
        \begin{tikzpicture}
         \node [rectangular,draw=black,line width=0.85pt] (I) {\small{8}};
        \end{tikzpicture} \\    
      9\espacio & \small{\pasoj} & & 
        \begin{tikzpicture}
         \node [rectangular,draw=black,line width=0.85pt] (J) {\small{9}};
        \end{tikzpicture} \\    
      10\espacio & \small{\pasoka} & 
        \begin{tikzpicture}
         \node [rectangular,draw=black,line width=0.85pt] (Ka){\small{10}};
        \end{tikzpicture} & \\    
       \espacio & \small{\pasokb} & 
        \begin{tikzpicture}
        \node [diamond,minimum height=7mm,minimum width=15mm, draw=black,line width=0.85pt] (Kb) {};
       \end{tikzpicture} &\\    
      11\espacio & \small{\pasol} & & 
        \begin{tikzpicture}
         \node [rectangular,draw=black,line width=0.85pt] (L) {\small{11}};
        \end{tikzpicture} \\    
        & \\ &&& 
        \begin{tikzpicture}
         \node [rectangular,rounded corners=3.0mm,draw=black,line width=0.85pt] (M) {\small{Fin}};  
        \end{tikzpicture} \\    
      \bottomrule
     \end{tabular}
    
     % ahora conectamos los nodos
     \begin{tikzpicture}[overlay,->,>=stealth']
      \draw[->] (A) -- (B);
      \draw[->] (B) |- +(2.8,-0.5) -| (C);
      \draw[->] (C) -- (D);
      \draw[->] (D) -- (E);
      \draw[->] (E) -- (F);
      \draw[->] (F) -- (G);
      \draw[->] (G) -- (H); 
      \draw[->] (H) -- (I);
      \draw[->] (I) -- (J);
      \draw[->] (J) |- +(-2.8,-0.5) -| (Ka);
      \draw[->] (Ka) -- (Kb);  
      \draw[->] (Kb) |- node [left=-7mm] {s\'i} +(2.8,-0.5) -| (L);
      \draw[->] (Kb.east) -| +(3.5,1.5) node [right=-6mm] {no} |- (I);
      \draw[->] (L) -- (M); 
    \end{tikzpicture}
    \end{table}
    
    \end{document}
    Dos recomendaciones: 1) Cuando pongas código, pon código compilable (en el trozo que pusiste antes faltaban el preámbulo y el comienzo y el fin del documento) ya que eso ahorra trabajo (a mí (aunque para mí es claro cómo debía ser el preámbulo) y para un usuario que vea el hilo desprevenidamente y quiera compilar el ejemplo).
    2) Usa las etiquetas de código (dan mayor orden a los hilos).

  6. #6
    Member luisocr va por un camino distinguido
    Fecha de ingreso
    28 ene, 10
    Mensajes
    38
    Agradecimientos

    Re: Ke pena, pero sigo teniendo problemas con algunos codigos...

    Muchisimas gracias GM. Tomaré nota de tus obsevaciones.

+ Responder tema

Temas similares

  1. sigo muy débil
    Por mat en el foro Ciencias de la Salud
    Respuestas: 32
    Último mensaje: 18/03/2011, 16:32
  2. Algunos problemas de topología básica.
    Por KaryTanis2 en el foro Matemáticas
    Respuestas: 7
    Último mensaje: 04/09/2010, 04:12
  3. ¿merece la pena estudiar tcp/ip?
    Por rounder en el foro Informática
    Respuestas: 8
    Último mensaje: 11/04/2010, 19:48
  4. Codigos QR
    Por Mike-7- en el foro Informática
    Respuestas: 0
    Último mensaje: 28/03/2009, 06:39
  5. cargar códigos html
    Por Pantalàimon_ en el foro Ingeniería
    Respuestas: 4
    Último mensaje: 28/12/2007, 22:52

Etiquetas para este tema

Permisos de publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes