资源简介

Object ARX 参数化自定义实体的经典实例,双击对象显示对话框

资源截图

代码片段和文件信息

// AsdkMyClass.cpp: implementation of the AsdkMyClass class.
//
//////////////////////////////////////////////////////////////////////

#include “stdafx.h“
#include “resource.h“
#include “AsdkMyClass.h“
#include “geassign.h“
#include 
#include “commands.h“

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

#define PI 3.1415926

ACRX_DXF_DEFINE_MEMBERS(AsdkMyClass AcDbEntity
AcDb::kDHL_CURRENT AcDb::kMReleaseCurrent
0 ASDKMYCLASS SAMP2);
///////////////////////////////////////////////////////////////////
AsdkMyClass::AsdkMyClass(AcGePoint3d basePt int floorNum
 double baseLen double QCJWid 
 double HCJWid double Hei):m_basePt(basePt)
m_FloorNum(floorNum) m_baseLen(baseLen) m_LeftCJLen(HCJWid) 
m_RightCJLen(QCJWid) m_baseHeight(Hei)
{

ExtendedbaseIni();

}
 
// 计算点坐标的函数
void AsdkMyClass::ExtendedbaseIni()
{
double transLen;

m_PtArr1[0] = m_basePt;
m_PtArr1[1] = Pt2Pt(m_basePt PI/2 m_baseHeight);
m_PtArr1[2] = Pt2Pt(m_PtArr1[1] 0 m_baseLen);
m_PtArr1[3] = Pt2Pt(m_basePt 0 m_baseLen);
if (m_FloorNum >= 2)
{
transLen = m_baseLen - m_LeftCJLen - m_RightCJLen;
m_PtArr2[0] = Pt2Pt(m_PtArr1[1] 0 m_LeftCJLen);
m_PtArr2[1] = Pt2Pt(m_PtArr2[0] PI/2 m_baseHeight);
m_PtArr2[2] = Pt2Pt(m_PtArr2[1] 0 transLen);
m_PtArr2[3] = Pt2Pt(m_PtArr2[0] 0 transLen);
if (m_FloorNum >=3)
{
transLen = transLen - m_LeftCJLen - m_RightCJLen;
m_PtArr3[0] = Pt2Pt(m_PtArr2[1] 0 m_LeftCJLen);
m_PtArr3[1] = Pt2Pt(m_PtArr3[0] PI/2 m_baseHeight);
m_PtArr3[2] = Pt2Pt(m_PtArr3[1] 0 transLen);
m_PtArr3[3] = Pt2Pt(m_PtArr3[0] 0 transLen);
if (m_FloorNum == 4)
{
transLen = transLen - m_LeftCJLen - m_RightCJLen;
m_PtArr4[0] = Pt2Pt(m_PtArr3[1] 0 m_LeftCJLen);
m_PtArr4[1] = Pt2Pt(m_PtArr4[0] PI/2 m_baseHeight);
m_PtArr4[2] = Pt2Pt(m_PtArr4[1] 0 transLen);
m_PtArr4[3] = Pt2Pt(m_PtArr4[0] 0 transLen);
}
}
}
}

// 读入数据
Acad::ErrorStatus
AsdkMyClass::dwgInFields(AcDbDwgFiler *pFiler)
{

assertWriteEnabled();
Acad::ErrorStatus es;

    if ((es = AcDbEntity::dwgInFields(pFiler)) != Acad::eOk) 
    {
        return es;
    }

if (pFiler->filerType() == AcDb::kWblockCloneFiler)
{
AcDbHardPointerId id;
pFiler->readItem(&id);
}

pFiler->readItem(&m_basePt);
pFiler->readItem(&m_FloorNum);


for (int i=0; i<4; i++) {
pFiler->readItem(&m_PtArr1[i]);
}
if (m_FloorNum >= 2)
{
for (int i=0; i<4; i++) {
pFiler->readItem(&m_PtArr2[i]);
}
if (m_FloorNum >=3)
{
for (int i=0; i<4; i++) {
pFiler->readItem(&m_PtArr3[i]);
}
if (m_FloorNum == 4)
{
for (int i=0; i<4; i++) {
pFiler->readItem(&m_PtArr4[i]);
}
}
}
}


return pFiler->filerStatus();
}

//  写出数据到DWG文件中
Acad::ErrorStatus
AsdkMyClass::dwgOutFields(AcDbDwgFiler *pFiler) const
{

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件        602  2004-11-11 14:32  经典实例\acadstk.dmp

     文件       2546  2004-02-26 09:54  经典实例\AdskDMgr.h

     文件      10209  2005-03-14 16:19  经典实例\AsdkMyClass.cpp

     文件       3243  2005-03-14 16:19  经典实例\AsdkMyClass.h

     文件        314  2010-08-12 15:48  经典实例\cmd.api

     文件        322  2005-03-14 16:00  经典实例\Commands.cpp

     文件       1134  2005-03-14 16:00  经典实例\Commands.h

     文件        963  2005-03-14 15:56  经典实例\ControlDB.cpp

     文件        120  2005-03-14 16:01  经典实例\ControlDB.h

     文件       1270  2010-08-04 15:50  经典实例\dlgkdjc.bmp

     文件       1389  2005-03-14 15:30  经典实例\DlgModiEnt.cpp

     文件       1360  2004-04-13 10:20  经典实例\DlgModiEnt.h

     文件        616  2004-02-26 09:54  经典实例\DocData.cpp

     文件        828  2004-02-26 09:54  经典实例\DocData.h

     文件       3102  2010-08-12 15:48  经典实例\doubleClickDimension.cpp

     文件        893  2010-08-10 11:50  经典实例\doubleClickDimension.h

     文件        145  2010-08-12 15:48  经典实例\ial.api

     文件       1270  2010-08-04 15:50  经典实例\kdjc.bmp

     文件       3225  2005-03-14 15:56  经典实例\KDJCDlg.cpp

     文件       1591  2004-03-25 18:17  经典实例\KDJCDlg.h

     文件         23  2010-08-12 15:48  经典实例\objectARX.prj

     文件        402  2004-02-26 09:54  经典实例\res\UserDefEnt.rc2

     文件       1223  2005-03-14 16:21  经典实例\Resource.h

     文件        979  2004-02-26 09:54  经典实例\rxdebug.cpp

     文件        611  2004-02-26 09:54  经典实例\rxdebug.h

     文件        206  2004-02-26 09:54  经典实例\StdAfx.cpp

     文件       2450  2005-03-14 15:13  经典实例\StdAfx.h

     文件        887  2010-08-12 15:48  经典实例\StdArx.h

     文件       1270  2010-08-10 08:59  经典实例\toolbar1.bmp

     文件      20060  2010-08-04 15:49  经典实例\UserDefEnt.aps

............此处省略16个文件信息

评论

共有 条评论