临时反应器的简单应用
主要代码:
void MyDatabaseReactor::objectModified(const AcDbDatabase * dwg, const AcDbObject * dbObj)
{
if (dbObj->isKindOf(AcDbPolyline::desc()))
{
AcDbPolyline* pPoly=AcDbPolyline::cast(dbObj);
int vernum=pPoly->numVerts();
AcGePoint2d ptCenter;
AcGePoint2d pt;
pPoly->getPointAt(0,pt);
ptCenter.x=pt.x;
ptCenter.y=pt.y-100;
pPoly->upgradeOpen();
for (int i=0;i<vernum;i++)
{
pt.rotateBy(2*pi()/vernum,ptCenter);
pPoly->setPointAt(i,pt);
}
pPoly->setClosed(Adesk::kTrue);
pPoly->setColorIndex(1);
}
else if (dbObj->isKindOf(AcDbCircle::desc()))
{
AcDbCircle* pCir=AcDbCircle::cast(dbObj);
pCir->upgradeOpen();
pCir->setRadius(100);
pCir->setColorIndex(100);
}
}
更多文章
-
用AcedGrRead()函数实现一拖多
实现代码:#include "StdAfx.h"#include "StdArx.h"#include "..\..\Common\我的类\Arc.h"#include <acedads.h>#include "..\..\Common\Entity\LineUtil.h"#include <geassign.h>#include <dbents.h>#include "..\..\Common\Others\ConvertUtil.h"#in
-
改变多段线区直
代码:#include "StdAfx.h"#include "StdArx.h"#include <dbpl.h>#include "..\..\Common\Others\ConvertUtil.h"#include <geassign.h>#include "..\..\Common\Entity\ArcUtil.h"#include "..\..\Common\Document\DwgDatabaseUtil.h"#include <afxwin.h&
-
获取任意路径Dwg文件内所有块在控件中显示并能选择插入当前模型空间
主对话框CPP内代码:#include "StdAfx.h"#include "resource.h"#include "BlockDialog.h"#include "..\..\Common\我的类\file.h"#include "..\..\Common\Document\DwgDatabaseUtil.h"#include <dbents.h>#include <dbmain.h>#include "..\..\Chapter11
-
多段线动态切割闭合区域
#include "StdAfx.h"#include "StdArx.h"#include <dbpl.h>#include "..\..\Common\Others\ConvertUtil.h"#include "..\..\Common\Document\DwgDatabaseUtil.h"#include <dbents.h>#include <dbregion.h>#include "..\..\Common\Entity\RegionUtil.h"
-
自创实体类从AcDbCurve派生,实现一些类方法并动态绘制
MyCurve.cpp:#include "StdAfx.h"#include "MyCurve.h"#include "actrans.h"#include "aced.h"//-----------------------------------------------------------------------------Adesk::UInt32 CMyCurve::kCurrentVersionNumber =1 ;//----------------------------------------