#pragma once #include "EdJigEx.h" class CBlockPreview : public AcDbEntity { public: CBlockPreview(const TCHAR* szBlkName, XPoint pt, double nScaleX, double nScaleY, double dRadius); virtual ~CBlockPreview(); virtual Adesk::Boolean subWorldDraw(AcGiWorldDraw *pWd); AcDbBlockReference *m_pBlkRef; // AcDbCircle *m_pCir; CString m_csBlkName; XPoint m_ptIns; double m_dRadius; double m_nRotate; double m_nSacle, m_nSacleY; BOOL m_bReversal; }; class TBlockEdJig : public TSymbEdJig { protected: CString m_csBlkName; double m_nRotate; double m_dDist; XPoint m_ptIns; BOOL m_bInsCenPt; BOOL m_bJigRotate; double m_dRadius; bool m_bUpdatePScale; // 预览实体是否随当前图纸比例变化 cet 2017.9.28 add public: TBlockEdJig(const TCHAR* szBlkName, XPoint pt, double nScaleX, double nScaleY, bool bUpdatePScale = false); TBlockEdJig(const TCHAR* szBlkName, XPoint pt, double nScale, bool bUpdatePScale = false); TBlockEdJig(const TCHAR* szBlkName, XPoint pt, double nScale, AcGeVector3d vectBase, double dDist = 0.0, bool bUpdatePScale = false); ~TBlockEdJig(); virtual int DoIt(int *pKeyIndex = NULL); DragStatus GetPoint(XPoint &pt); // 预览实体是否随当前图纸比例变化 cet 2017.9.28 add void SetUpdatePScale(bool bVal); AcDbBlockReference *m_pBlkRef; AcDbCircle *m_pCir; AcGeMatrix3d m_mat; BOOL m_bReversal; double m_nSacle, m_nSacleY; XPoint m_ptRef; XPoint m_ptRetIns; int m_iQuadrant; AcGeVector3d m_vectBase; void SetInsCenPt(BOOL bInsCenPt) { m_bInsCenPt = bInsCenPt; }; void SetRadius(double dRadius); //显示保护圆 protected: virtual Adesk::Boolean update(); virtual AcDbEntity* entity() const; }; class TBlockExJig : public TSymbEdJig { public: TBlockExJig(const TCHAR* szBlkName, XPoint pt, double nScaleX, double nScaleY, double dRadius); ~TBlockExJig(); virtual int DoIt(int *pKeyIndex = NULL); DragStatus GetPoint(XPoint &pt); CBlockPreview *m_pBlkRef; XPoint m_ptRef; void SetReversal(BOOL bReversal) { m_pBlkRef->m_bReversal = bReversal; }; protected: virtual Adesk::Boolean update(); virtual AcDbEntity* entity() const; };