BIMHome v1.0.0
BIMHome接口文档说明
DxfEntity.h
浏览该文件的文档.
1/************************************************************************
2* @file DxfEntity.h
3*
4* @brief DxfEntity类
5*
6* @details DxfEntity类
7*
8* @author zhaojuan
9*
10* @version 版本号 V0.1
11*
12* @date 2023-2-9
13*
14* @license 北京华科软科技有限公司
15*
16*************************************************************************/
17
18#ifndef TECHDRAWAPP_DXF_DXFENTITY_H
19#define TECHDRAWAPP_DXF_DXFENTITY_H
20
21#include <libdrfx/drw_base.h>
22
23#include "DxfVector.h"
24
25class dxfW;
26class DRW_Entity;
27
36namespace TechDraw {
37enum class CrosshairType;
38enum class VAlign;
39enum class HAlign;
40enum class TextGeneration;
41enum class MTextDrawingDirection;
42enum class MTextLineSpacingStyle;
43enum class LineType;
44enum class LeaderCreateType;
45enum HatchPat;
46enum class TechDrawExport DxfEntityType {
68};
69
76class TechDrawExport DxfAttribute {
77public:
82public:
84 std::string layerName = "0";
86 int color = DRW::ColorByLayer;
88 int realColor = -1;
90 int color24 = -1;
92 std::string lineType = "BYLAYER";
94 enum DRW_LW_Conv::lineWidth lWeight = DRW_LW_Conv::widthByLayer;
96 Qt::PenStyle qtLineType = Qt::SolidLine;
98 double qtLineWidth = 1.0;
99
100 // 填充比例
101 double fileScale = 1.0;
102};
103
110class TechDrawExport DxfLType {
111public:
113 DxfLType(const std::string& name,
114 const std::string& desc,
115 int size,
116 double length,
117 const std::vector<DRW::LineTypeCombinedCode>& path);
120public:
122 const std::string& getName();
124 const std::string& getDescription();
126 int getSize() const;
128 double getLength() const;
130 const std::vector<DRW::LineTypeCombinedCode>& getPath();
131private:
133 std::string m_Name;
135 std::string m_Description;
139 double m_Length;
141 std::vector<DRW::LineTypeCombinedCode> m_Path;
142};
143
150class TechDrawExport DxfLayer {
151public:
152 DxfLayer(const std::string& name,
153 bool frozen,
154 bool locked);
158 const std::string& getName();
160 bool isFrozen() const;
162 void freeze(bool freeze);
164 bool isLocked() const;
166 void lock(bool l);
168 void setLineType(const std::string& lineType);
170 const std::string& getLineType();
172 void setColor(int c);
174 int getColor() const;
176 void setPlotF(bool p);
178 bool getPlotF() const;
180 void seLWeight(enum DRW_LW_Conv::lineWidth lw);
182 DRW_LW_Conv::lineWidth getLWeight() const;
184 void setColor24(int c24);
186 int getColor24() const;
187
188private:
190 std::string m_Name;
192 bool m_Frozen = false;
194 bool m_Locked = false;
196 std::string m_LineType = "CONTINUOUS";
197 // default BYLAYER (256)
198 int m_Color = 7;
199 // default TRUE (plot yes)
200 bool m_PlotF = true;
201 // default BYDEFAULT (dxf -3, dwg 31)
202 enum DRW_LW_Conv::lineWidth m_LWeight = DRW_LW_Conv::widthDefault;
203 //default -1 not set
204 int m_Color24 = -1;
205};
206
213class TechDrawExport DxfTextStyle {
214public:
215 DxfTextStyle(std::string name,
216 double height,
217 double width,
218 double oblique,
219 int genFlag,
220 int flags,
221 double lastHeight,
222 std::string font,
223 std::string bigFont,
224 int fontFamily);
226public:
227 std::string getName() const;
228 double getHeight() const;
229 double getWidthFactor() const;
230 double getOblique() const;
231 int GetGenFlag() const;
232 double getLastHeight() const;
233 std::string getFont() const;
234 std::string getBigFont() const;
235 int getFontFamily() const;
236 void setWidthFactor(float factor);
237 int getFlags() const;
238private:
239 std::string m_Name;
240 double m_Height;
242 double m_Oblique;
246 UTF8STRING m_Font;
247 UTF8STRING m_BigFont;
249};
250
251class TechDrawExport DxfDimStyle {
252public:
253 DxfDimStyle(const std::string& name);
255public:
256 std::string getName() const;
257 void setDimasz(double dimasz);
258 double getDimasz() const;
259 void setDimexo(double dimexo);
260 double getDimexo() const;
261 void setDimdli(double dimdli);
262 double getDimdli() const;
263 void setDimexe(double dimexe);
264 double getDimexe() const;
265 void setDimdle(double dimdle);
266 double getDimdle() const;
267 void setDimtih(int dimtih);
268 int getDimtih() const;
269 void setDimtoh(int dimtoh);
270 int getDimtoh() const;
271 void setDimtad(int dimtad);
272 int getDimtad() const;
273 void setDimzin(int dimzin);
274 int getDimzin() const;
275 void setDimtxt(double dimtxt);
276 double getDimtxt() const;
277 void setDimcen(double dimcen);
278 double getDimcen() const;
279 void setDimaltf(double dimaltf);
280 double getDimaltf() const;
281 void setDimlfac(double dimlfac);
282 double getDimlfac() const;
283 void setDimgap(double dimgap);
284 double getDimgap() const;
285 void setDimtofl(int dimtofl);
286 int getDimtofl() const;
287 void setDimtix(int dimtix);
288 int getDimtix() const;
289 void setDimclrt(int dimclrt);
290 int getDimclrt() const;
291 void setDimadec(int dimadec);
292 int getDimadec() const;
293 void setDimdec(int dimdec);
294 int getDimdec() const;
295 void setDimtdec(int dimtdec);
296 int getDimtdec() const;
297 void setDimalttd(int dimalttd);
298 int getDimalttd() const;
299 void setDimdsep(int dimdsep);
300 int getDimdsep() const;
301 void setDimtmove(int dimtmove);
302 int getDimtmove() const;
303 void setDimjust(int dimjust);
304 int getDimjust() const;
305 void setDimtzin(int dimtzin);
306 int getDimtzin() const;
307 void setDimtxsty(const std::string& txstyle);
308 std::string getDimtxsty() const;
309 void setDimblk(const std::string& dimblk);
310 std::string getDimblk() const;
311private:
312 std::string m_Name;
313 double m_Dimasz;
314 double m_Dimexo;
315 double m_Dimdli;
316 double m_Dimexe;
317 double m_Dimdle;
322 double m_Dimtxt;
323 double m_Dimcen;
324 double m_Dimaltf;
325 double m_Dimlfac;
326 double m_Dimgap;
338 UTF8STRING m_Dimtxsty;
339 UTF8STRING m_Dimblk;
340};
341
342class TechDrawExport DxfVPoint {
343public:
346public:
347 void setGridOn(bool grid);
348 bool getGridOn() const;
349 void setWidth(double width);
350 double getWidth() const;
351 void setHeight(double height);
352 double getHeight() const;
353 void setIsometricGrid(int snapStyle);
354 int getIsometricGrid() const;
355 void setCrosshairType(CrosshairType type);
356 CrosshairType getCrosshairType() const;
357 void setCenter(const DxfVector& center);
359 void setRatio(double factor);
360 double getRatio() const;
361private:
363 double m_Width;
364 double m_Height;
366 CrosshairType m_CrosshairType;
368 double m_Ratio;
369};
370
371enum class DxfHeaderType {
372 NONE,
373 COOD,
374 STRING,
375 INT,
376 DOUBLE,
377};
378
385class TechDrawExport DxfHeaderData {
386public:
388 virtual ~DxfHeaderData();
390};
391
398template<typename T>
399class TechDrawExport DxfHeaderDataImpl : public DxfHeaderData {
400public:
402 enum class DxfHeaderType type)
403 : m_Type(type) {
404 }
405
407 this->m_Type = data.m_Type;
408 this->m_Key = data.m_Key;
409 this->m_Value = data.m_Value;
410 this->m_Code = data.m_Code;
411 }
412
413 void addVariable(const std::string& key, const T& value, int code) {
414 m_Key = key;
415 m_Value = value;
416 m_Code = code;
417 }
418
420 //
421 }
422
423public:
424 const std::string& getKey() {
425 return m_Key;
426 }
427
428 const T& getValue() {
429 return m_Value;
430 }
431
432 void setValue(const T& v) {
433 m_Value = v;
434 }
435
436 int getCode() const {
437 return m_Code;
438 }
439
440 DxfHeaderType getHeaderType() const override {
441 return m_Type;
442 }
443
444private:
445 std::string m_Key;
449};
450
457class TechDrawExport DxfHeader {
458public:
464 void addToHeader(const std::string& key, DxfHeaderData* data);
466 bool getVector3d(const std::string& key, DxfVector& vec);
468 bool getString(const std::string& key, std::string& var);
470 bool getInt(const std::string& key, int& var);
472 bool setInt(const std::string& key, int var);
474 bool getDouble(const std::string& key, double& var);
476 const std::map<std::string, DxfHeaderData*>& getHeaders();
477private:
479 std::map<std::string, DxfHeaderData* > m_HeaderDict;
480};
481
488class TechDrawExport DxfLayout {
489public:
491 DxfLayout(const std::string& name,
492 const std::string& id);
495
496 //
497 std::string getLayoutName();
498 std::string getLayoutId();
499public:
501 std::string mLayoutName;
502 std::string mId;
503};
504
511class TechDrawExport DxfEntity {
512public:
516 virtual ~DxfEntity();
518 virtual DxfEntity* clone() = 0;
519public:
521 virtual void calculateBorders();
523 virtual DxfVector getStartPoint() const;
525 virtual DxfVector getEndPoint() const;
527 virtual DxfVector getMiddlePoint() const;
529 virtual void move(const TechDraw::DxfVector& offset);
538 virtual void rotate(const DxfVector& center, const double& angle);
540 virtual void writeDxf(dxfW* writer);
541public:
544 void setVersion(int version);
546 void setAttribute(DRW_Entity& data);
548 void setAttribute(const DxfAttribute& attr);
552 void setLayer(const std::string& name);
556 DxfEntityType getType() const;
565 // 默认返回0,表示非圆弧段
566 virtual double getBulge() const { return 0.0; }
567public:
571 double getGeneralFactor() const;
575 double getGeneralScale() const;
580
582
583 double getTextHeight() const;
584
585 double getDimensionLineGap() const;
586
587 double getArrowSize() const;
588
592 double getTickSize() const;
596 bool getFixedLengthOn() const;
597
601 double getFixedLength() const;
602
606 std::string getTextStyle();
607
612
617
622
627
628 int getTextColor() const;
632 long getEntityId() const;
636 std::string getEntityUuid() const;
637
641 void setEntityLayoutId(const std::string& id);
642
646 std::string getEntityLayoutId() const;
647
648protected:
652 DxfEntityType m_Type;
661 //
662 std::string m_EntityUuid;
663 // code 330的值,筛选layout
664 std::string m_EntityParentId;
665 //
667};
668
675class TechDrawExport DxfEntityContainer : public DxfEntity {
676public:
679 virtual DxfEntity* clone() override;
680 virtual void calculateBorders() override;
682 virtual void move(const TechDraw::DxfVector& offset) override;
683 virtual void rotate(const TechDraw::DxfVector& center, const double& angle) override;
684 virtual void writeDxf(dxfW* writer) override;
685public:
687 const std::vector<DxfEntity*>& getEntities();
688 void addEntity(DxfEntity* entity);
689 void clear();
690 std::vector<DxfEntity*>& getContainer();
691 void addRectangle(const TechDraw::DxfVector& corner1, const TechDraw::DxfVector& corner2);
694 void sortHatchLoop(std::vector<TechDraw::DxfEntityContainer*>& hatchVec);
695
696protected:
697 std::vector<DxfEntity*> m_EntityContainer;
698};
699
706class TechDrawExport DxfBlock : public DxfEntityContainer {
707public:
708 DxfBlock(const std::string& name,
709 const DxfVector& iPt);
711public:
712 virtual DxfEntity* clone() override;
713 virtual void calculateBorders() override;
714public:
716 std::string getBlockName() const;
718 void setBlockName(const std::string& blkName);
719 void setBlockHandle(int handle);
720 int getBlockHandle() const;
723 double getAngle();
724 bool isEndBock();
725 void setIsEndBlock(bool isEndBlock);
726 bool getIsInsert() const;
727 void setIsInsert(bool isInsert);
728private:
730 std::string m_BlockName="";
734 double m_Angle = 0.0;
735 bool m_IsEndBlock = false;
736 bool m_IsInsert = false;
737};
738
745class TechDrawExport DxfInsert : public DxfEntityContainer {
746public:
747 DxfInsert(std::string name,
748 const DxfVector& insertPt,
749 const DxfVector& scaleF,
750 double angle,
751 int cols,
752 int rows,
753 const DxfVector& spacing,
754 const std::vector<DxfBlock*>& blocks);
756public:
757 virtual DxfEntity* clone() override;
758 virtual void move(const TechDraw::DxfVector& offset) override;
759 virtual void calculateBorders() override;
760 virtual void writeDxf(dxfW* writer) override;
761public:
762 std::string getName() const;
763 void setName(const std::string& name);
766 double getAngle() const;
767 int getCols() const;
768 int getRows() const;
770 const std::vector<DxfBlock*>& getBlocks();
771private:
772 std::string m_Name;
775 double m_Angle;
776 int m_Cols, m_Rows;
778 std::vector<DxfBlock*> m_BlockSource;
779};
780
781class TechDrawExport DxfPatternLine {
782public:
783 double angle;
786 QList<double> dashes;
787
788 bool hasDots() const;
789 double getAngle() const {
790 return angle;
791 }
793 return offset;
794 }
796 return basePoint;
797 }
798 QList<double> getDashes() const {
799 return dashes;
800 }
801
802 void scale(double f);
803};
804
805class TechDrawExport DxfPattern {
806public:
808 DxfPattern(const QString& name, const QString& description);
811
812 bool hasDots() const;
813
814 void clear();
815
816 void setFileName(const QString& fileName);
817
819 QString getFileName() const;
820
822 const QString getName() const;
823
825 const QString getDescription() const;
826
830 bool isLoaded() const;
831
832 void load() const;
833
834 QList<DxfPatternLine> getPatternLines() const;
835
836 void addPatternLine(const DxfPatternLine& patternLine);
837
838 void scale(double f);
839
840private:
842 QString m_FileName;
843
845 QString m_Name;
846
849
851 QList<DxfPatternLine> m_PatternLines;
852};
853
854
855class TechDrawExport DxfHatch : public DxfEntityContainer {
856public:
857 DxfHatch(bool solid, double scale, double angle, int filltype, const std::string& pattern);
859public:
860 virtual void calculateBorders() override;
861 virtual DxfEntity* clone() override;
862 virtual void rotate(const TechDraw::DxfVector& center, const double& angle) override;
863 virtual void writeDxf(dxfW* writer) override;
864public:
865 bool getSolid() const;
866 double getScale() const;
867 double getAngle() const;
868 std::string getPatternName() const;
869 void setPatternName(const std::string&);
871 void setHatchPat(HatchPat pat);
872 HatchPat getHatchPat() const;
873 void setShowEdgeLine(bool show);
875 QList<DxfPatternLine> getPatternLines() const;
876 //重新设置HatchLoop的所有实体
878 const std::vector<TechDraw::DxfEntity*>& sectionFaces,
879 double xScale = 1.0,
880 double yScale = 1.0);
881 //重新设置HatchLoop的所有实体
883 DxfEntityContainer* hatchLoop,
884 const std::vector<TechDraw::DxfEntity*>& sectionFaces,
885 double xScale = 1.0,
886 double yScale = 1.0);
887private:
889 double m_Scale;
890 double m_Angle;
891 std::string m_PatternName;
892 HatchPat m_HatchPat;
895};
896
903class TechDrawExport DxfPoint : public DxfEntity {
904public:
905 DxfPoint(const DxfVector& pt);
908 virtual DxfEntity* clone() override;
909 virtual void calculateBorders() override;
911 virtual void move(const TechDraw::DxfVector& offset) override;
912 virtual void rotate(const TechDraw::DxfVector& center, const double& angle) override;
913 virtual void writeDxf(dxfW* writer) override;
914private:
916};
917
924class TechDrawExport DxfLine : public DxfEntity {
925public:
926 DxfLine() = default;
927 DxfLine(const DxfVector& spt, const DxfVector& ePt);
928 virtual ~DxfLine();
929 virtual DxfEntity* clone() override;
930 virtual void calculateBorders() override;
931 virtual DxfVector getStartPoint() const override;
932 virtual DxfVector getEndPoint() const override;
933 virtual DxfVector getMiddlePoint() const override;
935 virtual void move(const TechDraw::DxfVector& offset) override;
936 virtual void rotate(const TechDraw::DxfVector& center, const double& angle) override;
937 virtual void writeDxf(dxfW* writer) override;
938public:
939 double getDirection1(void) const;
940 double getDirection2(void) const;
944 double getAngle1() const;
945
949 double getAngle2() const;
958
962 LineType getLineType() const;
963
967 void setLineType(LineType type);
968 //
969 void setScale(double scale);
970protected:
973 LineType m_LineType;
974 double m_Scale;
975};
976
983class TechDrawExport DxfRay : public DxfLine {
984public:
985 DxfRay() = default;
986 DxfRay(const DxfVector& spt, const DxfVector& ePt);
988 virtual DxfEntity* clone() override;
989};
990
997class TechDrawExport DxfXline : public DxfLine {
998public:
999 DxfXline() = default;
1000 DxfXline(const DxfVector& spt, const DxfVector& ePt);
1002 virtual DxfEntity* clone() override;
1003};
1004
1005class TechDrawExport DxfDimension : public DxfEntityContainer {
1006public:
1008 DxfDimension(const DxfVector& definitionPoint,
1009 const DxfVector& middleOfText,
1010 VAlign valign,
1011 HAlign halign,
1012 MTextLineSpacingStyle lineSpacingStyle,
1013 double lineSpacingFactor,
1014 const std::string& text,
1015 const std::string& font,
1016 const std::string& style,
1017 double angle,
1018 int textcolor=0,
1019 int horizonColor=0,
1020 int verticalColor=0);
1021 virtual ~DxfDimension();
1023 virtual DxfEntity* clone() override;
1024 virtual void calculateBorders() override;
1026 virtual void move(const TechDraw::DxfVector& offset) override;
1027 virtual void rotate(const TechDraw::DxfVector& center, const double& angle) override;
1029 virtual void writeDxf(dxfW* writer) override;
1030public:
1031 virtual void update(double xScale = 1.0, double yScale = 1.0);
1032 virtual void updateDimension(double xScale = 1.0, double yScale = 1.0, bool autoText = false);
1037 virtual std::string getMeasuredLabel() const;
1038public:
1047 QString stripZerosLinear(QString linear, int zeros) const;
1057 QString DxfDimension::stripZerosAngle(QString angle, int zeros) const;
1059 std::string getMeasuredLabel(double dist) const;
1069 VAlign getVAlign();
1071 HAlign getHAlign();
1073 MTextLineSpacingStyle getLineSpacingStyle();
1077 const std::string& getText();
1079 const std::string& getRealText();
1081 const std::string& getFont();
1083 const std::string& getStyle();
1085 double getAngle();
1086
1087public:
1089 const TechDraw::DxfVector& p2,
1090 bool arrow1 = true,
1091 bool arrow2 = true,
1092 bool autoText = false);
1094 const TechDraw::DxfVector& p2,
1095 bool arrow1 = true,
1096 bool arrow2 = true,
1097 double xScale = 1.0,
1098 double yScale = 1.0,
1099 bool autoText = false);
1106 const TechDraw::DxfVector& p2,
1107 bool arrow1 = true,
1108 bool arrow2 = true,
1109 double xScale = 1.0,
1110 double yScale = 1.0,
1111 bool autoText = false);
1112public:
1113 std::vector<TechDraw::DxfVector>
1115 const DxfEntityContainer& c,
1116 bool infiniteLine = false);
1117 std::vector<TechDraw::DxfVector>
1119 DxfEntity const* e2,
1120 bool onEntities = false);
1121 bool isDimension(TechDraw::DxfEntityType type);
1123 DxfEntityContainer* contour,
1124 bool* onContour = nullptr);
1126 // 设置箭头样式
1127 void setDimensionArrowStyle(int arrowStyle);
1128 // 设置箭头大小
1130 // 设置文字大小
1131 void setDimensionTextSize(double d);
1132 //
1134 //
1136 //
1138 // 设置箭头样式句柄
1139 void setDimensionArrowBlockHandle(const std::string& handle);
1140protected:
1150 VAlign m_Valign;
1152 HAlign m_Halign;
1154 MTextLineSpacingStyle m_LineSpacingStyle;
1162 std::string m_Text;
1164 std::string m_RealText;
1166 std::string m_Font;
1168 std::string m_Style;
1170 double m_Angle;
1175 // 箭头样式
1176 enum DRW_Dimension_Arrow::DimensionArrowType m_DimensionArrowStyle;
1189};
1190
1191class TechDrawExport DxfDimAligned : public DxfDimension {
1192public:
1195 const DxfVector& definitionPoint,
1196 const DxfVector& middleOfText,
1197 VAlign valign,
1198 HAlign halign,
1199 MTextLineSpacingStyle lineSpacingStyle,
1200 double lineSpacingFactor,
1201 const std::string& text,
1202 const std::string& font,
1203 const std::string& style,
1204 double angleDim,
1205 const DxfVector& extensionPoint1,
1206 const DxfVector& extensionPoint2,
1207 int textcolor = 0,
1208 int horizonColor = 0,
1209 int verticalColor = 0);
1212 virtual DxfEntity* clone() override;
1213 virtual void calculateBorders() override;
1215 virtual void move(const TechDraw::DxfVector& offset) override;
1216 virtual void rotate(const TechDraw::DxfVector& center, const double& angle) override;
1218 virtual void writeDxf(dxfW* writer) override;
1219public:
1220 virtual void updateDimension(double xScale = 1.0, double yScale = 1.0, bool autoText = false) override;
1225 virtual std::string getMeasuredLabel() const override;
1226public:
1228
1235private:
1240};
1241
1242class TechDrawExport DxfDimAngular : public DxfDimension {
1243public:
1245 DxfDimAngular(const DxfVector& definitionPoint,
1246 const DxfVector& middleOfText,
1247 VAlign valign,
1248 HAlign halign,
1249 MTextLineSpacingStyle lineSpacingStyle,
1250 double lineSpacingFactor,
1251 const std::string& text,
1252 const std::string& font,
1253 const std::string& style,
1254 double angleDim,
1255 const DxfVector& definitionPoint1,
1256 const DxfVector& definitionPoint2,
1257 const DxfVector& definitionPoint3,
1258 const DxfVector& definitionPoint4,
1259 int textcolor = 0,
1260 int horizonColor = 0,
1261 int verticalColor = 0);
1264 virtual DxfEntity* clone() override;
1265 virtual void calculateBorders() override;
1267 virtual void move(const TechDraw::DxfVector& offset) override;
1268 virtual void rotate(const TechDraw::DxfVector& center, const double& angle) override;
1270 virtual void writeDxf(dxfW* writer) override;
1271public:
1272 virtual void update(double xScale = 1.0, double yScale = 1.0);
1273 virtual void updateDimension(double xScale = 1.0, double yScale = 1.0, bool autoText = false) override;
1278 virtual std::string getMeasuredLabel() const override;
1279public:
1284private:
1285 void calcDimension(void);
1286 void fixDimension(void);
1287 void extensionLine(const TechDraw::DxfVector& dimLineP1,
1288 const TechDraw::DxfVector& dimLineP2,
1289 const TechDraw::DxfVector& dimPoint,
1290 const TechDraw::DxfVector& dirStart,
1291 const TechDraw::DxfVector& dirEnd,
1292 const double _dimscale,
1293 const double _dimexo,
1294 const double _dimexe,
1295 const double _dimtxt,
1296 const double _dimgap,
1297 const double _arrowSize);
1298 void arrow(const TechDraw::DxfVector& point,
1299 const double angle,
1300 const double direction,
1301 const bool outsideArrows,
1302 const double _dimscale,
1303 const double _dimexo,
1304 const double _dimexe,
1305 const double _dimtxt,
1306 const double _dimgap,
1307 const double _arrowSize,
1308 double xScale = 1.0,
1309 double yScale = 1.0);
1310private:
1333};
1334
1335class TechDrawExport DxfDimDiametric : public DxfDimension {
1336public:
1338 DxfDimDiametric(const DxfVector& definitionPoint,
1339 const DxfVector& middleOfText,
1340 VAlign valign,
1341 HAlign halign,
1342 MTextLineSpacingStyle lineSpacingStyle,
1343 double lineSpacingFactor,
1344 const std::string& text,
1345 const std::string& font,
1346 const std::string& style,
1347 double angleDim,
1348 const DxfVector& DiameterPoint,
1349 double leader,
1350 int textcolor = 0,
1351 int horizonColor = 0,
1352 int verticalColor = 0);
1355 virtual DxfEntity* clone() override;
1356 virtual void calculateBorders() override;
1358 virtual void move(const TechDraw::DxfVector& offset) override;
1359 virtual void rotate(const TechDraw::DxfVector& center, const double& angle) override;
1361 virtual void writeDxf(dxfW* writer) override;
1362public:
1363 virtual void updateDimension(double xScale = 1.0, double yScale = 1.0, bool autoText = false) override;
1368 virtual std::string getMeasuredLabel() const override;
1369public:
1371 double getLeader() const;
1372private:
1376 double m_Leader;
1377};
1378
1379class TechDrawExport DxfDimLinear : public DxfDimension {
1380public:
1384 DxfDimLinear(const DxfVector& definitionPoint,
1385 const DxfVector& middleOfText,
1386 VAlign valign,
1387 HAlign halign,
1388 MTextLineSpacingStyle lineSpacingStyle,
1389 double lineSpacingFactor,
1390 const std::string& text,
1391 const std::string& font,
1392 const std::string& style,
1393 double angleDim,
1394 const DxfVector& extensionPoint1,
1395 const DxfVector& extensionPoint2,
1396 double angleDimLinear,
1397 double oblique,
1398 int textcolor = 0,
1399 int horizonColor = 0,
1400 int verticalColor = 0);
1404 virtual DxfEntity* clone() override;
1405 virtual void calculateBorders() override;
1407 virtual void move(const TechDraw::DxfVector& offset) override;
1408 virtual void rotate(const TechDraw::DxfVector& center, const double& angle) override;
1410 virtual void writeDxf(dxfW* writer) override;
1411public:
1412 virtual void updateDimension(double xScale = 1.0, double yScale = 1.0, bool autoText = false) override;
1417 virtual std::string getMeasuredLabel() const override;
1418public:
1424 double getAngle() const;
1426 void setAngle(double a);
1428 double getOblique() const;
1430 void setOblique(double o);
1431private:
1437 double m_Angle;
1440};
1441
1442class TechDrawExport DxfDimRadial : public DxfDimension {
1443public:
1445 DxfDimRadial(const DxfVector& definitionPoint,
1446 const DxfVector& middleOfText,
1447 VAlign valign,
1448 HAlign halign,
1449 MTextLineSpacingStyle lineSpacingStyle,
1450 double lineSpacingFactor,
1451 const std::string& text,
1452 const std::string& font,
1453 const std::string& style,
1454 double angleDim,
1455 const DxfVector& radialPoint,
1456 double leader,
1457 int textcolor = 0,
1458 int horizonColor = 0,
1459 int verticalColor = 0);
1461public:
1463 virtual DxfEntity* clone() override;
1464 virtual void calculateBorders() override;
1466 virtual void move(const TechDraw::DxfVector& offset) override;
1467 virtual void rotate(const TechDraw::DxfVector& center, const double& angle) override;
1469 virtual void writeDxf(dxfW* writer) override;
1470public:
1471 virtual void updateDimension(double xScale = 1.0, double yScale = 1.0, bool autoText = false) override;
1476 virtual std::string getMeasuredLabel() const override;
1477public:
1479 double getLeader() const;
1480private:
1482 double m_Leader;
1483};
1484
1492class TechDrawExport DxfLeader : public DxfEntity {
1493public:
1496public:
1497 virtual DxfEntity* clone() override;
1498 virtual void calculateBorders() override;
1499 virtual void move(const TechDraw::DxfVector& offset) override;
1500 virtual void rotate(const TechDraw::DxfVector& center, const double& angle) override;
1501 virtual void writeDxf(dxfW* writer) override;
1502public:
1503 void setStyle(const std::string& style);
1504 std::string getStyle() const;
1505 void setArrowFlag(int flag);
1506 int getArrowFlag() const;
1507 void setLeaderPathType(int type);
1509 void setLeaderCreateType(TechDraw::LeaderCreateType type);
1510 TechDraw::LeaderCreateType getLeaderCreateType() const;
1511 void setBaseLineDirection(int direction);
1513 void setBaseLineFlag(int flag);
1514 int getBaseLineFlag() const;
1515 void setTextWidth(double width);
1516 double getTextWidth() const;
1517 void setTextHeight(double height);
1518 double getTextHeight() const;
1519 void setAnnotationId(const std::string& anno);
1520 std::string getAnnotationId() const;
1521 void setArrowBlockHandle(int handle);
1523 void setVerxs(const std::vector<TechDraw::DxfVector>& verx);
1524 const std::vector<TechDraw::DxfVector>& getVerxs();
1525public:
1526 void setArrowStyle(DRW_Dimension_Arrow::DimensionArrowType style);
1527 DRW_Dimension_Arrow::DimensionArrowType getArrowStyle();
1528 void setArrowSize(double size);
1529 double getArrowSize() const;
1530 void setLineColor(int color);
1531 int getLineColor() const;
1532private:
1533 std::string m_Style;
1536 TechDraw::LeaderCreateType m_LeaderCreateType;
1541 std::string m_AnnotationId;
1543 std::vector<TechDraw::DxfVector> m_Verx;
1544 // 箭头样式
1545 enum DRW_Dimension_Arrow::DimensionArrowType m_ArrowStyle;
1548};
1549
1556class TechDrawExport DxfCircle : public DxfEntity {
1557public:
1558 DxfCircle(const DxfVector& center, double radius);
1560 virtual DxfEntity* clone() override;
1561 virtual void calculateBorders() override;
1563 virtual void move(const TechDraw::DxfVector& offset) override;
1564 virtual void rotate(const TechDraw::DxfVector& center, const double& angle) override;
1565 virtual void writeDxf(dxfW* writer) override;
1566public:
1569 double getRadius();
1570 void setRadius(double r);
1571private:
1573 double m_Radius;
1574};
1575
1582class TechDrawExport DxfArc : public DxfEntity {
1583public:
1584 DxfArc(const DxfVector& center,
1585 double radius,
1586 double angle1,
1587 double angle2,
1588 bool reversed);
1590 virtual DxfEntity* clone() override;
1591 virtual void calculateBorders() override;
1592 virtual DxfVector getStartPoint() const override;
1593 virtual DxfVector getEndPoint() const override;
1594 virtual DxfVector getMiddlePoint() const override;
1596 virtual void move(const TechDraw::DxfVector& offset) override;
1597 virtual void rotate(const TechDraw::DxfVector& center, const double& angle) override;
1598 virtual void writeDxf(dxfW* writer) override;
1599
1600
1601 double bulge;
1602public:
1606 double getRadius() const;
1610 void setRadius(double r);
1614 double getAngle1() const;
1618 void setAngle1(double);
1622 double getAngle2() const;
1630 void setAngle2(double a);
1637 bool isReversed() const;
1641 double getAngleLength() const;
1645 double getBulge() const;
1649 double getDirection1() const;
1653 double getDirection2() const;
1654 /*
1655 * * @return 圆心
1656 */
1658 /*
1659 * * @return 弧长
1660 */
1662 /*
1663 * * @return 弧长
1664 */
1665 double getLength() const;
1675 void setAnticlockwise(bool anticlosewise);
1676
1677private:
1681 double m_Radius;
1685 double m_Angle1;
1687 double m_Angle2;
1692};
1693
1700class TechDrawExport DxfEllipse : public DxfEntity {
1701public:
1702 DxfEllipse(const DxfVector& center,
1703 const DxfVector& major,
1704 double ratio,
1705 double angle1,
1706 double angle2,
1707 bool reversed);
1709 virtual DxfEntity* clone() override;
1710 virtual void calculateBorders() override;
1711 virtual DxfVector getStartPoint() const override;
1712 virtual DxfVector getEndPoint() const override;
1713 virtual DxfVector getMiddlePoint() const override;
1715 virtual void move(const TechDraw::DxfVector& offset) override;
1716 virtual void rotate(const TechDraw::DxfVector& center, const double& angle) override;
1717 virtual void writeDxf(dxfW* writer) override;
1718public:
1723 double getMajorRadius() const;
1724 double getMinorRadius() const;
1725 double getRatio() const;
1726 double getAngle1() const;
1727 double getAngle2() const;
1728 void setAngle1(double angle1);
1729 void setAngle2(double angle2);
1730 bool isReversed() const;
1731 bool isEllipticArc() const;
1732 bool isArc() const;
1733 //direction of tangent at endpoints
1734 double getDirection1() const;
1735 double getDirection2() const;
1736 double getAngle() const;
1737public:
1738 TechDraw::DxfVector getEllipsePoint(const double& a) const;
1739 double getEllipseAngle(const DxfVector& pos) const;
1740private:
1742 double* dist = nullptr,
1743 int middlePoints = 1) const;
1745 bool onEntity = true,
1746 double* dist = nullptr,
1747 DxfEntity** entity = nullptr) const;
1749 double* dist = nullptr) const;
1750public:
1752private:
1758 double m_Ratio;
1760 double m_Angle1;
1762 double m_Angle2;
1769};
1770
1777class TechDrawExport DxfPolyline : public DxfEntityContainer {
1778public:
1779 DxfPolyline(const DxfVector& startPt, const DxfVector& endPt, bool close, int num, double width);
1781 virtual DxfEntity* clone() override;
1782 virtual void calculateBorders() override;
1783 virtual DxfVector getStartPoint() const override;
1784 virtual DxfVector getEndPoint() const override;
1786 virtual void move(const TechDraw::DxfVector& offset) override;
1787 virtual void rotate(const TechDraw::DxfVector& center, const double& angle) override;
1788 virtual void writeDxf(dxfW* writer) override;
1789public:
1790 void appendVertexs(const std::vector<std::pair<DxfVector, double> >& vlist);
1792 bool isClosed();
1793 int getVertexNum() const;
1795 double getLineWidth() const;
1796 void setLineWidth(double l);
1797 const std::vector<std::pair<DxfVector, double> >& getVertexList();
1798 void addToVertexList(const std::pair<DxfVector, double>&);
1800 void setScale(double scale);
1801private:
1802 void writePolyline(dxfW* writer);
1803 void writeLWPolyline(dxfW* writer);
1804private:
1808 double m_NextBulge = 0.0;
1809 DxfEntity* m_ClosingEntity = nullptr;
1810 int m_VertexNum = 0;
1811 double m_LineWidth = 1.0;
1812 std::vector<std::pair<DxfVector, double> > m_VertexList;
1813 double m_Scale;
1814};
1815
1822class TechDrawExport DxfSpline : public DxfEntityContainer {
1823public:
1824 DxfSpline() = default;
1825 DxfSpline(int degree, bool closed);
1827 virtual DxfEntity* clone() override;
1828 virtual void calculateBorders() override;
1830 virtual void move(const TechDraw::DxfVector& offset) override;
1831 virtual void rotate(const TechDraw::DxfVector& center, const double& angle) override;
1832 virtual void writeDxf(dxfW* writer) override;
1833public:
1835 void setControlPoints(const std::vector<DxfVector>& controlPt);
1836 const std::vector<DxfVector>& getControlPoints();
1837 void addToKnotsLists(double knot);
1838 void setKnots(const std::vector<double> konts);
1839 const std::vector<double>& getKnotsLists();
1840 bool isClosed();
1841 void setCloseStatus(bool status);
1842 size_t getDegree();
1843 void setDegree(size_t degree);
1845 void setControlPointWeight(const std::vector<double>& valueVec);
1846 std::vector<double> getControlPointWeight();
1847private:
1848 size_t m_Degree;
1850 std::vector<DxfVector> m_ControlPoints;
1851 std::vector<double> m_KnotsLists;
1852 std::vector<double> m_Weights;
1853};
1854
1861class TechDrawExport DxfText : public DxfEntity {
1862public:
1863 DxfText(const DxfVector& insertPt,
1864 const DxfVector& secondPt,
1865 double height,
1866 double widthRel,
1867 HAlign hAlign,
1868 VAlign vAlign,
1869 TextGeneration tg,
1870 const std::string& text,
1871 const std::string& font,
1872 const std::string& style,
1873 double angle);
1875 virtual DxfEntity* clone() override;
1876 virtual void calculateBorders() override;
1878 virtual void move(const TechDraw::DxfVector& offset) override;
1879 virtual void rotate(const TechDraw::DxfVector& center, const double& angle) override;
1880 virtual void writeDxf(dxfW* writer) override;
1881public:
1886 double getHeight();
1887 void setHeight(double h);
1889 void setWidthFactor(double factor);
1890 VAlign getVAlign();
1891 HAlign getHAlign();
1892 TextGeneration getTextGeneration();
1893 const std::string& getText();
1894 void setText(const std::string&);
1895 void setFont(const std::string&);
1896 const std::string& getFont();
1897 void setStyle(const std::string& style);
1898 const std::string& getStyle();
1899 double getAngle() const;
1900 void setAngle(double angle);
1901 void setScale(double scale);
1902 void setAmplify(const double times);
1903 double getAmplify() const;
1904private:
1907 double m_Height;
1908 double m_WidthFactor; //宽度因子
1909 VAlign m_VAlign;
1910 HAlign m_HAlign;
1911 TextGeneration m_TextGeneration;
1912 std::string m_Text;
1913 std::string m_Font;
1914 std::string m_Style;
1915 double m_Angle;
1916 double m_Scale;
1918 double m_Amplify; // 计算BoundingBox使用
1919};
1920
1927class TechDrawExport DxfMText : public DxfEntity {
1928public:
1930 DxfMText(const DxfVector& insertionPoint,
1931 double height,
1932 double width,
1933 VAlign valign,
1934 HAlign halign,
1935 MTextDrawingDirection drawingDirection,
1936 MTextLineSpacingStyle lineSpacingStyle,
1937 double lineSpacingFactor,
1938 const std::string& text,
1939 const std::string& font,
1940 const std::string& style,
1941 double angle);
1945 virtual DxfEntity* clone() override;
1946 virtual void calculateBorders() override;
1948 virtual void move(const TechDraw::DxfVector& offset) override;
1949 virtual void rotate(const TechDraw::DxfVector& center, const double& angle) override;
1951 virtual void writeDxf(dxfW* writer) override;
1952public:
1958 void setAngle(const double& angle);
1960 double getHeight();
1962 void setHeight(double h);
1963 //
1964 void setFont(const std::string fontFamily);
1966 double getWidth();
1967 //
1969 void setWidthFactor(double factor);
1970
1972 VAlign getVAlign();
1974 HAlign getHAlign();
1976 MTextDrawingDirection getMTextDrawingDirection();
1978 MTextLineSpacingStyle getMTextLineSpacingStyle();
1982 const std::string& getText();
1984 void setText(const std::string&);
1986 const std::string& getFont();
1987 //设置样式
1988 void setStyle(const std::string& style);
1990 const std::string& getStyle();
1992 double getAngle() const;
1994 double getUsedTextWidth() const;
1996 double getUsedTextHeight() const;
1998 bool getBold() const;
2000 bool getItalic() const;
2002 bool getDimension() const;
2004 bool getBackward() const;
2006 bool getUpsideDown() const;
2008 void setScale(double scale);
2009 //
2010 void setAmplify(const double times);
2011private:
2015 double m_Height;
2017 double m_Width;
2019 TechDraw::VAlign m_VAlign;
2021 TechDraw::HAlign m_HAlign;
2023 TechDraw::MTextDrawingDirection m_MTextDrawingDirection;
2025 TechDraw::MTextLineSpacingStyle m_MTextLineSpacingStyle;
2028 // 宽度因子
2031 std::string m_Text;
2033 std::string m_Style;
2035 std::string m_Font;
2037 double m_Angle;
2055 double m_Scale;
2058};
2059
2060class TechDrawExport DxfSolid : public DxfEntity {
2061public:
2063 DxfSolid(const DxfVector& corner1,
2064 const DxfVector& corner2,
2065 const DxfVector& corner3);
2066 DxfSolid(const DxfVector& corner1,
2067 const DxfVector& corner2,
2068 const DxfVector& corner3,
2069 const DxfVector& corner4);
2071public:
2073 virtual DxfEntity* clone() override;
2074 virtual void calculateBorders() override;
2076 virtual void move(const TechDraw::DxfVector& offset) override;
2077 virtual void rotate(const TechDraw::DxfVector& center, const double& angle) override;
2079 virtual void writeDxf(dxfW* writer) override;
2080public:
2081 void setCorner(const std::vector<DxfVector>& corner);
2082 const std::vector<DxfVector>& getCorner();
2083public:
2092 double angle,
2093 double arrowSize,
2094 double xScale = 1.0,
2095 double yScale = 1.0);
2096protected:
2097 std::vector<DxfVector> m_Corner;
2098};
2099
2100class TechDrawExport Dxf3DFace : public DxfSolid {
2101public:
2103 Dxf3DFace(const DxfVector& corner1,
2104 const DxfVector& corner2,
2105 const DxfVector& corner3);
2106 Dxf3DFace(const DxfVector& corner1,
2107 const DxfVector& corner2,
2108 const DxfVector& corner3,
2109 const DxfVector& corner4);
2111public:
2113 virtual DxfEntity* clone() override;
2114 virtual void calculateBorders() override;
2116 virtual void move(const TechDraw::DxfVector& offset) override;
2117 virtual void rotate(const TechDraw::DxfVector& center, const double& angle) override;
2119 virtual void writeDxf(dxfW* writer) override;
2120};
2121
2122}
2123
2124#endif // !TECHDRAWAPP_DXF_DXFENTITY_H
SPLINE
Definition DxfEntity.h:63
DIMALIGNED
Definition DxfEntity.h:50
ELLIPSE
径向标注
Definition DxfEntity.h:55
POINT
多段线
Definition DxfEntity.h:62
BLOCK
圆弧
Definition DxfEntity.h:48
DIMDIAMETRIC
角度标注
Definition DxfEntity.h:52
MTEXT
线
Definition DxfEntity.h:60
LINE
引线标注
Definition DxfEntity.h:59
HATCH
椭圆
Definition DxfEntity.h:56
CIRCLE
Definition DxfEntity.h:49
DIMRADIAL
线性标注
Definition DxfEntity.h:54
VECTOR3D
三维面
Definition DxfEntity.h:67
SOLID
样条曲线
Definition DxfEntity.h:64
DIMANGULAR
对齐标注
Definition DxfEntity.h:51
LEADER
插入点
Definition DxfEntity.h:58
FACE3D
文字
Definition DxfEntity.h:66
DIMLINEAR
半径标注
Definition DxfEntity.h:53
ARC
Definition DxfEntity.h:47
TEXT
实体
Definition DxfEntity.h:65
POLYLINE
多行文字
Definition DxfEntity.h:61
INSERT
Definition ISnapProcessedBase.h:72
T
Definition ISnapProcessedBase.h:49
virtual void move(const TechDraw::DxfVector &offset) override
移动
virtual void calculateBorders() override
计算坐标范围
Dxf3DFace(const DxfVector &corner1, const DxfVector &corner2, const DxfVector &corner3)
Dxf3DFace(const DxfVector &corner1, const DxfVector &corner2, const DxfVector &corner3, const DxfVector &corner4)
virtual DxfEntity * clone() override
纯虚函数, 拷贝对象
virtual void writeDxf(dxfW *writer) override
写dxf文件
virtual void rotate(const TechDraw::DxfVector &center, const double &angle) override
旋转实体
Definition DxfEntity.h:2100
const TechDraw::DxfVector & getCenter()
double m_Angle2
终止角度
Definition DxfEntity.h:1687
double getAngle1() const
virtual void move(const TechDraw::DxfVector &offset) override
移动
virtual void calculateBorders() override
计算坐标范围
double bulge
Definition DxfEntity.h:1601
double getDirection2() const
bool getAnticlockwise()
virtual DxfEntity * clone() override
纯虚函数, 拷贝对象
double m_Radius
半径
Definition DxfEntity.h:1681
DxfVector m_CenterPoint
圆心
Definition DxfEntity.h:1679
double getAngleLength() const
void setRadius(double r)
double getAngle2() const
double m_Angle1
起始角度
Definition DxfEntity.h:1685
bool m_Reversed
反转标志
Definition DxfEntity.h:1689
DxfArc(const DxfVector &center, double radius, double angle1, double angle2, bool reversed)
void reverseAngle1AndAngle2()
void setAnticlockwise(bool anticlosewise)
设置逆时针标志
virtual void writeDxf(dxfW *writer) override
写dxf文件
virtual DxfVector getEndPoint() const override
第二个点坐标
double getRadius() const
double getDirection1() const
void setAngle2(double a)
设置角度
virtual DxfVector getStartPoint() const override
第一个点坐标
void setCenter(const TechDraw::DxfVector &)
double getBulge() const
bool isReversed() const
是否反转
virtual void rotate(const TechDraw::DxfVector &center, const double &angle) override
旋转实体
void setAngle1(double)
virtual DxfVector getMiddlePoint() const override
中心点坐标
double m_MinRadius
短轴半径
Definition DxfEntity.h:1683
bool m_Anticlockwise
逆时针标志
Definition DxfEntity.h:1691
double getLength() const
TechDraw中DxfArc类
Definition DxfEntity.h:1582
~DxfAttribute()
属性析构函数
DxfAttribute()
属性构造函数
TechDraw中DxfAttribute类
Definition DxfEntity.h:76
void setIsEndBlock(bool isEndBlock)
DxfVector m_Scale
Definition DxfEntity.h:733
virtual void calculateBorders() override
计算坐标范围
std::string getBlockName() const
获取块名
void setBlockName(const std::string &blkName)
修改块名
virtual DxfEntity * clone() override
纯虚函数, 拷贝对象
void setIsInsert(bool isInsert)
const DxfVector & getInsertPoint()
int m_BlockHandle
Definition DxfEntity.h:731
DxfBlock(const std::string &name, const DxfVector &iPt)
void setBlockHandle(int handle)
bool getIsInsert() const
const DxfVector & getScale()
int getBlockHandle() const
DxfVector m_InsertPoint
Definition DxfEntity.h:732
TechDraw中DxfBlock类
Definition DxfEntity.h:706
virtual void move(const TechDraw::DxfVector &offset) override
移动
virtual void calculateBorders() override
计算坐标范围
const DxfVector & getCenterPoint()
virtual DxfEntity * clone() override
纯虚函数, 拷贝对象
double m_Radius
Definition DxfEntity.h:1573
DxfVector m_CenterPoint
Definition DxfEntity.h:1572
void setRadius(double r)
virtual void writeDxf(dxfW *writer) override
写dxf文件
DxfCircle(const DxfVector &center, double radius)
virtual void rotate(const TechDraw::DxfVector &center, const double &angle) override
旋转实体
void setCenterPoint(const DxfVector &c)
TechDraw中DxfCircle类
Definition DxfEntity.h:1556
DxfVector m_ExtensionPoint1
Definition point.
Definition DxfEntity.h:1237
void updateDimPoint()
Recalculate the original Dimension Point to remove Dim oblique angle.
virtual void move(const TechDraw::DxfVector &offset) override
移动
virtual void calculateBorders() override
计算坐标范围
virtual DxfEntity * clone() override
纯虚函数, 拷贝对象
DxfVector const & getExtensionPoint2() const
DxfDimAligned(const DxfVector &definitionPoint, const DxfVector &middleOfText, VAlign valign, HAlign halign, MTextLineSpacingStyle lineSpacingStyle, double lineSpacingFactor, const std::string &text, const std::string &font, const std::string &style, double angleDim, const DxfVector &extensionPoint1, const DxfVector &extensionPoint2, int textcolor=0, int horizonColor=0, int verticalColor=0)
virtual void updateDimension(double xScale=1.0, double yScale=1.0, bool autoText=false) override
DxfVector const & getExtensionPoint1() const
virtual void writeDxf(dxfW *writer) override
写dxf文件
virtual void rotate(const TechDraw::DxfVector &center, const double &angle) override
旋转实体
DxfVector m_ExtensionPoint2
Definition point.
Definition DxfEntity.h:1239
virtual std::string getMeasuredLabel() const override
Needs to be implemented by the dimension class to return the measurement of the dimension (e....
Definition DxfEntity.h:1191
TechDraw::DxfVector m_DimDir2e
Definition DxfEntity.h:1324
DxfVector m_DefinitionPoint3
< 2nd line start point, DXF codes 15,25,35
Definition DxfEntity.h:1316
virtual void move(const TechDraw::DxfVector &offset) override
移动
virtual void calculateBorders() override
计算坐标范围
DxfVector m_DefinitionPoint1
< 1st line start point, DXF codes 13,23,33
Definition DxfEntity.h:1312
TechDraw::DxfVector m_DimDirRad
Definition DxfEntity.h:1325
const DxfVector & getDefinitionPoint2()
virtual DxfEntity * clone() override
纯虚函数, 拷贝对象
virtual void update(double xScale=1.0, double yScale=1.0)
DxfVector m_DefinitionPoint2
< 1st line end point, DXF codes 14,24,34
Definition DxfEntity.h:1314
double m_DimAngle
Definition DxfEntity.h:1328
DxfLine m_DimLine2
Definition DxfEntity.h:1327
void arrow(const TechDraw::DxfVector &point, const double angle, const double direction, const bool outsideArrows, const double _dimscale, const double _dimexo, const double _dimexe, const double _dimtxt, const double _dimgap, const double _arrowSize, double xScale=1.0, double yScale=1.0)
TechDraw::DxfVector m_DimDir1s
< angle to dimension in rad
Definition DxfEntity.h:1321
TechDraw::DxfVector m_DimDir1e
Definition DxfEntity.h:1322
void extensionLine(const TechDraw::DxfVector &dimLineP1, const TechDraw::DxfVector &dimLineP2, const TechDraw::DxfVector &dimPoint, const TechDraw::DxfVector &dirStart, const TechDraw::DxfVector &dirEnd, const double _dimscale, const double _dimexo, const double _dimexe, const double _dimtxt, const double _dimgap, const double _arrowSize)
const DxfVector & getDefinitionPoint3()
virtual void updateDimension(double xScale=1.0, double yScale=1.0, bool autoText=false) override
double m_DimAngleL2
Definition DxfEntity.h:1331
const DxfVector & getDefinitionPoint1()
TechDraw::DxfVector m_DimDir2s
Definition DxfEntity.h:1323
DxfLine m_DimLine1
Definition DxfEntity.h:1326
DxfVector m_DefinitionPoint4
< 2nd line end point is in common dim data, DXF codes 10,20,30 < dim arc radius point,...
Definition DxfEntity.h:1319
virtual void writeDxf(dxfW *writer) override
写dxf文件
double m_DimAngleL1
Definition DxfEntity.h:1330
const DxfVector & getDefinitionPoint4()
double m_DimRadius
Definition DxfEntity.h:1329
DxfDimAngular(const DxfVector &definitionPoint, const DxfVector &middleOfText, VAlign valign, HAlign halign, MTextLineSpacingStyle lineSpacingStyle, double lineSpacingFactor, const std::string &text, const std::string &font, const std::string &style, double angleDim, const DxfVector &definitionPoint1, const DxfVector &definitionPoint2, const DxfVector &definitionPoint3, const DxfVector &definitionPoint4, int textcolor=0, int horizonColor=0, int verticalColor=0)
virtual void rotate(const TechDraw::DxfVector &center, const double &angle) override
旋转实体
TechDraw::DxfVector m_DimCenter
Definition DxfEntity.h:1332
virtual std::string getMeasuredLabel() const override
Needs to be implemented by the dimension class to return the measurement of the dimension (e....
Definition DxfEntity.h:1242
DxfVector m_DiameterPoint
Definition point.
Definition DxfEntity.h:1374
virtual void move(const TechDraw::DxfVector &offset) override
移动
virtual void calculateBorders() override
计算坐标范围
virtual DxfEntity * clone() override
纯虚函数, 拷贝对象
virtual void updateDimension(double xScale=1.0, double yScale=1.0, bool autoText=false) override
const DxfVector & getDiameterPoint()
virtual void writeDxf(dxfW *writer) override
写dxf文件
DxfDimDiametric(const DxfVector &definitionPoint, const DxfVector &middleOfText, VAlign valign, HAlign halign, MTextLineSpacingStyle lineSpacingStyle, double lineSpacingFactor, const std::string &text, const std::string &font, const std::string &style, double angleDim, const DxfVector &DiameterPoint, double leader, int textcolor=0, int horizonColor=0, int verticalColor=0)
virtual void rotate(const TechDraw::DxfVector &center, const double &angle) override
旋转实体
double getLeader() const
double m_Leader
Leader length.
Definition DxfEntity.h:1376
virtual std::string getMeasuredLabel() const override
Needs to be implemented by the dimension class to return the measurement of the dimension (e....
Definition DxfEntity.h:1335
DxfVector m_ExtensionPoint1
Definition point.
Definition DxfEntity.h:1433
void setAngle(double a)
DxfDimLinear(const DxfVector &definitionPoint, const DxfVector &middleOfText, VAlign valign, HAlign halign, MTextLineSpacingStyle lineSpacingStyle, double lineSpacingFactor, const std::string &text, const std::string &font, const std::string &style, double angleDim, const DxfVector &extensionPoint1, const DxfVector &extensionPoint2, double angleDimLinear, double oblique, int textcolor=0, int horizonColor=0, int verticalColor=0)
virtual void move(const TechDraw::DxfVector &offset) override
移动
virtual void calculateBorders() override
计算坐标范围
virtual DxfEntity * clone() override
纯虚函数, 拷贝对象
DxfVector getExtensionPoint1() const
DxfVector getExtensionPoint2() const
double getOblique() const
double getAngle() const
double m_Angle
Rotation angle in rad.
Definition DxfEntity.h:1437
double m_Oblique
Oblique angle in rad.
Definition DxfEntity.h:1439
virtual void updateDimension(double xScale=1.0, double yScale=1.0, bool autoText=false) override
void setOblique(double o)
virtual void writeDxf(dxfW *writer) override
写dxf文件
virtual void rotate(const TechDraw::DxfVector &center, const double &angle) override
旋转实体
DxfVector m_ExtensionPoint2
Definition point.
Definition DxfEntity.h:1435
virtual std::string getMeasuredLabel() const override
Needs to be implemented by the dimension class to return the measurement of the dimension (e....
Definition DxfEntity.h:1379
DxfVector m_RadialPoint
Definition DxfEntity.h:1481
virtual void move(const TechDraw::DxfVector &offset) override
移动
virtual void calculateBorders() override
计算坐标范围
const DxfVector & getRadialPoint()
virtual DxfEntity * clone() override
纯虚函数, 拷贝对象
DxfDimRadial(const DxfVector &definitionPoint, const DxfVector &middleOfText, VAlign valign, HAlign halign, MTextLineSpacingStyle lineSpacingStyle, double lineSpacingFactor, const std::string &text, const std::string &font, const std::string &style, double angleDim, const DxfVector &radialPoint, double leader, int textcolor=0, int horizonColor=0, int verticalColor=0)
virtual void updateDimension(double xScale=1.0, double yScale=1.0, bool autoText=false) override
virtual void writeDxf(dxfW *writer) override
写dxf文件
virtual void rotate(const TechDraw::DxfVector &center, const double &angle) override
旋转实体
double getLeader() const
double m_Leader
Definition DxfEntity.h:1482
virtual std::string getMeasuredLabel() const override
Needs to be implemented by the dimension class to return the measurement of the dimension (e....
Definition DxfEntity.h:1442
void setDimtmove(int dimtmove)
double m_Dimdli
Definition DxfEntity.h:315
int m_Dimadec
Definition DxfEntity.h:330
void setDimcen(double dimcen)
std::string getDimblk() const
void setDimtdec(int dimtdec)
int m_Dimtad
Definition DxfEntity.h:320
void setDimtxsty(const std::string &txstyle)
DxfDimStyle(const std::string &name)
double getDimdle() const
double m_Dimexo
Definition DxfEntity.h:314
int m_Dimdsep
Definition DxfEntity.h:334
void setDimexe(double dimexe)
int m_Dimtih
Definition DxfEntity.h:318
int m_Dimjust
Definition DxfEntity.h:336
void setDimdsep(int dimdsep)
int m_Dimtzin
Definition DxfEntity.h:337
void setDimtad(int dimtad)
int m_Dimzin
Definition DxfEntity.h:321
void setDimalttd(int dimalttd)
void setDimtxt(double dimtxt)
void setDimtofl(int dimtofl)
int getDimadec() const
int getDimalttd() const
void setDimdle(double dimdle)
int getDimtzin() const
double m_Dimdle
Definition DxfEntity.h:317
void setDimexo(double dimexo)
double m_Dimaltf
Definition DxfEntity.h:324
int m_Dimdec
Definition DxfEntity.h:331
double getDimexe() const
double m_Dimtxt
Definition DxfEntity.h:322
void setDimlfac(double dimlfac)
UTF8STRING m_Dimblk
Definition DxfEntity.h:339
double getDimdli() const
int m_Dimtdec
Definition DxfEntity.h:332
void setDimaltf(double dimaltf)
void setDimadec(int dimadec)
int getDimjust() const
int getDimdsep() const
void setDimgap(double dimgap)
int m_Dimtix
Definition DxfEntity.h:328
std::string getDimtxsty() const
double m_Dimasz
Definition DxfEntity.h:313
std::string getName() const
void setDimblk(const std::string &dimblk)
double m_Dimlfac
Definition DxfEntity.h:325
void setDimdec(int dimdec)
void setDimclrt(int dimclrt)
void setDimtoh(int dimtoh)
double getDimlfac() const
double m_Dimexe
Definition DxfEntity.h:316
double m_Dimcen
Definition DxfEntity.h:323
int m_Dimtmove
Definition DxfEntity.h:335
void setDimdli(double dimdli)
int m_Dimtofl
Definition DxfEntity.h:327
double getDimaltf() const
void setDimasz(double dimasz)
double m_Dimgap
Definition DxfEntity.h:326
int m_Dimclrt
Definition DxfEntity.h:329
std::string m_Name
Definition DxfEntity.h:312
void setDimtzin(int dimtzin)
double getDimcen() const
void setDimtih(int dimtih)
int m_Dimtoh
Definition DxfEntity.h:319
int getDimtmove() const
void setDimtix(int dimtix)
int getDimtofl() const
double getDimtxt() const
int m_Dimalttd
Definition DxfEntity.h:333
void setDimzin(int dimzin)
void setDimjust(int dimjust)
UTF8STRING m_Dimtxsty
Definition DxfEntity.h:338
int getDimtdec() const
double getDimexo() const
double getDimgap() const
double getDimasz() const
int getDimclrt() const
Definition DxfEntity.h:251
std::string m_Font
Definition DxfEntity.h:1166
double m_DimensionArrowSize
Definition DxfEntity.h:1184
HAlign m_Halign
Horizontal alignment
Definition DxfEntity.h:1152
const std::string & getFont()
void updateCreateAlignedTextDimensionLine(const TechDraw::DxfVector &p1, const TechDraw::DxfVector &p2, bool arrow1=true, bool arrow2=true, double xScale=1.0, double yScale=1.0, bool autoText=false)
void setDimensionArrowBlockHandle(const std::string &handle)
std::vector< TechDraw::DxfVector > getIntersection(DxfEntity const *e1, DxfEntity const *e2, bool onEntities=false)
virtual void move(const TechDraw::DxfVector &offset) override
移动
virtual void calculateBorders() override
计算坐标范围
void updateCreateDimensionLine(const TechDraw::DxfVector &p1, const TechDraw::DxfVector &p2, bool arrow1=true, bool arrow2=true, double xScale=1.0, double yScale=1.0, bool autoText=false)
创建尺寸标注线(带有一个、两个或没有箭头和文字的线).
bool isDimension(TechDraw::DxfEntityType type)
const DxfVector & getDefinitionPointComstom()
virtual std::string getMeasuredLabel() const
Needs to be implemented by the dimension class to return the measurement of the dimension (e....
VAlign m_Valign
垂直对齐方式
Definition DxfEntity.h:1150
virtual void updateDimension(double xScale=1.0, double yScale=1.0, bool autoText=false)
DxfVector getMiddleOfTextIfAuto()
std::string getMeasuredLabel(double dist) const
获得测量结果字符串
int m_userPosition
标注放置到用户自定义位置.
Definition DxfEntity.h:1174
std::string m_DimensionArrowBlockHandle
Definition DxfEntity.h:1188
void setDimensionTextSize(double d)
void setDimensionArrowSize(double d)
void setDimensionTextColor(int c)
virtual DxfEntity * clone() override
纯虚函数, 拷贝对象
void setDimensionVerticalColor(int c)
virtual void update(double xScale=1.0, double yScale=1.0)
int m_DimensionHorizonColor
Definition DxfEntity.h:1180
DxfVector getMiddleOfText()
DxfVector m_MiddleOfTextIfAuto
标注文字的中点
Definition DxfEntity.h:1148
MTextLineSpacingStyle getLineSpacingStyle()
bool isPointInsideContour(const TechDraw::DxfVector &point, DxfEntityContainer *contour, bool *onContour=nullptr)
const std::string & getText()
DxfVector m_MiddleOfText
标注文字的中点
Definition DxfEntity.h:1146
MTextLineSpacingStyle m_LineSpacingStyle
Line spacing style
Definition DxfEntity.h:1154
double m_Angle
Rotation angle of dimension text away from default orientation
Definition DxfEntity.h:1170
int m_DimensionTextColor
Definition DxfEntity.h:1178
std::string m_RealText
Definition DxfEntity.h:1164
QString stripZerosLinear(QString linear, int zeros) const
从线性字符串中删除零.
double m_LineSpacingFactor
Line spacing factor
Definition DxfEntity.h:1156
DxfVector m_DefinitionPoint
定义点
Definition DxfEntity.h:1142
int m_DimensionVerticalColor
Definition DxfEntity.h:1182
bool m_Tangent
Definition DxfEntity.h:1172
std::string m_Style
Dimension style name
Definition DxfEntity.h:1168
void updateCreateHorizontalTextDimensionLine(const TechDraw::DxfVector &p1, const TechDraw::DxfVector &p2, bool arrow1=true, bool arrow2=true, bool autoText=false)
const std::string & getRealText()
enum DRW_Dimension_Arrow::DimensionArrowType m_DimensionArrowStyle
Definition DxfEntity.h:1176
const DxfVector & getDefinitionPoint()
virtual void writeDxf(dxfW *writer) override
写dxf文件
const std::string & getStyle()
void setDimensionArrowStyle(int arrowStyle)
DxfVector m_DefinitionPointCostom
定义点可以被修改,不会用作输出dxf
Definition DxfEntity.h:1144
double m_DimensionTextSize
Definition DxfEntity.h:1186
std::vector< TechDraw::DxfVector > getIntersectionsLineContainer(const DxfLine *l, const DxfEntityContainer &c, bool infiniteLine=false)
virtual void rotate(const TechDraw::DxfVector &center, const double &angle) override
旋转实体
DxfDimension(const DxfVector &definitionPoint, const DxfVector &middleOfText, VAlign valign, HAlign halign, MTextLineSpacingStyle lineSpacingStyle, double lineSpacingFactor, const std::string &text, const std::string &font, const std::string &style, double angle, int textcolor=0, int horizonColor=0, int verticalColor=0)
void setDimensionHorizonColor(int c)
std::string m_Text
Text string entered explicitly by user or null or "<>" for the actual measurement or " " (one blank s...
Definition DxfEntity.h:1162
Definition DxfEntity.h:1005
bool isEllipticArc() const
void setMajor(const TechDraw::DxfVector &)
double m_Angle2
End angle
Definition DxfEntity.h:1762
double getAngle1() const
double getEllipseAngle(const DxfVector &pos) const
virtual void move(const TechDraw::DxfVector &offset) override
移动
virtual void calculateBorders() override
计算坐标范围
double getMajorRadius() const
TechDraw::DxfVector getCenter() const
double m_MinorRadius
Definition DxfEntity.h:1768
DxfVector getNearestEndpoint(const DxfVector &coord, double *dist=nullptr) const
double getDirection2() const
virtual DxfEntity * clone() override
纯虚函数, 拷贝对象
DxfEllipse(const DxfVector &center, const DxfVector &major, double ratio, double angle1, double angle2, bool reversed)
DxfVector m_CenterPoint
Ellipse center
Definition DxfEntity.h:1754
bool isArc() const
double m_MajorAngle
Definition DxfEntity.h:1751
double getAngle2() const
double getAngle() const
void setAngle2(double angle2)
double getRatio() const
DxfVector getNearestMiddle(const DxfVector &coord, double *dist=nullptr, int middlePoints=1) const
double m_Angle1
Start angle
Definition DxfEntity.h:1760
bool m_Reversed
Reversed (cw) flag
Definition DxfEntity.h:1764
double getMinorRadius() const
double m_Ratio
Ratio of minor axis to major axis.
Definition DxfEntity.h:1758
virtual void writeDxf(dxfW *writer) override
写dxf文件
virtual DxfVector getEndPoint() const override
第二个点坐标
double m_MajorRadius
Definition DxfEntity.h:1766
DxfVector m_MajorPoint
Endpoint of major axis relative to center.
Definition DxfEntity.h:1756
TechDraw::DxfVector getEllipsePoint(const double &a) const
double getDirection1() const
virtual DxfVector getStartPoint() const override
第一个点坐标
void setCenter(const TechDraw::DxfVector &)
bool isReversed() const
virtual void rotate(const TechDraw::DxfVector &center, const double &angle) override
旋转实体
virtual DxfVector getMiddlePoint() const override
中心点坐标
void setAngle1(double angle1)
const DxfVector & getMajorPoint()
DxfVector getNearestPointOnEntity(const DxfVector &coord, bool onEntity=true, double *dist=nullptr, DxfEntity **entity=nullptr) const
TechDraw中DxfEllipse类
Definition DxfEntity.h:1700
std::string getTextStyle()
double getExtensionLineExtension() const
std::string getEntityLayoutId() const
@ return Entity的layout Id
virtual DxfVector getEndPoint() const
第二个点坐标
int getDimensionLineColor() const
DxfAttribute m_Attribute
属性
Definition DxfEntity.h:650
TechDraw::DxfHeader * m_Header
Definition DxfEntity.h:660
virtual DxfEntity * clone()=0
纯虚函数, 拷贝对象
double getArrowSize() const
virtual void writeDxf(dxfW *writer)
写dxf文件
double getExtensionLineOffset() const
double getGeneralScale() const
DxfEntityType getType() const
实体类型枚举值
std::string m_EntityParentId
Definition DxfEntity.h:664
int m_Version
版本号
Definition DxfEntity.h:654
DxfEntity()
构造函数
void setHeaderInfo(TechDraw::DxfHeader *)
头信息指针设置,后面可以读取头信息中的一些数据
DxfEntityType m_Type
类型
Definition DxfEntity.h:652
void setLayer(const std::string &name)
设置图层
int getExtensionLineColor() const
long m_EntityId
Definition DxfEntity.h:666
const TechDraw::DxfVector & getMaxVector()
实体坐标范围的最大值
double getTickSize() const
virtual void rotate(const DxfVector &center, const double &angle)
旋转实体
int getTextColor() const
void setAttribute(const DxfAttribute &attr)
保存属性
void setVersion(int version)
设置dxf版本号
void setAttribute(DRW_Entity &data)
保存属性
virtual DxfVector getStartPoint() const
第一个点坐标
virtual void calculateBorders()
计算坐标范围
DxfAttribute getAttribute() const
返回属性
int getExtensionLineWidth() const
virtual ~DxfEntity()
析构函数
std::string m_EntityUuid
Definition DxfEntity.h:662
std::string getEntityUuid() const
int getDimensionLineWidth() const
const TechDraw::DxfVector & getSize()
实体坐标范围的大小
void setEntityLayoutId(const std::string &id)
@ 设置Entity的layout Id
const TechDraw::DxfVector & getMinVector()
实体坐标范围的最小值
double getGeneralFactor() const
virtual void move(const TechDraw::DxfVector &offset)
移动
long getEntityId() const
double getDimensionLineGap() const
void setLayer(DxfLayer *l)
设置图层
bool getFixedLengthOn() const
bool getInsideHorizontalText() const
virtual double getBulge() const
Definition DxfEntity.h:566
TechDraw::DxfVector m_MaxV
maximum coordinates
Definition DxfEntity.h:658
double getTextHeight() const
virtual DxfVector getMiddlePoint() const
中心点坐标
double getFixedLength() const
TechDraw::DxfVector m_MinV
minimum coordinates
Definition DxfEntity.h:656
void removeEntity(DxfEntity *)
virtual void move(const TechDraw::DxfVector &offset) override
移动
virtual void calculateBorders() override
计算坐标范围
const std::vector< DxfEntity * > & getEntities()
virtual DxfEntity * clone() override
纯虚函数, 拷贝对象
std::vector< DxfEntity * > m_EntityContainer
Definition DxfEntity.h:697
virtual void writeDxf(dxfW *writer) override
写dxf文件
void sortHatchLoop(std::vector< TechDraw::DxfEntityContainer * > &hatchVec)
void addRectangle(const TechDraw::DxfVector &corner1, const TechDraw::DxfVector &corner2)
virtual void rotate(const TechDraw::DxfVector &center, const double &angle) override
旋转实体
void addEntity(DxfEntity *entity)
void cloneEntities(DxfEntityContainer *oldEntity, DxfEntityContainer *newEntity)
std::vector< DxfEntity * > & getContainer()
TechDraw中DxfEntityContainer类
Definition DxfEntity.h:675
TechDraw中DxfEntity类
Definition DxfEntity.h:511
bool m_ShowEdgeLine
Definition DxfEntity.h:894
virtual void calculateBorders() override
计算坐标范围
HatchPat m_HatchPat
Definition DxfEntity.h:892
DxfHatch(bool solid, double scale, double angle, int filltype, const std::string &pattern)
virtual DxfEntity * clone() override
纯虚函数, 拷贝对象
void resetHatchEntities(const std::vector< TechDraw::DxfEntity * > &sectionFaces, double xScale=1.0, double yScale=1.0)
double getAngle() const
double m_Angle
Definition DxfEntity.h:890
double m_Scale
Definition DxfEntity.h:889
void setPatternName(const std::string &)
void resetHatchLoopEntities(DxfEntityContainer *hatchLoop, const std::vector< TechDraw::DxfEntity * > &sectionFaces, double xScale=1.0, double yScale=1.0)
void setPatternPath(DxfPattern *pattern)
QList< DxfPatternLine > getPatternLines() const
virtual void writeDxf(dxfW *writer) override
写dxf文件
std::string m_PatternName
Definition DxfEntity.h:891
void setShowEdgeLine(bool show)
void setHatchPat(HatchPat pat)
bool m_Solid
Definition DxfEntity.h:888
HatchPat getHatchPat() const
virtual void rotate(const TechDraw::DxfVector &center, const double &angle) override
旋转实体
DxfPattern * m_Pattern
Definition DxfEntity.h:893
double getScale() const
bool getSolid() const
std::string getPatternName() const
Definition DxfEntity.h:855
bool getString(const std::string &key, std::string &var)
std::map< std::string, DxfHeaderData * > m_HeaderDict
dxf头信息保存到map中
Definition DxfEntity.h:479
bool getVector3d(const std::string &key, DxfVector &vec)
const std::map< std::string, DxfHeaderData * > & getHeaders()
bool getInt(const std::string &key, int &var)
bool setInt(const std::string &key, int var)
bool getDouble(const std::string &key, double &var)
void addToHeader(const std::string &key, DxfHeaderData *data)
virtual DxfHeaderType getHeaderType() const
TechDraw中DxfHeaderData类
Definition DxfEntity.h:385
T m_Value
Definition DxfEntity.h:446
int getCode() const
Definition DxfEntity.h:436
DxfHeaderDataImpl(const DxfHeaderDataImpl &data)
Definition DxfEntity.h:406
void setValue(const T &v)
Definition DxfEntity.h:432
const T & getValue()
Definition DxfEntity.h:428
~DxfHeaderDataImpl()
Definition DxfEntity.h:419
const std::string & getKey()
Definition DxfEntity.h:424
void addVariable(const std::string &key, const T &value, int code)
Definition DxfEntity.h:413
DxfHeaderType getHeaderType() const override
Definition DxfEntity.h:440
enum DxfHeaderType m_Type
Definition DxfEntity.h:448
DxfHeaderDataImpl(enum class DxfHeaderType type)
Definition DxfEntity.h:401
std::string m_Key
Definition DxfEntity.h:445
int m_Code
Definition DxfEntity.h:447
TechDraw中DxfHeaderDataImpl类
Definition DxfEntity.h:399
TechDraw中DxfHeader类
Definition DxfEntity.h:457
DxfVector m_ScaleFactor
Definition DxfEntity.h:774
int getCols() const
virtual void move(const TechDraw::DxfVector &offset) override
移动
DxfVector m_Spacing
Definition DxfEntity.h:777
virtual void calculateBorders() override
计算坐标范围
const DxfVector & getScaleFactor()
virtual DxfEntity * clone() override
纯虚函数, 拷贝对象
const DxfVector & getSpacing()
int m_Cols
Definition DxfEntity.h:776
const DxfVector & getInsertPoint()
const std::vector< DxfBlock * > & getBlocks()
DxfInsert(std::string name, const DxfVector &insertPt, const DxfVector &scaleF, double angle, int cols, int rows, const DxfVector &spacing, const std::vector< DxfBlock * > &blocks)
double getAngle() const
double m_Angle
Definition DxfEntity.h:775
std::string getName() const
void setName(const std::string &name)
std::string m_Name
Definition DxfEntity.h:772
virtual void writeDxf(dxfW *writer) override
写dxf文件
std::vector< DxfBlock * > m_BlockSource
Definition DxfEntity.h:778
int getRows() const
DxfVector m_InsertionPoint
Definition DxfEntity.h:773
TechDraw中DxfInsert类
Definition DxfEntity.h:745
const std::string & getName()
double m_Length
Definition DxfEntity.h:139
const std::string & getDescription()
std::string m_Description
Definition DxfEntity.h:135
int getSize() const
int m_Size
Definition DxfEntity.h:137
DxfLType(const std::string &name, const std::string &desc, int size, double length, const std::vector< DRW::LineTypeCombinedCode > &path)
std::vector< DRW::LineTypeCombinedCode > m_Path
Definition DxfEntity.h:141
std::string m_Name
Definition DxfEntity.h:133
const std::vector< DRW::LineTypeCombinedCode > & getPath()
double getLength() const
TechDraw中DxfLType类
Definition DxfEntity.h:110
int getColor() const
const std::string & getName()
bool isFrozen() const
const std::string & getLineType()
bool isLocked() const
void setColor(int c)
void setColor24(int c24)
DxfLayer(const std::string &name, bool frozen, bool locked)
bool getPlotF() const
void setLineType(const std::string &lineType)
void seLWeight(enum DRW_LW_Conv::lineWidth lw)
std::string m_Name
Layer name
Definition DxfEntity.h:190
void lock(bool l)
DxfLayer * clone()
void setPlotF(bool p)
DRW_LW_Conv::lineWidth getLWeight() const
int getColor24() const
void freeze(bool freeze)
TechDraw中DxfLayer类
Definition DxfEntity.h:150
DxfLayout(const std::string &name, const std::string &id)
std::string mLayoutName
dxf layout信息保存到map中
Definition DxfEntity.h:501
std::string getLayoutName()
std::string mId
Definition DxfEntity.h:502
std::string getLayoutId()
TechDraw中DxfLayout类
Definition DxfEntity.h:488
enum DRW_Dimension_Arrow::DimensionArrowType m_ArrowStyle
Definition DxfEntity.h:1545
double getTextWidth() const
double m_TextHeight
Definition DxfEntity.h:1540
void setAnnotationId(const std::string &anno)
double m_TextWidth
Definition DxfEntity.h:1539
virtual void move(const TechDraw::DxfVector &offset) override
移动
virtual void calculateBorders() override
计算坐标范围
TechDraw::LeaderCreateType m_LeaderCreateType
Definition DxfEntity.h:1536
std::string getAnnotationId() const
int getBaseLineDirection() const
int m_LineColor
Definition DxfEntity.h:1547
double getArrowSize() const
void setArrowSize(double size)
void setLeaderCreateType(TechDraw::LeaderCreateType type)
void setBaseLineDirection(int direction)
int m_BaseLineDirection
Definition DxfEntity.h:1537
void setArrowStyle(DRW_Dimension_Arrow::DimensionArrowType style)
virtual DxfEntity * clone() override
纯虚函数, 拷贝对象
int getLeaderPathType() const
int getBaseLineFlag() const
int m_ArrowFlag
Definition DxfEntity.h:1534
void setArrowFlag(int flag)
const std::vector< TechDraw::DxfVector > & getVerxs()
std::string m_AnnotationId
Definition DxfEntity.h:1541
void setTextWidth(double width)
void setLineColor(int color)
std::string getStyle() const
std::vector< TechDraw::DxfVector > m_Verx
Definition DxfEntity.h:1543
int m_ArrowBlockHandle
Definition DxfEntity.h:1542
std::string m_Style
Definition DxfEntity.h:1533
virtual void writeDxf(dxfW *writer) override
写dxf文件
int getArrowFlag() const
void setLeaderPathType(int type)
TechDraw::LeaderCreateType getLeaderCreateType() const
void setArrowBlockHandle(int handle)
void setBaseLineFlag(int flag)
void setVerxs(const std::vector< TechDraw::DxfVector > &verx)
void setTextHeight(double height)
DRW_Dimension_Arrow::DimensionArrowType getArrowStyle()
int getArrowBlockHandle() const
void setStyle(const std::string &style)
int m_BaseLineFlag
Definition DxfEntity.h:1538
virtual void rotate(const TechDraw::DxfVector &center, const double &angle) override
旋转实体
double m_ArrowSize
Definition DxfEntity.h:1546
int getLineColor() const
double getTextHeight() const
int m_LeaderPathType
Definition DxfEntity.h:1535
TechDraw中DxfLeader类
Definition DxfEntity.h:1492
LineType m_LineType
Definition DxfEntity.h:973
double getAngle1() const
DxfLine(const DxfVector &spt, const DxfVector &ePt)
virtual void move(const TechDraw::DxfVector &offset) override
移动
virtual void calculateBorders() override
计算坐标范围
void setEndPoint(const TechDraw::DxfVector &)
设置线的终点坐标.
virtual DxfEntity * clone() override
纯虚函数, 拷贝对象
double getAngle2() const
double getDirection2(void) const
void setLineType(LineType type)
The angle of the line (from end to startpoint).
DxfVector m_StartPoint
Definition DxfEntity.h:971
double m_Scale
Definition DxfEntity.h:974
virtual ~DxfLine()
double getDirection1(void) const
DxfVector m_EndPoint
Definition DxfEntity.h:972
virtual void writeDxf(dxfW *writer) override
写dxf文件
virtual DxfVector getEndPoint() const override
第二个点坐标
void setScale(double scale)
void setStartPoint(const TechDraw::DxfVector &)
设置线的起点坐标.
virtual DxfVector getStartPoint() const override
第一个点坐标
virtual void rotate(const TechDraw::DxfVector &center, const double &angle) override
旋转实体
LineType getLineType() const
virtual DxfVector getMiddlePoint() const override
中心点坐标
TechDraw中DxfLine类
Definition DxfEntity.h:924
double m_Width
参考矩形宽度
Definition DxfEntity.h:2017
std::string m_Font
字体样式名称
Definition DxfEntity.h:2035
bool getUpsideDown() const
MTextDrawingDirection getMTextDrawingDirection()
返回拉伸方向
bool m_Italic
Definition DxfEntity.h:2051
DxfMText(const DxfVector &insertionPoint, double height, double width, VAlign valign, HAlign halign, MTextDrawingDirection drawingDirection, MTextLineSpacingStyle lineSpacingStyle, double lineSpacingFactor, const std::string &text, const std::string &font, const std::string &style, double angle)
const std::string & getFont()
返回样式
TechDraw::VAlign m_VAlign
垂直对齐
Definition DxfEntity.h:2019
virtual void move(const TechDraw::DxfVector &offset) override
移动
virtual void calculateBorders() override
计算坐标范围
bool m_Dimension
Definition DxfEntity.h:2052
TechDraw::MTextDrawingDirection m_MTextDrawingDirection
拉伸方向
Definition DxfEntity.h:2023
double m_Amplify
Definition DxfEntity.h:2057
double m_UsedTextWidth
此文本实体的当前内容所使用的文本宽度。 此属性由update方法更新。
Definition DxfEntity.h:2043
virtual DxfEntity * clone() override
纯虚函数, 拷贝对象
void setAngle(const double &angle)
VAlign getVAlign()
返回垂直对齐
void setInsectionPoint(const TechDraw::DxfVector &point)
const std::string & getText()
返回文字
double getAngle() const
返回角度
double m_Angle
旋转角度
Definition DxfEntity.h:2037
bool m_Backward
Definition DxfEntity.h:2053
double getUsedTextHeight() const
bool getBold() const
void setWidthFactor(double factor)
double m_Scale
Definition DxfEntity.h:2055
void setAmplify(const double times)
bool getBackward() const
bool getItalic() const
double m_LineSpacingFactor
行距系数
Definition DxfEntity.h:2027
bool getDimension() const
HAlign getHAlign()
返回水平对齐
double getWidthFactor()
double m_HeightInDxf
Definition DxfEntity.h:2056
bool m_UpsideDown
Definition DxfEntity.h:2054
TechDraw::MTextLineSpacingStyle m_MTextLineSpacingStyle
行距样式
Definition DxfEntity.h:2025
MTextLineSpacingStyle getMTextLineSpacingStyle()
返回行距样式
std::string m_Style
文本样式名称
Definition DxfEntity.h:2033
virtual void writeDxf(dxfW *writer) override
写dxf文件
TechDraw::DxfVector getInsertionPoint() const
返回插入点
double getLineSpacingFactor()
返回行距系数
bool m_Bold
Definition DxfEntity.h:2050
const std::string & getStyle()
返回样式
void setScale(double scale)
void setHeight(double h)
void setFont(const std::string fontFamily)
void setText(const std::string &)
void setStyle(const std::string &style)
double m_UsedTextHeight
Text height used by the current contents of this text entity.
Definition DxfEntity.h:2049
double getHeight()
返回高度
virtual void rotate(const TechDraw::DxfVector &center, const double &angle) override
旋转实体
double m_Height
标称(初始)文字高度
Definition DxfEntity.h:2015
double getUsedTextWidth() const
double m_WidthFactor
Definition DxfEntity.h:2029
TechDraw::HAlign m_HAlign
水平对齐
Definition DxfEntity.h:2021
std::string m_Text
文本字符串
Definition DxfEntity.h:2031
DxfVector m_InsertionPoint
插入点
Definition DxfEntity.h:2013
double getWidth()
返回宽度
TechDraw中DxfMText类
Definition DxfEntity.h:1927
QList< DxfPatternLine > m_PatternLines
List of pattern line definitions.
Definition DxfEntity.h:851
void addPatternLine(const DxfPatternLine &patternLine)
const QString getDescription() const
void setFileName(const QString &fileName)
QString m_Description
Pattern description
Definition DxfEntity.h:848
bool hasDots() const
QList< DxfPatternLine > getPatternLines() const
DxfPattern * clone()
const QString getName() const
QString m_FileName
Pattern file name
Definition DxfEntity.h:842
void scale(double f)
DxfPattern(const QString &name, const QString &description)
QString m_Name
Pattern name
Definition DxfEntity.h:845
QString getFileName() const
bool isLoaded() const
Definition DxfEntity.h:805
DxfVector getOffset() const
Definition DxfEntity.h:792
DxfVector basePoint
Definition DxfEntity.h:785
DxfVector offset
Definition DxfEntity.h:784
DxfVector getBasePoint() const
Definition DxfEntity.h:795
double angle
Definition DxfEntity.h:783
double getAngle() const
Definition DxfEntity.h:789
QList< double > dashes
Definition DxfEntity.h:786
QList< double > getDashes() const
Definition DxfEntity.h:798
Definition DxfEntity.h:781
virtual void move(const TechDraw::DxfVector &offset) override
移动
virtual void calculateBorders() override
计算坐标范围
const DxfVector & getVector3d()
virtual DxfEntity * clone() override
纯虚函数, 拷贝对象
DxfPoint(const DxfVector &pt)
DxfVector m_Point
Definition DxfEntity.h:915
virtual void writeDxf(dxfW *writer) override
写dxf文件
virtual void rotate(const TechDraw::DxfVector &center, const double &angle) override
旋转实体
TechDraw中DxfPoint类
Definition DxfEntity.h:903
void addToVertexList(const std::pair< DxfVector, double > &)
void appendVertexs(const std::vector< std::pair< DxfVector, double > > &vlist)
virtual void move(const TechDraw::DxfVector &offset) override
移动
virtual void calculateBorders() override
计算坐标范围
std::vector< std::pair< DxfVector, double > > m_VertexList
Definition DxfEntity.h:1812
bool m_Closed
Definition DxfEntity.h:1807
virtual DxfEntity * clone() override
纯虚函数, 拷贝对象
int getVertexNum() const
void setLineWidth(double l)
const std::vector< std::pair< DxfVector, double > > & getVertexList()
DxfPolyline(const DxfVector &startPt, const DxfVector &endPt, bool close, int num, double width)
void writeLWPolyline(dxfW *writer)
DxfVector m_StartPoint
Definition DxfEntity.h:1805
double getLineWidth() const
double m_Scale
Definition DxfEntity.h:1813
void writePolyline(dxfW *writer)
DxfVector m_EndPoint
Definition DxfEntity.h:1806
virtual void writeDxf(dxfW *writer) override
写dxf文件
virtual DxfVector getEndPoint() const override
第二个点坐标
void setScale(double scale)
DxfEntity * createVertex(int index)
virtual DxfVector getStartPoint() const override
第一个点坐标
virtual void rotate(const TechDraw::DxfVector &center, const double &angle) override
旋转实体
TechDraw中DxfPolyline类
Definition DxfEntity.h:1777
DxfRay(const DxfVector &spt, const DxfVector &ePt)
virtual DxfEntity * clone() override
纯虚函数, 拷贝对象
DxfRay()=default
TechDraw中DxfRay类
Definition DxfEntity.h:983
virtual void move(const TechDraw::DxfVector &offset) override
移动
virtual void calculateBorders() override
计算坐标范围
DxfSolid(const DxfVector &corner1, const DxfVector &corner2, const DxfVector &corner3)
DxfSolid(const DxfVector &corner1, const DxfVector &corner2, const DxfVector &corner3, const DxfVector &corner4)
virtual DxfEntity * clone() override
纯虚函数, 拷贝对象
const std::vector< DxfVector > & getCorner()
virtual void writeDxf(dxfW *writer) override
写dxf文件
void setCorner(const std::vector< DxfVector > &corner)
std::vector< DxfVector > m_Corner
Definition DxfEntity.h:2097
virtual void rotate(const TechDraw::DxfVector &center, const double &angle) override
旋转实体
void shapeArrow(const TechDraw::DxfVector &point, double angle, double arrowSize, double xScale=1.0, double yScale=1.0)
Shapes this Solid into a standard arrow (used in dimensions).
Definition DxfEntity.h:2060
DxfSpline(int degree, bool closed)
void addToKnotsLists(double knot)
virtual void move(const TechDraw::DxfVector &offset) override
移动
virtual void calculateBorders() override
计算坐标范围
std::vector< double > m_Weights
Definition DxfEntity.h:1852
void setKnots(const std::vector< double > konts)
std::vector< double > getControlPointWeight()
bool m_Closed
Definition DxfEntity.h:1849
virtual DxfEntity * clone() override
纯虚函数, 拷贝对象
std::vector< double > m_KnotsLists
Definition DxfEntity.h:1851
void setCloseStatus(bool status)
size_t m_Degree
Definition DxfEntity.h:1848
void setDegree(size_t degree)
virtual void writeDxf(dxfW *writer) override
写dxf文件
const std::vector< DxfVector > & getControlPoints()
void setControlPoints(const std::vector< DxfVector > &controlPt)
virtual void rotate(const TechDraw::DxfVector &center, const double &angle) override
旋转实体
const std::vector< double > & getKnotsLists()
std::vector< DxfVector > m_ControlPoints
Definition DxfEntity.h:1850
void setControlPointWeight(const std::vector< double > &valueVec)
void addControlPoint(const DxfVector &v)
TechDraw中DxfSpline类
Definition DxfEntity.h:1822
std::string m_Font
Definition DxfEntity.h:1913
const DxfVector & getSecondPoint()
const std::string & getFont()
virtual void move(const TechDraw::DxfVector &offset) override
移动
virtual void calculateBorders() override
计算坐标范围
void setAngle(double angle)
double m_Amplify
Definition DxfEntity.h:1918
HAlign m_HAlign
Definition DxfEntity.h:1910
VAlign m_VAlign
Definition DxfEntity.h:1909
virtual DxfEntity * clone() override
纯虚函数, 拷贝对象
const DxfVector & getInsertPoint()
const std::string & getText()
void setFont(const std::string &)
TextGeneration getTextGeneration()
double getAngle() const
double m_Angle
Definition DxfEntity.h:1915
DxfText(const DxfVector &insertPt, const DxfVector &secondPt, double height, double widthRel, HAlign hAlign, VAlign vAlign, TextGeneration tg, const std::string &text, const std::string &font, const std::string &style, double angle)
void setWidthFactor(double factor)
double m_Scale
Definition DxfEntity.h:1916
DxfVector m_SecondPoint
Definition DxfEntity.h:1906
void setAmplify(const double times)
double getWidthFactor()
double m_HeightInDxf
Definition DxfEntity.h:1917
std::string m_Style
Definition DxfEntity.h:1914
void setInsertpoint(const DxfVector &)
virtual void writeDxf(dxfW *writer) override
写dxf文件
const std::string & getStyle()
void setScale(double scale)
void setHeight(double h)
void setText(const std::string &)
void setSectionPoint(const DxfVector &)
TextGeneration m_TextGeneration
Definition DxfEntity.h:1911
void setStyle(const std::string &style)
virtual void rotate(const TechDraw::DxfVector &center, const double &angle) override
旋转实体
double m_Height
Definition DxfEntity.h:1907
double getAmplify() const
DxfVector m_InsertPoint
Definition DxfEntity.h:1905
double m_WidthFactor
Definition DxfEntity.h:1908
std::string m_Text
Definition DxfEntity.h:1912
TechDraw中DxfText类
Definition DxfEntity.h:1861
int m_FontFamily
Definition DxfEntity.h:248
double getHeight() const
int m_GenFlag
Definition DxfEntity.h:243
void setWidthFactor(float factor)
double getWidthFactor() const
UTF8STRING m_Font
Definition DxfEntity.h:246
double m_LastHeight
Definition DxfEntity.h:245
double getLastHeight() const
std::string getBigFont() const
double getOblique() const
std::string getFont() const
std::string getName() const
double m_Oblique
Definition DxfEntity.h:242
UTF8STRING m_BigFont
Definition DxfEntity.h:247
int getFontFamily() const
std::string m_Name
Definition DxfEntity.h:239
int m_flags
Definition DxfEntity.h:244
DxfTextStyle(std::string name, double height, double width, double oblique, int genFlag, int flags, double lastHeight, std::string font, std::string bigFont, int fontFamily)
double m_Height
Definition DxfEntity.h:240
double m_WidthFactor
Definition DxfEntity.h:241
TechDraw中DxfTextStyle类
Definition DxfEntity.h:213
CrosshairType m_CrosshairType
Definition DxfEntity.h:366
double m_Width
Definition DxfEntity.h:363
void setRatio(double factor)
double getWidth() const
DxfVector m_Center
Definition DxfEntity.h:367
const DxfVector & getCenter()
double getHeight() const
int m_SnapStyle
Definition DxfEntity.h:365
double getRatio() const
bool getGridOn() const
void setIsometricGrid(int snapStyle)
void setCrosshairType(CrosshairType type)
void setHeight(double height)
void setWidth(double width)
double m_Ratio
Definition DxfEntity.h:368
CrosshairType getCrosshairType() const
void setGridOn(bool grid)
double m_Height
Definition DxfEntity.h:364
int getIsometricGrid() const
void setCenter(const DxfVector &center)
bool m_GridOn
Definition DxfEntity.h:362
Definition DxfEntity.h:342
Definition DxfVector.h:61
DxfXline(const DxfVector &spt, const DxfVector &ePt)
virtual DxfEntity * clone() override
纯虚函数, 拷贝对象
TechDraw中DxfXline类
Definition DxfEntity.h:997
DxfHeaderType
Definition DxfEntity.h:371
Definition ArrowPropEnum.h:26