532 lines
16 KiB
C++
532 lines
16 KiB
C++
#include "stdafx.h"
|
|
|
|
//#include "acestext.h"
|
|
//#include "ViewportResize.h"
|
|
|
|
// TARCH_IMPEXP void DocStatus();
|
|
// GEOAPI int XGetCorner(const XPoint &ptCorn1, const TCHAR *pszMsg, XPoint &ptCorn2);
|
|
|
|
BOOL LockViewport(Entity ent, BOOL bTrue)
|
|
{
|
|
BOOL bRet=FALSE;
|
|
OPENOBJ_BEGIN(ent, AcDb::kForWrite, AcDbViewport, pViewport);
|
|
if (pViewport) {
|
|
if (bTrue)
|
|
pViewport->setLocked();
|
|
else
|
|
pViewport->setUnlocked();
|
|
bRet=TRUE;
|
|
}
|
|
OPENOBJ_END();
|
|
return bRet;
|
|
}
|
|
|
|
// 调整比例:
|
|
// 1. 文字 (TEXT)
|
|
// 2. 属性标签(ATTDEF)
|
|
// 3. 属性 (ATTRIB)
|
|
// 4. 图块
|
|
// 5. 上华对象
|
|
static int AdjustScale(PickSet &ss, ads_real oldScale, ads_real newScale)
|
|
{
|
|
ads_real scl=newScale/oldScale;
|
|
|
|
long ssLen=ss.Length();
|
|
RBList mask(RTDXF0, _T("TCH_*"), NULL);
|
|
for(long ssIndex=0; ssIndex<ssLen; ssIndex++) {
|
|
Entity ent=ss[ssIndex];
|
|
int nSpace=0;
|
|
if (ent.GetData(67, &nSpace)==RTNORM && nSpace==1) // Paper Space entity
|
|
continue;
|
|
TCHAR blkName[80]=_T("");
|
|
if (!(ssIndex%200)) adsout << _T(".");
|
|
if (ent.Is(_T("TEXT")) || ent.Is(_T("ATTDEF"))) { //文字
|
|
ads_real oldHeight;
|
|
ent.GetData(40, &oldHeight);
|
|
ent.SetData(40, oldHeight*scl);
|
|
ent.Modify();
|
|
} else if ((ent.Is(_T("INSERT")) || ent.Is(_T("TCH_BLOCK_INSERT"))) && ent.GetData(2, blkName)==RTNORM) {
|
|
TCHAR szLayer[80]=_T("");
|
|
ent.GetData(8, szLayer);
|
|
if (_tcsicmp(szLayer, LAY_DIM)==0) {
|
|
//轴号或房间标注或符号标注1
|
|
XPoint ptInsert;
|
|
ent.GetData(10, &ptInsert);
|
|
XPushVar<int> vOsMode(_T("OSMODE"), 0);
|
|
// Zyu modify on 100721,支持64位
|
|
//ads_command(RTSTR, _T(".SCALE"), RTENAME, (long *)ent, RTSTR, _T(""),
|
|
// RT3DPOINT, &ptInsert, RTREAL, scl, RTNONE);
|
|
ads_command(RTSTR, _T(".SCALE"), RTENAME, (TLong_ptr *)ent, RTSTR, _T(""),
|
|
RT3DPOINT, &ptInsert, RTREAL, scl, RTNONE);
|
|
} else {
|
|
//门窗图块或符号标注2
|
|
int bAttrib=0;
|
|
ent.GetData(66, &bAttrib);
|
|
if (bAttrib) {
|
|
Entity entAttrib, entTemp=ent;
|
|
while(entAttrib.GetNext(entTemp)==RTNORM && entAttrib.Is(_T("ATTRIB"))) {
|
|
ads_real nHeight;
|
|
entAttrib.GetData(40, &nHeight);
|
|
entAttrib.SetData(40, nHeight*scl);
|
|
entAttrib.Modify();
|
|
entTemp=entAttrib;
|
|
entAttrib.FreeGroups();
|
|
}
|
|
ent.Update();
|
|
}
|
|
}
|
|
} else if (ent.Is(_T("DIMENSION"))) {
|
|
//..等待处理
|
|
} else if (ent.MatchBase(mask)) {
|
|
OPENOBJ_BEGIN(ent, AcDb::kForWrite, AcDbEntity, pEnt);
|
|
if (pEnt) {
|
|
if (pEnt->isKindOf(TDbDimension2::desc())) {
|
|
TDbDimension2 *pDim=TDbDimension2::cast(pEnt);
|
|
if (pDim->IsAngular()) {
|
|
double nDimDist=pDim->GetDist2DimLine(FALSE);
|
|
pDim->SetPScale(newScale);
|
|
pDim->SetDist2DimLine(nDimDist, FALSE);
|
|
} else {
|
|
pDim->SetPScale(newScale);
|
|
}
|
|
} else if (pEnt->isKindOf(TDbOpening::desc())) {
|
|
TDbOpening *pWin=TDbOpening::cast(pEnt);
|
|
ASSERT(pWin);
|
|
XPoint ptCur=pWin->GetLabelPos();
|
|
XPoint ptDef=pWin->GetDefaultLabPos();
|
|
if (ptCur==ptDef) {
|
|
pWin->SetPScale(newScale);
|
|
pWin->SetLabelPos(pWin->GetDefaultLabPos());
|
|
} else {
|
|
pWin->SetPScale(newScale);
|
|
}
|
|
} else if (pEnt->isKindOf(TDbCornerWin::desc())) {
|
|
TDbCornerWin *pWin=TDbCornerWin::cast(pEnt);
|
|
ASSERT(pWin);
|
|
if (pWin->GetLabelPos()==pWin->GetDefaultLabPos()) {
|
|
pWin->SetPScale(newScale);
|
|
pWin->SetLabelPos(pWin->GetDefaultLabPos());
|
|
} else {
|
|
pWin->SetPScale(newScale);
|
|
}
|
|
} else if (pEnt->isKindOf(TDbEntity::desc()))
|
|
((TDbEntity *)pEnt)->SetPScale(newScale);
|
|
else if (pEnt->isKindOf(TDbCurveEntity::desc()))
|
|
((TDbCurveEntity *)pEnt)->SetPScale(newScale);
|
|
} else {
|
|
adsout << _T("\n不能以写的方式打开对象!");
|
|
}
|
|
OPENOBJ_END();
|
|
}
|
|
}
|
|
return RTNORM;
|
|
}
|
|
|
|
|
|
|
|
|
|
///////////////////////////////////////////////////////
|
|
// Command: 调整模型比例
|
|
// 由于没有调整字型的默认字的高度, 因此取消本命令
|
|
void ChModelScale(double nNewScale, double nOldScale)
|
|
{
|
|
RBList mask=ads_buildlist(-4, _T("<or"),
|
|
RTDXF0, _T("TCH_*,TEXT,DIMENSION"),
|
|
-4, _T("<and"),
|
|
RTDXF0, _T("INSERT"),
|
|
66, 1,
|
|
-4, _T("and>"),
|
|
-4, _T("or>"),
|
|
NULL);
|
|
PickSet ssAll(SS_FREE);
|
|
if (SelectEntities(_T("\n请选择要改变比例的图元:"), ssAll, mask)!=RTNORM)
|
|
return;
|
|
|
|
if (nOldScale<0.0) {
|
|
nOldScale=CFG_PScale;
|
|
|
|
BOOL bFindScale=FALSE;
|
|
long nCount=ssAll.Length();
|
|
for(long i=0L; i<nCount; i++) {
|
|
Entity ent=ssAll[i];
|
|
if (ent.MatchBase(RBList(RTDXF0, _T("TCH_*"),NULL)) && !ent.Is(_T("TCH_BLOCK_INSERT"))) {
|
|
double nScl=1.0;
|
|
VERIFY(ent.GetData(47, &nScl)==RTNORM);
|
|
if (!bFindScale) {
|
|
nOldScale=nScl;
|
|
bFindScale=TRUE;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
if (GetReal(_T("\n请提供原有的出图比例"), nOldScale, RSG_NONEG|RSG_NONEG)==RTCAN)
|
|
return;
|
|
}
|
|
|
|
DocSetPScale(nOldScale);
|
|
|
|
PickSet ssDim(SS_FREE);
|
|
ssDim += ssAll;
|
|
ssDim.BaseFilter(RBList(RTDXF0, _T("DIMENSION"), NULL));
|
|
long lCount=ssDim.Length();
|
|
for(long i=0L; i<lCount; i++) {
|
|
Entity entDim=ssDim[i];
|
|
Entity entNew;
|
|
if (ConvertDim(entDim, entNew)) {
|
|
ssAll -= entDim;
|
|
ssAll += entNew;
|
|
}
|
|
}
|
|
|
|
if (DocSetPScale(nNewScale))
|
|
xg_setvar(_T("HPSCALE"), nNewScale);
|
|
DocStatus();
|
|
AdjustScale(ssAll, nOldScale, nNewScale);
|
|
}
|
|
|
|
// Command: 改变比例
|
|
void ChScale()
|
|
{
|
|
int nVport=0, nTileMode=0;
|
|
xg_getvar(_T("CVPORT"), &nVport);
|
|
xg_getvar(_T("TILEMODE"), &nTileMode);
|
|
|
|
if (nVport==1) { //图纸空间
|
|
Entity ent;
|
|
RBList mask(RTDXF0, _T("VIEWPORT"), NULL);
|
|
if (SelectEntity(_T("\n选择要改变比例的视口:"), ent, mask)==RTNORM) {
|
|
XPoint pt;
|
|
ent.GetData(10, &pt);
|
|
double nOldScale=pt.z;
|
|
int nVpNum=1;
|
|
VERIFY(ent.GetData(69, &nVpNum)==RTNORM);
|
|
if (nOldScale<1.0E-3) {
|
|
MSpace();
|
|
xg_setvar(_T("CVPORT"), nVpNum);
|
|
double vpHeight, viewSize;
|
|
VERIFY(xg_getvar(_T("VIEWSIZE"), &viewSize)==RTNORM);
|
|
VERIFY(ent.GetData(41, &vpHeight)==RTNORM);
|
|
nOldScale=viewSize/vpHeight;
|
|
PSpace();
|
|
}
|
|
double nNewScale=nOldScale;
|
|
if (GetReal(_T("\n请输入新的出图比例"), nNewScale, RSG_NONEG|RSG_NOZERO)==RTCAN)
|
|
return;
|
|
bool bLock=true;
|
|
OPENOBJ_BEGIN(ent, AcDb::kForWrite, AcDbViewport, pViewport);
|
|
if (pViewport) {
|
|
bLock=pViewport->isLocked();
|
|
pViewport->setUnlocked();
|
|
pt.z=nNewScale;
|
|
VERIFY(pViewport->setCenterPoint(pt)==Acad::eOk);
|
|
//ASSERT(fabs(pViewport->elevation()-nNewScale)<1.0E-3);
|
|
double nScale=nNewScale/nOldScale;
|
|
pViewport->setHeight(pViewport->height()/nScale);
|
|
pViewport->setWidth(pViewport->width()/nScale);
|
|
}
|
|
OPENOBJ_END();
|
|
MSpace();
|
|
xg_setvar(_T("CVPORT"), nVpNum);
|
|
XString sScaleXP(_T("%gXP"), 1.0/nNewScale);
|
|
ads_command(RTSTR, _T(".ZOOM"), RTSTR, (const TCHAR *)sScaleXP, RTNONE);
|
|
ChModelScale(nNewScale, nOldScale);
|
|
ads_command(RTSTR, _T(".ZOOM"), RTSTR, (const TCHAR *)sScaleXP, RTNONE);
|
|
PSpace();
|
|
LockViewport(ent, TRUE);
|
|
}
|
|
} else {
|
|
if (nTileMode==0) {
|
|
adsout << _T("\n在布局状态下,要在图纸空间执行命令!");
|
|
return;
|
|
}
|
|
|
|
|
|
double nNewScale=CFG_PScale;
|
|
if (GetReal(_T("\n请输入新的出图比例1:"), nNewScale, RSG_NOZERO|RSG_NONEG)==RTCAN)
|
|
return;
|
|
if (nTileMode==0) {
|
|
XString sScaleXP(_T("%gXP"), 1.0/nNewScale);
|
|
ads_command(RTSTR, _T(".ZOOM"), RTSTR, (const TCHAR *)sScaleXP, RTNONE);
|
|
}
|
|
ChModelScale(nNewScale, -1.0);
|
|
|
|
}
|
|
}
|
|
|
|
|
|
// 定义布图视口
|
|
void MakeLayoutViewport()
|
|
{
|
|
|
|
extern TARCH_IMPEXP int DragMovePickSet(PickSet &ss, const TCHAR *pszPrompt, const XPoint &ptBase, XPoint &ptFinal);
|
|
|
|
int tilemode=0;
|
|
VERIFY(xg_getvar(_T("TILEMODE"), &tilemode)==RTNORM);
|
|
if (tilemode==0)
|
|
xg_setvar(_T("TILEMODE"), 1);
|
|
|
|
XPoint ptWcs1, ptWcs2;
|
|
if (ads_getpoint(NULL, _T("\n输入待布置的图形的第一个角点<退出>:"), ptWcs1)!=RTNORM)
|
|
return;
|
|
if (XGetCorner(ptWcs1, _T("\n输入另一个角点<退出>:"), ptWcs2)!=RTNORM)
|
|
return;
|
|
|
|
// 确定模型比例
|
|
double nScale=DocGetPScale();
|
|
PickSet ssTemp(SS_FREE);
|
|
if (ssTemp.Get(_T("C"), ptWcs1, ptWcs2, RBList(RTDXF0, _T("TCH_*"), NULL))==RTNORM) {
|
|
ssTemp.BaseExclude(RBList(RTDXF0, _T("TCH_BLOCK_INSERT"), NULL));
|
|
if (ssTemp.Length()>0) {
|
|
Entity entTemp=ssTemp[0L];
|
|
entTemp.GetData(47, &nScale);
|
|
}
|
|
}
|
|
ptWcs1=Ucs2Wcs(ptWcs1);
|
|
ptWcs2=Ucs2Wcs(ptWcs2);
|
|
XPoint ptCen=ptWcs1+ptWcs2;
|
|
ptCen /= 2.0;
|
|
|
|
XRectAngle box(ptWcs1, ptWcs2);
|
|
if (box.Width()<_DIST_SNAP || box.Height()<_DIST_SNAP)
|
|
return;
|
|
if (GetReal(_T("\n图形的输出比例1:"), nScale, RSG_NONEG|RSG_NOZERO)==RTCAN)
|
|
return;
|
|
|
|
//进入图纸空间
|
|
xg_setvar(_T("TILEMODE"), 0);
|
|
int cvport=1;
|
|
xg_getvar(_T("CVPORT"), &cvport);
|
|
if (cvport!=1)
|
|
PSpace();
|
|
XPoint qt1, qt2;
|
|
qt2.x = box.Width()/nScale;
|
|
qt2.y = box.Height()/nScale;
|
|
//qt1.z = qt2.z = nScale;
|
|
InitLayer(LAY_VIEWPORT, TRUE);
|
|
XPushVar<int> vTemp(_T("OSMODE"), 0);
|
|
XPushVarStr clayer(_T("CLAYER"), LAY_VIEWPORT);
|
|
ads_command(RTSTR, _T(".ZOOM"), RTSTR, _T("A"), RTNONE);
|
|
ads_command(RTSTR, _T(".MVIEW"), RTPOINT, &qt1, RTPOINT, &qt2, RTNONE);
|
|
Entity entLast;
|
|
entLast.GetLast();
|
|
//entLast.SetData(8, LAY_VIEWPORT);
|
|
//entLast.Modify();
|
|
MSpace();
|
|
//xg_setvar(_T("cmdecho"), 1);
|
|
ptCen=Wcs2Ucs(ptCen);
|
|
ads_command(RTSTR, _T(".ZOOM"), RTSTR, _T("C"), RT3DPOINT, &ptCen, RTREAL, box.Height(), RTNONE);
|
|
//ads_command(RTSTR, _T(".ZOOM"), RTSTR, (const TCHAR *)XString(_T("%gXP"), 1.0/nScale), NULL);
|
|
PSpace();
|
|
/*
|
|
PickSet ss1(SS_FREE);
|
|
ss1 += entLast;
|
|
DragMovePickSet(ss1, _T("\n视口位置:"), qt1, XPoint());
|
|
*/
|
|
qt1.z = -nScale;
|
|
// Zyu modify on 100721,支持64位
|
|
//ads_command(RTSTR, _T(".MOVE"), RTENAME, (long *)entLast, RTSTR, _T(""),
|
|
// RT3DPOINT, &qt1, RTSTR, _T("\\"), RTNONE);
|
|
ads_command(RTSTR, _T(".MOVE"), RTENAME, (TLong_ptr *)entLast, RTSTR, _T(""),
|
|
RT3DPOINT, &qt1, RTSTR, _T("\\"), RTNONE);
|
|
OPENOBJ_BEGIN(entLast, AcDb::kForWrite, AcDbViewport, pView);
|
|
if (pView) {
|
|
pView->setLocked();
|
|
}
|
|
OPENOBJ_END();
|
|
}
|
|
|
|
|
|
void SaveLayoutConfig()
|
|
{
|
|
int nTileMode=0;
|
|
VERIFY(xg_getvar(_T("TILEMODE"), &nTileMode)==RTNORM);
|
|
if (nTileMode) {
|
|
adsout << _T("\n请在图纸空间使用本命令!");
|
|
return;
|
|
}
|
|
int cvport=1;
|
|
VERIFY(xg_getvar(_T("CVPORT"), &cvport)==RTNORM);
|
|
if (cvport!=1)
|
|
PSpace();
|
|
|
|
RBList mask(RTDXF0, _T("VIEWPORT"), NULL);
|
|
PickSet ss(SS_FREE);
|
|
if (ss.Get(_T("X"), NULL, NULL, mask)==RTNORM) {
|
|
long lCount=ss.Length();
|
|
for(long i=0L; i<lCount; i++) {
|
|
Entity ent=ss[i];
|
|
XPoint ptCen, ptViewCen;
|
|
OPENOBJ_BEGIN(ent, AcDb::kForRead, AcDbViewport, pViewport);
|
|
if (pViewport) {
|
|
ptCen=pViewport->centerPoint();
|
|
ptViewCen=pViewport->viewCenter();
|
|
double nScale=pViewport->customScale(); //ZOOM XP
|
|
double nHeight=pViewport->height();
|
|
double nWidth=pViewport->width();
|
|
if (!XSymbolTable(_T("APPID"), TCHXD))
|
|
ads_regapp(TCHXD);
|
|
|
|
if (pViewport->upgradeOpen()==Acad::eOk) {
|
|
resbuf *rb=ads_buildlist(1001, TCHXD, 1010, &ptCen, 1010, &ptViewCen, 1010, &XPoint(nScale, nHeight, nWidth), NULL);
|
|
pViewport->setXData(rb);
|
|
ads_relrb(rb);
|
|
pViewport->downgradeOpen();
|
|
}
|
|
}
|
|
OPENOBJ_END();
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
void RestoreLayoutConfig()
|
|
{
|
|
int nTileMode=0;
|
|
VERIFY(xg_getvar(_T("TILEMODE"), &nTileMode)==RTNORM);
|
|
if (nTileMode) {
|
|
adsout << _T("\n请在图纸空间使用本命令!");
|
|
return;
|
|
}
|
|
int cvport=1;
|
|
VERIFY(xg_getvar(_T("CVPORT"), &cvport)==RTNORM);
|
|
if (cvport!=1)
|
|
PSpace();
|
|
|
|
RBList mask(RTDXF0, _T("VIEWPORT"), NULL);
|
|
PickSet ss(SS_FREE);
|
|
if (ss.Get(_T("X"), NULL, NULL, mask)==RTNORM) {
|
|
long lCount=ss.Length();
|
|
for(long i=0L; i<lCount; i++) {
|
|
Entity ent=ss[i];
|
|
XPoint ptCen, ptViewCen;
|
|
OPENOBJ_BEGIN(ent, AcDb::kForWrite, AcDbViewport, pViewport);
|
|
if (pViewport) {
|
|
resbuf *rb=pViewport->xData(TCHXD);
|
|
RBList rbBuf=rb;
|
|
if (rb) rb=rb->rbnext;
|
|
if (rb && rb->rbnext && rb->rbnext->rbnext &&
|
|
rb->restype==1010 && rb->rbnext->restype==1010 && rb->rbnext->rbnext->restype==1010) {
|
|
XPoint ptCen=rb->resval.rpoint;
|
|
rb=rb->rbnext;
|
|
XPoint ptViewCen=rb->resval.rpoint;
|
|
rb=rb->rbnext;
|
|
XPoint vtPara=rb->resval.rpoint;
|
|
pViewport->setCenterPoint(ptCen);
|
|
pViewport->setViewCenter(ptViewCen);
|
|
pViewport->setHeight(vtPara.y);
|
|
pViewport->setWidth(vtPara.z);
|
|
pViewport->setCustomScale(vtPara.x);
|
|
}
|
|
}
|
|
OPENOBJ_END();
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
void LayoutRotate()
|
|
{
|
|
extern TARCH_IMPEXP BOOL g_bLayoutRotate;
|
|
XPushMemVar<BOOL> vTemp(g_bLayoutRotate, TRUE);
|
|
PickSet ss(SS_FREE);
|
|
if (SelectEntities(_T("\n选择对象:"), ss, RBList())!=RTNORM)
|
|
return;
|
|
// [12/19/2007 nsh]
|
|
//----------------------begin-----------------------------
|
|
/*XPoint ptBase;
|
|
double nRotation=0.0;
|
|
if (ads_getpoint(NULL, _T("\n旋转基点<退出>:"), ptBase)==RTNORM &&
|
|
ads_getangle(ptBase, _T("\n布局转角<0.0>:"), &nRotation)==RTNORM) {
|
|
XPushVar<int> osmode(_T("OSMODE"), 0);
|
|
ptBase=Ucs2Wcs(ptBase);
|
|
ads_command(RTSTR, _T(".ROTATE"), RTPICKS, (long *)ss, RTSTR, _T(""),
|
|
RT3DPOINT, &ptBase, RTREAL, nRotation*180/PI, NULL);
|
|
}*/
|
|
int nRet=0;
|
|
XString sKeyword;//关键字
|
|
INITGET_BEG(0,_T("A B"));
|
|
nRet=ads_getkword(_T("请选择布局旋转方式[基于基点(B)/旋转角度(A)]<基于基点>:"),sKeyword);
|
|
INITGET_END();
|
|
if (nRet!=RTNORM&&nRet!=RTNONE)
|
|
{
|
|
return;
|
|
}
|
|
TCHAR ch=sKeyword[0];
|
|
if (nRet == RTNONE)
|
|
{
|
|
ch = _T('B');
|
|
}
|
|
switch(ch)
|
|
{
|
|
case _T('B'):
|
|
{//基于基点
|
|
XPoint ptBase;
|
|
double nRotation=0.0;
|
|
if (ads_getpoint(NULL, _T("\n旋转基点<退出>:"), ptBase)==RTNORM &&
|
|
ads_getangle(ptBase, _T("\n布局转角<0.0>:"), &nRotation)==RTNORM) {
|
|
XPushVar<int> osmode(_T("OSMODE"), 0);
|
|
ptBase=Ucs2Wcs(ptBase);
|
|
// Zyu modify on 100721,支持64位
|
|
//ads_command(RTSTR, _T(".ROTATE"), RTPICKS, (long *)ss, RTSTR, _T(""),
|
|
// RT3DPOINT, &ptBase, RTREAL, nRotation*180/PI, RTNONE);
|
|
ads_command(RTSTR, _T(".ROTATE"), RTPICKS, (TLong_ptr *)ss, RTSTR, _T(""),
|
|
RT3DPOINT, &ptBase, RTREAL, nRotation*180/PI, RTNONE);
|
|
}
|
|
}
|
|
break;
|
|
case _T('A'):
|
|
{//对对象基于角度旋转
|
|
double nRotation=0.0;
|
|
int rt=ads_getangle(NULL,_T("\n设置旋转角度<0.0>:"),&nRotation);
|
|
if (rt==RTNORM)
|
|
{
|
|
for(long i=0;i<ss.Length();i++)
|
|
{
|
|
Entity ent=ss[i];
|
|
OPENOBJ_BEGIN(ent, AcDb::kForWrite,AcDbEntity,pEntTemp);
|
|
TEntityBase *pTEnt=TEntityBase::Cast(pEntTemp);
|
|
if (pTEnt!=NULL)
|
|
{
|
|
//if (pTEnt->IsLayoutRotated())
|
|
//{
|
|
pTEnt->SetLayoutRotation(nRotation);//设置旋转的角度
|
|
//}
|
|
}
|
|
else
|
|
{
|
|
return;
|
|
}
|
|
|
|
OPENOBJ_END();
|
|
}
|
|
}
|
|
else if (rt==RTNONE)
|
|
{
|
|
for(long i=0;i<ss.Length();i++)
|
|
{
|
|
Entity ent=ss[i];
|
|
OPENOBJ_BEGIN(ent, AcDb::kForWrite,AcDbEntity,pEntTemp);
|
|
TEntityBase *pTEnt=TEntityBase::Cast(pEntTemp);
|
|
if (pTEnt!=NULL)
|
|
{
|
|
pTEnt->SetLayoutRotation(nRotation);//设置旋转的角度
|
|
}
|
|
else
|
|
{
|
|
return;
|
|
}
|
|
|
|
OPENOBJ_END();
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
//-----------------------end------------------------------
|
|
}
|
|
|
|
|