DXF: export entities, dimensions and comments on separate layers.
This commit is contained in:
parent
df0a1d64e4
commit
a886746e71
|
@ -41,6 +41,16 @@ public:
|
||||||
dxf->writeTextstyle(&ts);
|
dxf->writeTextstyle(&ts);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
virtual void writeLayers() {
|
||||||
|
DRW_Layer layer;
|
||||||
|
layer.name = "entities";
|
||||||
|
dxf->writeLayer(&layer);
|
||||||
|
layer.name = "dimensions";
|
||||||
|
dxf->writeLayer(&layer);
|
||||||
|
layer.name = "text";
|
||||||
|
dxf->writeLayer(&layer);
|
||||||
|
}
|
||||||
|
|
||||||
virtual void writeEntities() {
|
virtual void writeEntities() {
|
||||||
for(DxfFileWriter::BezierPath &path : writer->paths) {
|
for(DxfFileWriter::BezierPath &path : writer->paths) {
|
||||||
currentColor = path.color;
|
currentColor = path.color;
|
||||||
|
@ -157,9 +167,14 @@ public:
|
||||||
|
|
||||||
void assignEntityDefaults(DRW_Entity *entity) {
|
void assignEntityDefaults(DRW_Entity *entity) {
|
||||||
entity->color24 = currentColor;
|
entity->color24 = currentColor;
|
||||||
|
entity->layer = "entities";
|
||||||
if(currentWidth > 0.0) entity->setWidthMm(currentWidth);
|
if(currentWidth > 0.0) entity->setWidthMm(currentWidth);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void assignDimensionDefaults(DRW_Dimension *dimension) {
|
||||||
|
dimension->layer = "dimensions";
|
||||||
|
}
|
||||||
|
|
||||||
void writeLine(const Vector &p0, const Vector &p1) {
|
void writeLine(const Vector &p0, const Vector &p1) {
|
||||||
DRW_Line line;
|
DRW_Line line;
|
||||||
assignEntityDefaults(&line);
|
assignEntityDefaults(&line);
|
||||||
|
@ -277,6 +292,7 @@ public:
|
||||||
void writeAlignedDimension(Vector def1, Vector def2, Vector dimp,
|
void writeAlignedDimension(Vector def1, Vector def2, Vector dimp,
|
||||||
Vector textp, const std::string &text) {
|
Vector textp, const std::string &text) {
|
||||||
DRW_DimAligned dim;
|
DRW_DimAligned dim;
|
||||||
|
assignDimensionDefaults(&dim);
|
||||||
dim.setDef1Point(toCoord(def1));
|
dim.setDef1Point(toCoord(def1));
|
||||||
dim.setDef2Point(toCoord(def2));
|
dim.setDef2Point(toCoord(def2));
|
||||||
dim.setDimPoint(toCoord(dimp));
|
dim.setDimPoint(toCoord(dimp));
|
||||||
|
@ -289,6 +305,7 @@ public:
|
||||||
Vector textp, const std::string &text,
|
Vector textp, const std::string &text,
|
||||||
double angle, double oblique) {
|
double angle, double oblique) {
|
||||||
DRW_DimLinear dim;
|
DRW_DimLinear dim;
|
||||||
|
assignDimensionDefaults(&dim);
|
||||||
dim.setDef1Point(toCoord(def1));
|
dim.setDef1Point(toCoord(def1));
|
||||||
dim.setDef2Point(toCoord(def2));
|
dim.setDef2Point(toCoord(def2));
|
||||||
dim.setDimPoint(toCoord(dimp));
|
dim.setDimPoint(toCoord(dimp));
|
||||||
|
@ -302,6 +319,7 @@ public:
|
||||||
void writeRadialDimension(Vector center, Vector radius,
|
void writeRadialDimension(Vector center, Vector radius,
|
||||||
Vector textp, const std::string &text) {
|
Vector textp, const std::string &text) {
|
||||||
DRW_DimRadial dim;
|
DRW_DimRadial dim;
|
||||||
|
assignDimensionDefaults(&dim);
|
||||||
dim.setCenterPoint(toCoord(center));
|
dim.setCenterPoint(toCoord(center));
|
||||||
dim.setDiameterPoint(toCoord(radius));
|
dim.setDiameterPoint(toCoord(radius));
|
||||||
dim.setTextPoint(toCoord(textp));
|
dim.setTextPoint(toCoord(textp));
|
||||||
|
@ -312,6 +330,7 @@ public:
|
||||||
void writeDiametricDimension(Vector def1, Vector def2,
|
void writeDiametricDimension(Vector def1, Vector def2,
|
||||||
Vector textp, const std::string &text) {
|
Vector textp, const std::string &text) {
|
||||||
DRW_DimDiametric dim;
|
DRW_DimDiametric dim;
|
||||||
|
assignDimensionDefaults(&dim);
|
||||||
dim.setDiameter1Point(toCoord(def1));
|
dim.setDiameter1Point(toCoord(def1));
|
||||||
dim.setDiameter2Point(toCoord(def2));
|
dim.setDiameter2Point(toCoord(def2));
|
||||||
dim.setTextPoint(toCoord(textp));
|
dim.setTextPoint(toCoord(textp));
|
||||||
|
@ -322,6 +341,7 @@ public:
|
||||||
void writeAngularDimension(Vector fl1, Vector fl2, Vector sl1, Vector sl2, Vector dimp,
|
void writeAngularDimension(Vector fl1, Vector fl2, Vector sl1, Vector sl2, Vector dimp,
|
||||||
Vector textp, const std::string &text) {
|
Vector textp, const std::string &text) {
|
||||||
DRW_DimAngular dim;
|
DRW_DimAngular dim;
|
||||||
|
assignDimensionDefaults(&dim);
|
||||||
dim.setFirstLine1(toCoord(fl1));
|
dim.setFirstLine1(toCoord(fl1));
|
||||||
dim.setFirstLine2(toCoord(fl2));
|
dim.setFirstLine2(toCoord(fl2));
|
||||||
dim.setSecondLine1(toCoord(sl1));
|
dim.setSecondLine1(toCoord(sl1));
|
||||||
|
@ -335,6 +355,7 @@ public:
|
||||||
void writeText(Vector textp, const std::string &text,
|
void writeText(Vector textp, const std::string &text,
|
||||||
double height, double angle, int origin) {
|
double height, double angle, int origin) {
|
||||||
DRW_Text txt;
|
DRW_Text txt;
|
||||||
|
txt.layer = "text";
|
||||||
txt.style = "unicode";
|
txt.style = "unicode";
|
||||||
txt.basePoint = toCoord(textp);
|
txt.basePoint = toCoord(textp);
|
||||||
txt.secPoint = txt.basePoint;
|
txt.secPoint = txt.basePoint;
|
||||||
|
|
Loading…
Reference in New Issue
Block a user