diff --git a/LICENSE.txt b/LICENSE.txt index 0359b4a..c2ce011 100644 --- a/LICENSE.txt +++ b/LICENSE.txt @@ -1,6 +1,6 @@ The MIT License (MIT) -Copyright (c) 2012, 2013, 2014 Indranil Sinharoy, Southern Methodist University, Dallas, TX. +Copyright (c) 2012, 2013, 2014, 2015 Indranil Sinharoy, Southern Methodist University, Dallas, TX. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: diff --git a/README.markdown b/README.markdown index 5c56083..844d630 100644 --- a/README.markdown +++ b/README.markdown @@ -4,7 +4,7 @@ ##### Current revision: -0.8.01 (Last significant update on 07/13/2014) +1.0.00 (Last significant update on 03/02/2015) Brief change-log is available in the [News and Updates](https://github.com/indranilsinharoy/PyZDDE/wiki/News-and-updates) page. @@ -48,6 +48,7 @@ In addition, the repository [Intro2LensDesignByGeary](https://github.com/indrani * Over 25 additional functions for more efficient use (more will be added in future). Examples include `zSetTimeout()`, `zExecuteZPLMacro()`, `zSpiralSpot()`, `zGetSeidelAberration()`, `zSetFieldTuple()`, `zGetFieldTuple()`, `zSetWaveTuple()`, `zGetWaveTuple()`, `zCalculateHiatus()`, `zGetPupilMagnification()`, `zGetPOP()`, `zSetPOPSettings()`, `zModifyPOPSettings()`, `zGetPSF()`, `zGetPSFCrossSec()`, `zGetMTF()`, `zGetImageSimulation()` * Special functions for better interactive use with IPython notebooks. Examples include `ipzCaptureWindow()`, `ipzGetFirst()`, `ipzGetPupil()`, `ipzGetSystemAper()`, `ipzGetTextWindow()` * Quick generation of few simple optical systems (see `pyzdde.systems` module) +* Array ray tracing using a separate and standalone module `arraytrace`, that has helper functions for performing array ray tracing. #### Overview @@ -56,12 +57,13 @@ PyZDDE is a Python-based standalone extension for communicating with [ZEMAX/Opti PyZDDE can be used with regular Python scripts as well as in an interactive environment such as an IPython shell, [QtConsole] (http://ipython.org/ipython-doc/dev/interactive/qtconsole.html) or [IPython Notebook] (http://ipython.org/ipython-doc/dev/interactive/htmlnotebook.html). -There are 4 types of functions in the toolbox: +There are 4 types of functions, and a separate module for array ray tracing in the toolbox: 1. Functions for accessing ZEMAX using the data items defined in the "ZEMAX EXTENSIONS" chapter of the ZEMAX manual. These functions' names start with "z" and the rest of the function names matches the data item defined by Zemax. For example `zGetSolve()` for the data item "GetSolve", `zSetSolve()` for the data item "SetSolve", etc. 2. Helper functions to enhance the toolbox functionality beyond just the data items, such as `zCalculateHiatus`, `zSpiralSpot`. Also, there are other utilities which increase the capability of the toolbox such as `zOptimize2()`, `zSetWaveTuple()`, `zExecuteZPLMacro()`, etc. 3. Few functions such as `ipzCaptureWindow()`, `ipzGetTextWindow()` can be used to embed analysis/graphic windows and text files from Zemax into an IPython Notebook or IPython QtConsole. 4. There are several other functions which can be used independent of a running Zemax session. Examples include `showZOperandList()`, `findZOperand()`, `findZButtonCode()`, etc. +5. A separate and standalone module `arraytrace` for performing array ray tracing. All the functions prefixed with "z" or "ipz" (types 1, 2 and 3) interact with Zemax directly and hence require a Zemax session to be running simultaneously. As they are instance methods of a pyzdde channel object, a pyzdde object needs to be created. @@ -92,10 +94,6 @@ At this point in time, a distribution version is not available as the tool box i Please download the code to a local directory in your computer and add that directory to python search path in order to use it. For detailed instructions on using PyZDDE, please refer to the [Wiki page] (https://github.com/indranilsinharoy/PyZDDE/wiki) -#### Is there anything missing? -The short answer is yes! PyZDDE doesn't support array/ bulk ray tracing at this point in time. I hope in the near future this feature will be implemented. May be you can help (please look in the [issues page](https://github.com/indranilsinharoy/PyZDDE/issues/21)) - - #### Getting started, usage, and other documentation: Getting started with PyZDDE is really very simple as shown in the "Hello world" program above. Please refer to the [Wiki page] (https://github.com/indranilsinharoy/PyZDDE/wiki). It has detailed guide on how to start using PyZDDE. diff --git a/Test/pyZDDEunittest.py b/Test/pyZDDEunittest.py index fd51d2f..0bbdf6e 100644 --- a/Test/pyZDDEunittest.py +++ b/Test/pyZDDEunittest.py @@ -2,11 +2,11 @@ # Name: PyZDDEunittest.py # Purpose: PyZDDE unit test using the python unittest framework # -# Copyright: (c) Indranil Sinharoy, 2012 - 2014 +# Copyright: (c) Indranil Sinharoy, 2012 - 2015 # Licence: MIT License # This file is subject to the terms and conditions of the MIT License. # For further details, please refer to LICENSE.txt -# Revision: 0.8.01 +# Revision: 1.0.00 #------------------------------------------------------------------------------- from __future__ import division from __future__ import print_function diff --git a/pyzdde/arraytrace.py b/pyzdde/arraytrace.py index d78feae..b1128b5 100644 --- a/pyzdde/arraytrace.py +++ b/pyzdde/arraytrace.py @@ -5,11 +5,11 @@ # Licence: MIT License # This file is subject to the terms and conditions of the MIT License. # For further details, please refer to LICENSE.txt -# Revision: 0.8.02 +# Revision: 1.0.00 #------------------------------------------------------------------------------- """Module for doing array ray tracing as described in Zemax manual. This module defines the DDE ray data structure using ctypes, and provides the following -functions: +to main functions: 1. zArrayTrace() -- The main function for calling Zemax for array ray tracing 2. getRayDataArray() -- Helper function that creates the ctypes ray data structure diff --git a/pyzdde/ddeclient.py b/pyzdde/ddeclient.py index 17c7d72..7343cac 100644 --- a/pyzdde/ddeclient.py +++ b/pyzdde/ddeclient.py @@ -10,7 +10,7 @@ # Copyright: (c) David Naylor # Licence: New BSD license (Please see the file Notice.txt for further details) # Website: http://code.activestate.com/recipes/577654-dde-client/ -# Revision: 0.8.01 +# Revision: 1.0.00 #------------------------------------------------------------------------------- from __future__ import print_function import sys diff --git a/pyzdde/systems.py b/pyzdde/systems.py index 4d663fa..7bb0bbd 100644 --- a/pyzdde/systems.py +++ b/pyzdde/systems.py @@ -1,11 +1,11 @@ #------------------------------------------------------------------------------- # Name: systems.py # Purpose: Simple optical systems for quick setup with PyZDDE. -# Copyright: (c) Indranil Sinharoy, Southern Methodist University, 2012 - 2014 +# Copyright: (c) Indranil Sinharoy, Southern Methodist University, 2012 - 2015 # Licence: MIT License # This file is subject to the terms and conditions of the MIT License. # For further details, please refer to LICENSE.txt -# Revision: 0.8.01 +# Revision: 1.0.00 #------------------------------------------------------------------------------- """simple optical systems for quick setup with PyZDDE & Zemax. The docstring examples assume that PyZDDe is imported as ``import pyzdde.zdde as pyz``, diff --git a/pyzdde/zcodes/zemaxbuttons.py b/pyzdde/zcodes/zemaxbuttons.py index eb2545a..2856acb 100644 --- a/pyzdde/zcodes/zemaxbuttons.py +++ b/pyzdde/zcodes/zemaxbuttons.py @@ -6,7 +6,7 @@ # Licence: MIT License # This file is subject to the terms and conditions of the MIT License. # For further details, please refer to LICENSE.txt -# Revision: 0.8.01 +# Revision: 1.0.00 #------------------------------------------------------------------------------- from __future__ import print_function import re as _re diff --git a/pyzdde/zcodes/zemaxoperands.py b/pyzdde/zcodes/zemaxoperands.py index dd324d4..a84c3ad 100644 --- a/pyzdde/zcodes/zemaxoperands.py +++ b/pyzdde/zcodes/zemaxoperands.py @@ -6,7 +6,7 @@ # Licence: MIT License # This file is subject to the terms and conditions of the MIT License. # For further details, please refer to LICENSE.txt -# Revision: 0.8.01 +# Revision: 1.0.00 #------------------------------------------------------------------------------- from __future__ import print_function import re as _re diff --git a/pyzdde/zdde.py b/pyzdde/zdde.py index d980080..7e17579 100644 --- a/pyzdde/zdde.py +++ b/pyzdde/zdde.py @@ -6,7 +6,7 @@ # Licence: MIT License # This file is subject to the terms and conditions of the MIT License. # For further details, please refer to LICENSE.txt -# Revision: 0.8.02 +# Revision: 1.0.00 #------------------------------------------------------------------------------- """PyZDDE, which is a toolbox written in Python, is used for communicating with ZEMAX using the Microsoft's Dynamic Data Exchange (DDE) messaging