DwgConverter.h
上传用户:hell82222
上传日期:2013-12-19
资源大小:1872k
文件大小:3k
源码类别:

CAD

开发平台:

Visual C++

  1. //      KMCAD40-FileSwitch-DwgConverter.h-1.0 
  2. // DwgConverter.h: interface for the CDwgConverter class.
  3. //
  4. //////////////////////////////////////////////////////////////////////
  5. #if !defined(AFX_DWGCONVERTER_H__3B441884_C368_4A86_A7F2_52D615BE8FEE__INCLUDED_)
  6. #define AFX_DWGCONVERTER_H__3B441884_C368_4A86_A7F2_52D615BE8FEE__INCLUDED_
  7. #if _MSC_VER > 1000
  8. #pragma once
  9. #endif // _MSC_VER > 1000
  10. #include "stdafx.h"
  11. #include "Converter.h"
  12. #include "CommandInfo.h"
  13. #include "CShow.h"
  14. #include "KmMatch.h"
  15. #include "KmDim.h"
  16. typedef struct tagENTDWGHEAD
  17. {
  18. short scolor;
  19. short swidth;
  20. double dscale;
  21. AD_OBJHANDLE hltype;
  22. AD_OBJHANDLE hlayer;
  23. }ENTDWGHEAD;
  24. class CDwgConverter : public CConverter  
  25. {
  26. public:
  27. CDwgConverter(CCommandInfo* pCommand);
  28. virtual ~CDwgConverter();
  29. public:
  30. BOOL BeginConverter();
  31. BOOL EndConverter();
  32. BOOL allocateadptrs(void); //为DWG读取包申请内存空间.
  33. void freeadptrs(void); //为DWG读取包释放内存空间.
  34. public:
  35. CShow* m_pTextCalcShow; //用于计算文本外接矩形的显示
  36. AD_DB_HANDLE m_dwghandle;
  37. CCommandInfo* m_pCommand;
  38. AD_VMADDR m_DataVassel;
  39. // AD_OBJHANDLE m_Shape;
  40. PAD_DWGHDR adhd; //adhd -- header structure
  41. PAD_ENT_HDR adenhd; //adenhd -- entity header structure
  42. PAD_ENT aden; //aden -- entity body structure
  43. PAD_OBJ_HDR adobhd;
  44. PAD_OBJ adob;
  45. PAD_TB adtb; //adtb -- union containing the various table structures
  46. PAD_XD adxd; //adxd -- extended data structure
  47. short sReturnValue;
  48. long  m_lShapeIndex;
  49. ENTDWGHEAD m_enthead;
  50. void AddObject();
  51. void GetAppHandle(AD_OBJHANDLE* objhandle);
  52. public:
  53. void WriteEnthead(short scolor,short swidth,double dscale,AD_OBJHANDLE& hltype,AD_OBJHANDLE& hlayer);
  54. void SetBlockDataVassel(AD_OBJHANDLE handle);
  55. void SetModelDataVassel();
  56. void ConverterEntity_AdLine(double x1,double y1,double z1,double x2,double y2,double z2);
  57. void ConverterEntity_AdCircle(double x1,double y1,double z1,double ra);
  58. void ConverterEntity_AdArc(double x1,double y1,double z1,double radius,double ba,double ea);
  59. void ConverterEntity_AdText(S_TEXT* text);
  60. void ConverterEntity_AdInsert(double x0,double y0,double z0,double xs,double ys,double zs,double ang,AD_OBJHANDLE handle);
  61. void ConverterEntity_AdSolid(short scolor,double x1,double y1,double x2,double y2,double x3,double y3,double x4,double y4);
  62. void ConverterKmLegend(double x0,double y0,double dx,double dy);
  63. void AddEndBlkSign();
  64. void AddBegBlkSign(double x0,double y0,double z0);
  65. BOOL ConverterEntity_KmBlockdef(CString strName,CMatch2* match);
  66. BOOL ConverterEntity_AdDimHead(KmDim* pDim);
  67. BOOL ConverterEntity_AdSimpleDim(KmDim* pDim,KmPoint p1,KmPoint p2,KmPoint p3,double dAngle,AD_OBJHANDLE handle,AD_OBJHANDLE hDimStyle,AD_VMADDR blob);
  68. BOOL ConverterEntity_AdRadiusDim(KmDim* pDim,KmPoint p1,KmPoint p2,AD_OBJHANDLE handle,AD_OBJHANDLE hDimStyle,AD_VMADDR blob);
  69. BOOL ConverterEntity_AdDiameterDim(KmDim* pDim,KmPoint p1,KmPoint p2,AD_OBJHANDLE handle,AD_OBJHANDLE hDimStyle,AD_VMADDR blob);
  70. BOOL ConverterEntity_AdAngleDim(KmDim* pDim,KmPoint p1,KmPoint p2,KmPoint p3,KmPoint p4,KmPoint p5,AD_OBJHANDLE handle,AD_OBJHANDLE hDimStyle,AD_VMADDR blob);
  71. CString ConverterTabEntName(CString strName);
  72. };
  73. #endif // !defined(AFX_DWGCONVERTER_H__3B441884_C368_4A86_A7F2_52D615BE8FEE__INCLUDED_)