SeaER 发表于 2003-9-27 17:14:00

一个关于dimesion的问题

请看下面这段代码:
   ........
   Acad::ErrorStatus es;
   AcDbRotatedDimesion *pDm;
   es=acdbOpenObject(pDim,dimId,Acad::kForWrite);//dimId有前面程序得到
   if(es!=Acad::eOk)return;
   es=pDim->setDimblk1("DOTSMALL");
   if(es!=Acad::eOk)
   {
         pDim->close();
         return;
   }
   acutPrintf("success!");
   pDim->close();
   .....

/*这段代码编译没有问题,运行的时候选择的实体也没有问题,但是有时候箭头能变成
dotsmall,有时候根本就不变.可运行的结果是success呀!!
请问这段代码有什么问题呢???还有setDimblk,setDimblk1,setDimblk2在使用的时候要注意什么问题呢??
*/

leeyeafu 发表于 2003-9-28 13:09:00

setDimblk1()函数修改标注对象的第一尺寸箭头形状。setDimblk2()函数修改第二尺寸箭头。setDimblk()同时修改两个箭头(或者引线箭头)。详见ACAD帮助的DIMBLK、DIMBLK1、DIMBLK2系统变量的说明。
从你的程序来看,setDimblk1()函数返回了Acad::eOk,看不到实体变化可能是因为:
1、setDimblk1()只修改标注对象的一个标注对象的箭头形状,是不是你没注意到?
2、或者,图形数据库内实体记录已经修改,并不意味着在ACAD界面中就立即可以看到,你试试在acutPrinf()之前插入:
acedRedraw(NULL,1);

SeaER 发表于 2003-11-3 17:50:00

我照楼上所说的试过了,可还是不好使得!!!!
页: [1]
查看完整版本: 一个关于dimesion的问题