101 lines
3.3 KiB
C++
101 lines
3.3 KiB
C++
#pragma once
|
|
|
|
#include "AecDbEntityBase.h"
|
|
#include "AecDbObjXDataMap.h"
|
|
#include "AecMInterfaces.h"
|
|
#include "AecComplexCurveDraw.h"
|
|
|
|
#ifdef EARTHWORM_EXPORT
|
|
#define DLLIMPEXP __declspec(dllexport)
|
|
#else
|
|
#define DLLIMPEXP __declspec(dllimport)
|
|
#endif
|
|
|
|
//装配式井
|
|
|
|
class DLLIMPEXP AecDbAssembleWell : public AecDbEntityBase
|
|
{
|
|
public:
|
|
ACRX_DECLARE_MEMBERS(AecDbAssembleWell);
|
|
|
|
protected:
|
|
static Adesk::UInt32 kCurrentVersionNumber;
|
|
|
|
public:
|
|
AecDbAssembleWell(void);
|
|
~AecDbAssembleWell(void);
|
|
|
|
//设置井文件名不含路径
|
|
bool AppendScriptLine(const TCHAR *pszLine,bool bIs3D = true);
|
|
void ResetContent();
|
|
bool GetScriptLines(CStringArray& arLines,bool bIs3D = true) const;
|
|
bool IsEmpty() const;
|
|
|
|
void SetPosition(const AcGePoint3d& ptIns);
|
|
bool GetPosition(AcGePoint3d &ptIns) const;
|
|
|
|
void SetRotation(double dAng);
|
|
double GetRotation() const;
|
|
|
|
//专业数据 和绘制设置
|
|
virtual AecDbObjXDataMap *GetSpecialtyData(AcDb::OpenMode bMode = AcDb::kForWrite);
|
|
virtual const AecDbObjXDataMap *GetSpecialtyData() const;
|
|
|
|
virtual void subList() const;
|
|
virtual Acad::ErrorStatus copyFrom(const AcRxObject *pSrc);
|
|
virtual Acad::ErrorStatus subTransformBy(const AcGeMatrix3d &xform);
|
|
|
|
#if ARX>16
|
|
virtual Acad::ErrorStatus subGetGripPoints(AcDbGripDataPtrArray &grips,
|
|
const double curViewUnitSize,
|
|
const int gripSize,
|
|
const AcGeVector3d &curViewDir,
|
|
const int bitflags) const;
|
|
|
|
virtual Acad::ErrorStatus subMoveGripPointsAt(const AcDbVoidPtrArray &appData, const AcGeVector3d &offset, const int bitflags);
|
|
|
|
virtual Acad::ErrorStatus subGetStretchPoints(AcGePoint3dArray &stretchPoints) const;
|
|
|
|
virtual Acad::ErrorStatus subMoveStretchPointsAt(const AcDbIntArray &indices, const AcGeVector3d &offset);
|
|
|
|
#endif
|
|
|
|
virtual Acad::ErrorStatus Draw2d(AcGiDraw &dc) const;
|
|
virtual Acad::ErrorStatus Draw3d(AcGiDraw &dc) const;
|
|
|
|
virtual Acad::ErrorStatus dwgInFields(AcDbDwgFiler *pFiler);
|
|
virtual Acad::ErrorStatus dwgOutFields(AcDbDwgFiler *pFiler) const;
|
|
|
|
virtual Acad::ErrorStatus dxfInFields(AcDbDxfFiler *pFiler);
|
|
virtual Acad::ErrorStatus dxfOutFields(AcDbDxfFiler *pFiler) const;
|
|
|
|
//剖切提取
|
|
virtual int GetSectionDraw(const AcGePoint3d &ptFr, const AcGePoint3d &ptTo, const AcGeVector3d &vtViewDir, const AcGeVector3d &vtTo, AcDbVoidPtrArray &arRegionPtrs) const;
|
|
|
|
protected:
|
|
|
|
//语法分析
|
|
bool IsPLSyntaxCheck(const TCHAR* pLine) const;
|
|
bool NewAcDbEntity(AcDbVoidPtrArray &arEntPtrs, CString &sSml) const;
|
|
bool NewAecEntity(AcDbVoidPtrArray& arEntPtrs,CString &sSml, int &nAddOrSub) const;
|
|
|
|
bool NewWall(AcDbVoidPtrArray &arEntPtrs,CStringArray &arInfo) const;
|
|
bool NewSlab(AcDbVoidPtrArray &arEntPtrs, CStringArray &arInfo) const;
|
|
bool NewPipe(AcDbVoidPtrArray &arEntPtrs, CStringArray &arInfo) const;
|
|
bool NewHole(AcDbVoidPtrArray &arEntPtrs, CStringArray &arInfo) const;
|
|
bool NewCon(AcDbVoidPtrArray &arEntPtrs, CStringArray &arInfo) const;
|
|
|
|
BOOL CalValue(const CString &sExp, double &dRes) const;
|
|
BOOL CalXYOffset(CString &sXYOff, double &dX, double &dY) const;
|
|
BOOL CalPoint2d(CString &sPt, ads_point &pt) const;
|
|
|
|
protected:
|
|
AecDbObjXDataMap m_mapSpecXData; //BIM数据
|
|
CStringArray m_arScrLines3d; //脚本行3d
|
|
CStringArray m_arScrLines2d; //脚本行2d
|
|
AcGePoint3d m_ptIns; //插入点
|
|
double m_dRotate; //插入角度
|
|
AecGripData* m_pGripAppData; //不序列化
|
|
};
|
|
|