forked from ixmilia/dxf-go
/
header.generated.go
4295 lines (3955 loc) · 167 KB
/
header.generated.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
// Code generated at build time; DO NOT EDIT.
package dxf
import (
"errors"
"math"
"time"
"github.com/google/uuid"
)
// Header contains the values common to an AutoCAD DXF drawing.
type Header struct {
// The $ACADVER header variable. The AutoCAD drawing database version number.
Version AcadVersion
// The $ACADMAINTVER header variable. Maintenance version number (should be ignored). Minimum AutoCAD version R14.
MaintenanceVersion int16
// The $DWGCODEPAGE header variable. Drawing code page; set to the system code page when a new drawing is created, but not otherwise maintained by AutoCAD. Minimum AutoCAD version R13.
DrawingCodePage string
// The $LASTSAVEDBY header variable. Name of the last user to modify the file. Minimum AutoCAD version R2004.
LastSavedBy string
// The $REQUIREDVERSIONS header variable. Unknown. Minimum AutoCAD version R2013.
RequiredVersions int64
// The $INSBASE header variable. Insertion base set by BASE command (in WCS).
InsertionBase Point
// The $EXTMIN header variable. X, Y, and Z drawing extents lower-left corner (in WCS).
MinimumDrawingExtents Point
// The $EXTMAX header variable. X, Y, and Z drawing extents upper-right corner (in WCS).
MaximumDrawingExtents Point
// The $LIMMIN header variable. XY drawing limits lower-left corner (in WCS).
MinimumDrawingLimits Point
// The $LIMMAX header variable. XY drawing limits upper-right corner (in WCS).
MaximumDrawingLimits Point
// The $ORTHOMODE header variable. Ortho mode on.
DrawOrthoganalLines bool
// The $REGENMODE header variable. REGENAUTO mode on.
UseRegenMode bool
// The $FILLMODE header variable. Fill mode on.
FillModeOn bool
// The $QTEXTMODE header variable. Quick text mode on.
UseQuickTextMode bool
// The $MIRRTEXT header variable. Mirror text.
MirrorText bool
// The $DRAGMODE header variable. Controls the way dragged objects are displayed. Maximum AutoCAD version R14.
DragMode DragMode
// The $LTSCALE header variable. Global line type scale.
LineTypeScale float64
// The $OSMODE header variable. Running object snap modes. Maximum AutoCAD version R14.
ObjectSnapFlags int
// The $ATTMODE header variable. Attribute visibility.
AttributeVisibility AttributeVisibility
// The $TEXTSIZE header variable. Default text height.
DefaultTextHeight float64
// The $TRACEWID header variable. Default trace width.
TraceWidth float64
// The $TEXTSTYLE header variable. Current text style name.
TextStyle string
// The $CLAYER header variable. Current layer name.
CurrentLayer string
// The $CELTYPE header variable. Entity line type name, or BYBLOCK or BYLAYER.
CurrentEntityLineType string
// The $CECOLOR header variable. Current entity color.
CurrentEntityColor Color
// The $CELTSCALE header variable. Current entity line type scale. Minimum AutoCAD version R13.
CurrentEntityLineTypeScale float64
// The $DELOBJ header variable. Controls object deletion. Minimum AutoCAD version R13. Maximum AutoCAD version R14.
RetainDeletedObjects bool
// The $DISPSILH header variable. Controls the display of silhouette curves of body objects in wireframe mode. Minimum AutoCAD version R13.
DisplaySilhouetteCurvesInWireframeMode bool
// The $DRAGVS header variable. Hard-pointer ID to visual style when creating 3D solid primitives. Minimum AutoCAD version R2007.
SolidVisualStylePointer Handle
// The $DIMSCALE header variable. Overall dimensioning scale factor.
DimensioningScaleFactor float64
// The $DIMASZ header variable. Dimensioning arrow size.
DimensioningArrowSize float64
// The $DIMEXO header variable. Extension line offset.
DimensionExtensionLineOffset float64
// The $DIMDLI header variable. Dimension line increment.
DimensionLineIncrement float64
// The $DIMRND header variable. Rounding value for dimension distances.
DimensionDistanceRoundingValue float64
// The $DIMDLE header variable. Dimension line extension.
DimensionLineExtension float64
// The $DIMEXE header variable. Extension line extension.
DimensionExtensionLineExtension float64
// The $DIMTP header variable. Plus tolerance.
DimensionPlusTolerance float64
// The $DIMTM header variable. Minus tolerance.
DimensionMinusTolerance float64
// The $DIMTXT header variable. Dimensioning text height.
DimensioningTextHeight float64
// The $DIMCEN header variable. Size of center mark/lines.
CenterMarkSize float64
// The $DIMTSZ header variable. Dimensioning tick size.
DimensioningTickSize float64
// The $DIMTOL header variable. Dimension tolerances generated.
GenerateDimensionTolerances bool
// The $DIMLIM header variable. Dimension limits generated.
GenerateDimensionLimits bool
// The $DIMTIH header variable. Text inside horizontal.
DimensionTextInsideHorizontal bool
// The $DIMTOH header variable. Text outside horizontal.
DimensionTextOutsideHorizontal bool
// The $DIMSE1 header variable. Suppression of first extension line. Minimum AutoCAD version R12.
SuppressFirstDimensionExtensionLine bool
// The $DIMSE2 header variable. Suppression of second extension line. Minimum AutoCAD version R12.
SuppressSecondDimensionExtensionLine bool
// The $DIMTAD header variable. Text above dimension line.
TextAboveDimensionLine bool
// The $DIMZIN header variable. Controls suppression of zeros for primary unit values.
DimensionUnitZeroSuppression UnitZeroSuppression
// The $DIMBLK header variable. Arrow block name.
ArrowBlockName string
// The $DIMASO header variable. Controls associative dimensioning.
CreateAssociativeDimensioning bool
// The $DIMSHO header variable. Recompute dimensions while dragging.
RecomputeDimensionsWhileDragging bool
// The $DIMPOST header variable. General dimensioning suffix.
DimensioningSuffix string
// The $DIMAPOST header variable. Alternate dimensioning suffix.
AlternateDimensioningSuffix string
// The $DIMALT header variable. Alternate unit dimensioning performed.
UseAlternateDimensioning bool
// The $DIMALTD header variable. Alternate unit decimal places.
AlternateDimensioningDecimalPlaces int16
// The $DIMALTF header variable. Alternate unit scale factor.
AlternateDimensioningScaleFactor float64
// The $DIMLFAC header variable. Linear measurements scale factor.
DimensionLinearMeasurementsScaleFactor float64
// The $DIMTOFL header variable. If text is outside extensions, force line extensions between extensions.
ForceDimensionLineExtensionsOutsideIfTextIs bool
// The $DIMTVP header variable. Text vertical position.
DimensionVerticalTextPosition float64
// The $DIMTIX header variable. Force text inside extensions.
ForceDimensionTextInsideExtensions bool
// The $DIMSOXD header variable. Suppress outside-extensions dimension lines.
SuppressOutsideExtensionDimensionLines bool
// The $DIMSAH header variable. Use separate arrow blocks.
UseSeparateArrowBlocksForDimensions bool
// The $DIMBLK1 header variable. First arrow block name.
FirstArrowBlockName string
// The $DIMBLK2 header variable. Second arrow block name.
SecondArrowBlockName string
// The $DIMSTYLE header variable. Dimension style name.
DimensionStyleName string
// The $DIMCLRD header variable. Dimension line color. Minimum AutoCAD version R11.
DimensionLineColor Color
// The $DIMCLRE header variable. Dimension extension line color. Minimum AutoCAD version R11.
DimensionExtensionLineColor Color
// The $DIMCLRT header variable. Dimension text color. Minimum AutoCAD version R11.
DimensionTextColor Color
// The $DIMTFAC header variable. Dimension tolerance display factor. Minimum AutoCAD version R12.
DimensionToleranceDisplayScaleFactor float64
// The $DIMGAP header variable. Dimension line gap. Minimum AutoCAD version R11.
DimensionLineGap float64
// The $DIMJUST header variable. Horizontal dimension text position. Minimum AutoCAD version R13.
DimensionTextJustification DimensionTextJustification
// The $DIMTOLJ header variable. Vertical justification for tolerance values. Minimum AutoCAD version R13.
DimensionToleranceVerticalJustification Justification
// The $DIMTZIN header variable. Controls suppression of zeros for tolerance values. Minimum AutoCAD version R13.
DimensionToleranceZeroSuppression UnitZeroSuppression
// The $DIMALTZ header variable. Controls suppression of zeros for alternate unit dimension values. Minimum AutoCAD version R13.
AlternateDimensioningZeroSupression UnitZeroSuppression
// The $DIMALTTZ header variable. Controls suppression of zeros for alternate tolerance values. Minimum AutoCAD version R13.
AlternateDimensioningToleranceZeroSupression UnitZeroSuppression
// The $DIMFIT header variable. Placement of text and arrowheads. Minimum AutoCAD version R13. Maximum AutoCAD version R14.
DimensionTextAndArrowPlacement DimensionFit
// The $DIMUPT header variable. Cursor functionality for user-positioned text. Minimum AutoCAD version R13.
DimensionCursorControlsTextPosition bool
// The $DIMUNIT header variable. Units format for all dimension style family members except angular. Minimum AutoCAD version R13. Maximum AutoCAD version R14.
DimensionUnitFormat UnitFormat
// The $DIMDEC header variable. Number of decimal places for the tolerance values of a primary units dimension. Minimum AutoCAD version R13.
DimensionUnitToleranceDecimalPlaces int16
// The $DIMTDEC header variable. Number of decimal places to display the tolerance values. Minimum AutoCAD version R13.
DimensionToleranceDecimalPlaces int16
// The $DIMALTU header variable. Units format for alternate units of all dimension style family members except angular. Minimum AutoCAD version R13.
AlternateDimensioningUnits UnitFormat
// The $DIMALTTD header variable. Number of decimal places for tolerance values of an alternate units dimension. Minimum AutoCAD version R13.
AlternateDimensioningToleranceDecimalPlaces int16
// The $DIMTXSTY header variable. Dimension text style. Minimum AutoCAD version R13.
DimensionTextStyle string
// The $DIMAUNIT header variable. Angle format for angular dimensions. Minimum AutoCAD version R13.
DimensioningAngleFormat AngleFormat
// The $DIMADEC header variable. Number of precision places displayed in angular dimensions. Minimum AutoCAD version R2000.
AngularDimensionPrecision int16
// The $DIMALTRND header variable. Determines rounding of alternate units. Minimum AutoCAD version R2000.
AlternateDimensioningUnitRounding float64
// The $DIMAZIN header variable. Controls suppression of zeros for angular dimensions. Minimum AutoCAD version R2000.
DimensionAngleZeroSuppression UnitZeroSuppression
// The $DIMDSEP header variable. Single-character decimal separator used when creating dimensions whose unit format is decimal. Minimum AutoCAD version R2000.
DimensionDecimalSeparatorRune rune
// The $DIMFRAC header variable. Sets the fraction format when DIMLUNIT is set to Architectural or Fractional. Minimum AutoCAD version R2000.
DimensionTextHeightScaleFactor DimensionFractionFormat
// The $DIMLDRBLK header variable. Arrow block name for leaders. Minimum AutoCAD version R2000.
DimensionLeaderBlockName string
// The $DIMLUNIT header variable. Sets units for all dimension types except angular. Minimum AutoCAD version R2000.
DimensionNonAngularUnits NonAngularUnits
// The $DIMLWD header variable. Dimension line lineweight. Minimum AutoCAD version R2000.
DimensionLineWeight LineWeight
// The $DIMLWE header variable. Extension line lineweight. Minimum AutoCAD version R2000.
DimensionExtensionLineWeight LineWeight
// The $DIMTMOVE header variable. Dimension text movement rules. Minimum AutoCAD version R2000.
DimensionTextMovementRule DimensionTextMovementRule
// The $DIMFXL header variable. Sets the total length of the extension lines starting from the dimension line toward the dimension origin. Minimum AutoCAD version R2007.
DimensionLineFixedLength float64
// The $DIMFXLON header variable. Controls whether extension lines are set to a fixed length. Minimum AutoCAD version R2007.
DimensionLineFixedLengthOn bool
// The $DIMJOGANG header variable. Determines the angle of the transverse segment of the dimension line in a jogged radius dimension. Minimum AutoCAD version R2007.
DimensionTransverseSegmentAngleInJoggedRadius float64
// The $DIMTFILL header variable. Controls the background of dimension text. Minimum AutoCAD version R2007.
DimensionTextBackgroundColorMode DimensionTextBackgroundColorMode
// The $DIMTFILLCLR header variable. Sets the color for the text background in dimensions. Minimum AutoCAD version R2007.
DimensionTextBackgroundCustomColor Color
// The $DIMARCSYM header variable. Controls the display of the arc symbol in an arc length dimension. Minimum AutoCAD version R2007.
DimensionArcSymbolDisplayMode DimensionArcSymbolDisplayMode
// The $DIMLTYPE header variable. Sets the line type of the dimension line. Minimum AutoCAD version R2007.
DimensionLineType string
// The $DIMLTEX1 header variable. Sets the line type of the first extension line. Minimum AutoCAD version R2007.
DimensionFirstExtensionLineType string
// The $DIMLTEX2 header variable. Sets the line type of the second extension line. Minimum AutoCAD version R2007.
DimensionSecondExtensionLineType string
// The $DIMTXTDIRECTION header variable. Specifies the reading direction of the dimension text. Minimum AutoCAD version R2010.
DimensionTextDirection TextDirection
// The $LUNITS header variable. Units format for coordinates and distances.
UnitFormat UnitFormat
// The $LUPREC header variable. Units precision for coordinates and distances.
UnitPrecision int16
// The $SKETCHINC header variable. Sketch record increment.
SketchRecordIncrement float64
// The $FILLETRAD header variable. Fillet radius.
FilletRadius float64
// The $AUNITS header variable. Units format for angles.
AngleUnitFormat AngleFormat
// The $AUPREC header variable. Units precision for angles.
AngleUnitPrecision int16
// The $MENU header variable. Name of menu file.
FileName string
// The $ELEVATION header variable. Current elevation set by ELEV command.
Elevation float64
// The $PELEVATION header variable. Current paper space elevation. Minimum AutoCAD version R11.
PaperspaceElevation float64
// The $THICKNESS header variable. Current thickness set by ELEV command.
Thickness float64
// The $LIMCHECK header variable. Limits checking.
UseLimitsChecking bool
// The $BLIPMODE header variable. Display blips for click locations. Maximum AutoCAD version R14.
BlipMode bool
// The $CHAMFERA header variable. First chamfer distance.
FirstChamferDistance float64
// The $CHAMFERB header variable. Second chamfer distance.
SecondChamferDistance float64
// The $CHAMFERC header variable. Chamfer length. Minimum AutoCAD version R14.
ChamferLength float64
// The $CHAMFERD header variable. Chamfer angle. Minimum AutoCAD version R14.
ChamferAngle float64
// The $SKPOLY header variable. Controls polyline sketch mode.
PolylineSketchMode PolySketchMode
// The $TDCREATE header variable. Local date/time of drawing creation.
CreationDate time.Time
// The $TDUCREATE header variable. Universal date/time the drawing was created. Minimum AutoCAD version R2000.
CreationDateUniversal time.Time
// The $TDUPDATE header variable. Local date/time of last drawing update.
UpdateDate time.Time
// The $TDUUPDATE header variable. Universal date/time of the last update/save. Minimum AutoCAD version R2000.
UpdateDateUniversal time.Time
// The $TDINDWG header variable. Cumulative editing time for this drawing.
TimeInDrawing time.Duration
// The $TDUSRTIMER header variable. User-elapsed timer.
UserElapsedTimer time.Duration
// The $USRTIMER header variable. User timer on.
UserTimerOn bool
// The $ANGBASE header variable. Angle 0 direction.
AngleZeroDirection float64
// The $ANGDIR header variable. Angle directions.
AngleDirection AngleDirection
// The $PDMODE header variable. Point display mode.
PointDisplayMode int
// The $PDSIZE header variable. Point display size.
PointDisplaySize float64
// The $PLINEWID header variable. Default polyline width.
DefaultPolylineWidth float64
// The $COORDS header variable. Controls the display of coordinates. Maximum AutoCAD version R14.
CoordinateDisplay CoordinateDisplay
// The $SPLFRAME header variable. Controls the display of helixes and smoothed mesh objects. Maximum AutoCAD version R2013.
DisplaySplinePolygonControl bool
// The $SPLINETYPE header variable. Spline curve type for PEDIT Spline.
PEditSplineCurveType PolylineCurvedAndSmoothSurfaceType
// The $SPLINESEGS header variable. Number of line segments per spline hatch.
LineSegmentsPerSplinePatch int16
// The $ATTDIA header variable. Controls whether the INSERT command uses a dialog box for attribute value entry. Maximum AutoCAD version R14.
ShowAttributeEntryDialogs bool
// The $ATTREQ header variable. Controls whether INSERT uses default attribute settings during insertion of blocks. Maximum AutoCAD version R14.
PromptForAttributeOnInsert bool
// The $HANDLING header variable. Handles available. Maximum AutoCAD version R12.
HandlesEnabled bool
// The $HANDSEED header variable. Next available handle.
NextAvailableHandle Handle
// The $SURFTAB1 header variable. Number of mesh tabulations in first direction.
MeshTabulationsInFirstDirection int16
// The $SURFTAB2 header variable. Number of mesh tabulations in second direction.
MeshTabulationsInSecondDirection int16
// The $SURFTYPE header variable. Surface type for PEDIT Smooth.
PEditSmoothSurfaceType PolylineCurvedAndSmoothSurfaceType
// The $SURFU header variable. Surface density (for PEDIT Smooth) in M direction.
PEditSmoothMDensith int16
// The $SURFV header variable. Surface density (for PEDIT Smooth) in N direction.
PEditSmoothNDensith int16
// The $UCSBASE header variable. Name of the UCS that defines the origin and orientation of orthographic UCS settings. Minimum AutoCAD version R2000.
UCSDefinitionName string
// The $UCSNAME header variable. Name of current UCS.
UCSName string
// The $UCSORG header variable. Origin of current UCS (in WCS).
UCSOrigin Point
// The $UCSXDIR header variable. Direction of the current UCS X axis (in WCS).
UCSXAxis Vector
// The $UCSYDIR header variable. Direction of the current UCS Y axis (in WCS).
UCSYAxis Vector
// The $UCSORTHOREF header variable. If model space UCS is orthographic (UCSORTHOVIEW not equal to 0), this is the name of the UCS that the orthographic UCS is relative to. If blank, UCS is relative to WORLD. Minimum AutoCAD version R2000.
OrthoUCSReference string
// The $UCSORTHOVIEW header variable. Orthographic view type of model space UCS. Minimum AutoCAD version R2000.
OrthgraphicViewType OrthographicViewType
// The $UCSORGTOP header variable. Point which becomes the new UCS origin after changing model space UCS to TOP when UCSBASE is set to WORLD. Minimum AutoCAD version R2000.
UCSOriginTop Point
// The $UCSORGBOTTOM header variable. Point which becomes the new UCS origin after changing model space UCS to BOTTOM when UCSBASE is set to WORLD. Minimum AutoCAD version R2000.
UCSOriginBottom Point
// The $UCSORGLEFT header variable. Point which becomes the new UCS origin after changing model space UCS to LEFT when UCSBASE is set to WORLD. Minimum AutoCAD version R2000.
UCSOriginLeft Point
// The $UCSORGRIGHT header variable. Point which becomes the new UCS origin after changing model space UCS to RIGHT when UCSBASE is set to WORLD. Minimum AutoCAD version R2000.
UCSOriginRight Point
// The $UCSORGFRONT header variable. Point which becomes the new UCS origin after changing model space UCS to FRONT when UCSBASE is set to WORLD. Minimum AutoCAD version R2000.
UCSOriginFront Point
// The $UCSORGBACK header variable. Point which becomes the new UCS origin after changing model space UCS to BACK when UCSBASE is set to WORLD. Minimum AutoCAD version R2000.
UCSOriginBack Point
// The $PUCSBASE header variable. Name of the UCS that defines the origin and orientation of orthographics UCS settings (paper space only). Minimum AutoCAD version R2000.
PaperspaceUCSDefinitionName string
// The $PUCSNAME header variable. Current paper space UCS name. Minimum AutoCAD version R11.
PaperspaceUCSName string
// The $PUCSORG header variable. Current paper space UCS origin. Minimum AutoCAD version R11.
PaperspaceUCSOrigin Point
// The $PUCSXDIR header variable. Current paper space UCS X axis. Minimum AutoCAD version R11.
PaperspaceXAxis Vector
// The $PUCSYDIR header variable. Current paper space UCS Y axis. Minimum AutoCAD version R11.
PaperspaceYAxis Vector
// The $PUCSORTHOREF header variable. If paper space UCS is orthographic (PUCSORTHOVIEW not equal to 0), this is the name of the UCS that the orthographic UCS is relative to. If blank, UCS is relative to WORLD. Minimum AutoCAD version R2000.
PaperspaceOrthoUCSReference string
// The $PUCSORTHOVIEW header variable. Orthographic view type of paper space UCS. Minimum AutoCAD version R2000.
PaperspaceOrthographicViewType OrthographicViewType
// The $PUCSORGTOP header variable. Point which becomes the new UCS origin after changing paper space UCS to TOP when PUCSBASE is set to WORLD. Minimum AutoCAD version R2000.
PaperspaceUCSOriginTop Point
// The $PUCSORGBOTTOM header variable. Point which becomes the new UCS origin after changing paper space UCS to BOTTOM when PUCSBASE is set to WORLD. Minimum AutoCAD version R2000.
PaperspaceUCSOriginBottom Point
// The $PUCSORGLEFT header variable. Point which becomes the new UCS origin after changing paper space UCS to LEFT when PUCSBASE is set to WORLD. Minimum AutoCAD version R2000.
PaperspaceUCSOriginLeft Point
// The $PUCSORGRIGHT header variable. Point which becomes the new UCS origin after changing paper space UCS to RIGHT when PUCSBASE is set to WORLD. Minimum AutoCAD version R2000.
PaperspaceUCSOriginRight Point
// The $PUCSORGFRONT header variable. Point which becomes the new UCS origin after changing paper space UCS to FRONT when PUCSBASE is set to WORLD. Minimum AutoCAD version R2000.
PaperspaceUCSOriginFront Point
// The $PUCSORGBACK header variable. Point which becomes the new UCS origin after changing paper space UCS to BACK when PUCSBASE is set to WORLD. Minimum AutoCAD version R2000.
PaperspaceUCSOriginBack Point
// The $USERI1 header variable. Integer variable intended for use by third-party developers.
UserInt1 int16
// The $USERI2 header variable. Integer variable intended for use by third-party developers.
UserInt2 int16
// The $USERI3 header variable. Integer variable intended for use by third-party developers.
UserInt3 int16
// The $USERI4 header variable. Integer variable intended for use by third-party developers.
UserInt4 int16
// The $USERI5 header variable. Integer variable intended for use by third-party developers.
UserInt5 int16
// The $USERR1 header variable. Real variable indented for use by third-party developers.
UserReal1 float64
// The $USERR2 header variable. Real variable indented for use by third-party developers.
UserReal2 float64
// The $USERR3 header variable. Real variable indented for use by third-party developers.
UserReal3 float64
// The $USERR4 header variable. Real variable indented for use by third-party developers.
UserReal4 float64
// The $USERR5 header variable. Real variable indented for use by third-party developers.
UserReal5 float64
// The $WORLDVIEW header variable. Set UCS to WCS during DVIEW/VPOINT.
SetUCSToWCSInDViewOrVPoint bool
// The $SHADEDGE header variable. Controls shading of faces. Minimum AutoCAD version R11.
EdgeShading ShadeEdgeMode
// The $SHADEDIF header variable. Percent ambient/diffuse light; range 1-100. Minimum AutoCAD version R11.
PercentAmbientToDiffuse int16
// The $TILEMODE header variable. Use previous release compatibility mode. Minimum AutoCAD version R11.
PreviousReleaseTileCompatability bool
// The $MAXACTVP header variable. Sets the maximum number of viewports to be regenerated. Minimum AutoCAD version R11.
MaximumActiveViewports int16
// The $PINSBASE header variable. Paper space insertion base point. Minimum AutoCAD version R14.
PaperspaceInsertionBase Point
// The $PLIMCHECK header variable. Limits checking in paper space. Minimum AutoCAD version R11.
LimitCheckingInPaperspace bool
// The $PEXTMIN header variable. Minimum X, Y, and Z extents for paper space. Minimum AutoCAD version R11.
PaperspaceMinimumDrawingExtents Point
// The $PEXTMAX header variable. Maximum X, Y, and Z extents for paper space. Minimum AutoCAD version R11.
PaperspaceMaximumDrawingExtents Point
// The $PLIMMIN header variable. Minimum X and Y limits in paper space. Minimum AutoCAD version R11.
PaperspaceMinimumDrawingLimits Point
// The $PLIMMAX header variable. Maximum X and Y limits in paper space. Minimum AutoCAD version R11.
PaperspaceMaximumDrawingLimits Point
// The $UNITMODE header variable. Display fractions, feet-and-inches, and surveyor's angles in input format. Minimum AutoCAD version R11.
DisplayFractionsInInput bool
// The $VISRETAIN header variable. Retain xref-dependent visibility settings. Minimum AutoCAD version R12.
RetainXRefDependentVisibilitySettings bool
// The $PLINEGEN header variable. Governs the generation of line type patterns around the vertices of a 2D polyline. Minimum AutoCAD version R11.
IsPolylineContinuousAroundVerticies bool
// The $PSLTSCALE header variable. Controls paper space line type scaling. Minimum AutoCAD version R11.
ScaleLineTypesInPaperspace bool
// The $TREEDEPTH header variable. Specifies the maximum depth of the spatial index. Minimum AutoCAD version R14.
SpacialIndexMaxDepth int16
// The $PICKSTYLE header variable. Controls the group selection and associative hatch selection. Minimum AutoCAD version R13. Maximum AutoCAD version R14.
PickStyle PickStyle
// The $CMLSTYLE header variable. Current multiline style name. Minimum AutoCAD version R13. Maximum AutoCAD version R13.
CurrentMultilineStyle string
// The $CMLJUST header variable. Current multiline justification. Minimum AutoCAD version R13.
CurrentMultilineJustification Justification
// The $CMLSCALE header variable. Current multiline scale. Minimum AutoCAD version R13.
CurrentMultilineScale float64
// The $PROXYGRAPHICS header variable. Controls the saving of proxy object images. Minimum AutoCAD version R14.
SaveProxyGraphics bool
// The $MEASUREMENT header variable. Sets drawing units. Minimum AutoCAD version R14.
DrawingUnits DrawingUnits
// The $CELWEIGHT header variable. Lineweight of new objects. Minimum AutoCAD version R2000.
NewObjectLineWeight LineWeight
// The $ENDCAPS header variable. Lineweight endcaps setting for new objects. Minimum AutoCAD version R2000.
EndCapSetting EndCapSetting
// The $JOINSTYLE header variable. Lineweight join setting for new objects. Minimum AutoCAD version R2000.
LineweightJointSetting JoinStyle
// The $LWDISPLAY header variable. Controls the display of lineweights on the Model or Layout tab. Minimum AutoCAD version R2000.
DisplayLinewieghtInModelAndLayoutTab bool
// The $INSUNITS header variable. Default drawing units for AutoCAD DesignCenter blocks. Minimum AutoCAD version R2000.
DefaultDrawingUnits Units
// The $HYPERLINKBASE header variable. Path for all relative hyperlinks in the drawing. If null, the drawing path is used. Minimum AutoCAD version R2000.
HyperlinkBase string
// The $STYLESHEET header variable. Path to the stylesheet for the drawing. Minimum AutoCAD version R2000.
Stylesheet string
// The $XEDIT header variable. Controls whether the current drawing can be edited in-place when being referenced by another drawing. Minimum AutoCAD version R2000.
CanUseInPlaceReferenceEditing bool
// The $CEPSNID header variable. PlotStyle handle of new objects. Minimum AutoCAD version R2000.
NewObjectPlotStyleHandle Handle
// The $CEPSNTYPE header variable. Plot style of new objects. Minimum AutoCAD version R2000.
NewObjectPlotStyle PlotStyle
// The $PSTYLEMODE header variable. Indicates whether the current drawing is in a Color-Dependent or Named Plot Style mode. Minimum AutoCAD version R2000.
UsesColorDependentPlotStyleTables bool
// The $FINGERPRINTGUID header variable. Set at creation time, uniquely identifies a particular drawing. Minimum AutoCAD version R2000.
FingerprintGuid uuid.UUID
// The $VERSIONGUID header variable. Uniquely identifies a particular version of a drawing. Updated when the drawing is modified. Minimum AutoCAD version R2000.
VersionGuid uuid.UUID
// The $EXTNAMES header variable. Controls symbol table naming. Minimum AutoCAD version R2000.
UseACad2000SymbolTableNaming bool
// The $PSVPSCALE header variable. View scale factor for new viewports. Minimum AutoCAD version R2000.
ViewportViewScaleFactor float64
// The $OLESTARTUP header variable. Controls whether the source application of an embedded OLE object loads when plotting. Minimum AutoCAD version R2000.
OleStartup bool
// The $SORTENTS header variable. Controls the object sorting methods; accessible from the Options dialog box User Preferences tab. Minimum AutoCAD version R2004.
ObjectSortingMethodsFlags int
// The $INDEXCTL header variable. Controls whether layer and spatial indexes are created and saved in drawing files. Minimum AutoCAD version R2004.
LayerAndSpatialIndexSaveMode LayerAndSpatialIndexSaveMode
// The $HIDETEXT header variable. Ignore text objects. Minimum AutoCAD version R2004.
HideTextObjectsWhenProducintHiddenView bool
// The $XCLIPFRAME header variable. Controls the visibility of xref clipping boundaries. Minimum AutoCAD version R2004. Maximum AutoCAD version R2007.
XRefClippingBoundaryVisible XrefClippingBoundaryVisibility
// The $HALOGAP header variable. Specifies a gap to be displayed where an object is hidden by another object; the value is specified as a percent of one unit and is independent of the zoom level. A haloed line is shortened at the point where it is hidden when HIDE or the Hidden option of SHADEMODE is used. Minimum AutoCAD version R2004.
HaloGapPercent float64
// The $OBSCOLOR header variable. Specifies the color of obscured lines. An obscured line is a hidden line made visible by changing its color and line type and is visible only when the HIDE or SHADEMODE command is used. The OBSCUREDCOLOR setting is visible only if the OBSCUREDLTYPE is turned ON by setting it to a value other than 0. Minimum AutoCAD version R2004.
ObscuredLineColor Color
// The $OBSLTYPE header variable. Specifies the line type of obscured lines. Obscured line types are independent of zoom level, unlike regular AutoCAD line types. Value 0 turns off display of obscured lines and is the default. Minimum AutoCAD version R2004.
ObscuredLineTypeStyle LineTypeStyle
// The $INTERSECTIONDISPLAY header variable. Specifies the display of intersection polylines. Minimum AutoCAD version R2004.
DisplayIntersectionPolylines bool
// The $INTERSECTIONCOLOR header variable. Specifies the entity color of intersection polylines. Minimum AutoCAD version R2004.
IntersectionPolylineColor Color
// The $DIMASSOC header variable. Controls the associativity of dimension objects. Minimum AutoCAD version R2004.
DimensionObjectAssociativity DimensionAssociativity
// The $PROJECTNAME header variable. Assigns a project name to the current drawing. Used when an external reference or image is not found on its original path. The project name points to a section in the registry that can contain one or more search paths for each project name defined. Project names and their search directories are created from the Files tab of the Options dialog box. Minimum AutoCAD version R2004.
ProjectName string
// The $CAMERADISPLAY header variable. Turns the display of camera objects on or off. Minimum AutoCAD version R2007.
UseCameraDisplay bool
// The $LENSLENGTH header variable. Stores the length of the lens in millimeters used in perspective viewing. Minimum AutoCAD version R2007.
LensLength float64
// The $CAMERAHEIGHT header variable. Specifies the default height for new camera objects. Minimum AutoCAD version R2007.
CameraHeight float64
// The $STEPSPERSEC header variable. Specifies the number of steps taken per second when you are in walk or fly mode. Minimum AutoCAD version R2007.
StepsPerSecondInWalkOrFlyMode float64
// The $STEPSIZE header variable. Specifies the size of each step when in walk or fly mode, in drawing units. Minimum AutoCAD version R2007.
StepSizeInWalkOrFlyMode float64
// The $3DDWFPREC header variable. Controls the precision of 3D DWF or 3D DWFx publishing. Minimum AutoCAD version R2007.
Dwf3DPrecision Dwf3DPrecision
// The $PSOLWIDTH header variable. Controls the default width for a swept solid object created with the POLYSOLID command. Minimum AutoCAD version R2007.
LastPolySolidWidth float64
// The $PSOLHEIGHT header variable. Controls the default height for a swept solid object created with the POLYSOLID command. Minimum AutoCAD version R2007.
LastPolySolidHeight float64
// The $LOFTANG1 header variable. Sets the draft angle through the first cross section in a loft operation. Minimum AutoCAD version R2007.
LoftOperationFirstDraftAngle float64
// The $LOFTANG2 header variable. Sets the draft angle through the second cross section in a loft operation. Minimum AutoCAD version R2007.
LoftOperationSecondDraftAngle float64
// The $LOFTMAG1 header variable. Sets the magnitude of the draft angle through the first cross section in a loft operation. Minimum AutoCAD version R2007.
LoftOperationFirstMagnitude float64
// The $LOFTMAG2 header variable. Sets the magnitude of the draft angle through the second cross section in a loft operation. Minimum AutoCAD version R2007.
LoftOperationSecondMagnitude float64
// The $LOFTPARAM header variable. Controls the shape of lofted solids and surfaces. Minimum AutoCAD version R2007.
LoftFlags int
// The $LOFTNORMALS header variable. Controls the normals of a lofted object where it passes through cross sections. Minimum AutoCAD version R2007.
LoftedObjectNormalMode LoftedObjectNormalMode
// The $LATITUDE header variable. The latitude of the geographic location assigned to the drawing. Minimum AutoCAD version R2007.
Latitude float64
// The $LONGITUDE header variable. The longitude of the geographic location assigned to the drawing. Minimum AutoCAD version R2007.
Longitude float64
// The $NORTHDIRECTION header variable. Specifies the angle between the Y axis of WCS and the grid north. Minimum AutoCAD version R2007.
AngleBetweenYAxisAndNorth float64
// The $TIMEZONE header variable. Sets the time zone for the sun in the drawing. Minimum AutoCAD version R2007.
TimeZone TimeZone
// The $LIGHTGLYPHDISPLAY header variable. Turns on and off the display of light glyphs. Minimum AutoCAD version R2007.
UseLightGlyphDisplay bool
// The $TILEMODELIGHTSYNCH header variable. Unknown. Minimum AutoCAD version R2007.
UseTileModeLightSync bool
// The $CMATERIAL header variable. Sets the material of new objects. Minimum AutoCAD version R2007.
CurrentMaterialHandle Handle
// The $SOLIDHIST header variable. Controls whether new composite solids retain a history of their original components. Minimum AutoCAD version R2007.
NewSolidsContainHistory bool
// The $SHOWHIST header variable. Controls the Show History property for solids in a drawing. Minimum AutoCAD version R2007.
SolidHistoryMode SolidHistoryMode
// The $DWFFRAME header variable. Determines whether DWF or DWFx underlay frames are visible or plotted in the current drawing. Minimum AutoCAD version R2007.
UnderlayFrameMode UnderlayFrameMode
// The $REALWORLDSCALE header variable. Drawing is scaled to the real world. Minimum AutoCAD version R2007.
UseRealWorldScale bool
// The $INTERFERECOLOR header variable. Represents the ACI color index of the "interference objects" created during the interfere command. Minimum AutoCAD version R2007.
InterferenceObjectColor Color
// The $INTERFEREOBJVS header variable. Hard-pointer ID to the visual stype for interference objects. Minimum AutoCAD version R2007.
InterferenceObjectVisualStylePointer Handle
// The $INTERFEREVPVS header variable. Hard-pointer ID to the visual styoe for the viewport during interference checking. Minimum AutoCAD version R2007.
InterferenceViewPortVisualStylePointer Handle
// The $CSHADOW header variable. Shadow mode for a 3D object. Minimum AutoCAD version R2007.
ShadowMode ShadowMode
// The $SHADOWPLANELOCATION header variable. Location of the ground shadow plane. This is a Z axis ordinate. Minimum AutoCAD version R2007.
ShadowPlaneZOffset float64
// The $AXISMODE header variable. Axis on. Maximum AutoCAD version R10.
AxisOn bool
// The $AXISUNIT header variable. Axis X and Y tick spacing. Maximum AutoCAD version R10.
AxisTickSpacing Vector
// The $FASTZOOM header variable. Fast zoom enabled. Maximum AutoCAD version R10.
FastZoom bool
// The $GRIDMODE header variable. Grid mode on. Maximum AutoCAD version R10.
GridOn bool
// The $GRIDUNIT header variable. Grid X and Y spacing. Maximum AutoCAD version R10.
GridSpacing Vector
// The $SNAPANG header variable. Snap grid rotation angle. Maximum AutoCAD version R10.
SnapRotationAngle float64
// The $SNAPBASE header variable. Snap/grid/base point (in UCS). Maximum AutoCAD version R10.
SnapBasePoint Point
// The $SNAPISOPAIR header variable. Isometric plane. Maximum AutoCAD version R10.
SnapIsometricPlane SnapIsometricPlane
// The $SNAPMODE header variable. Snap mode on. Maximum AutoCAD version R10.
SnapOn bool
// The $SNAPSTYLE header variable. Snap style. Maximum AutoCAD version R10.
SnapStyle SnapStyle
// The $SNAPUNIT header variable. Snap grid X and Y spacing. Maximum AutoCAD version R10.
SnapSpacing Vector
// The $VIEWCTR header variable. XY center of current view on screen. Maximum AutoCAD version R10.
ViewCenter Point
// The $VIEWDIR header variable. Viewing direction (direction from target in WCS). Maximum AutoCAD version R10.
ViewDirection Vector
// The $VIEWSIZE header variable. Height of view. Maximum AutoCAD version R10.
ViewHeight float64
}
func NewHeader() *Header {
return &Header{
Version: R12,
MaintenanceVersion: 0,
DrawingCodePage: "ANSI_1252",
LastSavedBy: "",
RequiredVersions: 0,
InsertionBase: *NewOrigin(),
MinimumDrawingExtents: *NewOrigin(),
MaximumDrawingExtents: *NewOrigin(),
MinimumDrawingLimits: *NewOrigin(),
MaximumDrawingLimits: Point{12.0, 9.0, 0.0},
DrawOrthoganalLines: false,
UseRegenMode: true,
FillModeOn: true,
UseQuickTextMode: false,
MirrorText: false,
DragMode: DragModeAuto,
LineTypeScale: 1.0,
ObjectSnapFlags: 37,
AttributeVisibility: AttributeVisibilityNormal,
DefaultTextHeight: 0.2,
TraceWidth: 0.05,
TextStyle: "STANDARD",
CurrentLayer: "0",
CurrentEntityLineType: "BYLAYER",
CurrentEntityColor: ByLayer(),
CurrentEntityLineTypeScale: 1.0,
RetainDeletedObjects: true,
DisplaySilhouetteCurvesInWireframeMode: false,
SolidVisualStylePointer: Handle(0),
DimensioningScaleFactor: 1.0,
DimensioningArrowSize: 0.18,
DimensionExtensionLineOffset: 0.0625,
DimensionLineIncrement: 0.38,
DimensionDistanceRoundingValue: 0.0,
DimensionLineExtension: 0.0,
DimensionExtensionLineExtension: 0.18,
DimensionPlusTolerance: 0.0,
DimensionMinusTolerance: 0.0,
DimensioningTextHeight: 0.18,
CenterMarkSize: 0.09,
DimensioningTickSize: 0.0,
GenerateDimensionTolerances: false,
GenerateDimensionLimits: false,
DimensionTextInsideHorizontal: true,
DimensionTextOutsideHorizontal: true,
SuppressFirstDimensionExtensionLine: false,
SuppressSecondDimensionExtensionLine: false,
TextAboveDimensionLine: false,
DimensionUnitZeroSuppression: UnitZeroSuppressionSuppressZeroFeetAndZeroInches,
ArrowBlockName: "",
CreateAssociativeDimensioning: true,
RecomputeDimensionsWhileDragging: true,
DimensioningSuffix: "",
AlternateDimensioningSuffix: "",
UseAlternateDimensioning: false,
AlternateDimensioningDecimalPlaces: 2,
AlternateDimensioningScaleFactor: 25.4,
DimensionLinearMeasurementsScaleFactor: 1.0,
ForceDimensionLineExtensionsOutsideIfTextIs: false,
DimensionVerticalTextPosition: 0.0,
ForceDimensionTextInsideExtensions: false,
SuppressOutsideExtensionDimensionLines: false,
UseSeparateArrowBlocksForDimensions: false,
FirstArrowBlockName: "",
SecondArrowBlockName: "",
DimensionStyleName: "STANDARD",
DimensionLineColor: ByBlock(),
DimensionExtensionLineColor: ByBlock(),
DimensionTextColor: ByBlock(),
DimensionToleranceDisplayScaleFactor: 1.0,
DimensionLineGap: 0.09,
DimensionTextJustification: DimensionTextJustificationAboveLineCenter,
DimensionToleranceVerticalJustification: JustificationMiddle,
DimensionToleranceZeroSuppression: UnitZeroSuppressionSuppressZeroFeetAndZeroInches,
AlternateDimensioningZeroSupression: UnitZeroSuppressionSuppressZeroFeetAndZeroInches,
AlternateDimensioningToleranceZeroSupression: UnitZeroSuppressionSuppressZeroFeetAndZeroInches,
DimensionTextAndArrowPlacement: DimensionFitTextAndArrowsOutsideLines,
DimensionCursorControlsTextPosition: false,
DimensionUnitFormat: UnitFormatDecimal,
DimensionUnitToleranceDecimalPlaces: 4,
DimensionToleranceDecimalPlaces: 4,
AlternateDimensioningUnits: UnitFormatDecimal,
AlternateDimensioningToleranceDecimalPlaces: 2,
DimensionTextStyle: "STANDARD",
DimensioningAngleFormat: AngleFormatDecimalDegrees,
AngularDimensionPrecision: 0,
AlternateDimensioningUnitRounding: 0.0,
DimensionAngleZeroSuppression: UnitZeroSuppressionSuppressZeroFeetAndZeroInches,
DimensionDecimalSeparatorRune: '.',
DimensionTextHeightScaleFactor: DimensionFractionFormatHorizontalStacking,
DimensionLeaderBlockName: "",
DimensionNonAngularUnits: NonAngularUnitsDecimal,
DimensionLineWeight: NewLineWeightByLayer(),
DimensionExtensionLineWeight: NewLineWeightByLayer(),
DimensionTextMovementRule: DimensionTextMovementRuleMoveLineWithText,
DimensionLineFixedLength: 1.0,
DimensionLineFixedLengthOn: false,
DimensionTransverseSegmentAngleInJoggedRadius: math.Pi / 4.0,
DimensionTextBackgroundColorMode: DimensionTextBackgroundColorModeNone,
DimensionTextBackgroundCustomColor: ByBlock(),
DimensionArcSymbolDisplayMode: DimensionArcSymbolDisplayModeSymbolBeforeText,
DimensionLineType: "",
DimensionFirstExtensionLineType: "",
DimensionSecondExtensionLineType: "",
DimensionTextDirection: TextDirectionLeftToRight,
UnitFormat: UnitFormatDecimal,
UnitPrecision: 4,
SketchRecordIncrement: 0.1,
FilletRadius: 0.0,
AngleUnitFormat: AngleFormatDecimalDegrees,
AngleUnitPrecision: 0,
FileName: ".",
Elevation: 0.0,
PaperspaceElevation: 0.0,
Thickness: 0.0,
UseLimitsChecking: false,
BlipMode: false,
FirstChamferDistance: 0.0,
SecondChamferDistance: 0.0,
ChamferLength: 0.0,
ChamferAngle: 0.0,
PolylineSketchMode: PolySketchModeSketchLines,
CreationDate: time.Now(),
CreationDateUniversal: time.Now().UTC(),
UpdateDate: time.Now(),
UpdateDateUniversal: time.Now().UTC(),
TimeInDrawing: time.Duration(0),
UserElapsedTimer: time.Duration(0),
UserTimerOn: true,
AngleZeroDirection: 0.0,
AngleDirection: AngleDirectionCounterClockwise,
PointDisplayMode: 0,
PointDisplaySize: 0.0,
DefaultPolylineWidth: 0.0,
CoordinateDisplay: CoordinateDisplayContinuousUpdate,
DisplaySplinePolygonControl: false,
PEditSplineCurveType: PolylineCurvedAndSmoothSurfaceTypeCubicBSpline,
LineSegmentsPerSplinePatch: 8,
ShowAttributeEntryDialogs: true,
PromptForAttributeOnInsert: true,
HandlesEnabled: true,
NextAvailableHandle: 0,
MeshTabulationsInFirstDirection: 6,
MeshTabulationsInSecondDirection: 6,
PEditSmoothSurfaceType: PolylineCurvedAndSmoothSurfaceTypeCubicBSpline,
PEditSmoothMDensith: 6,
PEditSmoothNDensith: 6,
UCSDefinitionName: "",
UCSName: "",
UCSOrigin: *NewOrigin(),
UCSXAxis: *NewXAxis(),
UCSYAxis: *NewYAxis(),
OrthoUCSReference: "",
OrthgraphicViewType: OrthographicViewTypeNone,
UCSOriginTop: *NewOrigin(),
UCSOriginBottom: *NewOrigin(),
UCSOriginLeft: *NewOrigin(),
UCSOriginRight: *NewOrigin(),
UCSOriginFront: *NewOrigin(),
UCSOriginBack: *NewOrigin(),
PaperspaceUCSDefinitionName: "",
PaperspaceUCSName: "",
PaperspaceUCSOrigin: *NewOrigin(),
PaperspaceXAxis: *NewXAxis(),
PaperspaceYAxis: *NewYAxis(),
PaperspaceOrthoUCSReference: "",
PaperspaceOrthographicViewType: OrthographicViewTypeNone,
PaperspaceUCSOriginTop: *NewOrigin(),
PaperspaceUCSOriginBottom: *NewOrigin(),
PaperspaceUCSOriginLeft: *NewOrigin(),
PaperspaceUCSOriginRight: *NewOrigin(),
PaperspaceUCSOriginFront: *NewOrigin(),
PaperspaceUCSOriginBack: *NewOrigin(),
UserInt1: 0,
UserInt2: 0,
UserInt3: 0,
UserInt4: 0,
UserInt5: 0,
UserReal1: 0.0,
UserReal2: 0.0,
UserReal3: 0.0,
UserReal4: 0.0,
UserReal5: 0.0,
SetUCSToWCSInDViewOrVPoint: true,
EdgeShading: ShadeEdgeModeFacesInEntityColorEdgesInBlack,
PercentAmbientToDiffuse: 70,
PreviousReleaseTileCompatability: true,
MaximumActiveViewports: 64,
PaperspaceInsertionBase: *NewOrigin(),
LimitCheckingInPaperspace: false,
PaperspaceMinimumDrawingExtents: Point{1.0e20, 1.0e20, 1.0e20},
PaperspaceMaximumDrawingExtents: Point{-1.0e20, -1.0e20, -1.0e20},
PaperspaceMinimumDrawingLimits: *NewOrigin(),
PaperspaceMaximumDrawingLimits: Point{12.0, 9.0, 0.0},
DisplayFractionsInInput: false,
RetainXRefDependentVisibilitySettings: true,
IsPolylineContinuousAroundVerticies: false,
ScaleLineTypesInPaperspace: true,
SpacialIndexMaxDepth: 3020,
PickStyle: PickStyleGroup,
CurrentMultilineStyle: "STANDARD",
CurrentMultilineJustification: JustificationTop,
CurrentMultilineScale: 1.0,
SaveProxyGraphics: true,
DrawingUnits: DrawingUnitsEnglish,
NewObjectLineWeight: LineWeightByBlock,
EndCapSetting: EndCapSettingNone,
LineweightJointSetting: JoinStyleNone,
DisplayLinewieghtInModelAndLayoutTab: false,
DefaultDrawingUnits: UnitsUnitless,
HyperlinkBase: "",
Stylesheet: "",
CanUseInPlaceReferenceEditing: true,
NewObjectPlotStyleHandle: 0,
NewObjectPlotStyle: PlotStyleByLayer,
UsesColorDependentPlotStyleTables: true,
FingerprintGuid: uuid.New(),
VersionGuid: uuid.New(),
UseACad2000SymbolTableNaming: true,
ViewportViewScaleFactor: 0.0,
OleStartup: false,
ObjectSortingMethodsFlags: 127,
LayerAndSpatialIndexSaveMode: LayerAndSpatialIndexSaveModeNone,
HideTextObjectsWhenProducintHiddenView: false,
XRefClippingBoundaryVisible: XrefClippingBoundaryVisibilityDisplayedNotPlotted,
HaloGapPercent: 0.0,
ObscuredLineColor: ByEntity(),
ObscuredLineTypeStyle: LineTypeStyleOff,
DisplayIntersectionPolylines: false,
IntersectionPolylineColor: ByEntity(),
DimensionObjectAssociativity: DimensionAssociativityNonAssociativeObjects,
ProjectName: "",
UseCameraDisplay: false,
LensLength: 50.0,
CameraHeight: 0.0,
StepsPerSecondInWalkOrFlyMode: 2.0,
StepSizeInWalkOrFlyMode: 6.0,
Dwf3DPrecision: Dwf3DPrecisionDeviation0_5,
LastPolySolidWidth: 0.25,
LastPolySolidHeight: 4.0,
LoftOperationFirstDraftAngle: math.Pi / 2.0,
LoftOperationSecondDraftAngle: math.Pi / 2.0,
LoftOperationFirstMagnitude: 0.0,
LoftOperationSecondMagnitude: 0.0,
LoftFlags: 7,
LoftedObjectNormalMode: LoftedObjectNormalModeSmoothFit,
Latitude: 37.7950,
Longitude: -122.3940,
AngleBetweenYAxisAndNorth: 0.0,
TimeZone: TimeZonePacificTime_US_Canada_SanFrancisco_Vancouver,
UseLightGlyphDisplay: true,
UseTileModeLightSync: true,
CurrentMaterialHandle: 0,
NewSolidsContainHistory: false,
SolidHistoryMode: SolidHistoryModeDoesNotOverride,
UnderlayFrameMode: UnderlayFrameModeDisplayNoPlot,
UseRealWorldScale: true,
InterferenceObjectColor: Color(1),
InterferenceObjectVisualStylePointer: 0,
InterferenceViewPortVisualStylePointer: 0,
ShadowMode: ShadowModeCastsAndReceivesShadows,
ShadowPlaneZOffset: 0.0,
AxisOn: false,
AxisTickSpacing: *NewZeroVector(),
FastZoom: true,
GridOn: false,
GridSpacing: Vector{1.0, 1.0, 0.0},
SnapRotationAngle: 0.0,
SnapBasePoint: *NewOrigin(),
SnapIsometricPlane: SnapIsometricPlaneLeft,
SnapOn: false,
SnapStyle: SnapStyleStandard,
SnapSpacing: Vector{1.0, 1.0, 0.0},
ViewCenter: *NewOrigin(),
ViewDirection: *NewZAxis(),
ViewHeight: 1.0,
}
}
// EndPointSnap status flag. Maximum AutoCAD version R14.
func (h *Header) EndPointSnap() (val bool) {
return h.ObjectSnapFlags & 1 != 0
}
// EndPointSnap status flag. Maximum AutoCAD version R14.
func (h *Header) SetEndPointSnap(val bool) {
if val {
h.ObjectSnapFlags = h.ObjectSnapFlags | 1
} else {
h.ObjectSnapFlags = h.ObjectSnapFlags & ^1
}
}
// MidPointSnap status flag. Maximum AutoCAD version R14.
func (h *Header) MidPointSnap() (val bool) {
return h.ObjectSnapFlags & 2 != 0
}
// MidPointSnap status flag. Maximum AutoCAD version R14.
func (h *Header) SetMidPointSnap(val bool) {
if val {
h.ObjectSnapFlags = h.ObjectSnapFlags | 2
} else {
h.ObjectSnapFlags = h.ObjectSnapFlags & ^2
}
}
// CenterSnap status flag. Maximum AutoCAD version R14.
func (h *Header) CenterSnap() (val bool) {
return h.ObjectSnapFlags & 4 != 0
}
// CenterSnap status flag. Maximum AutoCAD version R14.
func (h *Header) SetCenterSnap(val bool) {
if val {
h.ObjectSnapFlags = h.ObjectSnapFlags | 4
} else {
h.ObjectSnapFlags = h.ObjectSnapFlags & ^4
}
}
// NodeSnap status flag. Maximum AutoCAD version R14.
func (h *Header) NodeSnap() (val bool) {
return h.ObjectSnapFlags & 8 != 0
}
// NodeSnap status flag. Maximum AutoCAD version R14.
func (h *Header) SetNodeSnap(val bool) {
if val {
h.ObjectSnapFlags = h.ObjectSnapFlags | 8
} else {
h.ObjectSnapFlags = h.ObjectSnapFlags & ^8
}
}
// QuadrantSnap status flag. Maximum AutoCAD version R14.
func (h *Header) QuadrantSnap() (val bool) {
return h.ObjectSnapFlags & 16 != 0
}
// QuadrantSnap status flag. Maximum AutoCAD version R14.
func (h *Header) SetQuadrantSnap(val bool) {
if val {
h.ObjectSnapFlags = h.ObjectSnapFlags | 16
} else {
h.ObjectSnapFlags = h.ObjectSnapFlags & ^16
}
}
// IntersectionSnap status flag. Maximum AutoCAD version R14.
func (h *Header) IntersectionSnap() (val bool) {
return h.ObjectSnapFlags & 32 != 0
}
// IntersectionSnap status flag. Maximum AutoCAD version R14.
func (h *Header) SetIntersectionSnap(val bool) {
if val {
h.ObjectSnapFlags = h.ObjectSnapFlags | 32
} else {
h.ObjectSnapFlags = h.ObjectSnapFlags & ^32
}
}
// InsertionSnap status flag. Maximum AutoCAD version R14.
func (h *Header) InsertionSnap() (val bool) {
return h.ObjectSnapFlags & 64 != 0
}
// InsertionSnap status flag. Maximum AutoCAD version R14.
func (h *Header) SetInsertionSnap(val bool) {
if val {
h.ObjectSnapFlags = h.ObjectSnapFlags | 64
} else {
h.ObjectSnapFlags = h.ObjectSnapFlags & ^64
}
}
// PerpendicularSnap status flag. Maximum AutoCAD version R14.
func (h *Header) PerpendicularSnap() (val bool) {
return h.ObjectSnapFlags & 128 != 0
}
// PerpendicularSnap status flag. Maximum AutoCAD version R14.
func (h *Header) SetPerpendicularSnap(val bool) {
if val {
h.ObjectSnapFlags = h.ObjectSnapFlags | 128
} else {
h.ObjectSnapFlags = h.ObjectSnapFlags & ^128
}
}
// TangentSnap status flag. Maximum AutoCAD version R14.
func (h *Header) TangentSnap() (val bool) {
return h.ObjectSnapFlags & 256 != 0
}
// TangentSnap status flag. Maximum AutoCAD version R14.
func (h *Header) SetTangentSnap(val bool) {
if val {
h.ObjectSnapFlags = h.ObjectSnapFlags | 256
} else {
h.ObjectSnapFlags = h.ObjectSnapFlags & ^256
}
}
// NearestSnap status flag. Maximum AutoCAD version R14.
func (h *Header) NearestSnap() (val bool) {
return h.ObjectSnapFlags & 512 != 0
}
// NearestSnap status flag. Maximum AutoCAD version R14.
func (h *Header) SetNearestSnap(val bool) {
if val {
h.ObjectSnapFlags = h.ObjectSnapFlags | 512
} else {
h.ObjectSnapFlags = h.ObjectSnapFlags & ^512
}
}
// ApparentIntersectionSnap status flag. Maximum AutoCAD version R14.
func (h *Header) ApparentIntersectionSnap() (val bool) {
return h.ObjectSnapFlags & 2048 != 0
}
// ApparentIntersectionSnap status flag. Maximum AutoCAD version R14.
func (h *Header) SetApparentIntersectionSnap(val bool) {
if val {
h.ObjectSnapFlags = h.ObjectSnapFlags | 2048
} else {
h.ObjectSnapFlags = h.ObjectSnapFlags & ^2048