2015.4.10更新
说明:
AcadVersion为注册表查找已安装AutoCad的所有版本类,
由于手边没有XP以上版本,只能保证XP下运行正常
测试好了的话 我在适当的时候会放出源码
AcadWrapper类是对Acad的对象进行封装的反射类,
实际在.Net4.0,利用dynamic反射也许更好 但是有些Com库的函数可能会出现问题
那么可以使用下面的办法调用AcadWrapper进行混编
- private void button1_Click(object sender, EventArgs e)
- {
- MessageBox.Show("你安装了如下版本的AutoCad\n" + string.Join("\n", AcadVersion.Versions.Select(v => v.ToString()).ToArray()));
- if (!AcadWrapper.GetApp())
- AcadWrapper.OpenApp(AcadVersion.Versions[0]);
- dynamic app = AcadWrapper.Application.Value;
- app.Visible = true;
- var doc = app.ActiveDocument;
- var util = AcadWrapper.Wrapper(doc.Utility, "Utility");
- var res = util.GetEntity();
- if (res != null)
- {
- var obj = res[1].asEntity;
- var pt = res[2];
- }
- }
|