20 Programming in Origin


Programming image connectivity.png

As you gain experience with Origin, you may want to access Origin features programmatically, add your own custom routines and tools, or communicate with Origin from other applications. This chapter outlines basic programming options available in Origin. For more detailed information, see the following Origin programming-related resources:

  • Programming documentation including guides, language references, and examples are available from the Help menu in the product.
  • Online programming documentation is available at www.originlab.com/doc.
  • You can typically locate online programming pages by performing a web search from your browser using phrases such as: labtalk importing , originc interpolate, or labview origin send data.
  • An Origin Programming Forum can be found at www.originlab.com/forum.
  • Sample files for LabTalk, Python, COM Server and Client, etc. can be found in the \Samples folder of your Origin software.

LabTalk

LabTalk is a scripting language that provides access to most of Origin's functionality. With LabTalk you can access and change properties of Origin objects such as worksheets, columns, graph layers, and data plots. LabTalk script can include calls to X-Functions to perform advanced data processing and analysis.

There are many options for executing your LabTalk scripts. Multiple lines of script can be organized as sections in a file, and those individual sections can be executed from the user-interface at the command prompt in the Script Window or Command Window; from buttons added to worksheets and graphs; from included or custom-made toolbar buttons; or from custom menu commands.

The following "mini-tutorial" will demonstrate adding a button object to a worksheet, associating a short LabTalk script with the button, then using the button to execute the script and perform a basic statistical calculation while writing the results to the worksheet.

  1. Run Origin and start a new project by clicking the New Project button Button New Project.png on the Standard toolbar.
  2. Click Data: Import from File: Single ASCII and browse to the file \Samples\Graphing\Box Chart.dat. Select the file and click Open. The file is imported into the active worksheet window.
  3. With the worksheet window active, click Format: Worksheet. In the Worksheet Properties dialog, click the Size tab and set Gap from Top to 25, then click OK. A gap is added to worksheet window.
  4. Click the Text Tool on the Tools toolbar. Click inside the gap that you just added and type "Add Mean Label Row" into the text object. Click outside the text object to exit edit mode.
  5. Right-click on the text label and select Properties.... Choose Programming Control tab, set Script Run After to Button Up. Copy and paste the following script into the text box:
  6. wks.userParam1 = 1;
    wks.userParam1$ = "Mean";
    for (int ii = 2; ii <= wks.ncols; ii++)
    {
    	range rr = $(ii);
    	Col($(ii))[D1]$ = $(mean(rr),.2*);
    }
  7. Click OK to apply settings and close the Text Object dialog box. Note that your text object now looks like a button.
  8. Click the button. Note that a new header row labelled "Mean" is added to the worksheet and the mean value of each column of data is written to the Mean row cell above the corresponding column.

LabTalk additions for Origin 2021:

  • Excel-like PRODUCT() function (ORG-20778)
  • Excel-like LET() function (ORG-21992)
  • Command Window: Mouse-wheel zoom, better autocomplete (ORG-13898)
  • New run -pcommands to update pending operations (ORG-21926)
  • LabTalk access to Dash Definition at plot level (ORG-21587)
  • GetN supports dataset elements (ORG-19233)
  • LabTalk control of box plots (ORG-22214)
  • LabTalk support for sorting columns by Long Name, etc. (ORG-18101)
  • LabTalk control of plot label object (layer.plot.label), including show or hide label by row index (ORG-21874)

Note: For more information on LabTalk, Origin's built-in scripting language, please consult your product documentation at Help: Programming: LabTalk.

Sample files can be found in the \Samples\LabTalk Script Examples folder of your Origin software.

Python

Origin provides an embedded Python environment so that you can run Python in Origin. Origin supports command line execution of Python code from the Python Console or Origin's Code Builder IDE. The current embedded Python version is version 3.8.3.

Considerable effort has gone into improving Origin's embedded Python environment for Origin 2021:

  • Support for debugging and executing Python code in Origin's Code Builder IDE.
  • Much-improved package management. You can install packages via Code Builder (Tools: Python Packages) or from the Script Window with pip commands (e.g. pip install numpy;).
  • Python Function tab added to the Set Values dialog: define and use Python functions in column formulas.
  • Access Python functions from LabTalk.
  • Access Python functions from Origin C.

In addition, both Origin and OriginPro include a new originpro module that, with minimal coding, provides access to Origin workbooks, matrices and graphs, plus data frames and NumPy arrays.

Note: For more information on integrated usage of Origin and Python, see the Python book in the Origin Help Files.

Sample files can be found in the \Samples\Python folder of your Origin software.

There is an API for calling Origin from Python. See note under Automation Server, below.

R

Origin supports running R commands in the Origin environment. You can issue R commands in the Script Window or from the built-in R Console, or you can run .R files. All releases of R are supported up through version 3.6.

From Origin, you can connect with R in two ways:

  • R. Installed on your local computer.
  • Rserve. Installed on a remote PC.

Note: For more information on integrating Origin and R, refer to the Origin Help file (R Console and Rserve Console) and the LabTalk Scripting Guide (Running R in Origin, R Objects, Rserve Objects).

Sample files can be found in the \Samples\R folder of your Origin software.

MATLAB

The MATLAB Console allows Origin users to issue MATLAB commands from Origin, and to transfer data between the two applications either using a graphical interface or using a command line.

  • The Console requires both Origin and MATLAB be installed on the same computer.
  • Origin also supports importing MATLAB (MAT) files from disk. There are two import routines, the older Data: Import from File and the new Connector-based Data : Connect to File: MATLAB. Importing MAT files does not require that MATLAB be installed.

Note: For more information on the MATLAB Console, refer to the Origin Help file (MATLAB Console.

The <Origin Program Folder>\Samples\COM Server and Client\MATLAB subfolder contains an example (CreatePlotInOrigin.m, CreatePlotInOrigin.OPJ) that illustrates how to connect to an Origin COM server from a MATLAB client (requires MATLAB).

Origin C

Origin C is a full-featured high-level programming language based on the ANSI C programming language syntax. Origin C also supports a number of C++ features and a few C# features. Origin C provides access to all aspects of Origin including data import, data handling, graphing, analysis, and exporting. You can access Origin C functions from interface controls such as buttons, toolbars, and menu items, using LabTalk script.

Origin C is organized as a set of functions with support for passing arguments. Origin C functions are compiled to object code and then loaded and executed inside of Origin. Origin C provides increased reliability and manageability for developing and debugging code of greater scope and complexity.

Origin C also provides access to the NAG Numerical Library functions included in your Origin installation. NAG functions provide you with a large selection of algorithms for performing computations ranging from simple statistics and Fourier transforms to linear algebra and multivariate analysis. Origin currently supports NAG Library Version Mark 26.1.

For Origin 2021, there is a new Origin C function to download color palettes, with the option to install: Scribus (.xml) (XML), Office Color Table (.soc) (XML), CorelDraw and Corel PhotoPaint (.xml) (XML), Adobe Color (.aco) (Binary), Adobe Color Table (.act) (Binary), Adobe Swatch Exchange (.ase) (binary), JASC PaintShopPro (.pal) (Text).

Note: For more information on Origin C, please refer to the Origin C documentation:

Help: Programming: Origin C

There you will find usage information, a language reference, developer notes, examples, etc.

Sample files can be found in the \Samples\Origin C Examples folder of your Origin software.

X-Function

An X-Function is a self-contained XML file that can be loaded in Origin as a special type of global function. Origin C is the language used to create X-Functions. X-Functions provide a way to expand the functionality of Origin by adding custom data processing features. Many of the built-in tools in Origin are based on X-Functions. Once an X-Function has been created, it can be accessed from anywhere in the interface that allows for script execution, such as the script window, toolbar buttons, or custom menu items.

Note: For more information on X-Functions, please refer to your product documentation that is installed with your software:

Help: Programming: X-Functions

There, you will find information on creating and using X-Functions, a language reference, and tutorials.

Automation Server

Origin can be used as an Automation Server. Client applications such as National Instruments™ LabVIEW™, Microsoft Excel, Python, or custom VB/VC/C# applications can exchange data with Origin, and can also send commands to be executed within Origin.

Note: For more information on Origin's Automation Server functionality, refer to the product documentation installed with your Origin software:

Help: Programming: Automation Server.

There you will find examples and language reference information. Sample files can be found in the \Samples\COM Server and Client folder of your Origin software.

LabVIEW

National Instruments™ LabVIEW™ is widely used for data collection. For example, many instrument and sensor vendors provide LabVIEW drivers for acquiring data. Once the data is collected, the end user will need to graph and analyze the data, and create reports for presentation. Origin provides powerful data analysis and graphing tools, including the Analysis Template feature, which allows for repeat analysis on newly acquired data. The ability to communicate between LabVIEW and Origin can thus greatly improve the efficiency of post-acquisition analysis and presentation.

Origin ships with a collection of LabVIEW sub-VIs. LabVIEW users can simply incorporate these custom sub-VIs in their main LabVIEW application to communicate seamlessly with Origin.

Note: For more information on Origin-LabVIEW connectivity, see the product documentation installed with your Origin software:

Help: LabVIEW VI

Examples and tutorials are provided.

Orglab

Orglab is a freely distributed component DLL for directly creating or reading Origin Project (.opj) and other Origin file types (.ogg, .ogw and .ogm). It is available as a free download. An Origin license is not required to use Orglab. Typical use of Orglab is for instrument manufacturers and other third-party vendors to allow their frontend software to output data as Origin files.

The Orglab module is available for both 64-bit and 32-bit systems. To find out more about Orglab and to download the Orglab module, go to the Products > Orglab page of www.originlab.com.