Dieses Tutorial erläutert, wie Code mit anderen Anwendern durch Verteilen
der OPX-Dateien gemeinsam genutzt werden kann. In diesem Beispiel werden
nur einige Origin C-Dateien verteilt. Bitte beachten Sie jedoch, dass
die OPX-Verteilung jeden Dateityp enthalten kann, einschließlich (aber
nicht ausschließlich) Projektdateien, Vorlagen und Symbolleisten.
Die folgende Vorgehensweise zeigt Ihnen, wie Sie Ihren Origin C-Code
an andere Origin-Anwender verteilen können. In diesem Beispiel wird eine
Origin C-Funktion in eine Datei (MyCode.c) in einen Ordner (MyFunctions)
unter den Anwenderdateiordner (UFF) gepackt.
- Erstellen von Dateispeicherorten
Der Quellpfad für Ihre Dateien sollte für den Computer, für
den Ihre OPX-Datei bestimmt ist, zur Verfügung stehen. Der einfachste
Weg dafür ist das Erstellen eines Unterordners im Anwenderdateiordner
von Origin. Die Dateien oder Ordner des Anwenderdateiordners können
dann zu Ihrer OPX-Datei zur Verteilung hinzugefügt werden. Erstellen Sie
also einen Unterordner mit dem Namen MyFunctions im Anwenderdateiordner.
- Dateien in den Quellpfad kopieren
Kopieren Sie alle zu packenden Dateien in den Unterordner, der im
letzten Schritt erstellt wurde. In diesem Fall gibt es nur eine C-Datei
(MyCode.c). Die Funktion in dieser Datei wird unten gezeigt.
void get_data_from_wks()
{
Worksheet wks = Project.ActiveLayer();
if( !wks )
{
out_str("Please keep a worksheet active with data");
return;
}
// The following settings to set range as whole worksheet,
// index offset is 0, -1 means last row/column.
// Change r1, c1, r2, c2 to specify worksheet sub range,
// for example, r1 = 0, c1 = 1, r2 = -1, c2 = 2 to
// select all rows from column 2 to column 3.
int r1 = 0; // first row
int c1 = 0; // first column
int r2 = -1; // last row
int c2 = -1; // last column
//construct a data range object from worksheet all data
DataRange dr;
dr.Add("X", wks, r1, c1, r2, c2);
// get data from worksheet to vector by column one by one
matrix mData;
dr.GetData(mData); // get all data to matrix
for(int nColIndex = 0; nColIndex < mData.GetNumCols(); nColIndex++)
{
vector vOneCol;
mData.GetColumn(vOneCol, nColIndex);
double min, max;
vOneCol.GetMinMax(min, max);
printf("Maximum value of %d column = %f\n", nColIndex+1, max);
}
}
- Ein neues Paket erstellen
Öffnen Sie den Dialog Packdateien verwalten durch Auswahl
von Hilfsmittel: Packdateien verwalten. Legen Sie im Dialog die
Optionen, wie im folgenden Bild zu sehen, fest.
- Der Modulname wird als der Name des Pakets angezeigt
und zum Deinstallieren verwendet.
- Origin Version benötigt meint
die Version von Origin, die mindestens erforderlich ist, um dieses Paket
zu erstellen. Sie möchten die Versionsnummer im Format 8.0988 und nicht
im Format 8.0SR6 eingeben.
- Verwenden Sie die Methode run.addoc() im Zweig Nach
der Installation des LabTalk Skripts, um den Origin C-Quelldatei
in den Arbeitsbereich des Systemordners zu bringen. In diesem Beispiel
sieht das folgendermaßen aus:
run.addoc(%YMyFunctions\MyCode.c);
- Klicken Sie auf die Schaltfläche Dateien hinzufügen
oder Ordner hinzufügen, navigieren Sie zu den erforderlichen Dateien
und fügen Sie sie hinzu. Navigieren Sie in diesem Beispiel zu dem Unterordner
(MyFunctions) des Anwenderdateiordners und fügen Sie die
C-Datei (MyCode.c) hinzu. Der Pfad des Anwenderdateiordners
wird als Quellpfad angezeigt, und die Dateien werden im unteren Bedienfeld
aufgelistet.
- Paket speichern
Wählen Sie im Menü Datei: Speichern des Dialogs Packdateien
verwalten. Geben Sie im Popupdialog Speichern unter einen Namen
(in diesem Beispiel kann das MyCode sein) für dieses Paket ein
und speichern Sie es als eine OPX-Datei.
- Paket verteilen
Senden Sie die gespeicherte OPX-Datei an andere Anwender. Die Anwender,
die dieses Paket erhalten, können die OPX-Datei per Drop&Drag in Origin
ziehen, um sie installieren. Die Funktionen sind dann in der C-Datei verfügbar.
- Ziehen Sie die Datei MyCode.opx per Drag&Drop in
Origin, um sie zu installieren. Nach der Installation kann die in MyCode.c
definierte Funktion get_data_from_wks als LabTalk-Befehl verwendet
werden.
get_data_from_wks;