Files
envi-code/SourceCode/Code2026/tg_shs/inc/pipewire/DbStake.h
T

123 lines
3.9 KiB
C++
Raw Normal View History

2026-10-04 00:04:20 +08:00
#ifndef AFX_DBSTAKE_H__
2026-09-28 15:28:50 +08:00
#define AFX_DBSTAKE_H__
/*============================================================================*
* Copyright(c), 1994-2008, Beijing Tangent Engineering Software Co.Ltd.
2026-10-04 00:04:20 +08:00
* 作 者: 谢真
* 创建时间: 2008-12-01
* 描 述: 桩
* 归属项目: 给排水
2026-09-28 15:28:50 +08:00
=============================================================================*/
#if _MSC_VER > 1000
#pragma once
#endif
namespace TStake
{
enum StakeType
{
eVerLine = 0,
eCircle = 1,
eCross = 2,
eLineLeft = 0,
eLineRight = 1,
eLineCen = 2,
};
}
#include "dbSymbolAnnotate.h"
class PS_EXP TDbStake : public TDbSymbWithText
{
DECLARE_TENTBASE();
ACRX_DECLARE_MEMBERS(TDbStake);
public:
TDbStake();
virtual ~TDbStake();
public:
2026-10-04 00:04:20 +08:00
//设置桩位置
2026-09-28 15:28:50 +08:00
void SetPositon(const AcGePoint3d &pt);
2026-10-04 00:04:20 +08:00
//设置文字
2026-09-28 15:28:50 +08:00
void SetText(LPCTSTR lpChar,double dValue);
2026-10-04 00:04:20 +08:00
//设置引线长度
2026-09-28 15:28:50 +08:00
void SetDerviLineLen(double dLen);
2026-10-04 00:04:20 +08:00
//设置引出距离
2026-09-28 15:28:50 +08:00
void SetDerviDis(double dDis);
2026-10-04 00:04:20 +08:00
//设置桩标注类型
2026-09-28 15:28:50 +08:00
void SetStakeType(int nType);
2026-10-04 00:04:20 +08:00
//设置桩放置类型
2026-09-28 15:28:50 +08:00
void SetStakeLablePlace(int nType);
2026-10-04 00:04:20 +08:00
//设置桩放置方向
2026-09-28 15:28:50 +08:00
void SetStakeDir(const AcGeVector3d &vt);
2026-10-04 00:04:20 +08:00
//设置桩比例系数
2026-09-28 15:28:50 +08:00
void SetStakeScale(double dScale = 1.0);
2026-10-04 00:04:20 +08:00
//修改桩前缀
2026-09-28 15:28:50 +08:00
void ChangeStakeBeforeChar(LPCTSTR lpChar);
2026-10-04 00:04:20 +08:00
//设置小数点位数
2026-09-28 15:28:50 +08:00
void SetTextDecimal(int nNum);
2026-10-04 00:04:20 +08:00
//设置文字旋转角度
2026-09-28 15:28:50 +08:00
void SetTextAng(double dAng);
2026-10-04 00:04:20 +08:00
//得到插入点
2026-09-28 15:28:50 +08:00
AcGePoint3d GetLocation();
2026-10-04 00:04:20 +08:00
//得到当前文字
2026-09-28 15:28:50 +08:00
void GetText(CString &sText);
2026-10-04 00:04:20 +08:00
//得到引线长度
2026-09-28 15:28:50 +08:00
double GetDerviLineLen();
2026-10-04 00:04:20 +08:00
//得到引出距离
2026-09-28 15:28:50 +08:00
double GetDerviDis();
2026-10-04 00:04:20 +08:00
//得到标注类型
2026-09-28 15:28:50 +08:00
int GetStakeType();
2026-10-04 00:04:20 +08:00
//得到桩放置类型
2026-09-28 15:28:50 +08:00
int GetStakeLablePlace();
2026-10-04 00:04:20 +08:00
//得到桩的值
2026-09-28 15:28:50 +08:00
double GetStakeValue();
2026-10-04 00:04:20 +08:00
//得到桩号前缀
2026-09-28 15:28:50 +08:00
void GetStakeBeforeChar(CString &sValue);
2026-10-04 00:04:20 +08:00
//得到小数点位数
2026-09-28 15:28:50 +08:00
int GetDecimalNum();
2026-10-04 00:04:20 +08:00
//得到文字旋转角度
2026-09-28 15:28:50 +08:00
double GetTextAng();
2026-10-04 00:04:20 +08:00
//从ENTITY派生
2026-09-28 15:28:50 +08:00
public:
virtual Acad::ErrorStatus subGetClassID(CLSID* pClsid) const;
virtual Acad::ErrorStatus dwgInFields (AcDbDwgFiler*);
virtual Acad::ErrorStatus dwgOutFields(AcDbDwgFiler*) const;
virtual Acad::ErrorStatus dxfInFields (AcDbDxfFiler*);
virtual Acad::ErrorStatus dxfOutFields(AcDbDxfFiler*) const;
virtual Acad::ErrorStatus subGetGripPoints(AcGePoint3dArray& gripPoints,
AcDbIntArray& osnapModes,
AcDbIntArray& geomIds) const;
virtual Acad::ErrorStatus subGetStretchPoints(AcGePoint3dArray & stretchPoints) const;
virtual Acad::ErrorStatus subMoveGripPointsAt(const AcDbIntArray& indices,
const AcGeVector3d& offset);
virtual Acad::ErrorStatus subMoveStretchPointsAt(const AcDbIntArray& indices,
const AcGeVector3d& offset);
virtual Acad::ErrorStatus subTransformBy(const AcGeMatrix3d& xform);
2026-10-04 00:04:20 +08:00
//tangent 派生
2026-09-28 15:28:50 +08:00
virtual Acad::ErrorStatus ExplodeOrDraw2d(XExplodeDraw &dc) const;
virtual int GetFirstVersion()const{return 8;}
virtual TSubText* HitTestText(XPoint pt)const {return NULL;};
private:
Acad::ErrorStatus ExplodeOrDraw2dStake(XExplodeDraw &dc) const;
Acad::ErrorStatus ExplodeOrDraw2dStakeText(XExplodeDraw &dc) const;
private:
2026-10-04 00:04:20 +08:00
const static Adesk::UInt8 g_nVersion; //版本控制
int m_nStakeType; //桩类型 竖条 圆点 十字叉
int m_nLablePosion; //标注位置 居左,右,中
AcGePoint3d m_ptPositon; //桩所在位置
AcGeVector3d m_vtDir; //标注的方向
double m_dLineLen; //引线长度
double m_dDerviDis; //引出距离
CString m_sText; //文字
double m_dScale; //桩的比例系数
2026-09-28 15:28:50 +08:00
2026-10-04 00:04:20 +08:00
CString m_sJoinChar; //连接字符
double m_dValue; //值
int m_nDecimal; //小数点位数
double m_dTextAng; //文字角度
2026-09-28 15:28:50 +08:00
};
#endif // !defined(AFX_DBSTAKE_H__E11FD32B_5178_404C_8A84_AB8A041C9B7C__INCLUDED_)