public partial class Form1 : Form { object Default = System.Type.Missing; Column colx, coly1, coly2; Random random = new Random(); double[] xx = new double[1]; double[] yy1 = new double[1]; double[] yy2 = new double[1]; public Form1() { InitializeComponent(); } private void ConnectOrigin_Click(object sender, EventArgs e) { Origin.ApplicationSI app = new Origin.ApplicationSI(); app.NewProject(); WorksheetPage wbk = app.WorksheetPages.Add(Default, Default); Worksheet wks = wbk.Layers[0] as Worksheet; colx = wks.Columns.Add(Default); coly1 = wks.Columns.Add(Default); coly2 = wks.Columns.Add(Default); colx.DataFormat = COLDATAFORMAT.DF_DATE; colx.DisplayFormat = 10; } private void AddItem_Click(object sender, EventArgs e) { xx[0] = Date2Julian(DateTime.Now); yy1[0] = random.Next(1000); yy2[0] = 1000 + random.Next(1000); colx.SetData(xx, -1); coly1.SetData(yy1, -1); coly2.SetData(yy2, -1); } public double Date2Julian(DateTime vDate) { double JDN = vDate.Date.ToOADate() + 2415019 + (vDate.Hour - 12) / 24.0 + vDate.Minute / 1440.0 + vDate.Second / 86400.0; return JDN; } }
Const NUMPTS = 100
Dim app As Origin.Application
Dim wbk As Origin.WorksheetPage
Dim Wks As Origin.Worksheet
Dim colx, coly1, coly2 As Origin.Column
Dim ii As Integer
Dim xx(0) As Double
Dim yy1(0) As Double
Dim yy2(0) As Double
Dim data As Variant
Private Sub ConnectOrigin_Click()
Set app = New Origin.ApplicationSI
app.NewProject
Set wbk = app.WorksheetPages.Add
Set Wks = wbk.Layers(0)
Set colx = Wks.Columns.Add
Set coly1 = Wks.Columns.Add
Set coly2 = Wks.Columns.Add
colx.Type = COLTYPE_X
colx.DataFormat = DF_DATE
colx.DisplayFormat = 10
End Sub
Private Sub AddItem_Click()
xx(0) = Date2Julian(DateTime.Date, DateTime.Time)
yy1(0) = Rnd(1000)
yy2(0) = 1 + Rnd(1000)
ii = colx.SetData(xx, -1)
ii = coly1.SetData(yy1, -1)
ii = coly2.SetData(yy2, -1)
End Sub
Public Function Date2Julian(ByVal vDate As Variant, ByVal vTime As Variant) As Double
Dim DateDiff As Double
DateDiff = DateTime.DateDiff("d", #12/31/1899#, vDate)
Date2Julian = DateDiff + 2415019 + (hour(vTime) - 12) / 24 + minute(vTime) / 1440 + second(vTime) / 86400
End Function
In this example we use a simple Console application to generate two columns of data with Sampling Intervales to simulate instrument data and save into an Origin worksheet. Units and Long Names of both XY data in each column is also setup.
static void doTest(int npts) { object Default = System.Type.Missing; double[] temp = new double[npts]; double[] pres = new double[npts]; for (int ii = 0; ii < npts; ii++) { temp[ii] = ii * 0.1; pres[ii] = ii * 0.000831 + 2.3; } Origin.ApplicationSI app = new Origin.ApplicationSI(); app.NewProject(); WorksheetPage wbk = app.WorksheetPages.Add(Default, Default); Worksheet wks = wbk.Layers[0] as Worksheet; Column colt = wks.Columns.Add(Default); Column colp = wks.Columns.Add(Default); wks.set_IsLabelVisible(LABELTYPEVALS.LT_LONG_NAME, Default, true); wks.set_IsLabelVisible(LABELTYPEVALS.LT_UNIT, Default, true); colt.Type = COLTYPES.COLTYPE_Y; colp.Type = COLTYPES.COLTYPE_Y; colt.LongName = "Temperature"; colt.Units = "degree C"; colp.LongName = "Pressure"; colp.Units = "kPa"; colt.SetEvenSampling(0, 20, "ms", "Time", Default); colp.SetEvenSampling(0, 30, "ms", "Time", Default); colt.SetData(temp, 0); colp.SetData(pres, 0); }
Option Explicit Const npts = 100 Public Sub doTest() Dim temp(npts), pres(npts) As Double Dim a As Variant Dim ii As Integer Dim app As Origin.Application Dim wbk As Origin.WorksheetPage Dim wks As Origin.Worksheet Dim colt As Origin.Column Dim colp As Origin.Column For ii = 0 To npts temp(ii) = 0.1 * ii pres(ii) = ii * 0.000831 + 2.3 Next ii Set app = New Origin.ApplicationSI app.NewProject Set wbk = app.WorksheetPages.Add Set wks = wbk.Layers(0) Set colt = wks.Columns.Add Set colp = wks.Columns.Add wks.IsLabelVisible (LT_LONG_NAME) = true wks.IsLabelVisible (LT_UNIT) = true colt.Type = COLTYPE_Y colp.Type = COLTYPE_Y colt.LongName = "Temperature" colt.Units = "degree C" colp.LongName = "Pressure" colp.Units = "kPa" a = colt.SetEvenSampling(0, 20, "ms", "Time") a = colp.SetEvenSampling(0, 30, "ms", "Time") a = colt.SetData(temp) a = colp.SetData(pres) End Sub