Skip to content

Commit

Permalink
Updated version to 1.0. PyZDDE is now feature complete
Browse files Browse the repository at this point in the history
  • Loading branch information
indranilsinharoy committed Mar 2, 2015
1 parent 23747d4 commit 710fa3d
Show file tree
Hide file tree
Showing 9 changed files with 15 additions and 17 deletions.
2 changes: 1 addition & 1 deletion LICENSE.txt
Original file line number Diff line number Diff line change
@@ -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:

Expand Down
10 changes: 4 additions & 6 deletions README.markdown
Original file line number Diff line number Diff line change
Expand Up @@ -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.

Expand Down Expand Up @@ -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
Expand All @@ -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.
Expand Down Expand Up @@ -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.

Expand Down
4 changes: 2 additions & 2 deletions Test/pyZDDEunittest.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
4 changes: 2 additions & 2 deletions pyzdde/arraytrace.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion pyzdde/ddeclient.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
4 changes: 2 additions & 2 deletions pyzdde/systems.py
Original file line number Diff line number Diff line change
@@ -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``,
Expand Down
2 changes: 1 addition & 1 deletion pyzdde/zcodes/zemaxbuttons.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion pyzdde/zcodes/zemaxoperands.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion pyzdde/zdde.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down

0 comments on commit 710fa3d

Please sign in to comment.