18#ifndef TECHDRAW_SETTING_H
19#define TECHDRAW_SETTING_H
21#include <libdrfx/drw_base.h>
23#include <Base/Tools2D.h>
25#include "Base/BallonText.h"
40 class DxfDimDiametric;
44 class DxfEntityContainer;
52 enum class TechDrawExport CrosshairType {
60 enum class TechDrawExport DxfExportType {
65 enum class TechDrawExport DwgExportType {
74 enum class TechDrawExport VAlign {
84 enum class TechDrawExport HAlign {
96 enum class TechDrawExport TextGeneration {
105 enum class TechDrawExport MTextDrawingDirection {
114 enum class TechDrawExport MTextLineSpacingStyle {
119 enum class TechDrawExport LineType {
126 enum class TechDrawExport LeaderCreateType {
135 enum TechDrawExport Unit {
163 enum TechDrawExport LinearFormat {
181 enum TechDrawExport AngleUnit {
190 enum TechDrawExport AngleFormat {
203 enum TechDrawExport HatchPat {
286 static std::string
replace(std::string str,
const std::string& from,
const std::string& to);
312 static std::vector<double>
cubicSolver(
const std::vector<double>& ce);
324 static unsigned findGCD(
unsigned a,
unsigned b);
329 bool* corrected =
nullptr);
331 static QString
decode(
const QString& str);
337 bool onEntity =
true,
338 double* dist = NULL);
356 static double pow(
double x,
double y);
362 static void getText(
const std::string& s, std::string& english, std::string& chinese);
366 const QString& fontFamily,
367 const std::string& str,
370 double coefficient = 1.0);
380 bool showUnit =
false);
384 bool showUnit =
false);
388 bool showUnit =
false);
395 bool showUnit =
false);
430 int widthscale = 1.0,
431 std::string style =
"HKR",
432 std::string font =
"simsunb",
434 double yScale = 1.0);
456 int widthscale = 1.0,
457 std::string style =
"HKR",
458 std::string font =
"simsunb",
461 bool codeTrans =
true
476 double lineWidth = 1.0,
478 double yScale = 1.0);
492 double lineWidth = 1.0,
494 double yScale = 1.0);
509 const std::vector<DxfVector>& controlPoints,
510 const std::vector<double>& knotsLists,
524 const std::vector<DxfEntity*>& entities);
550 double yScale = 1.0);
570 double yScale = 1.0);
590 const std::string& text,
591 std::string style =
"HKR",
592 std::string font =
"simsunb",
593 double angleDim = 0.0,
598 int horizonColor = 0,
599 int verticalColor = 0);
619 const std::string& text,
620 std::string style =
"HKR",
621 std::string font =
"simsunb",
622 double angleDim = 0.0,
627 int horizonColor = 0,
628 int verticalColor = 0);
650 double yScale = 1.0);
667 const std::vector<TechDraw::DxfVector>& pointVec);
681 const std::vector < std::vector<TechDraw::DxfEntity*> >& sectionFaces,
682 HatchPat patFileInfo = HatchPat::SOLID,
683 bool isShowEdgeLine =
false,
686 double yScale = 1.0);
LINE
引线标注
Definition DxfEntity.h:59
SOLID
样条曲线
Definition DxfEntity.h:64
#define RS_ANGLETOLERANCE
Definition DxfVector.h:32
TRANS
Definition Setting.h:266
DXF2004
Definition Setting.h:61
BLOCK_ANNOTATION
Definition Setting.h:129
JIS_STN_1E
Definition Setting.h:253
JIS_WOOD
Definition Setting.h:219
RightCrosshair
Right type isometric Crosshair
Definition Setting.h:55
Architectural
Architectural (e.g.
Definition Setting.h:171
Foot
Foot: 12 Inches
Definition Setting.h:138
Gradians
Gradians with decimal point (e.g.
Definition Setting.h:196
JIS_LC_8A
Definition Setting.h:248
VABottom
Definition Setting.h:76
BOX
Definition Setting.h:222
HOUND
Definition Setting.h:243
AR_SAND
Definition Setting.h:221
Millimeter
Millimeter: 0.001m
Definition Setting.h:140
JIS_RC_30
Definition Setting.h:252
AR_HBONE
Definition Setting.h:215
MUDST
Definition Setting.h:256
PLASTI
Definition Setting.h:260
JIS_LC_20A
Definition Setting.h:246
Parsec
Parsec: 30857 x 10^12
Definition Setting.h:156
Rad
Radians
Definition Setting.h:183
BRICK
Definition Setting.h:224
DOTS
Definition Setting.h:231
ARMORED
Definition Setting.h:218
DWG2008
Definition Setting.h:66
LeftToRight
Left to right
Definition Setting.h:106
DIMENSIONLINE
Definition Setting.h:121
HEX
Definition Setting.h:241
NONEPAT
Definition Setting.h:204
DASH
Definition Setting.h:229
Radians
Radians with decimal point (e.g.
Definition Setting.h:198
JIS_LC_20
Definition Setting.h:245
EARTH
Definition Setting.h:232
AR_CONC
Definition Setting.h:214
Fractional
Fractional (e.g.
Definition Setting.h:173
Kilometer
Kilometer: 1000m
Definition Setting.h:143
Centimeter
Centimeter: 0.01m
Definition Setting.h:141
Decameter
Decameter: 10m
Definition Setting.h:151
JIS_LC_8
Definition Setting.h:247
Angstrom
Angstrom: 10^-10m
Definition Setting.h:147
AR_B816
Definition Setting.h:209
ESCHER
Definition Setting.h:233
STARS
Definition Setting.h:263
Hectometer
Hectometer: 100m
Definition Setting.h:152
AR_BRELM
Definition Setting.h:212
HACenter
Centered
Definition Setting.h:86
HAMiddle
Middle
Definition Setting.h:89
GRAVEL
Definition Setting.h:240
PLAST
Definition Setting.h:259
FLEX
Definition Setting.h:234
ANGLE
Definition Setting.h:206
Yard
Yard: 3 Feet
Definition Setting.h:146
HAAligned
Aligned
Definition Setting.h:88
GOST_WOOD
Definition Setting.h:236
AtLeast
Taller characters will override
Definition Setting.h:115
SWAMP
Definition Setting.h:265
Deg
Degrees
Definition Setting.h:182
DWG2004
Definition Setting.h:67
HONEY
Definition Setting.h:242
JIS_RC_10
Definition Setting.h:249
Mil
Mil = 0.001 Inch
Definition Setting.h:145
GOST_GLASS
Definition Setting.h:235
VABaseLine
Definition Setting.h:75
DegreesDecimal
Degrees with decimal point (e.g.
Definition Setting.h:192
AR_RSHKE
Definition Setting.h:220
TopToBottom
Top to bottom
Definition Setting.h:107
AR_B88
Definition Setting.h:211
Backward
Mirrored in X
Definition Setting.h:98
SQUARE
Definition Setting.h:262
TOLERANCE_ANNOTATION
Definition Setting.h:128
Micron
Micron: 10^-6m
Definition Setting.h:149
Mile
Mile: 1760 Yards = 1609 m
Definition Setting.h:139
TRIANG
Definition Setting.h:267
TEXT_ANNOTATION
Definition Setting.h:127
VAMiddle
Definition Setting.h:77
Decimeter
Decimeter: 0.1m
Definition Setting.h:150
AR_PARQ1
Definition Setting.h:216
TopCrosshair
Top type isometric Crosshair
Definition Setting.h:54
Microinch
Microinch: 0.000001
Definition Setting.h:144
Meter
Meter
Definition Setting.h:142
ANSI37
Definition Setting.h:208
CLAY1
Definition Setting.h:226
CROSS
Definition Setting.h:228
None
Normal text
Definition Setting.h:97
HALeft
Left
Definition Setting.h:85
JIS_STN_25
Definition Setting.h:254
Nanometer
Nanometer: 10^-9m
Definition Setting.h:148
Gigameter
Gigameter: 1000000m
Definition Setting.h:153
ANSI31
Definition Setting.h:207
AR_RROOF
Definition Setting.h:217
AR_B816C
Definition Setting.h:210
Inch
Inch
Definition Setting.h:137
CLAY
Definition Setting.h:225
LEADER_NONE
Definition Setting.h:130
AR_BRSTD
Definition Setting.h:213
INSUL
Definition Setting.h:244
HARight
Right
Definition Setting.h:87
Scientific
Scientific (e.g.
Definition Setting.h:165
SACNCR
Definition Setting.h:261
Astro
Astro: 149.6 x 10^9m
Definition Setting.h:154
NET
Definition Setting.h:257
GRASS
Definition Setting.h:238
GRATE
Definition Setting.h:239
DOLMIT
Definition Setting.h:230
STEEL
Definition Setting.h:264
JIS_RC_15
Definition Setting.h:250
Lightyear
Lightyear: 9460731798 x 10^6m
Definition Setting.h:155
BRASS
Definition Setting.h:223
Decimal
Decimal (e.g.
Definition Setting.h:167
JIS_RC_18
Definition Setting.h:251
DegreesMinutesSeconds
Degrees, Minutes and Seconds (e.g.
Definition Setting.h:194
GOST_GROUND
Definition Setting.h:237
Engineering
Engineering (e.g.
Definition Setting.h:169
EXTENSIONLINE
Definition Setting.h:122
CORK
Definition Setting.h:227
LeftCrosshair
Left type isometric Crosshair
Definition Setting.h:53
NET3
Definition Setting.h:258
static std::vector< double > quarticSolver(const std::vector< double > &ce)
static bool isSane(double v)
static bool getNearestPointOnEntity(TechDraw::DxfVector &ret, const TechDraw::DxfVector &point1, const TechDraw::DxfVector &point2, const TechDraw::DxfVector &coord, bool onEntity=true, double *dist=NULL)
static double getAngleLength(double a, double b, double isReversed)
static double correctAngle(double a)
static double pow(double x, double y)
static bool fuzzyCompare(double v1, double v2, double tolerance=RS_ANGLETOLERANCE)
static double rad2gra(double a)
static bool isEllipticArc(double angle1, double angle2)
static bool isAngleBetween(double a, double a1, double a2, bool reversed)
static bool isAngleReadable(double angle)
static double correctAngleU(double a)
static double getAngleDifferenceU(double a1, double a2)
static int GetUtf8CharCount(const std::string &str)
static std::vector< double > quadraticSolver(const std::vector< double > &ce)
static unsigned findGCD(unsigned a, unsigned b)
Finds greatest common divider using Euclid's algorithm.
static void getFontWidthAndHeight(double heightInDxf, const QString &fontFamily, const std::string &str, double &fontWidth, double &fontHeight, double coefficient=1.0)
static std::vector< double > cubicSolver(const std::vector< double > &ce)
static double getAngleDifference(double a1, double a2, bool reversed=false)
static void getText(const std::string &s, std::string &english, std::string &chinese)
static double makeAngleReadable(double angle, bool readable=true, bool *corrected=nullptr)
static int round(double v)
Rounds the given double to the closest int.
static double getNormalizedAngle(double a)
static double rad2deg(double a)
static bool isNaN(double v)
static double deg2rad(double a)
static bool GetUtf8CharCount(const std::string &str, int &count)
static double getAngleDifference180(double a1, double a2)
static double trunc(double v)
static bool isInf(double v)
static QString decode(const QString &str)
static std::string replace(std::string str, const std::string &from, const std::string &to)
static int absmod(int a, int b)
static double gra2rad(double a)
TechDraw中DxfArc类
Definition DxfEntity.h:1582
TechDraw中DxfAttribute类
Definition DxfEntity.h:76
TechDraw中DxfBlock类
Definition DxfEntity.h:706
TechDraw中DxfCircle类
Definition DxfEntity.h:1556
Definition DxfEntity.h:1335
Definition DxfEntity.h:1442
TechDraw中DxfEllipse类
Definition DxfEntity.h:1700
TechDraw中DxfEntity类
Definition DxfEntity.h:511
Definition DxfEntity.h:855
TechDraw中DxfInsert类
Definition DxfEntity.h:745
TechDraw中DxfLeader类
Definition DxfEntity.h:1492
TechDraw中DxfLine类
Definition DxfEntity.h:924
TechDraw中DxfMText类
Definition DxfEntity.h:1927
TechDraw中DxfPolyline类
Definition DxfEntity.h:1777
TechDraw中DxfSpline类
Definition DxfEntity.h:1822
TechDraw中DxfText类
Definition DxfEntity.h:1861
Definition DxfVector.h:61
static DxfPolyline * createPolylineforEntity(std::vector< DxfEntity * > entities, bool closed, double lineWidth=1.0)
static std::vector< std::vector< TechDraw::DxfEntity * > > getHatchChildEntities(DxfHatch *hatch)
返回图案填充区域的外围线
static DxfPolyline * createPolyline(const std::vector< std::pair< DxfVector, double > > &positionList, bool closed, double lineWidth=1.0, double xScale=1.0, double yScale=1.0)
创建多段线
static bool isSamePoint(const DxfVector &v1, const DxfVector &v2, double tol=1e-6)
自定义三维向量容差比较函数
static DxfInsert * createInsert(const std::string name, const DxfVector &insertPt, double angle)
创建Block的插入点对象
static DxfHatch * createHatch(bool bSolid, const std::vector< std::vector< TechDraw::DxfEntity * > > §ionFaces, HatchPat patFileInfo=HatchPat::SOLID, bool isShowEdgeLine=false, DxfVector centerPoint=DxfVector(0, 0, 0), double xScale=1.0, double yScale=1.0)
创建图案填充
static void setEntityAttribute(DxfEntity *entity, const DxfAttribute &attr)
为DXF实体设置属性
static DxfSpline * createSpline(const std::vector< DxfVector > &controlPoints, const std::vector< double > &knotsLists, int degree, bool closed)
创建Spline
static std::string getPatFileNameFromPat(HatchPat patNum)
获取pat文件的名字
static DxfLeader * createLeader(double textWidth, double textHeight, int arrowStyle, int lineColor, const std::vector< TechDraw::DxfVector > &pointVec)
创建引线标注
static DxfLine * createLine(DxfVector position1, DxfVector position2, double lineWidth=1.0, double xScale=1.0, double yScale=1.0)
创建直线
static DxfBlock * createBlock(const std::string name, const DxfVector &insertPt, const std::vector< DxfEntity * > &entities)
创建Block
static DxfText * createText(const std::string &text, DxfVector position1, DxfVector position2, double height, double angle, int widthscale=1.0, std::string style="HKR", std::string font="simsunb", double xScale=1.0, double yScale=1.0, bool codeTrans=true)
创建单行文字
static void getPartNames(std::vector< std::string > &patNames)
获取所有的Pat名称
static DxfDimRadial * createDimRadius(const DxfVector ¢er, const DxfVector &textLoca, const DxfVector &radiusLoca, const std::string &text, std::string style="HKR", std::string font="simsunb", double angleDim=0.0, double leader=0, double xScale=1.0, double yScale=1.0, int textcolor=0, int horizonColor=0, int verticalColor=0)
创建半径标注
static DxfEllipse * createEllipse(const DxfVector ¢er, const DxfVector &major, double ratio, double angle1, double angle2, bool reversed, double xScale=1.0, double yScale=1.0)
创建椭圆
static DxfArc * createArc(const DxfVector ¢er, double radius, double angle1, double angle2, bool reversed, double xScale=1.0, double yScale=1.0)
创建圆弧
static DxfDimDiametric * createDimDiametric(const DxfVector &defLoca, const DxfVector &textLoca, const DxfVector &diametricLoca, const std::string &text, std::string style="HKR", std::string font="simsunb", double angleDim=0.0, double leader=0, double xScale=1.0, double yScale=1.0, int textcolor=0, int horizonColor=0, int verticalColor=0)
创建直径标注
static DxfMText * createMText(const std::string &text, DxfVector position, double height, double angle, int widthscale=1.0, std::string style="HKR", std::string font="simsunb", double xScale=1.0, double yScale=1.0)
创建多行文字
static DxfCircle * createCircle(DxfVector center, double radius, double xScale=1.0, double yScale=1.0)
创建圆
static HatchPat getPatFromPatFileName(std::string patFileName)
获取pat文件的枚举值
static TechDraw::DxfEntity * convertGeometryToDxfEntity(const Part::Geometry *geometry)
static QStringList getFilesInDir(const QString &dirPath)
static AngleFormat numberToAngleFormat(int num)
static QString formatArchitecturalMetric(double length, Unit unit, int prec, bool showUnit=false)
static LinearFormat getLinearFormat(int f)
static std::string unitToSign(Unit u)
static int numberToWidth(DRW_LW_Conv::lineWidth lw)
将dxf读出来的线宽转成int型线宽
static QString formatDecimal(double length, Unit unit, int prec, bool showUnit=false)
static QString formatArchitectural(double length, int prec, bool showUnit=false)
static QString formatAngle(double angle, AngleFormat format, int prec)
static QString formatScientific(double length, Unit unit, int prec, bool showUnit=false)
static QString formatFractional(double length, int prec)
static QString formatEngineering(double length, int prec)
static QString formatLinear(double length, Unit unit, LinearFormat format, int prec, bool showUnit=false)
static Qt::PenStyle nameToLineType(const std::string &name)
将线型字符串转化成Qt样式的线型样式
Side
Side used for side of a point relative to an entity (right hand or left hand side)
Definition Setting.h:275
constexpr double m_piX2
Definition Setting.h:47
Definition ArrowPropEnum.h:26