优势和用途
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()的函数,它将简单地显示一个文本为 "Hello World "的消息框。请注意,MessageBox是粗体字,这意味着 Mnova 脚本编辑器将其视为一个有效函数。
接下来,转到脚本编辑器顶部的编辑控件,输入helloWorld()。不要忘记括号,因为脚本框架需要它们来正确解释函数。输入完毕后,点击编辑控件右侧的绿色箭头。您将看到弹出的信息框。

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

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

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

您还可以通过菜单 "工具/运行脚本"(快捷键: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 部分。
您可以创建带有控件的对话框。下面的脚本展示了一个简单的示例。

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

脚本事件
在 "文件/首选项/脚本/目录 "菜单后,您会发现一个 "事件 "标签;该标签允许您添加任何事件(默认情况下将在 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)菜单中选择该事件(波谱缩放)。

|