chdbsurfd.h
来自「能在MDT5/6环境下对已经存在地曲面进行全部和局部区域展开」· C头文件 代码 · 共 104 行
H
104 行
/////////////////////////////////////////////
// ChDbSurfD custom object.
#if !defined(ARX__CHDBSURFD_H__20040824_094708)
#define ARX__CHDBSURFD_H__20040824_094708
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "dbmain.h"
#include "CSDAreaMethod.h"
#pragma warning(disable: 4275 4251)
#ifdef _SURFDOBJ_
#define DLLIMPEXP __declspec(dllexport)
#else
#define DLLIMPEXP
#endif
#ifndef CHSURFDOBJ_DBXSERVICE
#define CHSURFDOBJ_DBXSERVICE "CHSURFDOBJ_DBXSERVICE"
#endif
// 曲面展开数据库对象
class DLLIMPEXP ChDbSurfD : public AcDbObject
{
public:
ACRX_DECLARE_MEMBERS(ChDbSurfD);
// Constructor / Destructor
ChDbSurfD();
virtual ~ChDbSurfD();
//{{AFX_ARX_METHODS(ChDbSurfD)
virtual Acad::ErrorStatus dwgOutFields(AcDbDwgFiler* pFiler) const;
virtual Acad::ErrorStatus dwgInFields(AcDbDwgFiler* pFiler);
//}}AFX_ARX_METHODS
// 展开对象初始化, 使用自身的展开数据初始化
Acad::ErrorStatus initialize();
// 展开对象初始化, 使用给定的数据初始化
Acad::ErrorStatus initialize(const AcDbHandle& hSurf,const CSDData& data);
// 设置展开对象名称
void setName(const CString& name) { mName = name; }
// 获取展开对象名称
void getName(CString& name) { name = mName; }
// 映射曲面上一点到展开平面上,注意op必须是曲面上的点,否则可能错误
Acad::ErrorStatus mapPointToD(
const AcGePoint3d& op,AcGePoint2d& dp);
Acad::ErrorStatus mapPointToD(
const AcGePoint3d& op,AcGePoint3d& dp);
// 如果bIfForcedMap=true,则当某个点不能映射时,继续映射下一个点,否则返回错误,dc置空
Acad::ErrorStatus mapPointsToD(
const AcGePoint3dArray& oc,AcGePoint2dArray& dc,bool bIfForcedMap=true);
Acad::ErrorStatus mapPointsToD(
const AcGePoint3dArray& oc,AcGePoint3dArray& dc,bool bIfForcedMap=true);
// 映射展开平面上一点到曲面上,成功返回true
Acad::ErrorStatus mapPointToO(
const AcGePoint2d& dp,AcGePoint3d& op);
Acad::ErrorStatus mapPointToO(
const AcGePoint3d& dp,AcGePoint3d& op);
Acad::ErrorStatus mapPointsToO(
const AcGePoint2dArray& dc,AcGePoint3dArray& oc,bool bIfForcedMap=true);
Acad::ErrorStatus mapPointsToO(
const AcGePoint3dArray& dc,AcGePoint3dArray& oc,bool bIfForcedMap=true);
void getCSDData(CSDData& data);
void getOSurf(AcDbHandle& hSurf);
Adesk::Boolean getCSDObj(CSDAreaISO& obj);
// 对象是否已经初始化
Adesk::Boolean isInitialized(void) const;
//{{AFX_ARX_DATA_ACCESS(ChDbSurfD)
//}}AFX_ARX_DATA_ACCESS
private:
//{{AFX_ARX_DATA(ChDbSurfD)
//}}AFX_ARX_DATA
AcDbHandle mhSurf; // 原曲面句柄
CSDData mData; // 展开数据
CSDAreaISO mCSDObj; // 展开对象
CString mName; // 对象名称
private:
void *operator new[](unsigned nSize) { return 0; }
void operator delete[](void *p) {};
void *operator new[](unsigned nSize, const char *file, int line) { return 0; }
};
#endif // !defined(ARX__CHDBSURFD_H__20040824_094708)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?