Difference between revisions of "Retaining wall"

From Pynomo
Jump to: navigation, search
(New page: {{Infobox_general | name = Retaining wall | image = 150px | Field1a =author | Field1b =Leif Roschier }} == Theory and background == Retaining wall <math>\m...)
 
(Source code)
Line 26: Line 26:
 
<source lang=python>
 
<source lang=python>
 
"""
 
"""
     ex_BMI.py
+
     ex_retaining_wall.py
 +
 
 +
    Retaining wall.
 +
 
 +
          -----------------------------------------
 +
          | 2*(u*u-1) | 3*u*(u+1) | -u*(u-1.0)    |
 +
          -----------------------------------------
 +
          |      v    |    1    |    -v*v      | = 0
 +
          -----------------------------------------
 +
          | 2*(2*w+1) | 3*(w+1)  |-(w+1)*(2*w+1) |
 +
          -----------------------------------------
  
    Body mass index BMI=w(kg)/h(m)**2
 
  
 
     Copyright (C) 2007-2008  Leif Roschier
 
     Copyright (C) 2007-2008  Leif Roschier
Line 45: Line 54:
 
     along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
     along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
"""
 
"""
from nomographer import *
+
from pynomo.nomographer import *
 
+
 
N_params_1={
 
N_params_1={
         'u_min':1.40,
+
         'u_min':0.5,
         'u_max':2.2,
+
         'u_max':1.0,
         'function':lambda u:u**2,
+
         'u_min_trafo':0.5,
         'title':r'(inch) height (m)',
+
        'u_max_trafo':1.0,
         'tick_levels':3,
+
        'f':lambda u:2*(u*u-1.0),
 +
         'g':lambda u:3*u*(u+1.0),
 +
        'h':lambda u:(-u*(u-1.0)),
 +
        'title':'p',
 +
        'tick_side':'left',
 +
         'tick_levels':4,
 
         'tick_text_levels':2,
 
         'tick_text_levels':2,
         'tag':'height',
+
         }
        #'title_x_shift':0.8,
+
                }
+
 
+
 
N_params_2={
 
N_params_2={
         'u_min':15.0,
+
         'u_min':1.0,
         'u_max':55.0,
+
         'u_max':0.75,
         'function':lambda u:1.0/u,
+
         'f':lambda v:v,
         'title':r'BMI',
+
        'g':lambda v:1.0,
 +
        'h':lambda v:(-v*v),
 +
         'title':'h',
 +
        'tick_side':'right',
 
         'tick_levels':3,
 
         'tick_levels':3,
         'tick_text_levels':2,
+
         'tick_text_levels':2
         'tick_side':'left',
+
         }
        'title_draw_center':True,
+
        'title_opposite_tick':False,
+
                }
+
 
+
 
N_params_3={
 
N_params_3={
         'u_min':30.0,
+
         'u_min':1.0,
         'u_max':200.0,
+
         'u_max':0.5,
         'function':lambda u:u,
+
         'u_min_trafo':1.0,
        'title':r'(lbs)  weight (kg)',
+
         'u_max_trafo':0.5,
        'tick_levels':3,
+
        'f':lambda w:2.0*(2.0*w+1.0),
        'tick_text_levels':1,
+
         'g':lambda w:3.0*(w+1.0),
         'tag':'mass',
+
         'h':lambda w:(-(w+1.0)*(2.0*w+1.0)),
        #'title_x_shift':0.8,
+
         'title':'L',
                }
+
 
+
block_1_params={
+
            'block_type':'type_2',
+
            'width':10.0,
+
            'height':10.0,
+
            'f1_params':N_params_1,
+
            'f2_params':N_params_2,
+
            'f3_params':N_params_3,
+
            }
+
 
+
weight_params_lbs={
+
         'tag':'mass',
+
        'u_min':30.0*2.2,
+
         'u_max':200.0*2.2,
+
         'function':lambda u:u,
+
        #'title':r'm (lbs)',
+
        'tick_levels':3,
+
        'align_func':lambda u:u/2.2,
+
        'tick_text_levels':2,
+
 
         'tick_side':'left',
 
         'tick_side':'left',
         'scale_type':'linear',
+
         'tick_levels':4,
         'title_x_shift':-0.8,
+
         'tick_text_levels':2
                }
+
        }
 
+
block_params={
block_2_params={
+
                    'block_type':'type_9',
                'block_type':'type_8',
+
                    'f1_params':N_params_1,
                'f_params':weight_params_lbs
+
                    'f2_params':N_params_2,
                }
+
                    'f3_params':N_params_3,
 
+
                    'transform_ini':True,
height_params_inch={
+
                    }
        'tag':'height',
+
        'u_min':140.0/(2.54*12),
+
        'u_max':220.0/(2.54*12),
+
        'function':lambda u:u**2,
+
        #'title':r'h (inch)',
+
        'tick_levels':2,
+
        'align_func':lambda u:u/100.0*2.54*12,
+
        'tick_text_levels':1,
+
        'tick_side':'right',
+
        'scale_type':'linear',
+
        'title_x_shift':-0.8,
+
        'tick_side':'left',
+
                }
+
 
+
block_3_params={
+
                'block_type':'type_8',
+
                'f_params':height_params_inch
+
                }
+
  
 
main_params={
 
main_params={
               'filename':'ex_BMI.pdf',
+
               'filename':'ex_retaining_wall.pdf',
               'paper_height':12.0,
+
               'paper_height':10.0,
               'paper_width':8.0,
+
               'paper_width':10.0,
               'block_params':[block_1_params,block_2_params,block_3_params],
+
               'block_params':[block_params],
               'transformations':[('rotate',0.01),('scale paper',)],
+
               'transformations':[('scale paper',)]
              'title_str':r"Body mass index $BMI=W($kg$)/H($m$)^2$"
+
 
               }
 
               }
 
Nomographer(main_params)
 
Nomographer(main_params)
 
</source>
 
</source>

Revision as of 19:13, 6 October 2008

Retaining wall
Ex retaining wall.png
author Leif Roschier

Theory and background

Retaining wall

[math]\mathrm{BMI} = \frac{\mathit{weight} \ \mathrm{(kg)}}{\mathit{height}^2 (\mathrm{m^2})}[/math]

Construction of the nomograph

A type 2 was chosen and dual scales were put by using type 8 singular blocks.

References


Generated nomograph

Retaining wall
Ex retaining wall.png
Generated portable document file (pdf): File:Ex retaining wall.pdf

Source code

"""
    ex_retaining_wall.py
 
    Retaining wall.
 
          -----------------------------------------
          | 2*(u*u-1) | 3*u*(u+1) | -u*(u-1.0)    |
          -----------------------------------------
          |      v    |     1     |    -v*v       | = 0
          -----------------------------------------
          | 2*(2*w+1) | 3*(w+1)   |-(w+1)*(2*w+1) |
          -----------------------------------------
 
 
    Copyright (C) 2007-2008  Leif Roschier
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
"""
from pynomo.nomographer import *
N_params_1={
        'u_min':0.5,
        'u_max':1.0,
        'u_min_trafo':0.5,
        'u_max_trafo':1.0,
        'f':lambda u:2*(u*u-1.0),
        'g':lambda u:3*u*(u+1.0),
        'h':lambda u:(-u*(u-1.0)),
        'title':'p',
        'tick_side':'left',
        'tick_levels':4,
        'tick_text_levels':2,
        }
N_params_2={
        'u_min':1.0,
        'u_max':0.75,
        'f':lambda v:v,
        'g':lambda v:1.0,
        'h':lambda v:(-v*v),
        'title':'h',
        'tick_side':'right',
        'tick_levels':3,
        'tick_text_levels':2
        }
N_params_3={
        'u_min':1.0,
        'u_max':0.5,
        'u_min_trafo':1.0,
        'u_max_trafo':0.5,
        'f':lambda w:2.0*(2.0*w+1.0),
        'g':lambda w:3.0*(w+1.0),
        'h':lambda w:(-(w+1.0)*(2.0*w+1.0)),
        'title':'L',
        'tick_side':'left',
        'tick_levels':4,
        'tick_text_levels':2
        }
block_params={
                     'block_type':'type_9',
                     'f1_params':N_params_1,
                     'f2_params':N_params_2,
                     'f3_params':N_params_3,
                     'transform_ini':True,
                     }
 
main_params={
              'filename':'ex_retaining_wall.pdf',
              'paper_height':10.0,
              'paper_width':10.0,
              'block_params':[block_params],
              'transformations':[('scale paper',)]
              }
Nomographer(main_params)