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