明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2988|回复: 7

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

[复制链接]
发表于 2004-5-25 10:03:00 | 显示全部楼层 |阅读模式
各位大侠:
小弟正在C#.NET下面学CAD ,发现SetXData参数不对,错在哪了?程序是这样写的吗?请多多指教,谢谢。 private void setXData_Click(object sender, System.EventArgs e)
{
object readOnly = false;
object savechange = true; object[] xdt = new object[2];
object[] xdv = new object[2];

xdt[0]=1001;
xdv[0]="扩展数据";

xdt[1]=1000;
xdv[1]="扩展数据2"; object miss=System.Reflection.Missing.Value;;
string fileName="E:\\cadGetVar\\mytest.dwg"; AutoCAD.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 ();
}

}
发表于 2004-5-26 05:36:00 | 显示全部楼层
本帖最后由 作者 于 2004-5-28 10:47:12 编辑

xdt类型不对,VB。Net是Short(),C#的对应类型是Short[]?
 楼主| 发表于 2004-5-27 21:02:00 | 显示全部楼层
TO lzh741206 : SetXData里提示的参数是object类啊,可是它就是不行,救命啊!~
发表于 2004-5-27 21:14:00 | 显示全部楼层
这是我在VB.Net里的附扩展数据的例子,你改改吧 Public Class TLCad
<CommandMethod("test")> 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
 楼主| 发表于 2004-5-31 21:05:00 | 显示全部楼层
谢谢lzh741206,可是运行速度太慢了,有什么办法吗?
发表于 2004-5-31 21:12:00 | 显示全部楼层
你的代码主要有什么功能?应该不会太慢呀
 楼主| 发表于 2004-6-6 14:04:00 | 显示全部楼层
要实现的功能就是在.NET程序中读取在CAD中设置好了的扩展数据的值
发表于 2012-1-28 11:43:06 | 显示全部楼层
xdt和xdv的参数均应为object类型
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-3-12 10:26 , Processed in 0.182851 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表