OptixSurf

OptixSurf is a program that lets you automatically generate optical surfaces from TCL scripts. If you need to generate hundreds of optical surfaces, than OptixSurf will help you do it automatically.

Screen Shot

Screen shot of OptixSurf

About OptixSurf

OptixSurf is constructed using TCL/TK as it's user interface builder. TCL/TK is is a scripting language that makes it easy to create menus and dialog boxes.

OptixSurf also uses TCL as its command parsing language. That makes OptixSurf perform as a powerful optics scripting language. Scripts are written by users and are placed in OPX files. The OPX scripts direct the creation of optics surfaces. OptixSurf has extended the TCL language to include the functions necessary for creating optics surfaces.

The main OptixSurf control script communicates with the OptixSurf processing engine (called "optiproc") using pipes. The processing engine contains all of the detailed algorithms for generating and displaying the optics surfaces. Because communication with optiproc is through pipes, commands to optiproc can be stored for use as demos or for automated testing of OptixSurf. This is how the OptixSurf demo was created.

Download OptixSurf Program

Windows 2000/XP OptixSurfInstall.exe
Linux (OpenGL graphics) OptixSurf1.09LinuxGL.zip
Linux (X graphics) OptixSurf1.09LinuxX.zip

The executable will uncompress itself and then install OptixSurf for you. Follow the easy installation instruction when they appear. You can play with OptixSurf all you want, but until you purchase an activation code, you not be able to save the NURBS surfaces to an IGES file.



Purchase OptixSurf $199
Click this button to purchase OptixSurf:
PayPal

After you have paid using the "BUY NOW" button, you will be directed to a page where you will receive an activation code which will permanently activate OptixSurf on your computer.

How It Works

TCL Language

In OptixSurf, optics surfaces are generated using the TCL scripting language. The standard TCL commands that you can use in an OptixSurf OPX program are here: after append array break concat continue eval exec exit expr file filename foreach for format global glob if incr join lappend lindex linsert list llength lsort lrange lreplace lsearch proc puts regexp return scan set split string subst switch unset while You can also read about the TCL syntax and about regular expressions. Learn everything there is to know about TCL at the Tcl Developer Xchange.

Example OPX Program

# First, a list of surfaces are read in from
# an IGES file. It will have the name "mysurfs"
surflist mysurfs surf.igs

# Now a lens object is created using mysurfs as the
# base of the lens
lens mylens mysurfs

# The lens object stores information for creating pillow surfaces
mylens focalpoint 260 725 1030
mylens radius1 5.5
mylens radius2 17.0
mylens width 10.0
mylens height 30.0

for {set j 0} {$j < 4} {incr j} {
set z [expr 1110 - $j * 30]
for {set i 0} {$i < 10} {incr i} {
set y [expr $i * 10 + 700]

if {$i == 0} {
# Set the position for the next pillow
mylens position 260 $y $z
}

# Create a pillow
mylens pillow p$i$j

# Set the position for the next pillow optic
set nextposition [p$i$j getcorner northeast]
mylens position [lindex $nextposition 0] [lindex $nextposition 1] [lindex $nextposition 2]
# Update the display to show the new pillow
update
}
}


----optixsurf----optixsurf----optixsurf----optixsurf----optixsurf----
home