pckite 发表于 2004-5-25 10:03:00

在.NET中对CAD扩展数据问题,错在哪了?

各位大侠:
                                               小弟正在C#.NET下面学CAD        ,发现SetXData参数不对,错在哪了?程序是这样写的吗?请多多指教,谢谢。
        private void setXData_Click(object sender, System.EventArgs e)
                {
                        object readOnly = false;
                        object savechange = true;
                        object[] xdt = new object;
                        object[] xdv = new object;
                        xdt=1001;                       
                        xdv="扩展数据";       
               
                        xdt=1000;                       
                        xdv="扩展数据2";       
                        object miss=System.Reflection.Missing.Value;;
                        string fileName="E:\\cadGetVar\\mytest.dwg";
                        .AcadApplicationClass app = new AutoCAD.AcadApplicationClass();
                        app.Visible=false;
                       
                        try
                        {
                                                                                                                       
                                AutoCAD.AcadDocument doc=app.Documents.Open(fileName,readOnly,miss);
                                doc.ModelSpace.SetXData(xdt,xdv);//SetXData参数不对,错在哪了?
       
                                doc.Save();       
                                doc.Close(savechange,fileName);
                        }
                        catch(Exception ee)
                        {
                                MessageBox.Show(ee.ToString ());
                        }
                        finally
                        {
                        app.Quit ();
                        }
                       
                }

雪山飞狐_lzh 发表于 2004-5-26 05:36:00


xdt类型不对,VB。Net是Short(),C#的对应类型是Short[]?

pckite 发表于 2004-5-27 21:02:00

TO lzh741206        :
               SetXData里提示的参数是object类啊,可是它就是不行,救命啊!~

雪山飞狐_lzh 发表于 2004-5-27 21:14:00

这是我在VB.Net里的附扩展数据的例子,你改改吧
Public Class TLCad
                          Public Shared Sub MytestCmd()
                                                       Dim DataType(1) As Short, Data(1) As Object
                                                       Dim c As Line
                                                       Dim d(2), e(2) As Double
                                                       Dim f As Autodesk.AutoCAD.Interop.AcadApplication
                                                       e(1) = 10
                                                       f = GetObject(, "AutoCAD.Application.16")
                                                       DataType(0) = 1001 : Data(0) = "TLCad"
                                                       DataType(1) = 1000 : Data(1) = "TLCadTest"
                                                       f.ActiveDocument.ModelSpace.AddLine(d, e).SetXData(DataType, Data)
                       End Sub

pckite 发表于 2004-5-31 21:05:00

谢谢lzh741206,可是运行速度太慢了,有什么办法吗?

雪山飞狐_lzh 发表于 2004-5-31 21:12:00

你的代码主要有什么功能?应该不会太慢呀

pckite 发表于 2004-6-6 14:04:00

要实现的功能就是在.NET程序中读取在CAD中设置好了的扩展数据的值

loofs 发表于 2012-1-28 11:43:00

xdt和xdv的参数均应为object类型
页: [1]
查看完整版本: 在.NET中对CAD扩展数据问题,错在哪了?