- 积分
- 524
- 明经币
- 个
- 注册时间
- 2009-11-7
- 在线时间
- 小时
- 威望
-
- 金钱
- 个
- 贡献
-
- 激情
-
|
楼主 |
发表于 2016-4-7 09:59:43
|
显示全部楼层
Real_King 发表于 2016-4-6 15:35
把你的circleObj在作为参数时强类型化一下试试,或者直接强类型化circleObj[0]
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;
using System.Reflection;
using stdole;
namespace TlsCad.RunTime
{
public partial class Form1 : Form
{
public Form1()
{
//获取当前AutoCad实例
string pid = "AutoCad.Application";
dynamic app;
try
{
app = Marshal.GetActiveObject(pid);
}
catch
{
//如果没有就创建之
Type t = Type.GetTypeFromProgID(pid);
app = Activator.CreateInstance(t);
app.Visible = true;
}
//获取当前文档
dynamic doc = app.ActiveDocument;
double[] p1 = { 0, 0, 0 };
double[] p2 = { 0, 10, 0 };
double[] p3 = { 10, 10, 0 };
double[] p4 = { 10, 0, 0 };
//Com对象数组必须封装为IDispatch数组
//注意应引用stdole.dll
IDispatch[] ents =
{
doc.ModelSpace.AddLine(p1, p2),
doc.ModelSpace.AddLine(p2, p3),
doc.ModelSpace.AddLine(p3, p4),
doc.ModelSpace.AddLine(p4, p1)
};
//测试生成面域
dynamic r = doc.ModelSpace.AddRegion(ents);
double[] min, max;
r[0].GetBoundingBox(out min, out max);
app.ZoomWindow(min, max);
InitializeComponent();
}
}
}
这是 雪山飞狐_lzh 通过后期绑定生成面域的程序,但是我执行的时候,只是画了一个正方形,并没有成功创建一个面域,请问是什么原因呢? |
|