QGIS API Documentation  3.17.0-Master (3b262f2a79)
qgsdxfexport_p.h
Go to the documentation of this file.
1 /***************************************************************************
2  qgsdxfexport_p.h
3  --------------
4  begin : November 2019
5  copyright : (C) 2019 by Matthias Kuhn
6  email : [email protected]
7  ***************************************************************************/
8 
9 /***************************************************************************
10  * *
11  * This program is free software; you can redistribute it and/or modify *
12  * it under the terms of the GNU General Public License as published by *
13  * the Free Software Foundation; either version 2 of the License, or *
14  * (at your option) any later version. *
15  * *
16  ***************************************************************************/
17 
18 
19 #include "qgsvectorlayer.h"
20 #include "qgsexpressioncontext.h"
23 #include "qgsrenderer.h"
24 #include "qgsvectorlayerlabeling.h"
25 #include "qgslabelsink.h"
26 
32 {
33  DxfLayerJob( QgsVectorLayer *vl, const QString &layerStyleOverride, QgsRenderContext &renderContext, QgsDxfExport *dxfExport, const QString &splitLayerAttribute )
34  : renderContext( renderContext )
35  , styleOverride( vl )
36  , featureSource( vl )
37  , dxfExport( dxfExport )
38  , crs( vl->crs() )
39  , layerName( vl->name() )
40  , splitLayerAttribute( splitLayerAttribute )
41  , layerTitle( vl->title().isEmpty() ? vl->name() : vl->title() )
42  {
43  fields = vl->fields();
44  renderer.reset( vl->renderer()->clone() );
46 
47  if ( !layerStyleOverride.isNull() )
48  {
49  styleOverride.setOverrideStyle( layerStyleOverride );
50  }
51 
52  labeling.reset( vl->labelsEnabled() ? vl->labeling()->clone() : nullptr );
53 
54  attributes = renderer->usedAttributes( renderContext );
55  if ( !splitLayerAttribute.isNull() )
56  {
58  }
59 
60  if ( labeling )
61  {
62  QgsLabelingEngine *labelingEngine = renderContext.labelingEngine();
63  if ( const QgsRuleBasedLabeling *rbl = dynamic_cast<const QgsRuleBasedLabeling *>( labeling.get() ) )
64  {
65  ruleBasedLabelProvider = new QgsRuleBasedLabelSinkProvider( *rbl, vl, dxfExport );
66  labelingEngine->addProvider( ruleBasedLabelProvider );
67 
68  if ( !ruleBasedLabelProvider->prepare( renderContext, attributes ) )
69  {
70  labelingEngine->removeProvider( ruleBasedLabelProvider );
71  ruleBasedLabelProvider = nullptr;
72  }
73  }
74  else
75  {
76  QgsPalLayerSettings settings = labeling->settings();
77  labelProvider = new QgsLabelSinkProvider( vl, QString(), dxfExport, &settings );
78  labelingEngine->addProvider( labelProvider );
79 
80  if ( !labelProvider->prepare( renderContext, attributes ) )
81  {
82  labelingEngine->removeProvider( labelProvider );
83  labelProvider = nullptr;
84  }
85  }
86  }
87 
88  // This will need to be started in a separate thread, if threaded somewhere else to
89  renderer->startRender( renderContext, fields );
90  };
91 
96  std::unique_ptr< QgsFeatureRenderer > renderer;
97  std::unique_ptr<QgsAbstractVectorLayerLabeling> labeling;
98  QgsDxfExport *dxfExport = nullptr;
100  QString layerName;
104  QString layerTitle;
105  QSet<QString> attributes;
106 
107  private:
108  DxfLayerJob( const DxfLayerJob & ) = delete;
109  DxfLayerJob &operator=( const DxfLayerJob & ) = delete;
110 };
111 
112 // dxf color palette
113 static const int sDxfColors[][3] =
114 {
115  { 255, 255, 255 },
116  { 255, 0, 0 },
117  { 255, 255, 0 },
118  { 0, 255, 0 },
119  { 0, 255, 255 },
120  { 0, 0, 255 },
121  { 255, 0, 255 },
122  { 0, 0, 0 },
123  { 128, 128, 128 },
124  { 192, 192, 192 },
125  { 255, 0, 0 },
126  { 255, 127, 127 },
127  { 204, 0, 0 },
128  { 204, 102, 102 },
129  { 153, 0, 0 },
130  { 153, 76, 76 },
131  { 127, 0, 0 },
132  { 127, 63, 63 },
133  { 76, 0, 0 },
134  { 76, 38, 38 },
135  { 255, 63, 0 },
136  { 255, 159, 127 },
137  { 204, 51, 0 },
138  { 204, 127, 102 },
139  { 153, 38, 0 },
140  { 153, 95, 76 },
141  { 127, 31, 0 },
142  { 127, 79, 63 },
143  { 76, 19, 0 },
144  { 76, 47, 38 },
145  { 255, 127, 0 },
146  { 255, 191, 127 },
147  { 204, 102, 0 },
148  { 204, 153, 102 },
149  { 153, 76, 0 },
150  { 153, 114, 76 },
151  { 127, 63, 0 },
152  { 127, 95, 63 },
153  { 76, 38, 0 },
154  { 76, 57, 38 },
155  { 255, 191, 0 },
156  { 255, 223, 127 },
157  { 204, 153, 0 },
158  { 204, 178, 102 },
159  { 153, 114, 0 },
160  { 153, 133, 76 },
161  { 127, 95, 0 },
162  { 127, 111, 63 },
163  { 76, 57, 0 },
164  { 76, 66, 38 },
165  { 255, 255, 0 },
166  { 255, 255, 127 },
167  { 204, 204, 0 },
168  { 204, 204, 102 },
169  { 153, 153, 0 },
170  { 153, 153, 76 },
171  { 127, 127, 0 },
172  { 127, 127, 63 },
173  { 76, 76, 0 },
174  { 76, 76, 38 },
175  { 191, 255, 0 },
176  { 223, 255, 127 },
177  { 153, 204, 0 },
178  { 178, 204, 102 },
179  { 114, 153, 0 },
180  { 133, 153, 76 },
181  { 95, 127, 0 },
182  { 111, 127, 63 },
183  { 57, 76, 0 },
184  { 66, 76, 38 },
185  { 127, 255, 0 },
186  { 191, 255, 127 },
187  { 102, 204, 0 },
188  { 153, 204, 102 },
189  { 76, 153, 0 },
190  { 114, 153, 76 },
191  { 63, 127, 0 },
192  { 95, 127, 63 },
193  { 38, 76, 0 },
194  { 57, 76, 38 },
195  { 63, 255, 0 },
196  { 159, 255, 127 },
197  { 51, 204, 0 },
198  { 127, 204, 102 },
199  { 38, 153, 0 },
200  { 95, 153, 76 },
201  { 31, 127, 0 },
202  { 79, 127, 63 },
203  { 19, 76, 0 },
204  { 47, 76, 38 },
205  { 0, 255, 0 },
206  { 127, 255, 127 },
207  { 0, 204, 0 },
208  { 102, 204, 102 },
209  { 0, 153, 0 },
210  { 76, 153, 76 },
211  { 0, 127, 0 },
212  { 63, 127, 63 },
213  { 0, 76, 0 },
214  { 38, 76, 38 },
215  { 0, 255, 63 },
216  { 127, 255, 159 },
217  { 0, 204, 51 },
218  { 102, 204, 127 },
219  { 0, 153, 38 },
220  { 76, 153, 95 },
221  { 0, 127, 31 },
222  { 63, 127, 79 },
223  { 0, 76, 19 },
224  { 38, 76, 47 },
225  { 0, 255, 127 },
226  { 127, 255, 191 },
227  { 0, 204, 102 },
228  { 102, 204, 153 },
229  { 0, 153, 76 },
230  { 76, 153, 114 },
231  { 0, 127, 63 },
232  { 63, 127, 95 },
233  { 0, 76, 38 },
234  { 38, 76, 57 },
235  { 0, 255, 191 },
236  { 127, 255, 223 },
237  { 0, 204, 153 },
238  { 102, 204, 178 },
239  { 0, 153, 114 },
240  { 76, 153, 133 },
241  { 0, 127, 95 },
242  { 63, 127, 111 },
243  { 0, 76, 57 },
244  { 38, 76, 66 },
245  { 0, 255, 255 },
246  { 127, 255, 255 },
247  { 0, 204, 204 },
248  { 102, 204, 204 },
249  { 0, 153, 153 },
250  { 76, 153, 153 },
251  { 0, 127, 127 },
252  { 63, 127, 127 },
253  { 0, 76, 76 },
254  { 38, 76, 76 },
255  { 0, 191, 255 },
256  { 127, 223, 255 },
257  { 0, 153, 204 },
258  { 102, 178, 204 },
259  { 0, 114, 153 },
260  { 76, 133, 153 },
261  { 0, 95, 127 },
262  { 63, 111, 127 },
263  { 0, 57, 76 },
264  { 38, 66, 76 },
265  { 0, 127, 255 },
266  { 127, 191, 255 },
267  { 0, 102, 204 },
268  { 102, 153, 204 },
269  { 0, 76, 153 },
270  { 76, 114, 153 },
271  { 0, 63, 127 },
272  { 63, 95, 127 },
273  { 0, 38, 76 },
274  { 38, 57, 76 },
275  { 0, 63, 255 },
276  { 127, 159, 255 },
277  { 0, 51, 204 },
278  { 102, 127, 204 },
279  { 0, 38, 153 },
280  { 76, 95, 153 },
281  { 0, 31, 127 },
282  { 63, 79, 127 },
283  { 0, 19, 76 },
284  { 38, 47, 76 },
285  { 0, 0, 255 },
286  { 127, 127, 255 },
287  { 0, 0, 204 },
288  { 102, 102, 204 },
289  { 0, 0, 153 },
290  { 76, 76, 153 },
291  { 0, 0, 127 },
292  { 63, 63, 127 },
293  { 0, 0, 76 },
294  { 38, 38, 76 },
295  { 63, 0, 255 },
296  { 159, 127, 255 },
297  { 51, 0, 204 },
298  { 127, 102, 204 },
299  { 38, 0, 153 },
300  { 95, 76, 153 },
301  { 31, 0, 127 },
302  { 79, 63, 127 },
303  { 19, 0, 76 },
304  { 47, 38, 76 },
305  { 127, 0, 255 },
306  { 191, 127, 255 },
307  { 102, 0, 204 },
308  { 153, 102, 204 },
309  { 76, 0, 153 },
310  { 114, 76, 153 },
311  { 63, 0, 127 },
312  { 95, 63, 127 },
313  { 38, 0, 76 },
314  { 57, 38, 76 },
315  { 191, 0, 255 },
316  { 223, 127, 255 },
317  { 153, 0, 204 },
318  { 178, 102, 204 },
319  { 114, 0, 153 },
320  { 133, 76, 153 },
321  { 95, 0, 127 },
322  { 111, 63, 127 },
323  { 57, 0, 76 },
324  { 66, 38, 76 },
325  { 255, 0, 255 },
326  { 255, 127, 255 },
327  { 204, 0, 204 },
328  { 204, 102, 204 },
329  { 153, 0, 153 },
330  { 153, 76, 153 },
331  { 127, 0, 127 },
332  { 127, 63, 127 },
333  { 76, 0, 76 },
334  { 76, 38, 76 },
335  { 255, 0, 191 },
336  { 255, 127, 223 },
337  { 204, 0, 153 },
338  { 204, 102, 178 },
339  { 153, 0, 114 },
340  { 153, 76, 133 },
341  { 127, 0, 95 },
342  { 127, 63, 111 },
343  { 76, 0, 57 },
344  { 76, 38, 66 },
345  { 255, 0, 127 },
346  { 255, 127, 191 },
347  { 204, 0, 102 },
348  { 204, 102, 153 },
349  { 153, 0, 76 },
350  { 153, 76, 114 },
351  { 127, 0, 63 },
352  { 127, 63, 95 },
353  { 76, 0, 38 },
354  { 76, 38, 57 },
355  { 255, 0, 63 },
356  { 255, 127, 159 },
357  { 204, 0, 51 },
358  { 204, 102, 127 },
359  { 153, 0, 38 },
360  { 153, 76, 95 },
361  { 127, 0, 31 },
362  { 127, 63, 79 },
363  { 76, 0, 19 },
364  { 76, 38, 47 },
365  { 51, 51, 51 },
366  { 91, 91, 91 },
367  { 132, 132, 132 },
368  { 173, 173, 173 },
369  { 214, 214, 214 },
370  { 255, 255, 255 },
371 };
372 
373 static const char *DXF_ENCODINGS[][2] =
374 {
375  { "ASCII", "" },
376  { "8859_1", "ISO-8859-1" },
377  { "8859_2", "ISO-8859-2" },
378  { "8859_3", "ISO-8859-3" },
379  { "8859_4", "ISO-8859-4" },
380  { "8859_5", "ISO-8859-5" },
381  { "8859_6", "ISO-8859-6" },
382  { "8859_7", "ISO-8859-7" },
383  { "8859_8", "ISO-8859-8" },
384  { "8859_9", "ISO-8859-9" },
385 // { "DOS437", "" },
386  { "DOS850", "CP850" },
387 // { "DOS852", "" },
388 // { "DOS855", "" },
389 // { "DOS857", "" },
390 // { "DOS860", "" },
391 // { "DOS861", "" },
392 // { "DOS863", "" },
393 // { "DOS864", "" },
394 // { "DOS865", "" },
395 // { "DOS869", "" },
396 // { "DOS932", "" },
397  { "MACINTOSH", "MacRoman" },
398  { "BIG5", "Big5" },
399  { "KSC5601", "ksc5601.1987-0" },
400 // { "JOHAB", "" },
401  { "DOS866", "CP866" },
402  { "ANSI_1250", "CP1250" },
403  { "ANSI_1251", "CP1251" },
404  { "ANSI_1252", "CP1252" },
405  { "GB2312", "GB2312" },
406  { "ANSI_1253", "CP1253" },
407  { "ANSI_1254", "CP1254" },
408  { "ANSI_1255", "CP1255" },
409  { "ANSI_1256", "CP1256" },
410  { "ANSI_1257", "CP1257" },
411  { "ANSI_874", "CP874" },
412  { "ANSI_932", "Shift_JIS" },
413  { "ANSI_936", "CP936" },
414  { "ANSI_949", "CP949" },
415  { "ANSI_950", "CP950" },
416 // { "ANSI_1361", "" },
417 // { "ANSI_1200", "" },
418  { "ANSI_1258", "CP1258" },
419 };
420 
421 // From GDAL trailer.dxf
422 #define DXF_TRAILER "\
423 0\n\
424 SECTION\n\
425 2\n\
426 OBJECTS\n\
427 0\n\
428 DICTIONARY\n\
429 5\n\
430 C\n\
431 330\n\
432 0\n\
433 100\n\
434 AcDbDictionary\n\
435 281\n\
436  1\n\
437 3\n\
438 ACAD_GROUP\n\
439 350\n\
440 D\n\
441 3\n\
442 ACAD_LAYOUT\n\
443 350\n\
444 1A\n\
445 3\n\
446 ACAD_MLEADERSTYLE\n\
447 350\n\
448 43\n\
449 3\n\
450 ACAD_MLINESTYLE\n\
451 350\n\
452 17\n\
453 3\n\
454 ACAD_PLOTSETTINGS\n\
455 350\n\
456 19\n\
457 3\n\
458 ACAD_PLOTSTYLENAME\n\
459 350\n\
460 E\n\
461 3\n\
462 ACAD_TABLESTYLE\n\
463 350\n\
464 42\n\
465 3\n\
466 ACAD_VISUALSTYLE\n\
467 350\n\
468 2A\n\
469 0\n\
470 DICTIONARY\n\
471 5\n\
472 D\n\
473 102\n\
474 {ACAD_REACTORS\n\
475 330\n\
476 C\n\
477 102\n\
478 }\n\
479 330\n\
480 C\n\
481 100\n\
482 AcDbDictionary\n\
483 281\n\
484  1\n\
485 0\n\
486 DICTIONARY\n\
487 5\n\
488 1A\n\
489 102\n\
490 {ACAD_REACTORS\n\
491 330\n\
492 C\n\
493 102\n\
494 }\n\
495 330\n\
496 C\n\
497 100\n\
498 AcDbDictionary\n\
499 281\n\
500  1\n\
501 3\n\
502 Layout1\n\
503 350\n\
504 1E\n\
505 3\n\
506 Layout2\n\
507 350\n\
508 26\n\
509 3\n\
510 Model\n\
511 350\n\
512 22\n\
513 0\n\
514 DICTIONARY\n\
515 5\n\
516 43\n\
517 102\n\
518 {ACAD_REACTORS\n\
519 330\n\
520 C\n\
521 102\n\
522 }\n\
523 330\n\
524 C\n\
525 100\n\
526 AcDbDictionary\n\
527 281\n\
528  1\n\
529 0\n\
530 DICTIONARY\n\
531 5\n\
532 17\n\
533 102\n\
534 {ACAD_REACTORS\n\
535 330\n\
536 C\n\
537 102\n\
538 }\n\
539 330\n\
540 C\n\
541 100\n\
542 AcDbDictionary\n\
543 281\n\
544  1\n\
545 3\n\
546 Standard\n\
547 350\n\
548 18\n\
549 0\n\
550 DICTIONARY\n\
551 5\n\
552 19\n\
553 102\n\
554 {ACAD_REACTORS\n\
555 330\n\
556 C\n\
557 102\n\
558 }\n\
559 330\n\
560 C\n\
561 100\n\
562 AcDbDictionary\n\
563 281\n\
564  1\n\
565 0\n\
566 ACDBDICTIONARYWDFLT\n\
567 5\n\
568 E\n\
569 102\n\
570 {ACAD_REACTORS\n\
571 330\n\
572 C\n\
573 102\n\
574 }\n\
575 330\n\
576 C\n\
577 100\n\
578 AcDbDictionary\n\
579 281\n\
580  1\n\
581 3\n\
582 Normal\n\
583 350\n\
584 F\n\
585 100\n\
586 AcDbDictionaryWithDefault\n\
587 340\n\
588 F\n\
589 0\n\
590 DICTIONARY\n\
591 5\n\
592 42\n\
593 102\n\
594 {ACAD_REACTORS\n\
595 330\n\
596 C\n\
597 102\n\
598 }\n\
599 330\n\
600 C\n\
601 100\n\
602 AcDbDictionary\n\
603 281\n\
604  1\n\
605 0\n\
606 DICTIONARY\n\
607 5\n\
608 2A\n\
609 102\n\
610 {ACAD_REACTORS\n\
611 330\n\
612 C\n\
613 102\n\
614 }\n\
615 330\n\
616 C\n\
617 100\n\
618 AcDbDictionary\n\
619 281\n\
620  1\n\
621 3\n\
622 2dWireframe\n\
623 350\n\
624 2F\n\
625 3\n\
626 3D Hidden\n\
627 350\n\
628 31\n\
629 3\n\
630 3dWireframe\n\
631 350\n\
632 30\n\
633 3\n\
634 Basic\n\
635 350\n\
636 32\n\
637 3\n\
638 Brighten\n\
639 350\n\
640 36\n\
641 3\n\
642 ColorChange\n\
643 350\n\
644 3A\n\
645 3\n\
646 Conceptual\n\
647 350\n\
648 34\n\
649 3\n\
650 Dim\n\
651 350\n\
652 35\n\
653 3\n\
654 Facepattern\n\
655 350\n\
656 39\n\
657 3\n\
658 Flat\n\
659 350\n\
660 2B\n\
661 3\n\
662 FlatWithEdges\n\
663 350\n\
664 2C\n\
665 3\n\
666 Gouraud\n\
667 350\n\
668 2D\n\
669 3\n\
670 GouraudWithEdges\n\
671 350\n\
672 2E\n\
673 3\n\
674 Linepattern\n\
675 350\n\
676 38\n\
677 3\n\
678 Realistic\n\
679 350\n\
680 33\n\
681 3\n\
682 Thicken\n\
683 350\n\
684 37\n\
685 0\n\
686 LAYOUT\n\
687 5\n\
688 1E\n\
689 102\n\
690 {ACAD_REACTORS\n\
691 330\n\
692 1A\n\
693 102\n\
694 }\n\
695 330\n\
696 1A\n\
697 100\n\
698 AcDbPlotSettings\n\
699 1\n\
700 \n\
701 2\n\
702 none_device\n\
703 4\n\
704 \n\
705 6\n\
706 \n\
707 40\n\
708 0.0\n\
709 41\n\
710 0.0\n\
711 42\n\
712 0.0\n\
713 43\n\
714 0.0\n\
715 44\n\
716 0.0\n\
717 45\n\
718 0.0\n\
719 46\n\
720 0.0\n\
721 47\n\
722 0.0\n\
723 48\n\
724 0.0\n\
725 49\n\
726 0.0\n\
727 140\n\
728 0.0\n\
729 141\n\
730 0.0\n\
731 142\n\
732 1.0\n\
733 143\n\
734 1.0\n\
735 70\n\
736  688\n\
737 72\n\
738  0\n\
739 73\n\
740  0\n\
741 74\n\
742  5\n\
743 7\n\
744 \n\
745 75\n\
746  16\n\
747 76\n\
748  0\n\
749 77\n\
750  2\n\
751 78\n\
752  300\n\
753 147\n\
754 1.0\n\
755 148\n\
756 0.0\n\
757 149\n\
758 0.0\n\
759 100\n\
760 AcDbLayout\n\
761 1\n\
762 Layout1\n\
763 70\n\
764  1\n\
765 71\n\
766  1\n\
767 10\n\
768 0.0\n\
769 20\n\
770 0.0\n\
771 11\n\
772 12.0\n\
773 21\n\
774 9.0\n\
775 12\n\
776 0.0\n\
777 22\n\
778 0.0\n\
779 32\n\
780 0.0\n\
781 14\n\
782 1.000000000000000E+20\n\
783 24\n\
784 1.000000000000000E+20\n\
785 34\n\
786 1.000000000000000E+20\n\
787 15\n\
788 -1.000000000000000E+20\n\
789 25\n\
790 -1.000000000000000E+20\n\
791 35\n\
792 -1.000000000000000E+20\n\
793 146\n\
794 0.0\n\
795 13\n\
796 0.0\n\
797 23\n\
798 0.0\n\
799 33\n\
800 0.0\n\
801 16\n\
802 1.0\n\
803 26\n\
804 0.0\n\
805 36\n\
806 0.0\n\
807 17\n\
808 0.0\n\
809 27\n\
810 1.0\n\
811 37\n\
812 0.0\n\
813 76\n\
814  0\n\
815 330\n\
816 1B\n\
817 0\n\
818 LAYOUT\n\
819 5\n\
820 26\n\
821 102\n\
822 {ACAD_REACTORS\n\
823 330\n\
824 1A\n\
825 102\n\
826 }\n\
827 330\n\
828 1A\n\
829 100\n\
830 AcDbPlotSettings\n\
831 1\n\
832 \n\
833 2\n\
834 none_device\n\
835 4\n\
836 \n\
837 6\n\
838 \n\
839 40\n\
840 0.0\n\
841 41\n\
842 0.0\n\
843 42\n\
844 0.0\n\
845 43\n\
846 0.0\n\
847 44\n\
848 0.0\n\
849 45\n\
850 0.0\n\
851 46\n\
852 0.0\n\
853 47\n\
854 0.0\n\
855 48\n\
856 0.0\n\
857 49\n\
858 0.0\n\
859 140\n\
860 0.0\n\
861 141\n\
862 0.0\n\
863 142\n\
864 1.0\n\
865 143\n\
866 1.0\n\
867 70\n\
868  688\n\
869 72\n\
870  0\n\
871 73\n\
872  0\n\
873 74\n\
874  5\n\
875 7\n\
876 \n\
877 75\n\
878  16\n\
879 76\n\
880  0\n\
881 77\n\
882  2\n\
883 78\n\
884  300\n\
885 147\n\
886 1.0\n\
887 148\n\
888 0.0\n\
889 149\n\
890 0.0\n\
891 100\n\
892 AcDbLayout\n\
893 1\n\
894 Layout2\n\
895 70\n\
896  1\n\
897 71\n\
898  2\n\
899 10\n\
900 0.0\n\
901 20\n\
902 0.0\n\
903 11\n\
904 0.0\n\
905 21\n\
906 0.0\n\
907 12\n\
908 0.0\n\
909 22\n\
910 0.0\n\
911 32\n\
912 0.0\n\
913 14\n\
914 0.0\n\
915 24\n\
916 0.0\n\
917 34\n\
918 0.0\n\
919 15\n\
920 0.0\n\
921 25\n\
922 0.0\n\
923 35\n\
924 0.0\n\
925 146\n\
926 0.0\n\
927 13\n\
928 0.0\n\
929 23\n\
930 0.0\n\
931 33\n\
932 0.0\n\
933 16\n\
934 1.0\n\
935 26\n\
936 0.0\n\
937 36\n\
938 0.0\n\
939 17\n\
940 0.0\n\
941 27\n\
942 1.0\n\
943 37\n\
944 0.0\n\
945 76\n\
946  0\n\
947 330\n\
948 23\n\
949 0\n\
950 LAYOUT\n\
951 5\n\
952 22\n\
953 102\n\
954 {ACAD_REACTORS\n\
955 330\n\
956 1A\n\
957 102\n\
958 }\n\
959 330\n\
960 1A\n\
961 100\n\
962 AcDbPlotSettings\n\
963 1\n\
964 \n\
965 2\n\
966 none_device\n\
967 4\n\
968 \n\
969 6\n\
970 \n\
971 40\n\
972 0.0\n\
973 41\n\
974 0.0\n\
975 42\n\
976 0.0\n\
977 43\n\
978 0.0\n\
979 44\n\
980 0.0\n\
981 45\n\
982 0.0\n\
983 46\n\
984 0.0\n\
985 47\n\
986 0.0\n\
987 48\n\
988 0.0\n\
989 49\n\
990 0.0\n\
991 140\n\
992 0.0\n\
993 141\n\
994 0.0\n\
995 142\n\
996 1.0\n\
997 143\n\
998 1.0\n\
999 70\n\
1000 1712\n\
1001 72\n\
1002  0\n\
1003 73\n\
1004  0\n\
1005 74\n\
1006  0\n\
1007 7\n\
1008 \n\
1009 75\n\
1010  0\n\
1011 76\n\
1012  0\n\
1013 77\n\
1014  2\n\
1015 78\n\
1016  300\n\
1017 147\n\
1018 1.0\n\
1019 148\n\
1020 0.0\n\
1021 149\n\
1022 0.0\n\
1023 100\n\
1024 AcDbLayout\n\
1025 1\n\
1026 Model\n\
1027 70\n\
1028  1\n\
1029 71\n\
1030  0\n\
1031 10\n\
1032 0.0\n\
1033 20\n\
1034 0.0\n\
1035 11\n\
1036 12.0\n\
1037 21\n\
1038 9.0\n\
1039 12\n\
1040 0.0\n\
1041 22\n\
1042 0.0\n\
1043 32\n\
1044 0.0\n\
1045 14\n\
1046 30.0\n\
1047 24\n\
1048 49.75\n\
1049 34\n\
1050 0.0\n\
1051 15\n\
1052 130.5\n\
1053 25\n\
1054 163.1318914119703\n\
1055 35\n\
1056 0.0\n\
1057 146\n\
1058 0.0\n\
1059 13\n\
1060 0.0\n\
1061 23\n\
1062 0.0\n\
1063 33\n\
1064 0.0\n\
1065 16\n\
1066 1.0\n\
1067 26\n\
1068 0.0\n\
1069 36\n\
1070 0.0\n\
1071 17\n\
1072 0.0\n\
1073 27\n\
1074 1.0\n\
1075 37\n\
1076 0.0\n\
1077 76\n\
1078  0\n\
1079 330\n\
1080 1F\n\
1081 331\n\
1082 29\n\
1083 0\n\
1084 MLINESTYLE\n\
1085 5\n\
1086 18\n\
1087 102\n\
1088 {ACAD_REACTORS\n\
1089 330\n\
1090 17\n\
1091 102\n\
1092 }\n\
1093 330\n\
1094 17\n\
1095 100\n\
1096 AcDbMlineStyle\n\
1097 2\n\
1098 Standard\n\
1099 70\n\
1100  0\n\
1101 3\n\
1102 \n\
1103 62\n\
1104  256\n\
1105 51\n\
1106 90.0\n\
1107 52\n\
1108 90.0\n\
1109 71\n\
1110  2\n\
1111 49\n\
1112 0.5\n\
1113 62\n\
1114  256\n\
1115 6\n\
1116 BYLAYER\n\
1117 49\n\
1118 -0.5\n\
1119 62\n\
1120  256\n\
1121 6\n\
1122 BYLAYER\n\
1123 0\n\
1124 ACDBPLACEHOLDER\n\
1125 5\n\
1126 F\n\
1127 102\n\
1128 {ACAD_REACTORS\n\
1129 330\n\
1130 E\n\
1131 102\n\
1132 }\n\
1133 330\n\
1134 E\n\
1135 0\n\
1136 VISUALSTYLE\n\
1137 5\n\
1138 2F\n\
1139 102\n\
1140 {ACAD_REACTORS\n\
1141 330\n\
1142 2A\n\
1143 102\n\
1144 }\n\
1145 330\n\
1146 2A\n\
1147 100\n\
1148 AcDbVisualStyle\n\
1149 2\n\
1150 2dWireframe\n\
1151 70\n\
1152  4\n\
1153 71\n\
1154  0\n\
1155 72\n\
1156  2\n\
1157 73\n\
1158  0\n\
1159 90\n\
1160  0\n\
1161 40\n\
1162 -0.6\n\
1163 41\n\
1164 -30.0\n\
1165 62\n\
1166  5\n\
1167 63\n\
1168  7\n\
1169 421\n\
1170 16777215\n\
1171 74\n\
1172  1\n\
1173 91\n\
1174  4\n\
1175 64\n\
1176  7\n\
1177 65\n\
1178  257\n\
1179 75\n\
1180  1\n\
1181 175\n\
1182  1\n\
1183 42\n\
1184 1.0\n\
1185 92\n\
1186  0\n\
1187 66\n\
1188  257\n\
1189 43\n\
1190 1.0\n\
1191 76\n\
1192  1\n\
1193 77\n\
1194  6\n\
1195 78\n\
1196  2\n\
1197 67\n\
1198  7\n\
1199 79\n\
1200  5\n\
1201 170\n\
1202  0\n\
1203 171\n\
1204  0\n\
1205 290\n\
1206  0\n\
1207 174\n\
1208  0\n\
1209 93\n\
1210  1\n\
1211 44\n\
1212 0.0\n\
1213 173\n\
1214  0\n\
1215 291\n\
1216  0\n\
1217 45\n\
1218 0.0\n\
1219 1001\n\
1220 ACAD\n\
1221 1000\n\
1222 AcDbSavedByObjectVersion\n\
1223 1070\n\
1224  0\n\
1225 0\n\
1226 VISUALSTYLE\n\
1227 5\n\
1228 31\n\
1229 102\n\
1230 {ACAD_REACTORS\n\
1231 330\n\
1232 2A\n\
1233 102\n\
1234 }\n\
1235 330\n\
1236 2A\n\
1237 100\n\
1238 AcDbVisualStyle\n\
1239 2\n\
1240 3D Hidden\n\
1241 70\n\
1242  6\n\
1243 71\n\
1244  1\n\
1245 72\n\
1246  2\n\
1247 73\n\
1248  2\n\
1249 90\n\
1250  0\n\
1251 40\n\
1252 -0.6\n\
1253 41\n\
1254 -30.0\n\
1255 62\n\
1256  5\n\
1257 63\n\
1258  7\n\
1259 421\n\
1260 16777215\n\
1261 74\n\
1262  2\n\
1263 91\n\
1264  2\n\
1265 64\n\
1266  7\n\
1267 65\n\
1268  257\n\
1269 75\n\
1270  2\n\
1271 175\n\
1272  1\n\
1273 42\n\
1274 40.0\n\
1275 92\n\
1276  0\n\
1277 66\n\
1278  257\n\
1279 43\n\
1280 1.0\n\
1281 76\n\
1282  1\n\
1283 77\n\
1284  6\n\
1285 78\n\
1286  2\n\
1287 67\n\
1288  7\n\
1289 79\n\
1290  3\n\
1291 170\n\
1292  0\n\
1293 171\n\
1294  0\n\
1295 290\n\
1296  0\n\
1297 174\n\
1298  0\n\
1299 93\n\
1300  1\n\
1301 44\n\
1302 0.0\n\
1303 173\n\
1304  0\n\
1305 291\n\
1306  0\n\
1307 45\n\
1308 0.0\n\
1309 1001\n\
1310 ACAD\n\
1311 1000\n\
1312 AcDbSavedByObjectVersion\n\
1313 1070\n\
1314  0\n\
1315 0\n\
1316 VISUALSTYLE\n\
1317 5\n\
1318 30\n\
1319 102\n\
1320 {ACAD_REACTORS\n\
1321 330\n\
1322 2A\n\
1323 102\n\
1324 }\n\
1325 330\n\
1326 2A\n\
1327 100\n\
1328 AcDbVisualStyle\n\
1329 2\n\
1330 3dWireframe\n\
1331 70\n\
1332  5\n\
1333 71\n\
1334  0\n\
1335 72\n\
1336  2\n\
1337 73\n\
1338  0\n\
1339 90\n\
1340  0\n\
1341 40\n\
1342 -0.6\n\
1343 41\n\
1344 -30.0\n\
1345 62\n\
1346  5\n\
1347 63\n\
1348  7\n\
1349 421\n\
1350 16777215\n\
1351 74\n\
1352  1\n\
1353 91\n\
1354  4\n\
1355 64\n\
1356  7\n\
1357 65\n\
1358  257\n\
1359 75\n\
1360  1\n\
1361 175\n\
1362  1\n\
1363 42\n\
1364 1.0\n\
1365 92\n\
1366  0\n\
1367 66\n\
1368  257\n\
1369 43\n\
1370 1.0\n\
1371 76\n\
1372  1\n\
1373 77\n\
1374  6\n\
1375 78\n\
1376  2\n\
1377 67\n\
1378  7\n\
1379 79\n\
1380  5\n\
1381 170\n\
1382  0\n\
1383 171\n\
1384  0\n\
1385 290\n\
1386  0\n\
1387 174\n\
1388  0\n\
1389 93\n\
1390  1\n\
1391 44\n\
1392 0.0\n\
1393 173\n\
1394  0\n\
1395 291\n\
1396  0\n\
1397 45\n\
1398 0.0\n\
1399 1001\n\
1400 ACAD\n\
1401 1000\n\
1402 AcDbSavedByObjectVersion\n\
1403 1070\n\
1404  0\n\
1405 0\n\
1406 VISUALSTYLE\n\
1407 5\n\
1408 32\n\
1409 102\n\
1410 {ACAD_REACTORS\n\
1411 330\n\
1412 2A\n\
1413 102\n\
1414 }\n\
1415 330\n\
1416 2A\n\
1417 100\n\
1418 AcDbVisualStyle\n\
1419 2\n\
1420 Basic\n\
1421 70\n\
1422  7\n\
1423 71\n\
1424  1\n\
1425 72\n\
1426  0\n\
1427 73\n\
1428  1\n\
1429 90\n\
1430  0\n\
1431 40\n\
1432 -0.6\n\
1433 41\n\
1434 -30.0\n\
1435 62\n\
1436  5\n\
1437 63\n\
1438  7\n\
1439 421\n\
1440 16777215\n\
1441 74\n\
1442  0\n\
1443 91\n\
1444  4\n\
1445 64\n\
1446  7\n\
1447 65\n\
1448  257\n\
1449 75\n\
1450  1\n\
1451 175\n\
1452  1\n\
1453 42\n\
1454 1.0\n\
1455 92\n\
1456  8\n\
1457 66\n\
1458  7\n\
1459 43\n\
1460 1.0\n\
1461 76\n\
1462  1\n\
1463 77\n\
1464  6\n\
1465 78\n\
1466  2\n\
1467 67\n\
1468  7\n\
1469 79\n\
1470  5\n\
1471 170\n\
1472  0\n\
1473 171\n\
1474  0\n\
1475 290\n\
1476  0\n\
1477 174\n\
1478  0\n\
1479 93\n\
1480  1\n\
1481 44\n\
1482 0.0\n\
1483 173\n\
1484  0\n\
1485 291\n\
1486  1\n\
1487 45\n\
1488 0.0\n\
1489 1001\n\
1490 ACAD\n\
1491 1000\n\
1492 AcDbSavedByObjectVersion\n\
1493 1070\n\
1494  0\n\
1495 0\n\
1496 VISUALSTYLE\n\
1497 5\n\
1498 36\n\
1499 102\n\
1500 {ACAD_REACTORS\n\
1501 330\n\
1502 2A\n\
1503 102\n\
1504 }\n\
1505 330\n\
1506 2A\n\
1507 100\n\
1508 AcDbVisualStyle\n\
1509 2\n\
1510 Brighten\n\
1511 70\n\
1512  12\n\
1513 71\n\
1514  2\n\
1515 72\n\
1516  2\n\
1517 73\n\
1518  0\n\
1519 90\n\
1520  0\n\
1521 40\n\
1522 -0.6\n\
1523 41\n\
1524 -30.0\n\
1525 62\n\
1526  5\n\
1527 63\n\
1528  7\n\
1529 421\n\
1530 16777215\n\
1531 74\n\
1532  1\n\
1533 91\n\
1534  4\n\
1535 64\n\
1536  7\n\
1537 65\n\
1538  257\n\
1539 75\n\
1540  1\n\
1541 175\n\
1542  1\n\
1543 42\n\
1544 1.0\n\
1545 92\n\
1546  8\n\
1547 66\n\
1548  7\n\
1549 43\n\
1550 1.0\n\
1551 76\n\
1552  1\n\
1553 77\n\
1554  6\n\
1555 78\n\
1556  2\n\
1557 67\n\
1558  7\n\
1559 79\n\
1560  5\n\
1561 170\n\
1562  0\n\
1563 171\n\
1564  0\n\
1565 290\n\
1566  0\n\
1567 174\n\
1568  0\n\
1569 93\n\
1570  1\n\
1571 44\n\
1572 50.0\n\
1573 173\n\
1574  0\n\
1575 291\n\
1576  1\n\
1577 45\n\
1578 0.0\n\
1579 1001\n\
1580 ACAD\n\
1581 1000\n\
1582 AcDbSavedByObjectVersion\n\
1583 1070\n\
1584  0\n\
1585 0\n\
1586 VISUALSTYLE\n\
1587 5\n\
1588 3A\n\
1589 102\n\
1590 {ACAD_REACTORS\n\
1591 330\n\
1592 2A\n\
1593 102\n\
1594 }\n\
1595 330\n\
1596 2A\n\
1597 100\n\
1598 AcDbVisualStyle\n\
1599 2\n\
1600 ColorChange\n\
1601 70\n\
1602  16\n\
1603 71\n\
1604  2\n\
1605 72\n\
1606  2\n\
1607 73\n\
1608  3\n\
1609 90\n\
1610  0\n\
1611 40\n\
1612 -0.6\n\
1613 41\n\
1614 -30.0\n\
1615 62\n\
1616  5\n\
1617 63\n\
1618  8\n\
1619 421\n\
1620 8421504\n\
1621 74\n\
1622  1\n\
1623 91\n\
1624  4\n\
1625 64\n\
1626  7\n\
1627 65\n\
1628  257\n\
1629 75\n\
1630  1\n\
1631 175\n\
1632  1\n\
1633 42\n\
1634 1.0\n\
1635 92\n\
1636  8\n\
1637 66\n\
1638  8\n\
1639 424\n\
1640 8421504\n\
1641 43\n\
1642 1.0\n\
1643 76\n\
1644  1\n\
1645 77\n\
1646  6\n\
1647 78\n\
1648  2\n\
1649 67\n\
1650  7\n\
1651 79\n\
1652  5\n\
1653 170\n\
1654  0\n\
1655 171\n\
1656  0\n\
1657 290\n\
1658  0\n\
1659 174\n\
1660  0\n\
1661 93\n\
1662  1\n\
1663 44\n\
1664 0.0\n\
1665 173\n\
1666  0\n\
1667 291\n\
1668  1\n\
1669 45\n\
1670 0.0\n\
1671 1001\n\
1672 ACAD\n\
1673 1000\n\
1674 AcDbSavedByObjectVersion\n\
1675 1070\n\
1676  0\n\
1677 0\n\
1678 VISUALSTYLE\n\
1679 5\n\
1680 34\n\
1681 102\n\
1682 {ACAD_REACTORS\n\
1683 330\n\
1684 2A\n\
1685 102\n\
1686 }\n\
1687 330\n\
1688 2A\n\
1689 100\n\
1690 AcDbVisualStyle\n\
1691 2\n\
1692 Conceptual\n\
1693 70\n\
1694  9\n\
1695 71\n\
1696  3\n\
1697 72\n\
1698  2\n\
1699 73\n\
1700  0\n\
1701 90\n\
1702  0\n\
1703 40\n\
1704 -0.6\n\
1705 41\n\
1706 -30.0\n\
1707 62\n\
1708  5\n\
1709 63\n\
1710  7\n\
1711 421\n\
1712 16777215\n\
1713 74\n\
1714  2\n\
1715 91\n\
1716  2\n\
1717 64\n\
1718  7\n\
1719 65\n\
1720  257\n\
1721 75\n\
1722  1\n\
1723 175\n\
1724  1\n\
1725 42\n\
1726 40.0\n\
1727 92\n\
1728  8\n\
1729 66\n\
1730  7\n\
1731 43\n\
1732 1.0\n\
1733 76\n\
1734  1\n\
1735 77\n\
1736  6\n\
1737 78\n\
1738  2\n\
1739 67\n\
1740  7\n\
1741 79\n\
1742  3\n\
1743 170\n\
1744  0\n\
1745 171\n\
1746  0\n\
1747 290\n\
1748  0\n\
1749 174\n\
1750  0\n\
1751 93\n\
1752  1\n\
1753 44\n\
1754 0.0\n\
1755 173\n\
1756  0\n\
1757 291\n\
1758  0\n\
1759 45\n\
1760 0.0\n\
1761 1001\n\
1762 ACAD\n\
1763 1000\n\
1764 AcDbSavedByObjectVersion\n\
1765 1070\n\
1766  0\n\
1767 0\n\
1768 VISUALSTYLE\n\
1769 5\n\
1770 35\n\
1771 102\n\
1772 {ACAD_REACTORS\n\
1773 330\n\
1774 2A\n\
1775 102\n\
1776 }\n\
1777 330\n\
1778 2A\n\
1779 100\n\
1780 AcDbVisualStyle\n\
1781 2\n\
1782 Dim\n\
1783 70\n\
1784  11\n\
1785 71\n\
1786  2\n\
1787 72\n\
1788  2\n\
1789 73\n\
1790  0\n\
1791 90\n\
1792  0\n\
1793 40\n\
1794 -0.6\n\
1795 41\n\
1796 -30.0\n\
1797 62\n\
1798  5\n\
1799 63\n\
1800  7\n\
1801 421\n\
1802 16777215\n\
1803 74\n\
1804  1\n\
1805 91\n\
1806  4\n\
1807 64\n\
1808  7\n\
1809 65\n\
1810  257\n\
1811 75\n\
1812  1\n\
1813 175\n\
1814  1\n\
1815 42\n\
1816 1.0\n\
1817 92\n\
1818  8\n\
1819 66\n\
1820  7\n\
1821 43\n\
1822 1.0\n\
1823 76\n\
1824  1\n\
1825 77\n\
1826  6\n\
1827 78\n\
1828  2\n\
1829 67\n\
1830  7\n\
1831 79\n\
1832  5\n\
1833 170\n\
1834  0\n\
1835 171\n\
1836  0\n\
1837 290\n\
1838  0\n\
1839 174\n\
1840  0\n\
1841 93\n\
1842  1\n\
1843 44\n\
1844 -50.0\n\
1845 173\n\
1846  0\n\
1847 291\n\
1848  1\n\
1849 45\n\
1850 0.0\n\
1851 1001\n\
1852 ACAD\n\
1853 1000\n\
1854 AcDbSavedByObjectVersion\n\
1855 1070\n\
1856  0\n\
1857 0\n\
1858 VISUALSTYLE\n\
1859 5\n\
1860 39\n\
1861 102\n\
1862 {ACAD_REACTORS\n\
1863 330\n\
1864 2A\n\
1865 102\n\
1866 }\n\
1867 330\n\
1868 2A\n\
1869 100\n\
1870 AcDbVisualStyle\n\
1871 2\n\
1872 Facepattern\n\
1873 70\n\
1874  15\n\
1875 71\n\
1876  2\n\
1877 72\n\
1878  2\n\
1879 73\n\
1880  0\n\
1881 90\n\
1882  0\n\
1883 40\n\
1884 -0.6\n\
1885 41\n\
1886 -30.0\n\
1887 62\n\
1888  5\n\
1889 63\n\
1890  7\n\
1891 421\n\
1892 16777215\n\
1893 74\n\
1894  1\n\
1895 91\n\
1896  4\n\
1897 64\n\
1898  7\n\
1899 65\n\
1900  257\n\
1901 75\n\
1902  1\n\
1903 175\n\
1904  1\n\
1905 42\n\
1906 1.0\n\
1907 92\n\
1908  8\n\
1909 66\n\
1910  7\n\
1911 43\n\
1912 1.0\n\
1913 76\n\
1914  1\n\
1915 77\n\
1916  6\n\
1917 78\n\
1918  2\n\
1919 67\n\
1920  7\n\
1921 79\n\
1922  5\n\
1923 170\n\
1924  0\n\
1925 171\n\
1926  0\n\
1927 290\n\
1928  0\n\
1929 174\n\
1930  0\n\
1931 93\n\
1932  1\n\
1933 44\n\
1934 0.0\n\
1935 173\n\
1936  0\n\
1937 291\n\
1938  1\n\
1939 45\n\
1940 0.0\n\
1941 1001\n\
1942 ACAD\n\
1943 1000\n\
1944 AcDbSavedByObjectVersion\n\
1945 1070\n\
1946  0\n\
1947 0\n\
1948 VISUALSTYLE\n\
1949 5\n\
1950 2B\n\
1951 102\n\
1952 {ACAD_REACTORS\n\
1953 330\n\
1954 2A\n\
1955 102\n\
1956 }\n\
1957 330\n\
1958 2A\n\
1959 100\n\
1960 AcDbVisualStyle\n\
1961 2\n\
1962 Flat\n\
1963 70\n\
1964  0\n\
1965 71\n\
1966  2\n\
1967 72\n\
1968  1\n\
1969 73\n\
1970  1\n\
1971 90\n\
1972  2\n\
1973 40\n\
1974 -0.6\n\
1975 41\n\
1976 30.0\n\
1977 62\n\
1978  5\n\
1979 63\n\
1980  7\n\
1981 421\n\
1982 16777215\n\
1983 74\n\
1984  0\n\
1985 91\n\
1986  4\n\
1987 64\n\
1988  7\n\
1989 65\n\
1990  257\n\
1991 75\n\
1992  1\n\
1993 175\n\
1994  1\n\
1995 42\n\
1996 1.0\n\
1997 92\n\
1998  8\n\
1999 66\n\
2000  7\n\
2001 43\n\
2002 1.0\n\
2003 76\n\
2004  1\n\
2005 77\n\
2006  6\n\
2007 78\n\
2008  2\n\
2009 67\n\
2010  7\n\
2011 79\n\
2012  5\n\
2013 170\n\
2014  0\n\
2015 171\n\
2016  0\n\
2017 290\n\
2018  0\n\
2019 174\n\
2020  0\n\
2021 93\n\
2022  13\n\
2023 44\n\
2024 0.0\n\
2025 173\n\
2026  0\n\
2027 291\n\
2028  1\n\
2029 45\n\
2030 0.0\n\
2031 1001\n\
2032 ACAD\n\
2033 1000\n\
2034 AcDbSavedByObjectVersion\n\
2035 1070\n\
2036  0\n\
2037 0\n\
2038 VISUALSTYLE\n\
2039 5\n\
2040 2C\n\
2041 102\n\
2042 {ACAD_REACTORS\n\
2043 330\n\
2044 2A\n\
2045 102\n\
2046 }\n\
2047 330\n\
2048 2A\n\
2049 100\n\
2050 AcDbVisualStyle\n\
2051 2\n\
2052 FlatWithEdges\n\
2053 70\n\
2054  1\n\
2055 71\n\
2056  2\n\
2057 72\n\
2058  1\n\
2059 73\n\
2060  1\n\
2061 90\n\
2062  2\n\
2063 40\n\
2064 -0.6\n\
2065 41\n\
2066 30.0\n\
2067 62\n\
2068  5\n\
2069 63\n\
2070  7\n\
2071 421\n\
2072 16777215\n\
2073 74\n\
2074  1\n\
2075 91\n\
2076  4\n\
2077 64\n\
2078  7\n\
2079 65\n\
2080  257\n\
2081 75\n\
2082  1\n\
2083 175\n\
2084  1\n\
2085 42\n\
2086 1.0\n\
2087 92\n\
2088  0\n\
2089 66\n\
2090  257\n\
2091 43\n\
2092 1.0\n\
2093 76\n\
2094  1\n\
2095 77\n\
2096  6\n\
2097 78\n\
2098  2\n\
2099 67\n\
2100  7\n\
2101 79\n\
2102  5\n\
2103 170\n\
2104  0\n\
2105 171\n\
2106  0\n\
2107 290\n\
2108  0\n\
2109 174\n\
2110  0\n\
2111 93\n\
2112  13\n\
2113 44\n\
2114 0.0\n\
2115 173\n\
2116  0\n\
2117 291\n\
2118  1\n\
2119 45\n\
2120 0.0\n\
2121 1001\n\
2122 ACAD\n\
2123 1000\n\
2124 AcDbSavedByObjectVersion\n\
2125 1070\n\
2126  0\n\
2127 0\n\
2128 VISUALSTYLE\n\
2129 5\n\
2130 2D\n\
2131 102\n\
2132 {ACAD_REACTORS\n\
2133 330\n\
2134 2A\n\
2135 102\n\
2136 }\n\
2137 330\n\
2138 2A\n\
2139 100\n\
2140 AcDbVisualStyle\n\
2141 2\n\
2142 Gouraud\n\
2143 70\n\
2144  2\n\
2145 71\n\
2146  2\n\
2147 72\n\
2148  2\n\
2149 73\n\
2150  1\n\
2151 90\n\
2152  2\n\
2153 40\n\
2154 -0.6\n\
2155 41\n\
2156 30.0\n\
2157 62\n\
2158  5\n\
2159 63\n\
2160  7\n\
2161 421\n\
2162 16777215\n\
2163 74\n\
2164  0\n\
2165 91\n\
2166  4\n\
2167 64\n\
2168  7\n\
2169 65\n\
2170  257\n\
2171 75\n\
2172  1\n\
2173 175\n\
2174  1\n\
2175 42\n\
2176 1.0\n\
2177 92\n\
2178  0\n\
2179 66\n\
2180  7\n\
2181 43\n\
2182 1.0\n\
2183 76\n\
2184  1\n\
2185 77\n\
2186  6\n\
2187 78\n\
2188  2\n\
2189 67\n\
2190  7\n\
2191 79\n\
2192  5\n\
2193 170\n\
2194  0\n\
2195 171\n\
2196  0\n\
2197 290\n\
2198  0\n\
2199 174\n\
2200  0\n\
2201 93\n\
2202  13\n\
2203 44\n\
2204 0.0\n\
2205 173\n\
2206  0\n\
2207 291\n\
2208  1\n\
2209 45\n\
2210 0.0\n\
2211 1001\n\
2212 ACAD\n\
2213 1000\n\
2214 AcDbSavedByObjectVersion\n\
2215 1070\n\
2216  0\n\
2217 0\n\
2218 VISUALSTYLE\n\
2219 5\n\
2220 2E\n\
2221 102\n\
2222 {ACAD_REACTORS\n\
2223 330\n\
2224 2A\n\
2225 102\n\
2226 }\n\
2227 330\n\
2228 2A\n\
2229 100\n\
2230 AcDbVisualStyle\n\
2231 2\n\
2232 GouraudWithEdges\n\
2233 70\n\
2234  3\n\
2235 71\n\
2236  2\n\
2237 72\n\
2238  2\n\
2239 73\n\
2240  1\n\
2241 90\n\
2242  2\n\
2243 40\n\
2244 -0.6\n\
2245 41\n\
2246 30.0\n\
2247 62\n\
2248  5\n\
2249 63\n\
2250  7\n\
2251 421\n\
2252 16777215\n\
2253 74\n\
2254  1\n\
2255 91\n\
2256  4\n\
2257 64\n\
2258  7\n\
2259 65\n\
2260  257\n\
2261 75\n\
2262  1\n\
2263 175\n\
2264  1\n\
2265 42\n\
2266 1.0\n\
2267 92\n\
2268  0\n\
2269 66\n\
2270  257\n\
2271 43\n\
2272 1.0\n\
2273 76\n\
2274  1\n\
2275 77\n\
2276  6\n\
2277 78\n\
2278  2\n\
2279 67\n\
2280  7\n\
2281 79\n\
2282  5\n\
2283 170\n\
2284  0\n\
2285 171\n\
2286  0\n\
2287 290\n\
2288  0\n\
2289 174\n\
2290  0\n\
2291 93\n\
2292  13\n\
2293 44\n\
2294 0.0\n\
2295 173\n\
2296  0\n\
2297 291\n\
2298  1\n\
2299 45\n\
2300 0.0\n\
2301 1001\n\
2302 ACAD\n\
2303 1000\n\
2304 AcDbSavedByObjectVersion\n\
2305 1070\n\
2306  0\n\
2307 0\n\
2308 VISUALSTYLE\n\
2309 5\n\
2310 38\n\
2311 102\n\
2312 {ACAD_REACTORS\n\
2313 330\n\
2314 2A\n\
2315 102\n\
2316 }\n\
2317 330\n\
2318 2A\n\
2319 100\n\
2320 AcDbVisualStyle\n\
2321 2\n\
2322 Linepattern\n\
2323 70\n\
2324  14\n\
2325 71\n\
2326  2\n\
2327 72\n\
2328  2\n\
2329 73\n\
2330  0\n\
2331 90\n\
2332  0\n\
2333 40\n\
2334 -0.6\n\
2335 41\n\
2336 -30.0\n\
2337 62\n\
2338  5\n\
2339 63\n\
2340  7\n\
2341 421\n\
2342 16777215\n\
2343 74\n\
2344  1\n\
2345 91\n\
2346  4\n\
2347 64\n\
2348  7\n\
2349 65\n\
2350  257\n\
2351 75\n\
2352  7\n\
2353 175\n\
2354  7\n\
2355 42\n\
2356 1.0\n\
2357 92\n\
2358  8\n\
2359 66\n\
2360  7\n\
2361 43\n\
2362 1.0\n\
2363 76\n\
2364  1\n\
2365 77\n\
2366  6\n\
2367 78\n\
2368  2\n\
2369 67\n\
2370  7\n\
2371 79\n\
2372  5\n\
2373 170\n\
2374  0\n\
2375 171\n\
2376  0\n\
2377 290\n\
2378  0\n\
2379 174\n\
2380  0\n\
2381 93\n\
2382  1\n\
2383 44\n\
2384 0.0\n\
2385 173\n\
2386  0\n\
2387 291\n\
2388  1\n\
2389 45\n\
2390 0.0\n\
2391 1001\n\
2392 ACAD\n\
2393 1000\n\
2394 AcDbSavedByObjectVersion\n\
2395 1070\n\
2396  0\n\
2397 0\n\
2398 VISUALSTYLE\n\
2399 5\n\
2400 33\n\
2401 102\n\
2402 {ACAD_REACTORS\n\
2403 330\n\
2404 2A\n\
2405 102\n\
2406 }\n\
2407 330\n\
2408 2A\n\
2409 100\n\
2410 AcDbVisualStyle\n\
2411 2\n\
2412 Realistic\n\
2413 70\n\
2414  8\n\
2415 71\n\
2416  2\n\
2417 72\n\
2418  2\n\
2419 73\n\
2420  0\n\
2421 90\n\
2422  0\n\
2423 40\n\
2424 -0.6\n\
2425 41\n\
2426 -30.0\n\
2427 62\n\
2428  5\n\
2429 63\n\
2430  7\n\
2431 421\n\
2432 16777215\n\
2433 74\n\
2434  1\n\
2435 91\n\
2436  0\n\
2437 64\n\
2438  7\n\
2439 65\n\
2440  257\n\
2441 75\n\
2442  1\n\
2443 175\n\
2444  1\n\
2445 42\n\
2446 1.0\n\
2447 92\n\
2448  8\n\
2449 66\n\
2450  8\n\
2451 424\n\
2452 7895160\n\
2453 43\n\
2454 1.0\n\
2455 76\n\
2456  1\n\
2457 77\n\
2458  6\n\
2459 78\n\
2460  2\n\
2461 67\n\
2462  7\n\
2463 79\n\
2464  5\n\
2465 170\n\
2466  0\n\
2467 171\n\
2468  0\n\
2469 290\n\
2470  0\n\
2471 174\n\
2472  0\n\
2473 93\n\
2474  13\n\
2475 44\n\
2476 0.0\n\
2477 173\n\
2478  0\n\
2479 291\n\
2480  0\n\
2481 45\n\
2482 0.0\n\
2483 1001\n\
2484 ACAD\n\
2485 1000\n\
2486 AcDbSavedByObjectVersion\n\
2487 1070\n\
2488  0\n\
2489 0\n\
2490 VISUALSTYLE\n\
2491 5\n\
2492 37\n\
2493 102\n\
2494 {ACAD_REACTORS\n\
2495 330\n\
2496 2A\n\
2497 102\n\
2498 }\n\
2499 330\n\
2500 2A\n\
2501 100\n\
2502 AcDbVisualStyle\n\
2503 2\n\
2504 Thicken\n\
2505 70\n\
2506  13\n\
2507 71\n\
2508  2\n\
2509 72\n\
2510  2\n\
2511 73\n\
2512  0\n\
2513 90\n\
2514  0\n\
2515 40\n\
2516 -0.6\n\
2517 41\n\
2518 -30.0\n\
2519 62\n\
2520  5\n\
2521 63\n\
2522  7\n\
2523 421\n\
2524 16777215\n\
2525 74\n\
2526  1\n\
2527 91\n\
2528  4\n\
2529 64\n\
2530  7\n\
2531 65\n\
2532  257\n\
2533 75\n\
2534  1\n\
2535 175\n\
2536  1\n\
2537 42\n\
2538 1.0\n\
2539 92\n\
2540  12\n\
2541 66\n\
2542  7\n\
2543 43\n\
2544 1.0\n\
2545 76\n\
2546  1\n\
2547 77\n\
2548  6\n\
2549 78\n\
2550  2\n\
2551 67\n\
2552  7\n\
2553 79\n\
2554  5\n\
2555 170\n\
2556  0\n\
2557 171\n\
2558  0\n\
2559 290\n\
2560  0\n\
2561 174\n\
2562  0\n\
2563 93\n\
2564  1\n\
2565 44\n\
2566 0.0\n\
2567 173\n\
2568  0\n\
2569 291\n\
2570  1\n\
2571 45\n\
2572 0.0\n\
2573 1001\n\
2574 ACAD\n\
2575 1000\n\
2576 AcDbSavedByObjectVersion\n\
2577 1070\n\
2578  0\n\
2579 0\n\
2580 ENDSEC\n\
2581 "
QgsRuleBasedLabelSinkProvider * ruleBasedLabelProvider
bool labelsEnabled() const
Returns whether the layer contains labels which are enabled and should be drawn.
void addProvider(QgsAbstractLabelProvider *provider)
Add provider of label features. Takes ownership of the provider.
virtual QgsAbstractVectorLayerLabeling * clone() const =0
Returns a new copy of the object.
void removeProvider(QgsAbstractLabelProvider *provider)
Remove provider if the provider&#39;s initialization failed. Provider instance is deleted.
virtual bool prepare(QgsRenderContext &context, QSet< QString > &attributeNames)
Prepare for registration of features.
Restore overridden layer style on destruction.
QgsLabelingEngine * labelingEngine() const
Gets access to new labeling engine (may be nullptr)
Container of fields for a vector layer.
Definition: qgsfields.h:44
Holds information about each layer in a DXF job.
QgsDxfExport * dxfExport
QgsLabelSinkProvider * labelProvider
QgsRenderContext renderContext
QgsVectorLayerFeatureSource featureSource
std::unique_ptr< QgsAbstractVectorLayerLabeling > labeling
QgsFields fields() const FINAL
Returns the list of fields of this layer.
Implements a derived label provider for rule based labels for use with QgsLabelSink.
Definition: qgslabelsink.h:76
QString layerName
QgsCoordinateReferenceSystem crs
QgsMapLayerStyleOverride styleOverride
QgsFeatureRenderer * renderer()
Returns renderer.
const QgsAbstractVectorLayerLabeling * labeling() const
Access to const labeling configuration.
bool prepare(QgsRenderContext &context, QSet< QString > &attributeNames) override
Prepare for registration of features.
QSet< QString > attributes
Partial snapshot of vector layer&#39;s state (only the members necessary for access to features) ...
QgsExpressionContext & expressionContext()
Gets the expression context.
QgsFields fields
The QgsLabelingEngine class provides map labeling functionality.
std::unique_ptr< QgsFeatureRenderer > renderer
Contains information about the context of a rendering operation.
void appendScope(QgsExpressionContextScope *scope)
Appends a scope to the end of the context.
This class represents a coordinate reference system (CRS).
QString layerTitle
static QgsExpressionContextScope * layerScope(const QgsMapLayer *layer)
Creates a new scope which contains variables and functions relating to a QgsMapLayer.
void setOverrideStyle(const QString &style)
Temporarily apply a different style to the layer.
Implements a derived label provider for use with QgsLabelSink.
Definition: qgslabelsink.h:57
Represents a vector layer which manages a vector based data sets.
QString splitLayerAttribute
virtual QgsFeatureRenderer * clone() const =0
Create a deep copy of this renderer.
DxfLayerJob(QgsVectorLayer *vl, const QString &layerStyleOverride, QgsRenderContext &renderContext, QgsDxfExport *dxfExport, const QString &splitLayerAttribute)