几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量  


返回   几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量 » 仿射空间:CAX软件开发(三)二次开发与程序设计 » CAD二次开发 » AutoCAD二次开发 » ObjectARX(AutoLISP)
用户名
密码
注册 帮助 会员 日历 银行 搜索 今日新帖 标记论坛为已读


回复
 
主题工具 搜索本主题 显示模式
旧 2009-04-27, 12:57 PM   #1
yang686526
高级会员
 
注册日期: 06-11
帖子: 14579
精华: 1
现金: 224494 标准币
资产: 234494 标准币
yang686526 向着好的方向发展
默认 请教高手如何用c++将acadentity封装到一个块去?

请教高手如何用c++将acadentity封装到一个块去?
www.dimcax.com
请教高手如何用c++将acadentity封装到一个块去?
如果用vb则很简单,直接实用可变数组装入object类型,再用copyobjects函数即可,我现在用c++,copyobjects的第一个参数为variant* 类型,看起来只能用其内含的safearray数组,保存的对象为idispitch类型,可以加进去以后,也可以读出来,但是copyobjects调用失败,请问有高手知道是什么原因吗?谢谢。代码如下:
cstring blockname=pos->first; //得到块名称
cacadblock m_block=m_acaddoc.objectidtoobject(pos->second);//得到块类型实例
std::vector<long> m_acadlist=m_entitylist[blockname]; //获取需要添加到该块的实体集合
int num2=m_acadlist.size(); //得到该集合的实体数目
ccomvariant var1;
var1.vt=vt_dispatch|vt_array;
safearraybound rgsabound[1];
rgsabound[0].celements=num2;
rgsabound[0].llbound=0;
var1.parray=safearraycreate(vt_dispatch,1,rgsabound);
for(long j=0;j<num2;j++)
{
lpdispatch entity=m_acaddoc.objectidtoobject(m_acadlist.at(j)); //得到一个实体的idispitch
safearrayputelement(var1.parray,&j,entity); //添加实体
}
ccomvariant var2;
var2.vt=vt_dispatch;
var2.pdispval=m_block; //j将cacadblock转化为variant* 类型
m_acaddoc.copyobjects(var1,var2,null); //调用copyobjects函数,经调试这句话有问题,是不是参数设置出问题了?
yang686526离线中   回复时引用此帖
GDT自动化论坛(仅游客可见)
回复


主题工具 搜索本主题
搜索本主题:

高级搜索
显示模式

发帖规则
不可以发表新主题
不可以回复主题
不可以上传附件
不可以编辑您的帖子

vB 代码开启
[IMG]代码开启
HTML代码关闭



所有的时间均为北京时间。 现在的时间是 05:21 AM.


于2004年创办,几何尺寸与公差论坛"致力于产品几何量公差标准GD&T | GPS研究/CAD设计/CAM加工/CMM测量"。免责声明:论坛严禁发布色情反动言论及有关违反国家法律法规内容!情节严重者提供其IP,并配合相关部门进行严厉查处,若內容有涉及侵权,请立即联系我们QQ:44671734。注:此论坛须管理员验证方可发帖。
沪ICP备06057009号-2
更多