Hello, On Tue, Nov 22, 2011 at 05:15:14PM +0900, Dominic Sisneros wrote: > > > > > (rdb:1) meth = WIN32OLE_METHOD.new(app_type, 'Point3dFromXYZ') > > > #<WIN32OLE_METHOD:Point3dFromXYZ> > > > (rdb:1) meth.params.map{|e| e.ole_type_detail} > > > [["R8"], ["R8"], ["R8"] > > > > The all arguments of Point3dFromXYZ should be Float. > > Try the following. > > > > pt = ole.Point3dFromXYZ(3.0,3.0,2.0) > > > > or > > > > pt = ole.Point3dFromXYZ(3.to_f,3.to_f,2.to_f) > > > > > (rdb:1) pt = app.ole.Point3dFromXYZ(1.0,2.0,3.0) > nil > (rdb:1) pt > nil Try to use WIN32OLE_VARIANT include WIN32OLE::VARIANT a1 = WIN32OLE_VARIANT.new(1, VT_R8) a2 = WIN32OLE_VARIANT.new(2, VT_R8) a3 = WIN32OLE_VARIANT.new(3, VT_R8) pt = app.ole.Point3dFromXYZ(a1, a2, a3) Best Regards, Masaki Suketa