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