NIVEL DE SATISFACCIÓN LABORAL
4.2 Discusión de resultados
In this section w e look at the coding aspects o f the Inter-O pt softw are as a whole, prior to a detailed look at the design m ethodology o f the user-interface in following sections. Inter-O pt required the im plementation o f a num ber o f novel features that w ere largely untested previously. The degree o f success o f these ideas
could not be assured in advance. All o f the program concepts therefore required incremental development and alterations as program design progressed. The program developm ent therefore, whilst following an overall plan, evolved during the 2 year time scale o f the project.
The initial version o f the program was developed primarily for optim izing Short Schmidt cameras. One o f the first ways tested to achieve this w as by allowing the user to alter the aspheric coefficients o f a modelled cam era in real time. The m ethod proved so successful that the author decided to apply this simple idea, real tim e cam era alterations and plotting o f aberration graphs, to other cam era param eters w ith the aim o f correcting different aberrations. In later sections o f this C hapter w e describe the evolution o f these ideas into a conceptual design fram ework for the overall program . In this section we briefly describe the low level im plementation o f the program structure.
The first stage o f softw are design is to identify the primary program tasks, in order to split the coding into manageable sub-tasks. The Inter-O pt softw are has 7 distinct areas. These areas are : loading lenses from com puter storage disc, saving lenses to disc, ray tracing routines, display o f lens schematics, calculation and display o f blur spot diagrams, interactive aberration plots, and param eter space maps. The Inter-O pt softw are is split into 92 separate files, as shown in Appendix C, w here the names and functions o f these files are given for reference. Appendix D show s a num ber o f data flow diagrams for the overall program. These pseudo-code diagram s show only the necessary level o f detail to clarify the structure o f the program , whilst clearly representing relationships betw een the various sections o f code. The Inter-O pt program , once running, prom pts the user to enter a lens name to load. C ontrol is then passed to a lens load routine (number 29 in Appendix C). This function perform s the
task o f loading the lens param eters from disc, and creating surface objects that com prise the lens object in the com puters memory. O nce com plete the program autom atically locates the entrance pupil and traces a paraxial ray to locate the focal plane by calculating the back focal distance. The routine that perform s these tasks is show n in diagrammatic form in flowchart 3. Once com plete this flow chart is exited, and program control is returned to the loop represented by flow charts 1 and 2.
Flow charts 1 and 2 depict the main program loop, w here the softw are aw aits user input, in the form o f a key press to invoke the routine required. A t this stage the program execution flow is held at the top level menu screen. Flow control can then be passed to low er level menus and screens as the user selects appropriate keys. This B IT is a single letter key hit on the PC keyboard, and is the main menu selection task that controls flow o f control to the various routines that com prise the program .
From the top menu screen, the user can select any o f 16 separate letters and num bers that direct program flow control to the 7 main areas into which the program structure is classified. One o f these areas is individual ray tracing routine invocation. These routines are selected from the main menu using letters 'R' for real ray trace and for paraxial ray trace. Once invoked, the user defined ray trace routines call the files ParS to perform a single paraxial ray trace through the lens system, or R R l to perform a single real ray trace through the entire system. B oth these routines call descendant routines as necessary to perform single ray traces through the lens object. See A ppendix G for specific details o f these routines in C++.
The next main section o f the program structure is display o f a lens schematic, that is a visual representation o f the lens on the V DU screen. To invoke this routine the user hits the button D from the main menu screen and control is passed to the
routine Schem, (see the flowchart in Appendix D for the structure o f this routine) which holds the necessary routines to display a view o f the optical system. The program user can also select display o f blur spot diagrams for the system loaded, by hitting key S. On occurrence o f this event control is passed to the routine Real. This function aims a set o f rings o f rays to the entrance pupil o f the system. These rays are then traced through to the image plane w here magnified views can be selected o f the resulting image blur spots.