summaryrefslogtreecommitdiff
path: root/dxfdata.cc
diff options
context:
space:
mode:
Diffstat (limited to 'dxfdata.cc')
-rw-r--r--dxfdata.cc27
1 files changed, 18 insertions, 9 deletions
diff --git a/dxfdata.cc b/dxfdata.cc
index 190e701..157efa3 100644
--- a/dxfdata.cc
+++ b/dxfdata.cc
@@ -64,10 +64,12 @@ DxfData::DxfData(double fn, double fs, double fa, QString filename, QString laye
switch (id)
{
case 0:
- if (mode == "LINE" && (layername.isNull() || layername == layer)) {
+ if (in_entities_section && mode == "LINE" &&
+ (layername.isNull() || layername == layer)) {
ADD_LINE(x1, y1, x2, y2);
}
- if (mode == "CIRCLE" && (layername.isNull() || layername == layer)) {
+ if (in_entities_section && mode == "CIRCLE" &&
+ (layername.isNull() || layername == layer)) {
int n = get_fragments_from_r(radius, fn, fs, fa);
for (int i = 0; i < n; i++) {
double a1 = (2*M_PI*i)/n;
@@ -76,7 +78,8 @@ DxfData::DxfData(double fn, double fs, double fa, QString filename, QString laye
cos(a2)*radius + x1, sin(a2)*radius + y1);
}
}
- if (mode == "ARC" && (layername.isNull() || layername == layer)) {
+ if (in_entities_section && mode == "ARC" &&
+ (layername.isNull() || layername == layer)) {
int n = get_fragments_from_r(radius, fn, fs, fa);
while (start_angle > stop_angle)
stop_angle += 360.0;
@@ -90,10 +93,11 @@ DxfData::DxfData(double fn, double fs, double fa, QString filename, QString laye
cos(a2)*radius + x1, sin(a2)*radius + y1);
}
}
- if (in_entities_section) {
- if (data != "SECTION" && data != "ENDSEC" &&
- data != "LINE" && data != "ARC" && data != "CIRCLE")
- unsupported_entities_list[data]++;
+ if (in_entities_section &&
+ (layername.isNull() || layername == layer)) {
+ if (mode != "SECTION" && mode != "ENDSEC" &&
+ mode != "LINE" && mode != "ARC" && mode != "CIRCLE")
+ unsupported_entities_list[mode]++;
}
mode = data;
break;
@@ -129,8 +133,13 @@ DxfData::DxfData(double fn, double fs, double fa, QString filename, QString laye
QHashIterator<QString, int> i(unsupported_entities_list);
while (i.hasNext()) {
i.next();
- PRINTA("WARNING: Unsupported DXF Entity `%1' (%2x) in `%3'.",
- i.key(), QString::number(i.value()), filename);
+ if (layername.isNull()) {
+ PRINTA("WARNING: Unsupported DXF Entity `%1' (%2x) in `%3'.",
+ i.key(), QString::number(i.value()), filename);
+ } else {
+ PRINTA("WARNING: Unsupported DXF Entity `%1' (%2x) in layer `%3' of `%4'.",
+ i.key(), QString::number(i.value()), layername, filename);
+ }
}
QHash<int, int> enabled_lines;
contact: Jan Huwald // Impressum