明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2111|回复: 2

一个delphi开发cad的问题!(紧急)

[复制链接]
发表于 2007-8-3 21:30:00 | 显示全部楼层 |阅读模式

现在主要是想把一个标注对象添加到一个块中,本人采取的方法是CopyObjects,可是却遇到了一个始料不及的问题,苦想了好几个星期也没有解决,希望各位大虾救救我!该问题对我至关重要!

代码如下:

procedure TForm1.Button1Click(Sender: TObject);
var

spnt,epnt,TextPosition:variant;

dimObject:acadDimAligned;
dim:array of variant;
i:integer;


begin
 
  spnt:=varArrayCreate([0,2],varDouble);
  epnt:=varArrayCreate([0,2],varDouble);
  TextPosition:=varArrayCreate([0,2],varDouble);
  spnt[0]:=0;
  spnt[1]:=54;
  spnt[2]:=0;
  epnt[0]:=6000;
  epnt[1]:=54;
  epnt[2]:=0;                //标注点坐标
 
  TextPosition[0]:=(spnt[0]+epnt[0])/2;
  TextPosition[1]:=spnt[1]+1000;
  TextPosition[2]:=0;
  dimObject:=acad.ActiveDocument.ModelSpace.AddDimAligned(spnt,epnt,TextPosition);//向cad中添加一个标注
  dimobject.TextHeight:=30;
  dimobject.color:=acred;

  dim[0]:=dimobject;
  acad.ActiveDocument.CopyObjects(dim,blockobject,emptyparam);
  dimobject.Delete;

end;


end.

j结果总是出现‘对象数组无效’这个错误。百思不得其解,估计问题出在dim这个参数上,就是出在原来这个程序要求的数组类型,在delphi中如何定义才能不会报错?

也许论坛上的朋友用delphi的不多,但可以告诉我把一个标注对象添加到一个块中,除了这个方法还有其他的方法没有?不胜感激!!!

 楼主| 发表于 2007-8-4 12:18:00 | 显示全部楼层
呵呵,问题已经自己解决了,居然要把数组初始化成Idispatch类型才可以。
发表于 2009-11-19 18:54:00 | 显示全部楼层
哥们谢谢你了 今天被这个问题困扰了一天了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-26 00:31 , Processed in 0.156502 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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