BIMHome v1.0.0
BIMHome接口文档说明
Public 成员函数 | 静态 Public 成员函数 | 静态 Public 属性 | Private 成员函数 | Private 属性 | 所有成员列表
dxfAnalysis类 参考

#include <dxfAnalysis.h>

类 dxfAnalysis 继承关系图:

Public 成员函数

virtual void add3dFace (const DRW_3Dface &data) override
 从libdxfrw解析出来的接口中读取3Dface,并存入自己的类中
 
void addAngularDim (const Base::Vector3d &textLocn, const Base::Vector3d &lineLocn, const Base::Vector3d &extLine1End, const Base::Vector3d &extLine2End, const Base::Vector3d &apexPoint, char *dimText, int userPosition, int dimArrowStyle, Base::Color dimTextColor, Base::Color dimHorizonColor, Base::Color dimVerticalColor, double arrowSize, double textSize)
 自定义添加角度标注
 
virtual void addAppId (const DRW_AppId &data) override
 从libdxfrw解析出来的接口中读取AppId,并存入自己的类中
 
virtual void addArc (const DRW_Arc &data) override
 从libdxfrw解析出来的接口中读取Arc,并存入自己的类中
 
DxfArcaddArc (DxfBlock *block, const Base::Vector3d &center, double radius, double angle1, double angle2, bool reversed)
 自定义添加圆弧
 
void addArchTickArrowBlock ()
 建筑标记
 
virtual void addBlock (const DRW_Block &data) override
 从libdxfrw解析出来的接口中读取Block,并存入自己的类中
 
DxfBlockaddBlock (const std::string &name, const Base::Vector3d &iPt)
 
void addBlockEntity (DxfBlock *pBlock)
 
virtual void addCircle (const DRW_Circle &data) override
 从libdxfrw解析出来的接口中读取Circle,并存入自己的类中
 
DxfCircleaddCircle (DxfBlock *block, const Base::Vector3d &center, double radius, bool needScale=true)
 
void addClosedBlankArrowBlock ()
 空心闭合
 
virtual void addComment (const char *comment) override
 从libdxfrw解析出来的接口中读取comment
 
void addComplexLineTextStyle ()
 
void addDatumFilledArrowBlock ()
 基准三角形
 
void addDiametricDim (const Base::Vector3d &textLocn, const Base::Vector3d &arcPoint1, const Base::Vector3d &arcPoint2, char *dimText, int userPosition, int dimArrowStyle, Base::Color dimTextColor, Base::Color dimHorizonColor, Base::Color dimVerticalColor, double arrowSize, double textSize)
 添加自定义标注信息
 
virtual void addDimAlign (const DRW_DimAligned *data) override
 从libdxfrw解析出来的接口中读取DimAligned,并存入自己的类中
 
void addDimAligned (const Base::Vector3d &textLocn, const Base::Vector3d &lineLocn, const Base::Vector3d &extLine1Start, const Base::Vector3d &extLine2Start, char *dimText, double angle, int userPosition, int dimArrowStyle, Base::Color dimTextColor, Base::Color dimHorizonColor, Base::Color dimVerticalColor, double arrowSize, double textSize)
 
virtual void addDimAngular (const DRW_DimAngular *data) override
 从libdxfrw解析出来的接口中读取DimAngular,并存入自己的类中
 
virtual void addDimAngular3P (const DRW_DimAngular3p *data) override
 从libdxfrw解析出来的接口中读取DimAngular3p,并存入自己的类中
 
virtual void addDimDiametric (const DRW_DimDiametric *data) override
 从libdxfrw解析出来的接口中读取DimDiametric,并存入自己的类中
 
void addDimensionArrowBlock ()
 添加标注箭头块
 
virtual void addDimLinear (const DRW_DimLinear *data) override
 从libdxfrw解析出来的接口中读取DimLinear,并存入自己的类中
 
virtual void addDimOrdinate (const DRW_DimOrdinate *data) override
 从libdxfrw解析出来的接口中读取DimOrdinate,并存入自己的类中
 
virtual void addDimRadial (const DRW_DimRadial *data) override
 从libdxfrw解析出来的接口中读取DimRadial,并存入自己的类中
 
virtual void addDimStyle (const DRW_Dimstyle &data) override
 从libdxfrw解析出来的接口中读取Dimstyle,并存入自己的类中
 
void addDimStyle (DxfDimStyle *)
 
void addDotArrowBlock ()
 
 
void addDotBlankArrowBlock ()
 空心圆
 
void addDotSmallArrowBlock ()
 小点
 
virtual void addEllipse (const DRW_Ellipse &data) override
 从libdxfrw解析出来的接口中读取Ellipse,并存入自己的类中
 
void addEntity (Base::Vector3d basePt, const std::vector< DxfEntity * > &entities, double scale=1.0, double rotate=0.0, double hatchScale=1.0)
 添加实体集合
 
virtual void addHatch (const DRW_Hatch *data) override
 从libdxfrw解析出来的接口中读取Hatch,并存入自己的类中
 
virtual void addHeader (const DRW_Header *data) override
 从libdxfrw解析出来的接口中读取Header,并存入自己的类中
 
virtual void addImage (const DRW_Image *data) override
 从libdxfrw解析出来的接口中读取Image,并存入自己的类中
 
virtual void addInsert (const DRW_Insert &data) override
 从libdxfrw解析出来的接口中读取Insert,并存入自己的类中
 
void addInsert (const std::string &name, const Base::Vector3d &iPt, double angle)
 
virtual void addKnot (const DRW_Entity &data) override
 从libdxfrw解析出来的接口中读取Entity,并存入自己的类中
 
virtual void addLayer (const DRW_Layer &data) override
 从libdxfrw解析出来的接口中读取Layer,并存入自己的类中
 
void addLayer (const std::string &layerName)
 通过名称添加一个Layer
 
virtual void addLayout (const DRW_Layout &data) override
 从libdxfrw解析出来的接口中读取Layout,并存入自己的类中
 
void addLeader (const char *leaderType, const Base::Vector3d &textPt, const Base::Vector3d &tailPt, const Base::Vector3d &dxfPt, TechDraw::DxfEntity *bubble, TechDraw::DxfText *label, TechDraw::DxfPolyline *leader, double pagescale, double rotateAngle, double fontHeight, double inkTextWidth, double circleTextWidth, double leaderArrowOffsetX, double leaderArrowOffsetY, const std::vector< TechDraw::DxfText * > &attachedLabels, const std::vector< DxfLine * > &attachedLines, bool showLine, const std::vector< Base::Vector3d > &leaderInterval, double arrowSize, Base::Color dimTextColor, Base::Color dimLineColor)
 
virtual void addLeader (const DRW_Leader *data) override
 从libdxfrw解析出来的接口中读取Leader,并存入自己的类中
 
virtual void addLine (const DRW_Line &data) override
 从libdxfrw解析出来的接口中读取Line,并存入自己的类中
 
DxfLineaddLine (DxfBlock *block, const Base::Vector3d &position1, const Base::Vector3d &position2, double lineWidth, bool needScale=true)
 自定义添加单行线条
 
void addLineDim (const Base::Vector3d &textLocn, const Base::Vector3d &lineLocn, const Base::Vector3d &extLine1Start, const Base::Vector3d &extLine2Start, char *dimText, double angle, int userPosition, int dimArrowStyle, Base::Color dimTextColor, Base::Color dimHorizonColor, Base::Color dimVerticalColor, double arrowSize, double textSize)
 自定义添加线性标注
 
virtual void addLType (const DRW_LType &data) override
 从libdxfrw解析出来的接口中读取LType,并存入自己的类中
 
virtual void addLWPolyline (const DRW_LWPolyline &data) override
 从libdxfrw解析出来的接口中读取LWPolyline,并存入自己的类中
 
virtual void addMText (const DRW_MText &data) override
 从libdxfrw解析出来的接口中读取MText,并存入自己的类中
 
void addMText (DxfBlock *block, const std::string &text, const Base::Vector3d &position2, double height, int widthscale, double angle=0.0)
 自定义添加多行文字
 
void addNoneArrowBlock ()
 添加NONE
 
void addObliqueArrowBlock ()
 倾斜
 
void addOpenArrowBlock ()
 打开
 
virtual void addPlotSettings (const DRW_PlotSettings *data) override
 从libdxfrw解析出来的接口中读取PlotSettings,并存入自己的类中
 
void addPoint ()
 添加Point
 
virtual void addPoint (const DRW_Point &data) override
 从libdxfrw解析出来的接口中读取Point,并存入自己的类中
 
virtual void addPolyline (const DRW_Polyline &data) override
 从libdxfrw解析出来的接口中读取Polyline,并存入自己的类中
 
DxfPolylineaddPolyLine (DxfBlock *block, const std::vector< std::pair< DxfVector, double > > &positionList, bool bClosed, double lineWidth, bool needScale=true)
 自定义添加多段线
 
void addRadialDim (const Base::Vector3d &centerPoint, const Base::Vector3d &textLocn, const Base::Vector3d &arcPoint, char *dimText, int userPosition, int dimArrowStyle, Base::Color dimTextColor, Base::Color dimHorizonColor, Base::Color dimVerticalColor, double arrowSize, double textSize)
 自定义添加半径标注
 
void addRay ()
 根据传入的拓扑结构添加Ray
 
virtual void addRay (const DRW_Ray &data) override
 从libdxfrw解析出来的接口中读取Ray,并存入自己的类中
 
virtual void addSolid (const DRW_Solid &data) override
 从libdxfrw解析出来的接口中读取Solid,并存入自己的类中
 
DxfSolidaddSolid (DxfBlock *block, const Base::Vector3d &v1, const Base::Vector3d &v2, const Base::Vector3d &v3, const Base::Vector3d &v4, bool needScale)
 
void addSpline ()
 根据传入的拓扑结构添加Spline
 
virtual void addSpline (const DRW_Spline *data) override
 从libdxfrw解析出来的接口中读取Spline,并存入自己的类中
 
void addSquareArrowBlock ()
 方框
 
void addTable (const std::string &tableName, const Base::Vector3d &tablePosition, int rowCount, int colCount, std::vector< double > rowWidths, double colHeight, const std::map< int, std::map< int, std::string > > &tableContents, const std::vector< TableSpanInfo > &TableSpandata)
 todo
 
virtual void addText (const DRW_Text &data) override
 从libdxfrw解析出来的接口中读取Text,并存入自己的类中
 
void addText (DxfBlock *block, const std::string &text, const Base::Vector3d &position1, const Base::Vector3d &position2, double height, double angle=0.0, int colorIndex=0, int widthscale=1.0)
 自定义添加单行文字
 
void addTextStyle ()
 
virtual void addTextStyle (const DRW_Textstyle &data) override
 从libdxfrw解析出来的接口中读取Textstyle,并存入自己的类中
 
virtual void addTrace (const DRW_Trace &data) override
 从libdxfrw解析出来的接口中读取Trace,并存入自己的类中
 
virtual void addViewport (const DRW_Viewport &data) override
 从libdxfrw解析出来的接口中读取Viewport,并存入自己的类中
 
virtual void addVport (const DRW_Vport &data) override
 从libdxfrw解析出来的接口中读取Vport,并存入自己的类中
 
void addXLine ()
 根据传入的拓扑结构添加XLine
 
virtual void addXline (const DRW_Xline &data) override
 从libdxfrw解析出来的接口中读取Xline,并存入自己的类中
 
void calculateBorder ()
 
void copyTemplateEntities (double step, int num=0, bool isSplit=false, const std::string &dir="X", const std::string &graphicsName="")
 拷贝图框
 
 dxfAnalysis ()
 
virtual void endBlock () override
 读取一个块结束
 
DxfLayerFindLayerByName (const std::string &name)
 通过名称查找Layer
 
float getAmplifyScale ()
 
void getArrowSizeAndTextSize (const std::string &styleName, const std::map< std::string, DxfDimStyle * > &styleContainer, double &arrowSizeInDxf, double &textSizeInDxf)
 获取箭头大小、文字大小
 
std::string getBlockByHandle (const std::string &handle)
 通过句柄找块名
 
DxfBlockgetBlockByName (const std::string &name)
 
const std::string & getCodePage ()
 得到Page的编码
 
const std::vector< DxfBlock * > & getCopyBlockContainer ()
 
const std::vector< DxfInsert * > & getCopyBlockInsertContainer ()
 
const std::vector< DxfEntity * > & getCopyEntityContainer ()
 
double getCurrentCopyPageXDis ()
 获取当前复制的最新图框的相对X坐标位置
 
double getCurrentCopyPageYDis ()
 获取当前复制的最新图框的相对Y坐标位置
 
const std::vector< DxfBlock * > & getCustomBlockContainer ()
 
const std::vector< DxfInsert * > & getCustomBlockInsertContainer ()
 
const std::vector< DxfEntity * > & getCustomEntityContainer ()
 
const std::string & getDimStyleInHeader ()
 得到DimStyle
 
int getDXFVersion ()
 
DxfHeadergetHeader () const
 返回dxf头部信息
 
double getHeight () const
 
const Base::Vector3dgetMaxExt ()
 得到从dxf或者dwg文件读取到的边界最大值
 
Base::Vector3d getMaxExtAfterCopy () const
 拷贝后的边界最大值
 
const Base::Vector3dgetMinExt ()
 得到从dxf或者dwg文件读取到的边界最小值
 
Base::Vector3d getMinExtAfterCopy () const
 拷贝后的边界最小值
 
const std::vector< DxfBlock * > & getTemplateBlockContainer ()
 得到所有从模板获得的块数组
 
const std::vector< DxfInsert * > & getTemplateBlockInsertContainer ()
 
const std::vector< DxfEntity * > & getTemplateEntityContainer ()
 得到所有从模板实体数组
 
std::vector< DxfLayout * > getTemplateLayoutContainer ()
 
double getTemplateScale ()
 
const std::string & getTextStyleInHeader ()
 得到TextStyle
 
DxfVPointgetVPoint () const
 返回dxfVp信息
 
double getWidth () const
 
bool isReadFile ()
 是否已经从文件读取过
 
virtual void linkImage (const DRW_ImageDef *data) override
 从libdxfrw解析出来的接口中读取ImageDef,并存入自己的类中
 
void loadAllFromPatFile (const QString &fileName)
 加载所有Pat模板
 
void modifyIntValueInHeader (const std::string &, int var)
 修改Header中指定字段的值
 
bool readFile (const std::string &fileName)
 根据传入的文件名读取文件
 
void readString (const std::string &buf)
 
void releaseCopiedTemplateEntities ()
 如果需要删除拷贝的图框数据,直接从m_AllCopyBlockContainer等三个数组中删除就行
 
void removeAllEntities ()
 删除实体
 
void removeCopyEntities ()
 清空临时数组中拷贝的数据 m_AllCopyBlockContainer等三个数组中存放了全部拷贝的图框数据
 
void removeCustomEntities ()
 删除用户自定义实体
 
void setAmplifyScale (float times)
 
virtual void setBlock (const int handle) override
 
void setDimensionStyleName (const std::string &name)
 
void setEntityAttribute (DxfEntity *entity, const DRW_Entity &data)
 为DXF实体设置属性
 
void setMaxExt (const Base::Vector3d &)
 设置边界最大值
 
void setMaxExtAfterCopy (const Base::Vector3d &)
 设置拷贝后的边界最大值
 
void setMinExt (const Base::Vector3d &)
 设置边界最小值
 
void setMinExtAfterCopy (const Base::Vector3d &)
 设置拷贝后的边界最小值
 
void setTemplateEntityContainer (const std::vector< DxfEntity * > &entities)
 
void setTemplateGraphicsName (const std::string &name)
 
void setTemplateScale (double scale)
 设置XScale和YScale的比例
 
void setTextBigFontFamily (const std::string &name)
 
void setTextFontFamily (const std::string &name)
 
void setTextStyleName (const std::string &name)
 
void setTextWidthFactor (const std::string &name, float factor)
 
void setTopoStructData (const std::vector< TechDraw::DxfEntity * > &entityVec)
 设置拓扑结构数据
 
virtual void writeAppId () override
 将AppId文件写入dxf文件
 
virtual void writeBlockRecords () override
 将BlockRecords文件写入dxf文件
 
virtual void writeBlocks () override
 将Block文件写入dxf文件
 
virtual void writeDimstyles () override
 将Dimstyles文件写入dxf文件
 
bool writeDwgFile (const QString &fileName, TechDraw::DwgExportType type)
 读取dwg文件
 
bool writeDxfFile (const QString &fileName, TechDraw::DxfExportType type)
 读取dxf文件
 
virtual void writeEntities () override
 将Header文件写入dxf文件
 
virtual void writeHeader (DRW_Header &data) override
 将Header文件写入dxf文件
 
virtual void writeLayers () override
 将Layers文件写入dxf文件
 
virtual void writeLTypes () override
 将LTypes文件写入dxf文件
 
virtual void writeObjects () override
 将Objects文件写入dxf文件
 
std::string writeString ()
 
virtual void writeTextstyles () override
 将TextStyle文件写入dxf文件
 
virtual void writeVports () override
 将Vports文件写入dxf文件
 
 ~dxfAnalysis ()
 

静态 Public 成员函数

static TechDraw::DxfPatterngetPatternByName (const std::string &patternName)
 

静态 Public 属性

static std::map< std::string, DxfPattern * > m_DxfPatternLists
 

Private 成员函数

void addTextStyle (const std::vector< DxfEntity * > &entities, std::vector< std::string > &styles)
 添加TextStyle
 
void addToTemplateContainer (DxfEntity *entity, const DRW_Entity &data)
 将实体加入数组
 
QString cadUnicode (const QString &str)
 编码转换
 
bool convDimensionData (const DRW_Dimension *data, DxfVector &definitionPoint, DxfVector &middleOfText, VAlign &valign, HAlign &halign, MTextLineSpacingStyle &lineSpacingStyle, double &lineSpacingFactor, std::string &text, std::string &style, double &angle)
 处理标注数据
 
int decodeNum (const std::string &s, int *b)
 解码数字
 
std::string decodeText (int c)
 解码文字
 
void decreaseTotal (int &total)
 
std::string encodeNum (int c)
 编码数字
 
std::string encodeText (const std::string &stmp)
 编码文字
 
QByteArray escapeUnicode (const QString &str)
 编码转换
 
void getBlocksMinAndMax (TechDraw::DxfVector &MinV, TechDraw::DxfVector &MaxV)
 获取所有块的边界最大最小值
 
void getEntitiesMinAndMax (TechDraw::DxfVector &MinV, TechDraw::DxfVector &MaxV)
 获取所有Entity的边界最大最小值
 
std::string getFontFromStyle (const std::string &style) const
 根据传入的样式返回样式对应的字体
 
void getTableCombInfo (bool &totalTableWidth, int &colNeedCut, int &colCount, int row, const std::vector< TableSpanInfo > &TableSpandata)
 获得表格详细信息
 
double getTableWidth (int start, int end, const std::vector< double > &rowWidths)
 获得表格宽度
 
void loadPatDir (const QString &dirName)
 加载所有Pat模板
 
bool readDwgFile (const std::string &fileName)
 读取dwg文件
 
bool readDxfFile (const std::string &fileName)
 读取dxf文件
 
void releaseDxfPatternLists ()
 释放dxf样式列表
 
double round (const double v, const double precision)
 对传入的数值做计算后四舍五入
 
void setDimensionArrowInfo (DxfDimension *dim, const DRW_DimLinear *data)
 
void setTextWidthFactor (DxfText *text)
 设置文字的宽度因子
 
void sortHatchLoop (DxfEntityContainer *hatchLoop)
 填充线条排序
 
std::string toNativeString (const std::string &data)
 将DXF编码的字符串转换为本机Unicode字符串
 
std::string toUtf8 (const std::string &s)
 编码转换
 

Private 属性

std::vector< DxfBlock * > m_AllCopyBlockContainer
 存放块的数组
 
std::vector< TechDraw::DxfInsert * > m_AllCopyBlockInsertContainer
 存放块插入点的数组
 
std::vector< DxfEntity * > m_AllCopyEntityContainer
 存放实体的数组
 
float m_Amplify
 存放page放大或缩小倍数
 
std::string m_CodePage
 存放Page的编码
 
double m_Coefficient
 像素值和磅之间的系数
 
std::vector< DxfBlock * > m_CopyBlockContainer
 存放块的数组
 
std::vector< TechDraw::DxfInsert * > m_CopyBlockInsertContainer
 存放块插入点的数组
 
std::vector< DxfEntity * > m_CopyEntityContainer
 存放实体的数组
 
std::vector< DxfBlock * > m_CustomBlockContainer
 存放用户自定义块的数组
 
std::vector< TechDraw::DxfInsert * > m_CustomBlockInsertContainer
 存放用户自定义块插入点的数组
 
std::vector< DxfEntity * > m_CustomEntityContainer
 存放用户自定义实体的
 
std::map< std::string, std::string > m_DimensionArrowBlockHandleMap
 
std::map< std::string, DxfDimStyle * > m_DimensionStyleContainer
 存放DimensionStyle的数组
 
std::string m_DimensionStyleName
 
std::string m_DimStyleInHeader
 存放DimStyle
 
dxfW * m_DxfWriter
 写dxf的指针
 
std::map< std::string, std::string > m_FontList
 字体列表
 
DxfHeaderm_Header
 dxf头指针
 
std::vector< DxfLayer * > m_LayerContainer
 存放Layer的数组
 
std::vector< DxfLType * > m_LTypeContainer
 存放LType的数组
 
Base::Vector3d m_MaxExt
 存放从dxf或者dwg中读取出来的图形范围最大值
 
Base::Vector3d m_MaxExtAfterCopy
 存放图框复制后图形最大范围,先单独存一个变量中,以免影响目前的管井出图逻辑
 
Base::Vector3d m_MinExt
 存放从dxf或者dwg中读取出来的图形范围最小值
 
Base::Vector3d m_MinExtAfterCopy
 存放图框复制后图形最小范围,先单独存一个变量中,以免影响目前的管井出图逻辑
 
std::vector< DxfBlock * > m_TableBlockContainer
 存放块表数据
 
std::vector< DxfBlock * > m_TemplateBlockContainer
 存放块的数组
 
std::vector< TechDraw::DxfInsert * > m_TemplateBlockInsertContainer
 存放块插入点的数组
 
std::vector< DxfEntity * > m_TemplateEntityContainer
 存放实体的数组
 
std::vector< DxfLayout * > m_TemplateLayoutContainer
 存放Layout的数组
 
std::string m_TextBigFontFamily
 
std::string m_TextFontFamily
 
std::map< std::string, DxfTextStyle * > m_TextStyleContainer
 存放TextStyle的数组
 
std::string m_TextStyleInHeader
 存放TextStyle
 
std::string m_TextStyleName
 
float m_TextWidthFactor
 
int m_Version
 当前dxf的版本
 
DxfVPointm_VPoint
 vp指针
 
double m_XScale
 X方向缩放比例
 
double m_YScale
 Y方向缩放比例
 
double mCurrentGraphBaseX
 
double mCurrentPageX
 
double mCurrentPageY
 
int mGraphCount
 分图功能用到的成员变量
 
double mGroupGraphMaxX
 
std::string mStrDrawName
 

该类的文档由以下文件生成: