18#ifndef TECHDRAW_APP_IDRAWPAGE_H
19#define TECHDRAW_APP_IDRAWPAGE_H
25#include <boost/any.hpp>
26#include "Base/Meterial/Color.h"
27#include "Base/Vector3D.h"
28#include "Base/BoundBox.h"
33 class IDocumentObject;
43 enum class DxfExportType;
44 class IDocumentObject;
45 class AppDocObserverDelegate;
63 const std::string pageName,
64 const std::string templateName);
67 const std::string pageName,
68 const std::string templateName,
69 void* pAppDocDelegate =
nullptr,
70 void* pGuiDocDelegate =
nullptr);
550 virtual bool writeIDxfFile(
const std::string& fileName, TechDraw::DxfExportType type) = 0;
599 const std::string& text,
600 const std::string& scaletext,
602 const OriginOrientation& origin = OriginOrientation::GEOMETRICCENTER) = 0;
614 const std::string text,
636 std::string sketchName,
637 std::map<std::string, boost::any> data,
665 bool bScenePoint =
false) = 0;
681 double xCoeViewPostion,
double xCoeViewBoundingbox,
double xConstant,
682 double yCoeViewPostion,
double yCoeViewBoundingbox,
double yConstant) = 0;
696 const std::string& express,
double& xValue,
double& yValue) = 0;
721 double ampltfy = 1.0) = 0;
733 double longSideLength,
const std::string& text,
776 std::vector<double>& xDim,
777 std::vector<double>& yDim,
778 std::vector<CircleInfo>& circle) = 0;
793 const DimensionType& type,
848 std::vector<TechDraw::TableSpanInfo> spanData,
849 std::map<std::string, std::string>& rowheight,
850 std::map<std::string, std::string>& colWidth,
854 double totalTableWidth = 0) = 0;
863 virtual void getTableRowsAndCols(std::map<
int, std::map<int, std::string>> tabledata,
int& rows,
int& cols) = 0;
891 std::shared_ptr<TechDraw::IDrawView> parent,
文档接口类
Definition IDocument.h:43
Definition IDocumentObject.h:35
TechDraw中DxfEntity类
Definition DxfEntity.h:511
virtual void setDrawPageCallBack(std::function< void(int)> func)=0
绘制界面加载进度条回调函数
virtual std::string getScaleText(float times)=0
virtual void setITextBigFontfamily(const std::string &value)=0
设置文本大字体名称
virtual void setIScale(double obj)=0
设置图纸缩放比例
virtual void setTemplateAmplify()=0
virtual void setITemplateBorderOffset(double value)=0
设置模板边界的偏移距离(用于确定绘图范围)
virtual double getITemplateBorderOffset()=0
获取模板边界的偏移距离
virtual void LoadITemplteConstraint(TechDraw::IDrawView *temView)=0
virtual const char * getITextFontFamily()=0
获取文本字体名称
virtual double getIDimensionTextSizeInDxf()=0
获取 DXF 文件导出时尺寸标注的文本高度
virtual int removeIView(App::IDocumentObject *docObj)=0
删除视图对象
virtual IDrawView * loadIDrawViewPart(const DrawViewSectionParam ¶m)=0
通过投影参数构建投影视图
virtual const char * getITextBigFontfamily()=0
获取文本大字体名称
virtual double getITemplateStepInDxf()=0
获取复制图框间间距(单位mm)
virtual const char * getITextStyleName()=0
获取文本样式名称
virtual void setIDimensionArrowStyle(const std::string &value)=0
设置标注箭头的样式类型
virtual double getIScale()=0
获取图纸的缩放比例
virtual void setIInitialScaleTimes(double obj)=0
设置图纸的初始缩放倍数
virtual IDrawView * loadIDrawviewGeometryList(TechDraw::IDrawView *parentObj, std::vector< std::shared_ptr< Base::Geometry > > bGeolist, const DrawViewGeometryListParam ¶m)=0
添加Base::Geometry集合数据构成的绘制视图对象
virtual void setIDimensionTextSizeInDxf(double value)=0
尺寸标注的文本字体大小(mm)
virtual IDrawView * loadIDrawViewSection(const DrawViewSectionParam ¶m)=0
通过剖面图参数构建剖面图视图对象
virtual double getITempleteScale()=0
获取绘制中DrawPage的比例
virtual void setHatchScale(double value)=0
设置GraphicView中填充图案比例
virtual void setIMapLableLineToLineDistance(double value)=0
设置图注距离第一根下划线与第二根下划线的间距
virtual IDrawView * loadILabel(TechDraw::IDrawView *parentObj, const LabelParam ¶m)=0
绘制图注
virtual void setITemplateBalloon(TechDraw::IDrawView *parentToAttach, TechDraw::IDrawView *parentToMove, const FontAttribute &leaderFontAttr=FontAttribute(Base::Color(0, 1, 0)), const LineAttribute &leaderLineAttr=LineAttribute(Base::Color(0, 1, 0)), const FontAttribute &indexFontAttr=FontAttribute(Base::Color(0, 1, 0)), const LineAttribute &indexLineAttr=LineAttribute(Base::Color(0, 1, 0)), bool bScenePoint=false)=0
加载模版中引线标注
virtual double getIMapLableLineToLineDistance()=0
获取图注距离第一根下划线与第二根下划线的间距
virtual const char * getITemplateDrawName()=0
获取当前图框名称
virtual void getIPartDimensionData(TechDraw::IDrawView *pView, std::vector< double > &xDim, std::vector< double > &yDim, std::vector< CircleInfo > &circle)=0
virtual double getPageWidth() const =0
获得页面宽度
virtual void setITextSizeForPlottingScale(double value)=0
设置比例文字大小
virtual double getPageHeight() const =0
获得页面高度
virtual TechDraw::IDrawView * loadITrepan(TechDraw::IDrawView *parentObj, float l, float w, const LineAttribute &attr=LineAttribute())=0
virtual void setCADHatchScale(double value)=0
设置cad中填充图案比例
virtual bool getITemplateIsSplit()=0
获取分图状态
virtual void setITextWidthFactor(double value)=0
设置文本宽度缩放因子 @value 更新图纸中文本元素的横向显示比例
virtual const char * getIDimensionStyleName()=0
获取尺寸标注样式的名称
virtual void setIDDimensionTextToDistance(double value)=0
设置直径标注文本距离线的距离与字体大小的比例
virtual void setITemplate(App::IDocumentObject *obj)=0
设置模板对象
virtual std::map< std::string, std::string > getIDocumentParameter(App::IDocument *pDocument)=0
static App::IDocumentObject * create(App::IDocument *pDoc, const std::string pageName, const std::string templateName, void *pAppDocDelegate=nullptr, void *pGuiDocDelegate=nullptr)
virtual TechDraw::dxfAnalysis * getDxfAnalysis()=0
获得图框dxf对象指针
virtual void getTableRowsAndCols(std::map< int, std::map< int, std::string > > tabledata, int &rows, int &cols)=0
virtual void setIDimensionArrowSize(double value)=0
设置尺寸标注箭头的大小
virtual IDrawView * loadIElevation(IDrawView *parentObj, double longSideLength, const std::string &text, const FontAttribute &fontAttr=FontAttribute(), const LineAttribute &lineAttr=LineAttribute())=0
virtual IDrawView * loadIOptimizeTable(const TabelParam ¶m)=0
virtual double getPageLeft() const =0
获得页面左边定位
virtual int addIView(App::IDocumentObject *docObj)=0
添加视图对象
virtual void emitCopyTemplete()=0
复制图框信号
virtual void setITextStyleName(const std::string &value)=0
设置文本样式名称(HKR)
virtual void setIAmplify(double value)=0
设置绘图页比例和默认模版比例的倍数
virtual double getIMapLableToLineDistance()=0
获取图注文本距离第一根下划线间距
virtual void setIPolyLineLineWidth(double value)=0
设置图注第一条下划线多段线的线宽
virtual void updateAllViews(void)=0
更新所有视图对象
virtual void deleteAllViews()=0
删除所有视图对象
virtual std::vector< App::IDocumentObject * > getIAllViews(void)=0
获取绘制页上的所有视图对象列表
virtual void getChildPosition(const Base::Vector3d &pos, const Base::BoundBox3d &box, const std::string &express, double &xValue, double &yValue)=0
根据位置表达式计算位置
virtual void setITextSizeForDrawingTitle(double value)=0
设置图注文字大小
virtual std::string getChildPositionExpressRelativeMainView(double xCoeViewPostion, double xCoeViewBoundingbox, double xConstant, double yCoeViewPostion, double yCoeViewBoundingbox, double yConstant)=0
获取图注位置相对主视图位置计算表达式
virtual float getTimes(float times)=0
static App::IDocumentObject * create(App::IDocument *pDoc, const std::string pageName, const std::string templateName)
创建绘制页
virtual double getPageRight() const =0
获得页面右边定位
virtual IDrawView * loadITemplte(TechDraw::IDrawView *parent, std::string sketchName, std::map< std::string, boost::any > data, const DrawViewSketchTemplateParam ¶m)=0
virtual void setITableMapTextFontSize(double value)=0
设置表格中模板文字大小
virtual void setISketchTemplatePath(const std::string &value)=0
设置草图模板路径
virtual IDrawView * loadIText(IDrawView *parentObj, const std::string text, bool type=true, const FontAttribute &attr=FontAttribute())=0
加载文本视图
virtual double getITableMapTextFontSize()=0
获取表格中模板文字大小
virtual IDrawView * loadILine(IDrawView *parentObj, const Base::Vector3d &startPt, const Base::Vector3d &endPt, const LineAttribute &attr=LineAttribute(), double ampltfy=1.0)=0
绘制线条
virtual double getPageBottom() const =0
获得页面底部定位
virtual void setITemplateArrayNumber(int value)=0
设置每行/列放多少个图
virtual double getITextWidthFactor()=0
获取文本宽度缩放因子
virtual void redrawCommand()=0
重新绘制命令
virtual IDrawView * loadIRadiusOrDiameterDimension(IDrawView *parentObj, const DimensionType &type, double angle, double radius, const Base::Vector3d centerPt, const FontAttribute &fontAttr=FontAttribute(), const LineAttribute &lineAttr=LineAttribute())=0
virtual void setIMapLableToLineDistance(double value)=0
设置图注文本距离第一根下划线间距
virtual void setIGeometryListProperty(std::vector< std::shared_ptr< Base::Geometry > > &geolist, const LineAttribute &attr=LineAttribute())=0
virtual double getICurrentCopyPageXDis()=0
获取当前图框左下角坐标x值
virtual void setITempleteScale(double value)=0
设置绘制中DrawPage的比例(多次点击绘图命令时,恢复初始的比例)
virtual double getIAmplify()=0
获取绘图页比例和默认模版比例的倍数
virtual double getIPolyLineLineWidth()=0
获取多段线的线宽
virtual void readDimensionStyleInfo()=0
virtual void setITextFontFamily(const std::string &value)=0
设置文本字体名称
virtual void setITemplateDrawName(const std::string &value)=0
设置当前图框名称
virtual IDrawView * loadIAngleDimension(IDrawView *parentObj, double angle, const Base::Vector3d centerPt, double radius, const FontAttribute &fontAttr=FontAttribute(), const LineAttribute &lineAttr=LineAttribute())=0
virtual void setITemplateArrayDirInDxf(const std::string &value)=0
设置分图排列方向
virtual void getTableRowHeightColWidth(std::map< int, std::map< int, std::string > > tabledata, std::vector< TechDraw::TableSpanInfo > spanData, std::map< std::string, std::string > &rowheight, std::map< std::string, std::string > &colWidth, double fontsize, double minColWidth, double maxColWidth, double totalTableWidth=0)=0
virtual void setTemplateGraphicsName(const std::string &name) const =0
设置当前图框的分图组名称
virtual void setImDimensionTextToLineDistance(double value)=0
设置标注文本距离标注线的距离
virtual double getICurrentCopyPageYDis()=0
获取当前图框左下角坐标y值
virtual void addILabel(TechDraw::IDrawView *parentObj, const std::string &text, const std::string &scaletext, float dis, const OriginOrientation &origin=OriginOrientation::GEOMETRICCENTER)=0
视图添加文本和比例图注
virtual double getOneTemplatePageWidth()=0
计算单个模版宽度
virtual void addIParentObject(App::IDocumentObject *parentobj, App::IDocumentObject *childobj)=0
virtual int getITempleteDefalutScale()=0
获取模版绘图页加载的模版的默认放大倍数
virtual void setITemplateIsSplit(bool value)=0
设置是否需要分图
virtual IDrawView * loadIHatch(TechDraw::IDrawView *parentObj, TechDraw::DxfEntity *hatch, const double patScale, const double dxfScale)=0
virtual void setITemplateStepInDxf(double value)=0
设置复制图框间间距(单位mm)
virtual void setIDimensionStyleName(const std::string &value)=0
设置尺寸标注样式的名称
virtual double getITextSizeForPlottingScale()=0
获取比例文字大小
virtual double getIInitialScaleTimes()=0
获取图纸的初始缩放倍数
virtual IDrawView * loadIDimension(IDrawView *pView, const DrawViewDimensionParam ¶m)=0
virtual bool writeIDxfFile(const std::string &fileName, TechDraw::DxfExportType type)=0
写Dxf文件
virtual IDrawView * loadIIllustration(IDrawView *section, const std::vector< TechDraw::DxfEntity * > &data, const double &lfy=1.0)=0
virtual double getITextSizeForDrawingTitle()=0
获取图注文字大小
virtual void addILabelParentToChange(TechDraw::IDrawView *pParentobj, TechDraw::IDrawView *pScaleLabel)=0
比例视图的父类视图对象,为绘图界面修改比例同步View使用
virtual double getPageTop() const =0
获得页面顶部定位
virtual IDrawView * loadIBalloon(std::shared_ptr< TechDraw::IDrawView > parent, const DrawViewBallonParam ¶m)=0
Definition IDrawPage.h:53
Definition IDrawView.h:40
Definition dxfAnalysis.h:57
Definition BaseFigureFactory.h:28
Definition BaseFigureFactory.h:24
Definition ArrowPropEnum.h:26
Definition DrawViewParameterDefine.h:141
Definition DrawViewParameterDefine.h:191
Definition DrawViewParameterDefine.h:329
Definition DrawViewParameterDefine.h:267
Definition DrawViewParameterDefine.h:311
Definition DrawViewParameterDefine.h:81
Definition DrawViewParameterDefine.h:532
Definition DrawViewParameterDefine.h:112
Definition DrawViewParameterDefine.h:460