- UID
- 281509
- 积分
- 1054
- 精华
- 贡献
-
- 威望
-
- 活跃度
-
- D豆
-
- 在线时间
- 小时
- 注册时间
- 2005-6-21
- 最后登录
- 1970-1-1
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
我以AcDbSpline为基类写了一个自定义类WJRedSpline类,
现在我又要写一个永久反应器类WJRedPtRector,以AcDbObject为基类,在这个类的modified函数中如何来识别我的那个类:WJRedSpline呢?
void WJRedPtRector::modified(const AcDbObject* dbObj)
{
assertNotifyEnabled();
// TODO: implement this function.
//cast返回指定类型的对象
//分析被修改实体
acdbOpenObject(pEnt,m_OtherEntityID,AcDb::kForWrite);
if(pEnt->isA()==AcDbLine::desc())
{
//被驱动实体为直线
pModifyLine=AcDbLine::cast(pEnt);
ModifyEntStyle=0;
if(m_ModifyPtStyle==0)
{
//被驱动点为端点
if(m_ModifyPtNo==0)
pModifyLine->getStartPoint(modPt);
else
pModifyLine->getEndPoint(modPt);
}
}
else if(pEnt->isA()==WJRedSpline::desc())//????这里有问题啊!
{
//被驱动实体为曲线
}
//分析被修改实体结束
//分析驱动实体
if(dbObj->isA()==AcDbLine::desc())
{
//驱动实体为直线
pLine=AcDbLine::cast(dbObj);
pLine->getStartPoint(strPt);
pLine->getEndPoint(endPt);
midPt.x=(strPt.x+endPt.x)/2;
midPt.y=(strPt.y+endPt.y)/2;
switch(m_PtStyle)
{
case 0://驱动点为端点
if(m_PtNo==0)
newPt=strPt;
else
newPt=endPt;
break;
case 1://驱动点为中点
newPt=midPt;
break;
case 2://驱动点为交点
acdbOpenObject(pIntEnt,m_InsEntityID,AcDb::kForRead);
pLine->intersectWith(pIntEnt,AcDb::kOnBothOperands,InsPts);
pIntEnt->close();
dis0=10000000;
for(i=0;i<InsPts.length();i++)
{
dis1=acutDistance(asDblArray(InsPts),asDblArray(modPt));
if(dis1<dis0)
{
newPt=InsPts;
dis0=dis1;
}
}
pIntEnt->close();
break;
case 3://驱动点为垂足
break;
case 4://驱动点为线上点
break;
}
//进行驱动
if(m_ModifyPtNo==0)
pModifyLine->setStartPoint(newPt);
else
pModifyLine->setEndPoint(newPt);
pModifyLine->close();
}
pEnt->close();
AcDbObject::modified(dbObj);
}
//在类库的搜索路径中以加入了WJMySpline.lib的搜索路径,同时在工程的连接中也加入了WJMySpline.lib,同时WJRedPtRector的头文件中也包含了:#include "WJRedSpline.h",但就是不正确啊,编译错误如下:
MyPtRector.cpp
d:\pbkcad服装cad\myspline\wjredspline.h(10) : warning C4005: 'DLLIMPEXP' : macro redefinition?????
d:\pbkcad服装cad\myptrector\wjredptrector.h(9) : see previous definition of 'DLLIMPEXP'
rxdebug.cpp
WJRedPtRector.cpp
d:\pbkcad服装cad\myspline\wjredspline.h(10) : warning C4005: 'DLLIMPEXP' : macro redefinition??????
d:\pbkcad服装cad\myptrector\wjredptrector.h(9) : see previous definition of 'DLLIMPEXP'
Generating Code...
Linking...
Creating library Debug/WJMyPtRector.lib and object Debug/WJMyPtRector.exp
WJMyPtRector.dbx - 0 error(s), 0 warning(s)
请高人帮帮我啊,急死我了 |
|