Scripting with Mnova

Top  Previous  Next

Scripting with Mnova

mestrelab-logom-horz-white_tiny prev-chm next-chm

优势和用途

 

Mnova 中脚本的可用性为熟练的 NMR 用户和非专业的普通用户提供了机会和好处:

 

-用户可减少对应用程序开发人员新功能的依赖,因为脚本允许他们自己实现次要功能,并将其部署给非专业用户。

-NMR 管理员可以编写脚本来定制应用程序,然后再将其部署给一组用户。例如,NMR 管理员可以创建一个脚本,自动执行某些特定处理,并将其分发给用户,用户只需单击一个按钮(如工具栏按钮)即可执行该处理。

-Mnova开发人员可以使用脚本来制作新功能的原型,然后将其纳入下一版应用程序中。当客户需要一些应用程序中没有的处理/分析功能,而又不能等到 Mnova 的新版本发布时,这就是理想的选择。

-Mnova脚本语言基于基于 ECMAScript 的语言,使现有网络开发人员更容易定制和扩展 Mnova。

 

从本质上讲,Mnova 图形界面(UI)上的几乎所有功能都可以通过 Mnova 的脚本模块来重现,从而使重复性任务的自动化变得非常容易。例如,您可能需要使用相同的处理操作对 1H NMR 图谱进行常规处理。您可以创建一个脚本,将所有这些处理功能封装起来,只需点击工具栏按钮或按下键盘快捷键,就能相应处理所有 1H NMR 图谱。

此外,如果 Mnova 中没有某些特定的处理功能,您也可以创建一个脚本,根据您的要求修改波谱数据点。

 

有关脚本文档的详细信息,请查看 Mnova 安装文件夹,地址为

C:\Program Files\Mestrelab Research S.L\MestReNova\documents\scripts

介绍 Mnova 脚本 - Hello World

 

hello world "程序已经成为许多书籍用来介绍编程语言的第一个传统程序。在你熟悉这门语言之前,它可以充当你的 "小抄"。本程序的重点是使用 Mnova 脚本语言中所有最常用的元素,并将其放在一个地方,以便您日后参考。我们将首先展示 Mnova 脚本的基本元素,然后逐步添加一些更高级的方法。

Mnova 脚本可以用任何文本编辑器创建,不过 Mnova 包含一个专门的脚本编辑器,具有语法高亮显示和调试输出功能。该文本编辑器可通过工具/编辑脚本菜单命令使用。发出该命令并输入以下文本:

 

helloWorld

 

在这个示例中,我们定义了一个名为helloWorld()的函数,它将简单地显示一个文本为 "Hello World "的消息框。请注意,MessageBox是粗体字,这意味着 Mnova 脚本编辑器将其视为一个有效函数。

接下来,转到脚本编辑器顶部的编辑控件,输入helloWorld()。不要忘记括号,因为脚本框架需要它们来正确解释函数。输入完毕后,点击编辑控件右侧的绿色箭头。您将看到弹出的信息框。

 

你好世界2

 

使用打印命令可将信息直接写入脚本对话框中的输出控件。这在调试脚本时非常有用。

 

地狱世界3

 

请注意,您可以使用相应的按钮加载/保存任何脚本 加载和保存.播放按钮用于通过在编辑框中键入功能来运行脚本,而停止按钮则用于停止脚本的运行。单击 "帮助 "按钮或按 F1 键将显示 "脚本帮助 "窗口:

 

脚本帮助

 

由于 Mnova 脚本是一种基于 ECMAScript 的语言,因此可以使用该标准支持的许多函数和语句,如循环、条件等。请记住,JavaScript 也是基于 ECMAScript 的,因此如果您熟悉它或 C/C++,编写 Mnova 脚本应该会非常容易。如果您对ECMAScript 语言 不熟悉, 有几本现有的教程和书籍都涵盖了这一主题,如《 JavaScript.The Definitive Guide》(JavaScript.TheDefinitive Guide):The Definitive Guide》

 

剪辑 0011

 

您还可以通过菜单 "工具/运行脚本"(快捷键:Ctrl+Shift+R)加载适用的 .qs 文件来运行脚本。

脚本应该保存在哪里?

 

原则上,您可以将脚本保存在计算机的任何位置。不过,强烈建议将脚本保存在自定义脚本文件夹中,您可以通过 "文件/首选项/脚本/目录 "菜单(点击蓝色加号按钮后)创建该文件夹:

 

脚本目录

 

使用红色十字按钮删除任何添加的目录,使用蓝色箭头按钮对文件夹进行排序。

 

这对 Mnova 在启动时找到这些脚本非常重要,以便将它们添加到 Mnova 的图形用户界面(如工具栏、菜单等)中。

 

例如,键入以下脚本

 

// <图形用户界面 menuname="HelloWorld" shortcut="Ctrl+1" tooltip="Hello World" icon="C:/bin2.jpg" />

函数 HelloWorld()

{

 MessageBox.information("Hello World");

}

 

然后将其保存到脚本目录(程序数据......)中。现在关闭 Mnova 并再次打开。新脚本将出现在 "工具/传奇脚本 "按钮下:

 

你好

 

您会发现该脚本在菜单栏中可用。使其正常工作的关键在于脚本的第一行(当然,Mnova 也能找到保存在相应文件夹中的脚本):

 

// <图形用户界面 menuname="HelloWorld" shortcut="Ctrl+1" tooltip="Hello World" icon="C:/bin2.jpg" />

 

这一行用于指示 Mnova 在脚本菜单中显示的名称、键盘快捷键和用作工具提示的文本。有关这一行用法的完整说明,请参阅下文连接脚本 Mnova GUI 部分。

 

您可以创建带有控件的对话框。下面的脚本展示了一个简单的示例。

 

剪辑 0012

 

执行此脚本后会出现以下对话框:

 

embim33

 

脚本事件

在 "文件/首选项/脚本/目录 "菜单后,您会发现一个 "事件 "标签;该标签允许您添加任何事件(默认情况下将在 Mnova 中运行)。您可在 MestReNova 示例脚本安装文件夹中找到相关示例脚本 (eventHandlerExample.qs)。

 

脚本事件

 

例如,假设您总是希望以特定缩放区域打开一维数据集。为此,您可以创建一个事件。只需将此脚本保存到脚本目录即可:

 

function spectrumZoom(aJSONString)

{

 var info = JSON.parse(aJSONString)

 var actDoc = mainWindow.activeDocument

 var spc = new NMRSpectrum(actDoc.getItem(info.itemId));

 if( !spc.isValid() )

 返回 false;

 spc.horzZoom(1.0, 5.0);

 spc.vertZoom(-100.0,8000.0);

 /*if( spc.dimCount == 1 )

 spc.zoom(3.0, 4.5);

 否则

 spc.zoom(1.0, 5.0, 1.0, 5.0);*/

 //spc.zoom();

 spc.update();

 mainWindow.activeWindow().update();

 返回 true

}

Application.mainWindow.installEventHandler("nmrSpectrumImported", "spectrumZoom")

 

 

然后重启 Mnova,并在 "File/Preferences/Scripts/Events/nmrSpectrumImported"(文件/首选项/脚本/事件/nmrSpectrumImported)菜单中选择该事件(波谱缩放)。

 

脚本事件