象使用BCB操作Word\Exel一样,可使用使用BCB操作AutoCAD,但本人试过如下代码,部分成功,部分不成功,不知为何:
Variant Acad,ADoc,Layers,Circle,Utility,Point2;
Variant p1,p2,p3,p4,MSpace,PSpace;
try{
Acad=GetActiveOleObject("AutoCAD.Application");//取得已运行的AutoCAD.Application对象 ,成功
}
catch(EOleSysError &E){
Acad=CreateOleObject("AutoCAD.Application"); //创建新的AutoCAD.Application对象 ,成功
}
Acad.Exec(PropertySet("Visible")<
ADoc = Acad.OlePropertyGet("ActiveDocument");
Layers = ADoc.OlePropertyGet("Layers");
p2= Layers.Exec(Function("Add")<<"Test1");//添加图层Test1,图层Test1对象存入p2 ,成功
p2.Exec(PropertySet("color")<<1); //设图层Test1对象的color 为1(红色) ,成功
MSpace = ADoc.OlePropertyGet("modelspace");
PSpace = ADoc.OlePropertyGet("paperspace");
Utility=ADoc.OlePropertyGet("Utility");
double pp1[4],pp2[4];
//创建数组,用于存放点(10,20)的坐标:
int Bounds[2] = {0,2};
Variant A = VarArrayCreate(Bounds,1, varDouble);
A.PutElement(10.0,0);
A.PutElement(20.0,1);
A.PutElement(0.00,2);
pp2[0]=A.GetElement(0);
pp2[1]=A.GetElement(1);
pp2[2]=A.GetElement(2);
//创建数组完毕;
MSpace.Exec(Function("AddPoint")<
ADoc.Exec(Function("SaveAs")<<"c:\\000.dwg");//保存图形为"c:\\000.dwg", 成功
Acad.Exec(Function("Quit"));//退出Acad; , 成功
不知那位大虾有此经历,有何办法?
本人以为,使用BCB操作AutoCAD,需解决的问题包括:
1、取得已运行的AutoCAD.Application对象 或 创建新的AutoCAD.Application对象;
2、创建图层并设置其颜色、可视、线形等属性;
3、在当前图层中绘制点、线、圆、文本等实体;
4、保存图件;
5、退出AutoCAD。
上述问题,有劳各位大虾们指教。
av8740@126.com
--------------------next---------------------
阅读(1240) | 评论(0) | 转发(0) |