- UID
- 783
- 积分
- 18
- 精华
- 贡献
-
- 威望
-
- 活跃度
-
- D豆
-
- 在线时间
- 小时
- 注册时间
- 2002-1-16
- 最后登录
- 1970-1-1
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
下面是修改线型宽度的函数,为什么能修改AcDbPolyline线宽,而不能修改AcDb2dPolyline线宽,但奇怪的是查询其组码值确实是变了,但在对象特性对话框中查询时其值却没有变,这是为何??请XD或masterher指点,急!!!
BOOL changePolylineWidth(ads_name en,double linewidth)
{ //根据实体名en,线宽比linewidth,改变polyline,2dpolyline线宽
double width, swidth, ewidth;
AcDbEntity* pEnt;
AcDbObjectId eId,vertexObjId;
if(acdbGetObjectId(eId, en) != Acad::eOk) return FALSE;
if(acdbOpenObject(pEnt,eId,AcDb::kForWrite) != Acad::eOk) return FALSE;
if(!pEnt) { acutPrintf("\n图形数据库打开错误!"); return FALSE; }
if(pEnt->isKindOf(AcDbPolyline::desc())) {
((AcDbPolyline*)pEnt)->getConstantWidth(*&width);
((AcDbPolyline*)pEnt)->setConstantWidth(linewidth*width);
((AcDbPolyline*)pEnt)->setPlinegen(Adesk::kTrue);
pEnt->close(); // Finished with the pEnt header.
}
else if(pEnt->isKindOf(AcDb2dPolyline::desc())) {
swidth = ((AcDb2dPolyline*)pEnt)->defaultStartWidth();
ewidth = ((AcDb2dPolyline*)pEnt)->defaultEndWidth();
((AcDb2dPolyline*)pEnt)->setDefaultStartWidth(linewidth*swidth);
((AcDb2dPolyline*)pEnt)->setDefaultEndWidth(linewidth*ewidth);
((AcDb2dPolyline*)pEnt)->setLinetypeGenerationOn();
pEnt->close(); // Finished with the pEnt header.
}
else { acutPrintf("\n不是Polyline复合线型!"); pEnt->close(); return FALSE; }
return TRUE;
} |
|