Files
envi-code/SourceCode/Code2026/inc/AecDbAssembleWell.h
T
2026-09-28 15:28:50 +08:00

101 lines
3.2 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; //不序列化
};