明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2209|回复: 4

10.20提取“标注”的尺寸值信息(已经找了2天2夜了,苦啊!!!)

[复制链接]
发表于 2003-10-20 18:06:00 | 显示全部楼层 |阅读模式
//开发环境:Vc6.0和arx2000
//调试下面的代码段时,报错:contextmenu\ModalDlg.cpp(53) : error C2664: //'measurement' : cannot convert parameter 1 from 'const double *' to 'double &'
//A reference that is not to 'const' cannot be bound to a non-lvalue
//代码段欲实现的目标(未能实现)
//提取“标注”的尺寸值信息,比如:在AutoCAD2000中画一直线段,并标注有//尺寸100,想通过arx程序编码形式,实现通过鼠标选中该“尺寸标注”,读取//并显示这个尺寸值“100”到自定义的对话框中的一文本框里。
ads_name  en;
AcDbObjectId eId;
acdbGetObjectId(eId,en);
AcDbObject *pObj;
acdbOpenObject(pObj,eId,AcDb::kForRead);
if(pObj->isKindOf(AcDbDimension::desc()))
{
        //m_measure关联对话框上的一个文本框的double型变量
//问1:m_measure变量应定义成什么类型?

        AcDbDimension::measurement(&m_measure);
//帮助项中写道:Acad::ErrorStatus measurement( double &val);
//val        This function returns set to the current measurement value for this dimension.
//问2:提取“标注”的尺寸值信息的函数是measurement吗?其格式是?

//问2续:怎么让m_measure得到尺寸值?

UpdateData(FALSE);//FALSE大写
pObj->close();
// iterate(eId);
}
else
{
        pObj->close();
        ads_printf("\nselected entity is unknow!");
}


//非常感谢!!!
发表于 2003-10-20 18:36:00 | 显示全部楼层
试试这个:
  // double m_measure;  
   //如果你将变量m_measure声明为double指针,可用measure(*m_measure);
ads_name  en;
AcDbObjectId eId;
acdbGetObjectId(eId,en);
AcDbObject *pObj;
acdbOpenObject(pObj,eId,AcDb::kForRead);
AcDbDimension *ObjDim;   //这个临时变量用于存放转换为AcDbDimension类型的实体
if(pObj->isKindOf(AcDbDimension::desc()))
{
    ObjDim = AcDbDimension::cast(pObj);
    ObjDim->measure(m_measure);  //或者ObjDim->measure(*measure);
    ObjDim->close();
    pObj->close();
}
else
{
   ......
}

至于指针和引用的正确使用,你可以看看源码区的置顶帖子“深入......”,当你理解了那篇文章所述内容后,遇到error C2664就不会措手无策了。
 楼主| 发表于 2003-10-21 14:55:00 | 显示全部楼层
哈哈哈
我会了
今天是个好~~好~~~日子
 楼主| 发表于 2003-10-21 15:24:00 | 显示全部楼层
我也拜读了斑竹的文章,现在差不多会用帮助项里的函数格式了
程序结果已经调试出来了
发表于 2011-7-29 16:44:42 | 显示全部楼层
gao ren a ,lihai
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-25 10:50 , Processed in 0.163752 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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