- Created by Chao P Yang , last modified by Wall-E on Mar 02, 2018
You are viewing an old version of this content. View the current version.
Compare with Current View Version History
« Previous Version 28 Next »
Origin 2018b Features
Origin Interface
When there are many child windows, it's hard to tell which window is active.
A magenta frame is added around active window title bar
System Variables:
@AWI = No Indicator
@AWI = 1, default, solid line, outside window frame
@AWI=2;title bar frame
@AWI=3;title bar top line
and add 4 to use thin line
and add 8 to use dashed line
for example
@AWI=9;//thick dashed line, window frame
@AWF=0 (default), no flashing @AWF=100, in milliseconds, the flashing time
@AWC for indicator color
@AWC=color(255,0,0);
- Extra large icon view and Preview of workbook in Windows Explorer.
- In Project Explorer, Extra large icon view and tooltip.
To support an analysis template which contains both workbook and matrix, everything must be in one workbook.
So in Origin 2018b, we allow user to right click a workbook tab and choose Add Matrix as Sheet context menu.
This actually adds the whole matrix book as a sheet in workbook. You can double click the matrix to open the matrix again.
Graphing
Labels, Legend, Color Scale and Bubble Scale
For example, code
\L(1, PatternScale:p200)
means set both X scale and Y scale of pattern to 2.
- show color scale for 2d plots colors.
- show an independent color scale.
@LDC=1 (default)- Double clicking legend opens Properties dialog
@LDC=0 -- Double clicking legend goes into in-place edit mode (old behavior in versions before Origin 2018)
For X error bar, it will take effect when position is Left or Right.
Plot Manipulation

In Object Manager,
- Right click group node, e.g. g1 to Ungroup.
- Right click a plot that doesn't belong to any group and Set as Group Begin. Then Origin will find all consecutive plots below it that have same plot type and group them.

- Add check box in Display tab of PD at Layer level: "Reference Lines on Top of Data"
- Add right-click context menu entry to Axis: "Reference Lines on Top of Data"
Graph Page and Layer
Margin control to fit all layers in graph into page area nicely.
User stories:
- There are too much white space outside the layer. User wants to make the margin tigher.
- Some text, axis title, or layer shows in gray area, so they will not be printed/exported. Use this tool to fit them into page siie.

By checking what you want to customize together on Layers tab of Page level of Plot Details dialog, and then go to a layer to customize settings, all layers will be customized together.

Set Label Text as Custom and click the dropdown list to see Custom notations.
Notations can be combined, e.g. h$n$ to show #1, #2, ....
a$ (default) – enumerate lower case letters
A$ – enumerateupper case letters
r$ – enumerate lower case roman numerals
R$ – enumerate upper case roman numerals
n$ or # – enumerate numbers
h$ – represent #
Graph## – Graph01, Graph02, ...
hsn$ means #1, #2, ....

Labtalk Script example:
merge_graph labeltext:=custom labelcustom:=h$n$;
Tip: Click the > button next to Dialog theme and choose Generate Script, executable Labtalk script will be created.
If layers are linked with 1:1 X axis and area, choose Scale In toolbar button and click in graph to create enlarged graph. Plots in all linked layers show in enlarged graph.

When number of x cols <= number of layers, use x col as separator to plot into layers; When number of x cols > number of layers, pop up error message: When number of x cols > number of layers, pop up error message. Add X Column" to the "Group By" combo in Multiple Panels by Label tool dialog.
For example, if data is organized as XYYYXYY and user asks for a 2-panel plot, the first three Y columns will be plotted in layer 1, and the last two Y colums will be plotted in layer2.
3D and Contour
Add a context menu "Dynamic Ends" to the Plotvm dilaog's Input node. When it is selected, virtual matrix's range will be expanded to both row&column ends.
Axis
2. Changes on main dialog will not be applied to graph but still remembered.
3. On Secondary dialog, there is Apply button. Click it will apply changes on secondary dialog only.
4. Click OK will apply and close the secondary dialog and main dialog will open again.
Analysis
Output the SE of derived parameter and in the Summary table.
Calculate the P value more accurately for tcdf and fdcf significance levels in Nonlinear Fitting Tools.
Change code to calculate P value for tcdf and fcdf in fitting tools for significance
2D Frequency Count/Binning output sheet creates 4 type columns ahead with following LongName: Bins of A, Bin Beginnings of A, Bin Centers of A, Bin Ends of A and create 3 label row : Bin Beginnings of B, Bin Centers of B, Bin Ends of B.
Frequency Counts output sheet creates 4 type columns ahead with following LongName: Bins, Bin Begin, Bin Centers , Bin Ends.
Data Processing
Right-click on the sheet tab, two new context menu items are available.
- Copy Sheet
- Paste as New Sheet
Use Copy Sheet to copy current sheet with all information(including the header lines and structure) into the clipboard, and then use Paste as New Sheet to paste it as a new sheet from the clipboard into a new layer or new window.
LabTalk command is also provided,
clip -cs; /// copy active sheetclip -ps; /// paste sheet to active book from clipboard, if possibleclip -psn; /// paste sheet to new book from clipboard, if possibleImporting
Added a new Import Mode option:Start New Rows option for import CSV tool
Origin's auto determine header line may not work well for all user's data.
One example is user wants to import files by removing all lines that start with # character.
In sush case, uncheck Auto Determine Subheader lines and then choose By Leading Character option and specify a leading char under Header Lines node in ImpASCII dialog. This option is also available on Header page of Import Wizard.

If user merges some column labels e.g. Comments and import mode is set as Start New Columns. Then Origin will treat the merged column as a unit and check if 1st column in the unit is blank or not. If blank, import into it. If not, start new column after the unit and import there.
System vairable @DCM=1;//disable check merged labels. Then Origin will work the old way before 2018b. Import into empty columns in the unit.
Columns with missing values are still treated as columns with data. In the past, when user tried to import multiple data into same sheet with Multi-File Import mode set to Start New Columns, data will be imported into new columns after missing values columns. In 2018b, data will be imported into those missing value columns.
S1: Some label on ASCII dialog were changed:
1. Show blue hint "each character is treated as one delimiter" when the number of "Other Delimiters” is more than 1.
2. Multiple Delimiters --> Multiple Characters
3. Combine Delimiters as one Delimiter --> Treat Consecutive Delimiters as One (use a same label as ImpWiz)
4. Move "Header Lines" branch node above "File Structure" node, to be consistent with ImpWiz.
S2: Restrict editbox to allow single character input
On Import Wizard dialog, Data Columns page, the "Other" editbox is not allowed to enter more than 1 char.
Exporting and Presentation
We can for now support up to 3 levels, so we will support <PE parent2>&<PE parent3>, but show only <PE parent1>-<long name> on GUI for now.
1. Any object with name beginning with "NoExport" will be skipped as master items. Use @UPN=1 to disable it.
2. We can use labtalk command to apply active page's width and height to all other pages.
doc -pdad;
This command was made for the button on the master page.
3. Allow rotate from landscape to portrait. The following labtalk command is used.
page -o r
"Rotate" button is on the master page template.
4. "Save" button is on master template.
Batch Processing
This feature allow user saving current batch process dialog setting into analysis template, and apply it when do batch processing,origin will pop up a dialog ask if to save and where to save the analysis template with dialog settings when clicking ok in batch process dialog.
To turn off this feature by setting system variable @bsct=0 in system varibles dialog.
We tend to have no dialogue, no interaction, in batch process. So the rule of batch process now becomes to:
- Before doing any batch process, user must make sure the input files format should be match with the last import settings in .ogw or filter in UFF.
- Last import setting must be used when check on "Use Import Setting in Workbook". filter file will be used when uncheck "Use Import Setting in Workbook".
- when filter is used, the proper filter should match: a. input file extension must be match with filters setting. b. filter file format must be match with last import settings in ogw.
Once user make analysis template with import ASCII, that means the template is only used for ASCII file. If user want to it for other type file, they must import another file from MENU and save analysis template again.
- Add data from many different sheets/books into an existing graph
- E.g. After plotting a multiple panel graph with data in one worksheet/book, user wants to add data from other sheet/book to same graph.
- Add data from many sheets/books into a combined graph.
- After plotting a complicated graph with data in one book with several sheets, user wants to create a similar new graph with all data in another book with different number of sheets

Batch Plotting GUI Improvements
- Combine Batch Plot with Book, Sheet and Column into one dialog. There is Batch Plot with dropdown list on the top of the dialog.
- Matching conditions to filter book/sheet are moved on top of the book/sheet list.
- Batch plotting menus and toolbar buttons also combine into single button and menu.
If the embeded matrix exits in the analysis template, batch processing support importing data or image to the embeded matrix. Besides, drag and drop to import data or image to opened analysis template is also supported.
Project and Data Management
- Add Backup shortcut after installation
- Tools | Options | System Path tab dialog adds Project Backup, Unsaved Files
- Add System Variable in case want to roll back to old behavior
@OPJ= 0 Project to use new format and Copy Paste also new format 1 Project to use old format but Copy Page to use new format 2 Project to use new format, but Copy page to use Old format 3 Both will use old format
We are working on supporting moving windows in bottom panel to reorder them. If there are folders in subfolder, it's hard to reorder windows. So we hide folder in bottom panel.
- Folder structure will only show in top panel.
- Set system variable @PEF=1 to show folder in bottom panel
- When mousing over folder in top panel, tooltip will show about folder comments, size, etc.
Programming
new LT command
doc -log1; //turns on for current project with empty password doc -log1 test;//turns on for current project with password = "test" doc -log0 test;//turns off for current project
doc.AuditLog=; //(ready-only )returns 1 or 0 AuditLog is on/off for the current project.
New system variable that is Registry based addedIn Script Window, run
@ALOG=1;//turn on Audit log on New project (untitled)
You can also preset this in msi installer script to set registry
HKEY_CURRENT_USER\Software\OriginLab\Origin 9.5b\International\SysV\ALOG
with a DWORD value of 1
Add the nlsf_install_fdf and nlsf_uninstall_fdf OC functions to install and uninstall fitting functions.
LabTalk Access is supported:
run.section(dofile.ogs, OnInstallFDF, "%Yfitfunc\MyGauss.fdf") run.section(dofile.ogs, OnUnInstallFDF, "%Yfitfunc\MyGauss.fdf")
Add the template_install and template_uninstall OC functions to install and uninstall graph templates.
LabTalk Access is supported:
run.section(dofile.ogs, OnInstallTemplate, "%YMyGraph.otpu") run.section(dofile.ogs, OnUnInstallTemplate, "%YMyGraph.otpu")
S2: Support accessing page properties by OC functions:Pagebase::SetProp() and Pagebase::GetProp(), for example:
void test_Graph_Set_and_Get_Properties()
{
GraphPage gp;
gp.Create("origin");
gp.AddLayer("Test");
double vv;
gp.SetProp("active", 2);
gp.GetProp("active", &vv);
return;
}
S2: Programming way to view Master Items on Screen LT
page.master = 0, not export the Master item.
page.master = 1, export the Master item, but not view it on screen. page.master = 2, for screen, but ignore if bit 1 not set
However, if page.master = 1, can use LT script "Menu -e 33096" to toggle viewing Master items on screen, but cannot control it.
Labtalk command to remove divider:
page -ADX -<opt> dividerindex;
Labtalk command to restore dividers:
page -ADGR;
Added a new parameter "lpcszInitTitle" to the OC function okoc_folder_browser, and the new parameter is used to specify the title of dialog box, now the function is:
int okoc_folder_browser(LPCSTR lpcszInitDir, StringArray* saFolders, LPCSTR lpcszInitTitle)
The new parameter "lpcszInitTitle" is used to specify the title of dialog box, and its default value is NULL.
Example:
#include <Origin.h>
#include <okocUtils.h> void folder_browser_ex1() { vector<string> vsFolders; int nRet = okoc_folder_browser("C:\\test", &vsFolders,"Folder browser"); printf("%d folders selected!\n", nRet); for ( int ii = 0; ii < nRet; ii++ ) printf("Folder%d: %s\n", ii + 1, vsFolders[ii]); return; }
1. int GraphPage::CanDuplicate(int nWith = CAN_DUP_WITH_ANY);
Suppose a graph is active, use this OC function to tell if this graph is possible to duplicate with new columns, sheets, books.
2. int GetDuplicateWithCols(StringArray &saItems, DataPlot &dataPlot = NULL, int nModifier = PMMT_IGNORE);
Assume a graph is active, use this OC function to get the list of columns which can be used to batch plot the graph.
3. int GetDuplicateWithBooks(StringArray &saItems, int nModifier = PMMT_OFFSET, int nMatchCol = MATCHCOLUMN_INDEX, int nMatchSheet = MATCHSHEET_INDEX);
Assume a graph is active, use this OC function to get the list of sheets or books which can be used to batch plot the graph. If nMatchSheet == MATCHSHEET_IGNORE then Range is Sheet, else Range is Book.

This will be useful for user who want to keep using English date format in C/J version
- rename current "Use English in Reports" into "User English in Reports and Graphs" in change Language dialog
- Add User English in Reports and Graphs checkbox in Numeric Format tab of tools options dialog
- Fitting function file(*.FDF) and origin template(*.otpu,*.otwu,*.otmu,etc) will be also installed after installing opx
- Install Support Files is removed from package manager dialog.
- Select a symbol shape from dropdown, will clear the "Custom Construction" checkbox
- Select "Custom Construction" checkbox, options in custom construction group will affect the preview
Origin 2018 Analysis
General
Prior to Origin 2018, there is only global control of display digits via Digits in Report in the Numeric Format tab of Tools: Options.
In 2018, users can specify default Default Digits to apply for different types of analyses. For example:
After an analysis is done, right click in the table in the result sheet and choose Digits... Set the Digits values and check Save as Default.
The default will apply to other instances of that particular analysis operation in the future.

To reset back to system default: Close Origin. Go to User Files folder and delete Defaults.XML.
A system variable, @AIP, is added to control whether ignore hidden column(s)/plot(s) or not when adding all as input(s) for analysis.
- =1 (default), ignore hidden plots.
- =0, include hidden plots.
For example, if some columns or plots on a graph are hidden, when opening an analysis dialog that supports multiple inputs and the user chooses All Columns or Add All Plots, hidden ones will be ignored by default unless @AIP is changed.
Fitting
In previous versions, some Fit Statistics were excluded from list of available Quantities in Table. More items are available in Origin 2018.

Add new Category key to FDF General Information section.
- When D&D the FDF to Origin, FDF is automatically installed under the Categorys according to the Key.
- If this new key is empty or missing, it will pop up dialog to ask about which category to install.
- Operations in Fitting Function Builder and Fitting Function Organizer will update this Category key, such as Create/Move func.
- Fitting Function Builder allow to change category since 2018.
In Nonlinear Fit tools, add All option in the Select data to iterate drop-down list which allow to iterate on multi datasets at the same time.
- In Nonlinear Fit tools, Data Selection page, all weighting methods are putted in the Weights drop-down list whichi allow to set multi datasets' weight mehod.
- In Nonlinear Fit tools, Data Selection page, add Apply Weight to All menu to Range's context menu list.
Peak Analysis
- If Peak Finding direction is Positive only, then Area boundary is >=0.
- If Peak Finding direction is Negative only, then Area boundary is <=0.
- If If Peak Finding direction is Both, then no boundary is set.
Statistics
Statistics on Rows now allows grouping based on values in a columns label row. For example, in below illustration, results will be grouped by values in the Long Name label row.

Discrete Frequency dialog adds a checkbox Show Zero Count Categories.
Weibull Fit dialog adds below new items:
Weibull Fit tool's PlotData worksheet column label changed.
From Origin 2018, the major and minor radius of the correlation ellipse in Scatter Matrix are exported to the result sheet. No matter you create the Scatter Matrix from Plot: 2D: Scatter Matrix or Statistics: Descriptive Statistics: Correlation Coefficient, you can find the major and minor radius of each correlation ellipse by A and B values in the Parameters column label row of the PlotData worksheet, where A is the major radius and B is the minor radius.
Statistics on Columns/Rows dialog adds below checkboxes:
Add options to the Pareto Chart (Binned and Raw) dialog
- Add Show Cumulative Percent Plot checkbox to plot the cumulative counts plot.
- Add branch Combine Smaller Counts in One Category to group combine smaller values settings.
Batch Processing

Mini tutorial:
- Open Batch Processing dialog.
- Load Analysis Template under <Origin EXE folder>\Samples\Batch Processing\Sensor Analysis.ogwu.
- For File List, select Sensor01, Sensor02, and Sensor03.dat under <Origin EXE folder>\Samples\Curve Fitting\.
- Set Result Sheet as Result.
- Click OK. In Summary sheet, there is a graph image from the analysis Template on each row. Mouse over it to pop up a larger image of the graph.
How to include a graph image in each row or report sheet:
- Open the analysis template .OGWU file. e.g. <Origin EXE folder>\Samples\Batch Processing\Sensor Analysis.ogwu.
- Copy an embedded in the report sheet and Paste Link in a cell in the sheet that will be used as Summary Sheet in Batch Processing.
- Save the analysis template and use it in Batch Processing dialog.
1.XYZ column
support in both using existing xyz datasets or import from files.
2. Use existing worksheets
support using any sheet from opj as input, if selected it will copy all columns to data source in analysis template.this options should be useful for statistics tools not require column designation.
3.Use Existing Ranges
it will have two input range: Fixed Range and Batch Range, Fixed Range means those data which is fixed in each process. this options should be useful for statistics tools.
Example scripts:
//To export a graph sheet with sheet name: Graph1
expGraph type:=pdf overwrite:=rename export:=specified page:=Graph1!;
//To export a graph sheet with is the 5th sheet
expGraph type:=pdf overwrite:=rename export:=specified page:=5!;
//To export embedded graph in result sheet by graph short and long name
expGraph type:=pdf overwrite:=rename export:=specified pages:="FitLine - Linear Fit";
//To export embedded graph in FitLinear result sheet by graph short name
expGraph type:=pdf overwrite:=rename export:=specified pages:=FitLine;
//To export embedded graph in worksheet cell
expGraph type:=png filename:="<long name>" export:=specified page:=col(A)[3];
//To export multiple graph cells or floating graph
expGraph type:=pdf overwrite:=rename page:=2!; //sheet index
Origin 2018 Ease of Use
Project File Features
File extensions are changed to: OPJU, OGWU, OGGU, OTWU,, etc.
New structure allows file sizes to be reduced (sometimes greatly).
It also allows files to be loaded more quickly.

If an OPJ/OPJU file is opened and being worked on in Origin, it will be autosaved every 12 minutes by default and if Origin crashes, user can go to Autosave folder to find it.
In Origin 2018, if Origin crashes, it will restart with last Autosaved OPJ/OPJU loaded so user doesn't need to manually find it in Autosave folder.
Note:
- If it happened that Origin crashes before 1st autosave happened, then the original OPJ/OPJU will be loaded.
- If you have worked on a new project file but never saved it. It is called Untitled.opj Origin doesn't autosave Untitled.opj.
- Old feature: User can control how often project is autosaved in Tools: Options dialog.

Origin Central
Even if the user chooses not to save a project file (OPJU), an autosaved OPJU will be kept for 7 days by default. If the user actually saves the project after modifying it, the unsaved version will be removed.
- The unsaved version can be opened from the Unsaved File list in the Projects tab.

- The user can turn off this feature from Tools: Options: Open/Close tab.

- The System Variable @USKT is used to control how many days to keep the unsaved OPJU file. Default is 7 (days).
- The system Variable @USM is used to limit the maximum OPJU size for Autosave Unsaved Project. Default is 20 (MB).
Workbook
For example, when mousing over the following cells, an enlarged popup image will be displayed.
- Sparklines cell.
- A cell with Embedded graph.
- A cell with Inserted Image from File.
A System Variable @CET is used to control the behavior:
@CET=0, use default size of 250x250 @CET=1 to 29, disable this feature @CET > 30 is user defined size in pixel, scaled by DPI scale factor
Double click a cell to enter the edit mode.
Ctr+M or right-click and choose Character Map to insert symbol into cell using the font specified for the cell.
The benefit of this is that it allows actual Unicode characters to be inserted into Label rows, rather than codes used in previous versions of Origin. Hence, then the values in Label Rows are displayed elsewhere, those Unicode characters will be used.

User Interface
To insert a character that is not supported by your keyboard, find the relevant 4-digit Unicode code via Google. Then, when in edit mode, type in the 4 digits and hit Alt+X to convert it to the actual character. Note: If the font for the location does not support the relevant character, it may not display properly even though the character is valid.

This feature works in:
- Worksheet cells even if rich text isn't enabled.
- Axis titles, legend, and any regular text label on a graph.
- Many Origin dialogs that support text entry such as those related to axis title, legend, and text objects. Also dialog like the Find in Projects and others.
- Notes window.
In Origin 2018, File: Export: As PDF File... menu is added.
In previous versions of Origin, Export worksheet as PDF file is an option in File: Export: As Image File... dialog. But is not obvious.
Origin 2018, if there is embedded graph in workbook, Export Graph... menu shows under File: Export:
In previous versions of Origin, the user needs to double-click on a floating or embedded graph prior to exporting it.

Apps
Apps have been a free feature of Origin since Origin 2016. To raise awareness of Apps, we decided to ship a few with Origin 2018 to draw attention the apps Gallery. If the user has not previously installed Apps in earlyier versions of Origin, the following three Apps will be installed:
- Send Graphs to PowerPoint - better than the built-in tool
- Send Graphs to Word - send multiple graphs to Word
- Simple Fit - simple to define fitting functions and fit on graph
The new App Center dialog (keyboard shortcut F10) centralizes App discovery, installation, without having to leave Origin and open a web browser (unless you choose to learn more about selected Apps).

Graphing

Some of the color lists or color palettes may not apply to user. Then user can right click from the color list or palette list to hide it.
Chose Show All to make hidden ones visible again.
This also works for user-defined color list/palettes.
- When mousing over a single color block, HEX number and (R, G, B) show

This feature is useful when user needs to select all layers in agraph or all objects in layout to move and/or resize together.
- Ctrl+A to select all layers in a graph.
- Ctrl+A to select all objects in layout window
Two buttons are added in Object Editor toolbar.

Select all graphic objects and click it to keep begin and end positions of the objects and
distribute them evenly in one direction. For example:

This also works for multiple Layers. User can press Shift key and select multiple Layers. Then click the button to distribute layers horizontally or vertically.

Hotkey S is added on 3D graph to move light source.
- S key + arrow keys.
- S key + drag.
- S key with + to zoom in. S key with - to zoom out.

For Upgrade Users from Origin 2017
When launching Origin 2018 for the 1st time, after specifying User Files Folder, a messagebox asks user if he/she wants to copy over Origin 2017 workspace and toolbar layout. Alternately, the user can go to View: Toolbars, click Reinitialize button to see the message again.
When launching Origin 2018 for the 1st time, a message box will popup asking user if they want to transfer User Files from Origin 2017. If "No" is chosen, the user can later choose Tools: Transfer User Files... to transfer them.
If user has valid Origin Maintenance, she/he can install 2018 with the same Serial number as Origin 2017 on the same PC as Origin 2017,
The Product Key for Origin 2018 will be automatically pre-filled with the one from the Origin 2017 installation. Just click Activate button once to activate Origin 2018.
The following folders are no longer put into Origin version-specific subfolders making migration to future versions of Origin much easier.
- User Files\
- AutoSave\
- Unsaved\
- License\
Origin 2018 Graphing
New Graph Types
Support Bridge chart with total and connecting lines.
- Coloring bars based on Increase/Decrease and Total.
- Set Data Indices for Total/Subtotal in Plot Detail: Bridge Chart tab.
- Show Connect Line and Connect by Subset in Plot Detail: Bridge Chart tab.
- Select a point in Bridge Chart, right click and you can select Set as Total/Subtotal. After select it, it will append data index to Data Indecies for Total/Subtotal in Plot Detail.
- New Plot button group in Plot Main Menu: Bridge Chart, Stacked Bridge Chart, Stacked Total Bridge Chart, Horizontal Bridge Chart

Plot: Box Chart: Double Y Box Chart menu is added.
In Origin 2018 because on Miscellaneous tab of Plot Details dialog → Graph level, Column/Bar/Box Gap Across layers is checked.
The checkbox used to work for column/bar plot only.
Note: This checkbox is only enabled if
- layers are all linked.
- For each linked layer, on Link Axes Scales tab, X Axis Link is straight 1:1.
- For each linked layer, on Size/Speed tab of each linked layer, Unit is % of the linked layer

It was doable before Origin 2018 but needs a lot of steps.
- Plot: Multi-Y: ColorMap Line menu is added in Origin 2018 to quickly plot it.
- Easy to change palette.

Legend Improvements
- Manually create a symbol+line legend entry with many customization options.

- Dumbell style line+symbol legend.
- Scaling factor of symbol size, line thickness to be different from plot symbol size and line thickness.
- Adjust the left part (legend symbol block) width and height.


The "Combine Elements Indexed by Same Column" checkbox is hidden and on so such elements will always show as combined in Legend.
To bring back the old dialog, set system variable @LCC=1 and reopen the dialog.

Before Origin 2018, if user customized a single point in line graph, the symbol failed show in legend.
If user customized a single point in line+symbol graph, the special point legend showed as line+symbol.
In Origin 2018, both are supported. For line+symbol plot, if you want the single point legend show as line+symbol as before, set @lsl=0.
Axis Improvements
Arrow node on Line and Ticks tab of Axis dialog

Define Reference Lines based on statistics or expression and saved in graph template for future use.
- Statistics

Click Details on Reference Lines tab of Axis dialog to define reference lines.

- Expression

Before Origin 2018, if Alternate Fill was checked for Reference Lines, user couldn't change fill color.
In Origin 2018, click Details... button on the tab. Then select all entries on the left panel and change Fill Color to change all fill colors together.
Wrap based on layer length

Wrap by Minimum number of characters.
E.g. in the following example, set tick label display to Custom Display with MMM dd HH:mm:ss
And to wrap with by minimum 1 char. It will show Month, date and time each on one row.

In Origin 2018,
- When Anti-Aliasing toolbar button is pressed, axis break will look smooth as well.
- Use Proportional Unit for Axis Break Positions checkbox is added on Display tab of Page level of Plot Details dialog.
E.g. Some data are filtered in worksheet.
When plot column plot in Origin 2018, only those data in display will be plotted with their corresponding X axis.
Before Origin 2018, though the filtered data are not plotted, the x axis still kept their position with blank tick label.
Note: This only applies to X column that contains text and not set as categorical.

This will allow user to create a graph with only begin and end ticks and no ticks in between by:
- On Scale tab, Set Major tick by Count and Number of Ticks to be 0.
- On Special Ticks tab, choose Show in Show column of Axis Begin and Axis End.
Before Origin 2017, In Tools: Options →Axis tab, when specifying unit separator as /<U>, or -<U>, an extra space shows after / or -.
In Origin 2018, by default no space will be added after / or -. User can manually set it as / <U>, or - <U> to add a space.
We will continue to have space before units separators by default. System variable @ATSS is added to control space before unit separator.
1: space before unit separator (default)
0: no space before unit separator
Before Origin 2018, when zoomed in, Axis ends didn't look good.
In Origin 2018, the Axis ends will look nice even when zoomed in, depending on different coordinate system.
-2 (default): square for Cartesian (=90 degree) coordinate, round for other coordinates (!=90)
-1: follow @LCA
0/1/2 round/square/flat,
Plot Manipulation
Origin 2017 supported customizing system color list, shape list, etc. for line, line+symbol, scatter plot.
But when user added more then 1 column of data to existing graph, the customized system color list wasn't used. Instead the color list defined in graph template was used.
In Origin 2018, when adding more than 1 column of data to existing graph, the customized system color list will be used.
The red frame around plot part of legend is the activate dataset indicator. Analysis, etc. tools always work on active dataset by default. So it's useful to see it sometimes.
The control to turn it on or off is hidden on Legends/Titles tab of Plot Details dialog in the past and hard to find.

User wants to Scale In toolbar button and keep on zooming in by drawing a rectangle.
Before 2018, after scale in once, need to click Scale In button again to zoom in further.
Interactively pick points and collect them in a workbook.
Mouse over the plot you want to pick point. A tooltip will show about the plot's X,Y info. Right click and click Pick Data Points...

Click a point in graph and make sure it's the point you want to pick. Then press Enter or double click to confirm the selection. Continue it till done. A workbook will be created with x,y coordinates and row indexing, etc.


Graph Customization
Show a leader line between pie slices and labels.

For Double Y column plot, user can go to 1st plot's Spacing tab to set Overlap as a negative value to show some gaps between the the columns.
There is no such control in Origin 2017 and earlier so the bars are always connected in the past.

Show total value on stacked column/bar or 100% stacked column/bar.
- Check on the checkbox on Stack tab of Layer level in Plot Details dialog
- Go to Label tab of plot level in Plot Details to customize diplay, such as decimal place, etc.

- Specify the size increment by start size and increment step 5(6), or manually enter each plot's size.
- Read symbol size from column label row, e.g. a user-defined parameter row: Size


Double click vector plot to go to Label tab of Plot Details dialog to add labels.
- Label can customized to be from any column in same sheet with customization.
- Label can be rotated and be positioned to arrow head, tail with offset, etc.
In the past, this is a global control in Tools: Options dialog so user can not set different graph windows differently.

Cluster Gadget is improved so user can easily select a range of plot and color it.
User can use cluster gadget to create group for the region of interest and check Color Data by Category.
Then the region will be colored red.
Open Plot Details, user can go to Color List tab to change color.

Two buttons are added in Object Editor toolbar.

Select all graphic objects and click it to keep begin and end positions of the objects and
distribute them evenly in one direction. E.g.

This also works for multiple Layers. User can press Shift key and select multiple Layers. Then click the button to distribute layers horizontally or vertically.

Display of masked data on graph can now be controlled for individual graphs via the following Labtalk:
page.mask = 2; // Display masked data on active graph
page.mask = 1; // Hide masked data on active graph
Before Origin 2018, there was Enable/Disable Anti-Aliasing toolbar button or page.aa=1 property for user but it was tedious for user to do it for each graph.
A built-in graph theme AntiAliasing.oth is added on Graph tab of Tools: Theme Organizer.
User can apply it to existing graphs or set it as system theme for future graph creation.

If plotting one Y column as Columns/Bars with numeric X, it will be plotted as X value positions.
If plotting multiple Y column as Columns/Bars with numeric X, it will be plotted with row indexing by default. Use system variable @DRX>0 (default is 16) to enable this feature only if dataset size is smaller then this value. Set @DRX=0 to disable this change completely.

Hover mouse over a pattern block, the preview of this pattern will show.
3D Graphing Improvements
In the past, we don't support this so user has to convert XYZ data and the coloring data into Matrix first since 3d colormapping surface plotted from matrix supports colormapping from another matrix object.

Contouring Info tab is added in Plot Details dialog to specify XY boundary.

In Origin 2018, user can uncheck Smoothing checkbox when using Custom Boundary.
Before Origin 2018, the checkbox couldn't be unchecked so there was always some smoothing effect. Workaround: Set system variable @tcs=0 to minimize the number of smoothing data points
Before Origin 2018, Lighting was only supported for 3D OpenGL based surface and 3d Bars.
In Origin 2018, we added the support for 3D Walls.

Hotkey S is added on 3D graph to move light source.
- S key + arrow keys
- S key + drag
- S key with + to zoom in. S key with - to zoom out

Export Graph/Copy Page

Origin 2018 Import and Export
Data Import

In Origin 2018, if user right-clicks on a data file and set the file to open with Origin or set Origin to be the default program to open it,
data file will be imported into Origin directly whenever such a file is double-clicked.
A new checkbox "Add Filename User Parameter Row" in Import dialogs.

If checked, "SourceFile" label row appears in worksheet after import. This label row can be used in any place label rows can be used such as legends.
Under Partial Import node. See ASCII Import dialog for example syntax.
- If Custom isn't checked, use From, To, Read, Skip buttons to construct the partial import.
- If Custom is checked, user can import specified columns/row by following our syntax. Sample example hint is given.

- More sheet renaming options: This is useful if user import sheets in different files and wants to rename sheet with Excel file name.
- Put Filename or Sheetname to Comments, SourceFile, or SourceSheet column label rows.

This was already supported in some other import like ASCII, Excel, etc.
Added the Read Columns and Skip Columns in CSV Import.
Before Origin 2018, if user copied some cell(s) in Excel and then pasted it into Graph window, it was pasted as Excel object by default. User must use Edit: Paste Special... to paste as unformatted text.
In Origin 2018, the cells will be pasted as text by default. If user wants to paste as Excel object, user can choose Edit: Paste Special... or context menu and choose to paste as "Microsoft Excel Worksheet".
Set system variable @PXLTXT=0 to change back to old behavior.
Reconstruct the Import ASCII X-Function "impASC"(including the impASC setting dialog), and also it is compatible with the old one in LT script. However, we also add a system variable @IA for users who want to use the old one to roll back.
@IA = 1
File Menu: impASC_94
Tool Bar: impASC_94
LabTalk Script (run -xf impasc): impASC_94
Reimport (from old 94 .ogw): impASC_94
Drag and Drop (with old 94 .oif): impASC_94
@IA = 2
File Menu: impASC
Tool Bar: impASC
LabTalk Script (run -xf impasc): impASC
Reimport (from old 94 .ogw): impASC
Drag and Drop (with old 94 .oif): impASC
Suppport Partial Row Import for Excel import tool, add Partiial Rows branch with five nodes under Options: Partial Import:
Data Export
Before Origin 2018, when exporting a worksheet as ASCII data, hidden columns were exported.
In Origin, by default hidden columns will be ignored and will not be exported.
To export hidden columns, set system variable @UHC=1.
Copy Page / Export Graph

Origin 2018 Programming
Miscellaneous
Origin 2018 is Unicode-based with UTF-8 as the encoding method. For details on how this changes both LabTalk and OriginC text string processing functions, see this blog post:
Support User Regular Expressions and Append results in Find in Files dialog of Code Builder.
Set system var @RRNM=1 to allow resizing when Disable Horizontal or Vertical Movement bits are set. (default is 0).
Implemented in Origin 2018. When opening an opj/opju which version is higher than your Origin, a smart hint show
The file was created in a higher Origin version.
Some features may not be accessible.
It is recommended to upgrade your Origin to work on the file.
Labtalk
With graph window active, run layer.group1.AllCols=1; in Script Window.
Then all Y data in the worksheet will be plotted and, as Y columns are added or deleted, they will be removed/added to the graph.
Note: This only applies to worksheet with XYYY... plot designation.
Run wcellfmt -h; in Script window to see Help and examples.
For example: The following example first uses wxt x-function to select all rows with B>0 and then set the fill color of the selected cells to green.
Add optional argument to current function:
vec Diff(vec[,n]) //support length of vector is N
where n can be
0 default, output vector length is N-1
1, pad 0 at the end, output vector length is N
2, pad 0 at the beginning, output vector length is N
3, 1st value in v, diff(v,0), last value in v, output vector length is N+1
For example: Suppose there are 10 rows in column A and Set Column Values of B as
diff(A) – returns 9 numbers. No value in last row.
diff(A,1) – returns 10 numbers. 0 at the end.
diff(A,2) – returns 10 numbers. 0 at the beginning.
diff(A,3) – returns 11 numbers. The begin and ending values are original begin and ending values in A. In between are diff(A) values .
Syntax for the conversion command is is
file -ocz password srcpath destination;
srcpath can have wildcard in file name, and in this case destination must be a folder location and destination files will use source file name and extension changed to OCZ.
password must be between 2 to 20 characters and space is now allowed.
The Message Log will list each successful conversion and indicate at the end as "Done!" or "Failed!". If any errors occur, they will be displayed in a Messagebox.
For example:
file -ocz junk "%YOriginC\*.c??" "%Yabc" file -ocz "aB12#$" "%YOriginc\test.c" "%Yjunk.ocz"
The X-functions below can be run via LabTalk to create graphs.
- plot_paretobin
- plot_paretoraw
- plot_gboxindexed
- plot_windrose
- plot_gindexed
- plot_lineser
- plot_kde2
- plot_prob
- plot_matrix
For example:
plot_gboxindexed irng:=col(A) group:=col(B) theme:="test";
For example:
create myx -fp2 50 u 0 1 50 0 1;
create myy -fp2 50 1 0 1 50 0 1;
create myz -fp2 50 v 0 1 50 0 1;
create FuncRight -mfph myz myx myy "u,v";
Add a new LabTalk function to get the data range of a plot in graph.
Syntax: dataset plotdata(index, designation, x = 0, y = 0) //x&y refers to panel index.
Also, two new LabTalk functions added to get the first point and last point of a plot.
Syntax:
double FirstPoint(vector vec);
double LastPoint(vector vec);
- save -i filename; //Save the active worksheet, graph, or matrix window to a file with new file format, file extension will be ogwu, oggu, ogmu
- save -ij filename; //Save the active worksheet, graph, or matrix window to a file with old file format, file extension will be ogw, ogg, ogm
- save -ik filename; //Save the active workbook as analysis template with the extension of ogwu
- save -ikj filename; //Save the active workbook as analysis template with the extension of ogw
- save -t windowName filename; //Save windowName into a graph or worksheet template with new file format, fill extension will be otpu for Graph, otwu for Worksheet
- save -tj windowName filename; //Save windowName into a graph or worksheet template with old file format, fill extension will be otp for Graph, otw for Worksheet
- save -di/-di1 filename; //Save the project as new file format with the extension of opju
- save -dij filename; //Save the project as old file format with the extension of opj
Also, use option X to Save With Format Determined From Supplied File Extension. Following switches are supported, -ix, -tx, -dix.
For example,
- save -DIX %yMyProject.opj; //saves the project in the opj format with the name MyProject.opj
- save -DIX %yMyProject.opju; //saves the project in the opju format with the name MyProject.opju
- save -DIX %yMyProject; //saves the project in the opju format with the name MyProject.opju.
Origin C
Support added for flashing dialog title bar, etc via the functions FlashWindowEx() and FlashWindow().
For example:
FLASHWINFO st;
st.cbSize = sizeof(st);
st.hwnd = s_pMyDlg->GetSafeHwnd();
st.dwFlags = FLASHW_CAPTION;
st.uCount = 3;
st.dwTimeout = 0;
FlashWindowEx(&st);{code}
Support added for dialog alpha opacity via WS_EX_LAYERED constant and SetLayeredWindowAttributes() function. Only displays varied opacity for dialogs in Windows >= Win8.
Example code that can be added to a dialog class:
EVENTS_BEGIN_DERIV(HTMLDlg)
// Others events.
OnActivate(OnActivate)
EVENTS_END_DERIV
BOOL OnInitDialog()
{
HTMLDlg::OnInitDialog();
HWND hwnd = GetSafeHwnd();
// Add WS_EX_LAYERED to this window style.
SetWindowLong(hwnd, GWL_EXSTYLE, GetWindowLong(hwnd, GWL_EXSTYLE) | WS_EX_LAYERED);
// Make this window 60% alpha.
SetLayeredWindowAttributes(hwnd, 0, (255 * 60) / 100, LWA_ALPHA);
return TRUE;
}
void OnActivate(UINT nState, HWND hwndOther, BOOL bMinimized)
{
HWND hwnd = GetSafeHwnd();
if( WA_INACTIVE != nState )
{
// Window activated.
// Remove WS_EX_LAYERED from this window style.
SetWindowLong(hwnd, GWL_EXSTYLE, GetWindowLong(hwnd, GWL_EXSTYLE) & ~WS_EX_LAYERED);
// Ask the window and its children to repaint.
// Comment out if dialog flickers.
RedrawWindow(hwnd, NULL, NULL, RDW_ERASE | RDW_INVALIDATE | RDW_FRAME | RDW_ALLCHILDREN);
}
else
{
// Window de-activated.
// Add WS_EX_LAYERED to this window style.
SetWindowLong(hwnd, GWL_EXSTYLE, GetWindowLong(hwnd, GWL_EXSTYLE) | WS_EX_LAYERED);
// Make this window 60% alpha.
SetLayeredWindowAttributes(hwnd, 0, (255 * 60) / 100, LWA_ALPHA);
}
}
2018 will have general OC access to all the LT properties, this will include GraphObject, Column, Worksheet, etc
cc()
{
vector<double> vPos;
vector<int> vColor;
int n=0;
GraphLayer gly = Project.ActiveLayer();
if( gly.IsValid() )
{
vector<double> xx;
foreach (GraphObject go in gly.GraphObjects)
{
if(go.GetName().Left(4)=="Line")
{
vColor.Add(go.GetProp("color"));//color is integeter, can directly return
double xPos=0;
go.GetProp("x1",&xPos);
vPos.Add(xPos);
n++;
}
}
}
return n;
}
Add a bit, GROBJ_REPLACE_EXISTING,for CreateGraphObject() to replace existing
void aa(double xx, int nColor, string strName = "line")
{
GraphLayer gly = Project.ActiveLayer();
GraphObject goLine = gly.CreateGraphObject(GROT_LINE, strName, GROBJ_REPLACE_EXISTING);
goLine.SetProp("attach", 2);
goLine.SetProp("direction", 2);//vertical
goLine.SetProp("x1", xx);
goLine.SetProp("y1", 2);
goLine.SetProp("y2", 8);
goLine.SetProp("color", nColor);
goLine.SetProp("arrowEndShape",1);
}
Function below is added
BOOL DataObject::GetCustomEscapedString(string& str, LPCSTR lpcszCustom); BOOL DatasetObject::GetCustomEscapedString(string& str, LPCSTR lpcszCustom); /// for loose dataset
See below for the sample codes:
void test_GetCustomEscapedString()
{
Worksheet wks = Project.ActiveLayer();
XYRange dr;
dr.Add(wks, 0, "X");
dr.Add(wks, 1, "Y");
Column colY;
dr.GetYColumn(colY);
string str1, str2;
colY.GetCustomEscapedString(str2, "@U"); /// Longname & Unit
}
Dialog can have multiple controls in one row now.
#include <GetNbox.h>
void GetNBoxMultiColumn()
{
GETN_TREE(tr)
//1 col
GETN_BEGIN_BRANCH(PartImp0, "Branch0")
GETN_CHECK(Save, "Save Temp Files Save Temp Files Save Temp Files", false)
GETN_CHECK(Save, "Save X Files Save X Files Save X Files Save X Files", false)
GETN_CHECK(Save, "Save Y Files", false)
GETN_CHECK(Save, "Save ABC Files", false)
GETN_CHECK(Save, "Save CDE Files", false)
GETN_CHECK(Save, "Save Junk Files", false)
GETN_END_BRANCH(PartImp0)
//2 columns
GETN_BEGIN_BRANCH(PartImp, "Branch1 ++++++++++++++++++++++++++++++++") GETN_MULTI_COLS_BRANCH(2, 0)
GETN_CHECK(Save, "Save Temp Files", false)
GETN_CHECK(Save, "Save X Files", false)
GETN_CHECK(Save, "Save Y Files", false)
GETN_CHECK(Save, "Save ABC Files", false)
GETN_CHECK(Save, "Save CDE Files", false)
GETN_CHECK(Save, "Save Junk Files", false)
GETN_END_BRANCH(PartImp)
//1 column
GETN_BEGIN_BRANCH(PartImp2, "Branch2")
GETN_CHECK(Save, "Save Temp Files Save Temp Files Save Temp Files", false)
GETN_CHECK(Save, "Save X Files Save X Files Save X Files Save X Files", false)
GETN_CHECK(Save, "Save Y Files", false)
GETN_CHECK(Save, "Save ABC Files", false)
GETN_CHECK(Save, "Save CDE Files", false)
GETN_CHECK(Save, "Save Junk Files", false)
GETN_END_BRANCH(PartImp2)
//3 columns
GETN_BEGIN_BRANCH(PartImp6, "Branch6")
GETN_BEGIN_BRANCH(PartImp5, "Branch5 **********************************************************************************************") GETN_MULTI_COLS_BRANCH(3, 0)
GETN_COLOR(FitCurveColor, "Fit Curve\n color", 1)
GETN_COLOR(FitCurveColor, "Fit color", 1)
GETN_COLOR(FitCurveColor, "Fit Curve\n color", 1)
GETN_COLOR(FitCurveColor, "Fit color", 1)
GETN_COLOR(FitCurveColor, "Fit Curve\n color", 1)
GETN_COLOR(FitCurveColor, "Fit color", 1)
GETN_END_BRANCH(PartImp5)
GETN_END_BRANCH(PartImp6)
//3 columns
GETN_BEGIN_BRANCH(PartImp7, "Branch7 *************************************************************************************************") GETN_MULTI_COLS_BRANCH(3, 0)
GETN_STR(FitCurveColor, "Fit Curve\n color", "STR1")
GETN_STR(FitCurveColor, "Fit color", "STR1")
GETN_STR(FitCurveColor, "Fit Curve\n color", "STR1")
GETN_STR(FitCurveColor, "Fit color", "STR1")
GETN_STR(FitCurveColor, "Fit Curve\n color", "STR1")
GETN_STR(FitCurveColor, "Fit color", "STR1")
GETN_END_BRANCH(PartImp7)
GETN_BEGIN_BRANCH(PartImp8, "Branch8 ") GETN_MULTI_COLS_BRANCH(2, 0)
GETN_STR(FitCurveColor, "Fit Curve\n color", "STR1")
GETN_STR(FitCurveColor, "Fit color", "STR1")
GETN_STR(FitCurveColor, "Fit Curve\n color", "STR1")
GETN_STR(FitCurveColor, "Fit color", "STR1")
GETN_STR(FitCurveColor, "Fit Curve\n color", "STR1")
GETN_STR(FitCurveColor, "Fit color", "STR1")
GETN_END_BRANCH(PartImp8)
if( GetNBox(tr, "Get Path", NULL, NULL, NULL) )
out_tree(tr);
}
In Origin 2018, we support executing UTF-8 files in Code Builder.
1. All code files (*.c, *.ogs etc.) Origin ships (so it is placed EXE folder) is kept as ANSI.
2. When create a new empty code file, it is also ANSI. However, when saving, we will pop up msg to ask to if save as Unicode when Unicode characters appear.
This file contains characters in Unicode format which will be lost if you save it as an ANSI encoded file.
Click Yes to save as Unicode (UTF-8) encoding format.
Click No to save as ANSI.
HTML Dialog Programming
Add a parameter in JSON.ToString( ), which converts variables in OC to string in html with full precision, to specify format
struct TestObj{
float ff;
double dd;
string str;
};
void test_json()
{
TestObj obj;
obj.ff = 1.234567890123456789;
obj.dd = 1.234567890123456789;
obj.str = "3.1415926";
string strJSON1, strJSON2;
OCJSONToString params;
params.szFloatFmt = ".2";
JSON.ToString(obj, strJSON1);
JSON.ToString(obj, strJSON2, ¶ms);
}
Enable popping up a message in an HTML dialog, it should be on top of graph control . Download the zip file below to see the sample codes
Two new member functions are added to OC Window class:
HICON Window::SetIcon(HICON hIcon, BOOL bBigIcon = FALSE); HICON Window::GetIcon(BOOL bBigIcon = FALSE);
A new util function is also added to make it easier to set the icon from given icon file:
HICON set_window_icon_from_file(HWND hWnd, LPCSTR szIconPath)
See below for the example of setting the icon of the HTML app dialog:
BOOL CMyHTMLDlg::OnInitDialog()
{
HTMLDlg::OnInitDialog(); // Call base class.
string strIconPath = __FILE__;
strIconPath = GetFilePath(strIconPath) + "test.ico";
set_window_icon_from_file(GetSafeHwnd(), strIconPath);
return TRUE
}
Origin 2018 Worksheet


Before Origin 2018, formula auto expanded in some cases.
- Sheet index in formula auto expanded to sheet name. E.g. user typed 1!A. It auto expanded to Sheet1!A.
- If type A+0.5 in column A formula, it will become This+0.
System variable @SCVU is added in Origin 2018. By default what you type will be what you see. If you want it to go back to 2017 behavior, set @scvu=0.
Run wcellfmt -h to see Help and examples.
E.g. the following example first uses wxt x-function to select all rows with B>0
Then set the fill color of the selected cells to green
Since Origin 2018, when use choose Copy Full Precision, the copied content will be text only in clipboard, then it would be convenient for user to paste to another application.
Set @CPF = 0 to go back to 2017 behavior.
For a workbook with many sheets, user can right click any sheet tab and choose Navigate to delete, order, duplicate sheet etc. But renaming sheet wasn't supported.
Added in Origin 2018 now.
When mousing over a worksheet tab, worksheet short name, long name and comments show. But it can block other sheets.
A system variable @WTT is added. Default is 1 (enabled). Set it to 0 to disable worksheet tooltip.
- Before Origin 2018, the maximum sheets per book was 255. Now in Origin 2018, it's 1024.
- page.nlayers property is set to writable so run page.nlayers=1024 to quickly create 1024 sheets. It's faster than using repeat 1023 { newsheet; }.
- If there are more than 255 sheets in a book, the project can't be saved as opj. Can only be saved as opju.
In Origin 2018, the default maximum number of Undos is set to 100. Before Origin 2018, it was 10 times. Corresponding system variable: @UN.
- No labels
