@design-core/core 0.0.1 → 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (254) hide show
  1. package/.eslintrc.json +14 -7
  2. package/.github/workflows/DesignCoreQA.yml +3 -1
  3. package/README.md +11 -4
  4. package/TODO.md +19 -0
  5. package/core/core/core.js +49 -42
  6. package/core/designCore.js +61 -2
  7. package/core/dimensions/alignedDimension.js +142 -0
  8. package/core/dimensions/angularDimension.js +550 -0
  9. package/core/dimensions/baseCircularDimension.js +244 -0
  10. package/core/dimensions/baseDimension.js +558 -0
  11. package/core/dimensions/baseLinearDimension.js +371 -0
  12. package/core/dimensions/diametricDimension.js +82 -0
  13. package/core/dimensions/dimension.js +298 -0
  14. package/core/dimensions/linearDimension.js +29 -0
  15. package/core/dimensions/radialDimension.js +78 -0
  16. package/core/dimensions/rotatedDimension.js +167 -0
  17. package/core/entities/arc.js +314 -60
  18. package/core/entities/arctext.js +642 -0
  19. package/core/entities/basePolyline.js +553 -94
  20. package/core/entities/circle.js +181 -54
  21. package/core/entities/entity.js +154 -74
  22. package/core/entities/hatch.js +807 -0
  23. package/core/entities/insert.js +200 -39
  24. package/core/entities/line.js +196 -134
  25. package/core/entities/lwpolyline.js +21 -44
  26. package/core/entities/point.js +194 -29
  27. package/core/entities/polyline.js +54 -7
  28. package/core/entities/rectangle.js +43 -13
  29. package/core/entities/solid.js +43 -6
  30. package/core/entities/text.js +324 -181
  31. package/core/lib/boundingBox.js +73 -13
  32. package/core/lib/canvas.js +256 -65
  33. package/core/lib/clipboard.js +198 -0
  34. package/core/lib/colour.js +144 -0
  35. package/core/lib/colours.js +367 -301
  36. package/core/lib/commandLine.js +16 -28
  37. package/core/lib/commandManager.js +115 -58
  38. package/core/lib/constants.js +23 -0
  39. package/core/lib/dxf/dxf.js +249 -34
  40. package/core/lib/dxf/dxfFile.js +23 -38
  41. package/core/lib/dxf/dxfIterator.js +17 -5
  42. package/core/lib/dxf/dxfRead.js +23 -7
  43. package/core/lib/dxf/dxfWrite.js +39 -129
  44. package/core/lib/dxf/handleManager.js +97 -0
  45. package/core/lib/dxf/sections/blocks.js +16 -2
  46. package/core/lib/dxf/sections/entities.js +17 -3
  47. package/core/lib/dxf/sections/header.js +10 -1
  48. package/core/lib/dxf/sections/objects.js +36 -0
  49. package/core/lib/dxf/sections/section.js +43 -5
  50. package/core/lib/dxf/sections/tables.js +17 -3
  51. package/core/lib/entityManager.js +178 -0
  52. package/core/lib/fileio.js +14 -4
  53. package/core/lib/headers.js +229 -0
  54. package/core/lib/input.js +46 -0
  55. package/core/lib/inputManager.js +199 -194
  56. package/core/lib/intersect.js +341 -468
  57. package/core/lib/logging.js +25 -1
  58. package/core/lib/matrix.js +6 -8
  59. package/core/lib/mouse.js +24 -79
  60. package/core/lib/patterns.js +690 -0
  61. package/core/lib/promptOptions.js +133 -0
  62. package/core/lib/scene.js +71 -174
  63. package/core/lib/selectionManager.js +74 -48
  64. package/core/lib/selectionWindow.js +24 -10
  65. package/core/lib/settings.js +18 -11
  66. package/core/lib/snapping.js +129 -21
  67. package/core/lib/stateManager.js +288 -0
  68. package/core/lib/strings.js +57 -5
  69. package/core/lib/utils.js +95 -11
  70. package/core/objects/dictionary.js +43 -0
  71. package/core/objects/dictionaryManager.js +80 -0
  72. package/core/properties/dimType.js +117 -0
  73. package/core/properties/flags.js +66 -0
  74. package/core/properties/property.js +26 -0
  75. package/core/properties/propertyManager.js +65 -19
  76. package/core/tables/appId.js +31 -0
  77. package/core/tables/appIdManager.js +44 -0
  78. package/core/tables/block.js +323 -0
  79. package/core/tables/blockManager.js +48 -0
  80. package/core/tables/blockRecord.js +29 -0
  81. package/core/tables/blockRecordManager.js +37 -0
  82. package/core/tables/dimStyle.js +627 -0
  83. package/core/tables/dimStyleManager.js +187 -0
  84. package/core/tables/endblk.js +28 -0
  85. package/core/tables/layer.js +219 -0
  86. package/core/tables/layerManager.js +47 -0
  87. package/core/tables/ltype.js +85 -0
  88. package/core/tables/ltypeManager.js +65 -0
  89. package/core/tables/style.js +145 -0
  90. package/core/tables/styleManager.js +55 -0
  91. package/core/tables/styleManagerBase.js +110 -0
  92. package/core/tables/tableManagerBase.js +354 -0
  93. package/core/tables/ucs.js +28 -0
  94. package/core/tables/ucsManager.js +44 -0
  95. package/core/tables/view.js +28 -0
  96. package/core/tables/viewManager.js +44 -0
  97. package/core/tables/vport.js +70 -0
  98. package/core/tables/vportManager.js +65 -0
  99. package/core/tools/chamfer.js +343 -0
  100. package/core/tools/chamferFilletBase.js +162 -0
  101. package/core/tools/copy.js +68 -40
  102. package/core/tools/copybase.js +65 -0
  103. package/core/tools/copyclip.js +59 -0
  104. package/core/tools/cornerEntity.js +138 -0
  105. package/core/tools/cutclip.js +72 -0
  106. package/core/tools/distance.js +37 -9
  107. package/core/tools/erase.js +43 -13
  108. package/core/tools/explode.js +117 -0
  109. package/core/tools/extend.js +71 -32
  110. package/core/tools/fillet.js +336 -0
  111. package/core/tools/identify.js +33 -6
  112. package/core/tools/matchProp.js +106 -0
  113. package/core/tools/mirror.js +141 -0
  114. package/core/tools/move.js +65 -32
  115. package/core/tools/offset.js +321 -0
  116. package/core/tools/pan.js +54 -0
  117. package/core/tools/pasteclip.js +93 -0
  118. package/core/tools/purge.js +90 -0
  119. package/core/tools/rotate.js +105 -70
  120. package/core/tools/scale.js +166 -0
  121. package/core/tools/tool.js +14 -4
  122. package/core/tools/trim.js +71 -32
  123. package/core/tools/zoom.js +152 -0
  124. package/package.json +3 -305
  125. package/test/dimensions/alignedDimension.test.js +211 -0
  126. package/test/dimensions/angularDimension.test.js +243 -0
  127. package/test/dimensions/baseDimension.test.js +239 -0
  128. package/test/dimensions/diametricDimension.test.js +203 -0
  129. package/test/dimensions/dimension.test.js +102 -0
  130. package/test/dimensions/radialDimension.test.js +203 -0
  131. package/test/dimensions/rotatedDimension.test.js +224 -0
  132. package/test/entities/arc.test.js +463 -41
  133. package/test/entities/arctext.test.js +329 -0
  134. package/test/entities/basePolyline.test.js +459 -10
  135. package/test/entities/circle.test.js +312 -7
  136. package/test/entities/entity.test.js +28 -9
  137. package/test/entities/hatch.test.js +606 -0
  138. package/test/entities/insert.test.js +90 -0
  139. package/test/entities/line.test.js +182 -6
  140. package/test/entities/point.test.js +375 -37
  141. package/test/entities/solid.test.js +156 -0
  142. package/test/entities/text.test.js +533 -7
  143. package/test/integration/exportIntegration.reference.dxf +1706 -0
  144. package/test/integration/exportIntegration.test.js +186 -0
  145. package/test/integration/importExportIntegration.test.js +126 -0
  146. package/test/integration/intersectionIntegration.test.js +880 -0
  147. package/test/integration/userInputIntegration.reference.dxf +1410 -0
  148. package/test/integration/userInputIntegration.test.js +269 -0
  149. package/test/lib/boundingBox.test.js +26 -2
  150. package/test/lib/canvas.test.js +613 -5
  151. package/test/lib/clipboard.test.js +70 -0
  152. package/test/lib/colour.test.js +114 -0
  153. package/test/lib/colours.test.js +63 -18
  154. package/test/lib/commandLine.test.js +159 -22
  155. package/test/lib/commandManager.test.js +4 -4
  156. package/test/lib/constants.test.js +9 -0
  157. package/test/lib/dxf/dxfFile.test.js +6 -2
  158. package/test/lib/dxf/dxfIterator.test.js +1 -1
  159. package/test/lib/dxf/dxfWrite.test.js +173 -0
  160. package/test/lib/dxf/handleManager.test.js +137 -0
  161. package/test/lib/dxf/sections/blocks.test.js +5 -5
  162. package/test/lib/dxf/sections/entities.test.js +4 -4
  163. package/test/lib/dxf/sections/header.test.js +18 -4
  164. package/test/lib/dxf/sections/objects.test.js +132 -0
  165. package/test/lib/dxf/sections/section.test.js +29 -29
  166. package/test/lib/dxf/sections/tables.test.js +3 -3
  167. package/test/lib/entityManager.test.js +163 -0
  168. package/test/lib/headers.test.js +233 -0
  169. package/test/lib/inputManager.test.js +1144 -5
  170. package/test/lib/intersect.test.js +454 -331
  171. package/test/lib/logging.test.js +1 -1
  172. package/test/lib/matrix.test.js +1 -1
  173. package/test/lib/mouse.test.js +327 -4
  174. package/test/lib/patterns.test.js +105 -0
  175. package/test/lib/promptOptions.test.js +179 -0
  176. package/test/lib/scene.test.js +16 -52
  177. package/test/lib/selectionManager.test.js +17 -5
  178. package/test/lib/settings.test.js +111 -5
  179. package/test/lib/snapping.test.js +142 -4
  180. package/test/lib/stateManager.test.js +155 -0
  181. package/test/lib/utils.test.js +81 -1
  182. package/test/objects/dictionary.test.js +81 -0
  183. package/test/objects/dictionaryManager.test.js +34 -0
  184. package/test/properties/dimType.test.js +62 -0
  185. package/test/properties/flags.test.js +164 -0
  186. package/test/properties/property.test.js +13 -0
  187. package/test/properties/propertyManager.test.js +10 -11
  188. package/test/tables/appId.test.js +46 -0
  189. package/test/tables/appIdManager.test.js +72 -0
  190. package/test/tables/block.test.js +157 -0
  191. package/test/tables/blockManager.test.js +52 -0
  192. package/test/tables/blockRecord.test.js +39 -0
  193. package/test/tables/blockRecordManager.test.js +60 -0
  194. package/test/tables/dimstyle.test.js +72 -0
  195. package/test/tables/endblk.test.js +30 -0
  196. package/test/tables/layer.test.js +95 -0
  197. package/test/tables/layerManager.test.js +172 -0
  198. package/test/{styles → tables}/ltype.test.js +7 -7
  199. package/test/{styles → tables}/ltypeManager.test.js +2 -2
  200. package/test/tables/style.test.js +44 -0
  201. package/test/tables/stylemanagerbase.test.js +220 -0
  202. package/test/tables/tableManagerBase.test.js +194 -0
  203. package/test/tables/ucs.test.js +37 -0
  204. package/test/tables/ucsManager.test.js +48 -0
  205. package/test/tables/view.test.js +37 -0
  206. package/test/tables/viewManager.test.js +48 -0
  207. package/test/tables/vport.test.js +117 -0
  208. package/test/tables/vportManager.test.js +54 -0
  209. package/test/test-helpers/test-helpers.js +66 -0
  210. package/test/tools/chamfer.test.js +970 -0
  211. package/test/tools/chamferFilletBase.test.js +446 -0
  212. package/test/tools/copy.test.js +22 -14
  213. package/test/tools/copybase.test.js +93 -0
  214. package/test/tools/copyclip.test.js +92 -0
  215. package/test/tools/cornerEntity.test.js +201 -0
  216. package/test/tools/cutclip.test.js +94 -0
  217. package/test/tools/distance.test.js +140 -18
  218. package/test/tools/erase.test.js +12 -12
  219. package/test/tools/explode.test.js +45 -0
  220. package/test/tools/extend.test.js +326 -44
  221. package/test/tools/fillet.test.js +831 -0
  222. package/test/tools/identify.test.js +115 -16
  223. package/test/tools/matchProp.test.js +84 -0
  224. package/test/tools/mirror.test.js +475 -0
  225. package/test/tools/move.test.js +75 -19
  226. package/test/tools/offset.test.js +748 -0
  227. package/test/tools/pan.test.js +72 -0
  228. package/test/tools/pasteclip.test.js +100 -0
  229. package/test/tools/purge.test.js +89 -0
  230. package/test/tools/rotate.test.js +89 -23
  231. package/test/tools/scale.test.js +529 -0
  232. package/test/tools/trim.test.js +419 -84
  233. package/test/tools/zoom.test.js +504 -0
  234. package/core/entities/alignedDimension.js +0 -279
  235. package/core/entities/angularDimension.js +0 -194
  236. package/core/entities/baseDimension.js +0 -227
  237. package/core/entities/block.js +0 -247
  238. package/core/entities/diametricDimension.js +0 -133
  239. package/core/entities/dimension.js +0 -202
  240. package/core/entities/radialDimension.js +0 -126
  241. package/core/styles/dimStyle.js +0 -719
  242. package/core/styles/dimStyleManager.js +0 -47
  243. package/core/styles/layer.js +0 -133
  244. package/core/styles/layerManager.js +0 -40
  245. package/core/styles/ltype.js +0 -86
  246. package/core/styles/ltypeManager.js +0 -50
  247. package/core/styles/style.js +0 -158
  248. package/core/styles/styleManager.js +0 -43
  249. package/core/styles/styleManagerBase.js +0 -299
  250. package/test/entities/block.test.js +0 -22
  251. package/test/styles/dimstyle.test.js +0 -19
  252. package/test/styles/layerManager.test.js +0 -150
  253. package/test/styles/style.test.js +0 -33
  254. package/test/styles/stylemanagerbase.test.js +0 -219
@@ -0,0 +1,690 @@
1
+ /**
2
+ * Patterns Class
3
+ * For hatch pattern management
4
+ */
5
+ export class PatternLine {
6
+ /**
7
+ * Create PatternLine
8
+ * @param {string} patternString
9
+ */
10
+ constructor(patternString) {
11
+ this.angle = 0;
12
+ this.xOrigin = 0;
13
+ this.yOrigin = 0;
14
+ this.xDelta = 0;
15
+ this.yDelta = 0;
16
+ this.dashes = [];
17
+
18
+ if (patternString) {
19
+ this.loadPatternLine(patternString);
20
+ }
21
+ }
22
+
23
+ /**
24
+ * load the pattern line
25
+ * @param {string} patternString
26
+ */
27
+ loadPatternLine(patternString) {
28
+ const patternArray = patternString.split(',');
29
+
30
+ if (!patternArray.length) {
31
+ return;
32
+ }
33
+
34
+ this.angle = parseFloat(patternArray[0]);
35
+ this.xOrigin = parseFloat(patternArray[1]);
36
+ this.yOrigin = parseFloat(patternArray[2]);
37
+ this.xDelta = parseFloat(patternArray[3]);
38
+ this.yDelta = parseFloat(patternArray[4]);
39
+
40
+ const dashes = [];
41
+ // convert each dash to a float and push to dashes
42
+ patternArray.splice(5).forEach((item) => {
43
+ dashes.push(parseFloat(item));
44
+ });
45
+
46
+ this.dashes = dashes;
47
+ }
48
+
49
+ /**
50
+ * Get the length of all dash elements
51
+ * @return {number}
52
+ */
53
+ getDashLength() {
54
+ if (this.dashes.length) {
55
+ // sum the length of all the dashes
56
+ const dashLength = this.dashes.reduce((accumulator, currentValue) => Math.abs(accumulator) + Math.abs(currentValue));
57
+ return dashLength;
58
+ }
59
+ return 0;
60
+ }
61
+ }
62
+
63
+ /** Pattern Class */
64
+ export class Patterns {
65
+ // Cache parsed PatternLine arrays — patterns are static and never change
66
+ static #patternCache = new Map();
67
+
68
+ /**
69
+ * Get Pattern
70
+ * @param {string} name
71
+ * @return {Array} array of PatternLine objects for the pattern name
72
+ */
73
+ static getPattern(name) {
74
+ const key = name.toUpperCase();
75
+
76
+ if (!Patterns.#patternCache.has(key)) {
77
+ const pattern = [];
78
+ const patternString = Patterns.hatch_patterns[key];
79
+ const patternLines = patternString.pattern.split('\n');
80
+
81
+ patternLines.forEach((line) => {
82
+ const patternLine = new PatternLine(line);
83
+ Object.freeze(patternLine.dashes);
84
+ Object.freeze(patternLine);
85
+ pattern.push(patternLine);
86
+ });
87
+
88
+ Patterns.#patternCache.set(key, Object.freeze(pattern));
89
+ }
90
+
91
+ return Patterns.#patternCache.get(key);
92
+ }
93
+
94
+ /**
95
+ * Get Pattern line count
96
+ * @param {string} name
97
+ * @return {number} for the number of pattern lines
98
+ */
99
+ static getPatternLineCount(name) {
100
+ // get the pattern string
101
+ const patternString = Patterns.hatch_patterns[name.toUpperCase()];
102
+ // split the pattern into separate lines
103
+ const patternLines = patternString.pattern.split('\n');
104
+
105
+ return patternLines.length;
106
+ }
107
+
108
+ /**
109
+ * Check if the pattern exists
110
+ * @param {string} name
111
+ * @return {boolean}
112
+ */
113
+ static patternExists(name) {
114
+ return Object.hasOwn(Patterns.hatch_patterns, name.toUpperCase());
115
+ }
116
+
117
+ static hatch_patterns = {
118
+ 'SOLID': {
119
+ description: 'Solid Fill', pattern:
120
+ `45, 0,0, 0,3.175`,
121
+ },
122
+
123
+ 'ANGLE': {
124
+ description: 'Angle steel', pattern:
125
+ `0, 0, 0, 0, 6.985, 5.08, -1.905
126
+ 90, 0, 0, 0, 6.985, 5.08, -1.905` },
127
+
128
+ 'ANSI31': {
129
+ description: 'ANSI Iron, Brick, Stone masonry', pattern:
130
+ `45, 0, 0, 0, 3.175`,
131
+ },
132
+
133
+ 'ANSI32': {
134
+ description: 'ANSI Steel', pattern:
135
+ `45, 0, 0, 0, 9.525
136
+ 45, 4.49013, 0, 0, 9.525` },
137
+
138
+ 'ANSI33': {
139
+ description: 'ANSI Bronze, Brass, Copper', pattern:
140
+ `45, 0, 0, 0, 6.35
141
+ 45, 4.49013, 0, 0, 6.35, 3.175, -1.5875` },
142
+
143
+ 'ANSI34': {
144
+ description: 'ANSI Plastic, Rubber', pattern:
145
+ `45, 0, 0, 0, 19.05
146
+ 45, 4.49013, 0, 0, 19.05
147
+ 45, 8.98026, 0, 0, 19.05
148
+ 45, 13.4704, 0, 0, 19.05` },
149
+
150
+ 'ANSI35': {
151
+ description: 'ANSI Fire brick, Refractory material', pattern:
152
+ `45, 0, 0, 0, 6.35
153
+ 45, 4.49013, 0, 0, 6.35, 7.9375, -1.5875, 0, -1.5875` },
154
+
155
+ 'ANSI36': {
156
+ description: 'ANSI Marble, Slate, Glass', pattern:
157
+ `45, 0, 0, 5.55625, 3.175, 7.9375, -1.5875, 0, -1.5875`,
158
+ },
159
+
160
+ 'ANSI37': {
161
+ description: 'ANSI Lead, Zinc, Magnesium, Sound/Heat/Elec Insulation', pattern:
162
+ `45, 0, 0, 0, 3.175
163
+ 135, 0, 0, 0, 3.175` },
164
+
165
+ 'ANSI38': {
166
+ description: 'ANSI Aluminum', pattern:
167
+ `45, 0, 0, 0, 3.175
168
+ 135, 0, 0, 6.35, 3.175, 7.9375, -4.7625` },
169
+
170
+ 'AR-B816': {
171
+ description: '8x16 block elevation stretcher bond', pattern:
172
+ `0, 0, 0, 0, 203.2
173
+ 90, 0, 0, 203.2, 203.2, 203.2, -203.2` },
174
+
175
+ 'AR-B816C': {
176
+ description: '8x16 block elevation stretcher bond with mortar joints', pattern:
177
+ `0, 0, 0, 203.2, 203.2, 396.875, -9.525
178
+ 0, -203.2, 9.525, 203.2, 203.2, 396.875, -9.525
179
+ 90, 0, 0, 203.2, 203.2, -212.725, 193.675
180
+ 90, -9.525, 0, 203.2, 203.2, -212.725, 193.675` },
181
+
182
+ 'AR-B88': {
183
+ description: '8x8 block elevation stretcher bond', pattern:
184
+ `0, 0, 0, 0, 203.2
185
+ 90, 0, 0, 203.2, 101.6, 203.2, -203.2` },
186
+
187
+ 'AR-BRELM': {
188
+ description: 'standard brick elevation english bond with mortar joints', pattern:
189
+ `0, 0, 0, 0, 135.484, 193.675, -9.525
190
+ 0, 0, 57.15, 0, 135.484, 193.675, -9.525
191
+ 0, 50.8, 67.7418, 0, 135.484, 92.075, -9.525
192
+ 0, 50.8, 124.892, 0, 135.484, 92.075, -9.525
193
+ 90, 0, 0, 0, 203.2, 57.15, -78.334
194
+ 90, -9.525, 0, 0, 203.2, 57.15, -78.334
195
+ 90, 50.8, 67.7418, 0, 101.6, 57.15, -78.334
196
+ 90, 41.275, 67.7418, 0, 101.6, 57.15, -78.334` },
197
+
198
+ 'AR-BRSTD': {
199
+ description: 'standard brick elevation stretcher bond', pattern:
200
+ `0, 0, 0, 0, 67.7418
201
+ 90, 0, 0, 67.7418, 101.6, 67.7418, -67.7418` },
202
+
203
+ 'AR-CONC': {
204
+ description: 'random dot and stone pattern', pattern:
205
+ `50, 0, 0, 104.896, -149.807, 19.05, -209.55
206
+ 355, 0, 0, -51.76101082,187.25814969, 15.24, -167.64058417
207
+ 100.4514447,15.182007,-1.3282535,145.5569059,-176.270089,16.1900088,-178.0902446
208
+ 46.1842, 0, 50.8, 157.343, -224.71, 28.575, -314.325
209
+ 96.63555761,22.5899,47.2965,218.33577212,-264.40480444,24.28502314,-267.13560816
210
+ 351.18415117,0,50.8,196.67912063,280.88740361,22.85996707,-251.45973192
211
+ 21, 25.4, 38.1, 104.89565868, -149.80652586, 19.05, -209.55
212
+ 326, 25.4, 38.1, -51.7604, 187.258, 15.24, -167.64
213
+ 71.451445,38.0345326,29.5779001,145.5567546,-176.2700748,16.1900088,-178.0899376
214
+ 37.5, 0, 0, 53.9242, 65.2018, 0, -165.608, 0, -170.18, 0, -168.275
215
+ 7.5, 0, 0, 79.3242, 90.6018, 0, -97.028, 0, -161.798, 0, -64.135
216
+ -32.5, -56.642, 0, 117.434, 68.0212, 0, -63.5, 0, -198.12, 0, -262.89
217
+ -42.5, -82.042, 0, 92.0344, 118.821, 0, -82.55, 0, -131.572, 0, -186.69` },
218
+
219
+ 'AR-HBONE': {
220
+ description: 'standard brick herringbone pattern @ 45 degrees', pattern:
221
+ `45, 0, 0, 101.6, 101.6, 304.8, -101.6
222
+ 135, 71.842, 71.842, 101.6, -101.6, 304.8, -101.6` },
223
+
224
+ 'AR-PARQ1': {
225
+ description: '2x12 parquet flooring: pattern of 12x12', pattern:
226
+ `90, 0, 0, 304.8, 304.8, 304.8, -304.8
227
+ 90, 50.8, 0, 304.8, 304.8, 304.8, -304.8
228
+ 90, 101.6, 0, 304.8, 304.8, 304.8, -304.8
229
+ 90, 152.4, 0, 304.8, 304.8, 304.8, -304.8
230
+ 90, 203.2, 0, 304.8, 304.8, 304.8, -304.8
231
+ 90, 254, 0, 304.8, 304.8, 304.8, -304.8
232
+ 90, 304.8, 0, 304.8, 304.8, 304.8, -304.8
233
+ 0, 0, 304.8, 304.8, -304.8, 304.8, -304.8
234
+ 0, 0, 355.6, 304.8, -304.8, 304.8, -304.8
235
+ 0, 0, 406.4, 304.8, -304.8, 304.8, -304.8
236
+ 0, 0, 457.2, 304.8, -304.8, 304.8, -304.8
237
+ 0, 0, 508, 304.8, -304.8, 304.8, -304.8
238
+ 0, 0, 558.8, 304.8, -304.8, 304.8, -304.8
239
+ 0, 0, 609.6, 304.8, -304.8, 304.8, -304.8` },
240
+
241
+ 'AR-RROOF': {
242
+ description: 'roof shingle texture', pattern:
243
+ `0, 0, 0, 55.88, 25.4, 381, -50.8, 127, -25.4
244
+ 0, 33.782, 12.7, -25.4, 33.782, 76.2, -8.382, 152.4, -19.05
245
+ 0, 12.7, 21.59, 132.08, 17.018, 203.2, -35.56, 101.6, -25.4` },
246
+
247
+ 'AR-RSHKE': {
248
+ description: 'roof wood shake texture', pattern:
249
+ `0, 0, 0, 647.7, 304.8, 152.4, -127, 177.8, -76.2, 228.6, -101.6
250
+ 0, 152.4, 12.7, 647.7, 304.8, 127, -482.6, 101.6, -152.4
251
+ 0, 457.2, -19.05, 647.7, 304.8, 76.2, -787.4
252
+ 90, 0, 0, 304.8, 215.9, 292.1, -927.1
253
+ 90, 152.4, 0, 304.8, 215.9, 285.75, -933.45
254
+ 90, 279.4, 0, 304.8, 215.9, 266.7, -952.5
255
+ 90, 457.2, -19.05, 304.8, 215.9, 292.1, -927.1
256
+ 90, 533.4, -19.05, 304.8, 215.9, 292.1, -927.1
257
+ 90, 762, 0, 304.8, 215.9, 279.4, -939.8` },
258
+
259
+ 'AR-SAND': {
260
+ description: 'random dot pattern', pattern:
261
+ `37.5, 0, 0, 28.5242, 39.8018, 0, -38.608, 0, -43.18, 0, -41.275
262
+ 7.5, 0, 0, 53.9242, 65.2018, 0, -20.828, 0, -34.798, 0, -13.335
263
+ -32.5, -31.242, 0, 66.6344, 42.6212, 0, -12.7, 0, -45.72, 0, -59.69
264
+ -42.5, -31.242, 0, 41.2344, 68.0212, 0, -6.35, 0, -29.972, 0, -34.29` },
265
+
266
+ 'BOX': {
267
+ description: 'Box steel', pattern:
268
+ `90, 0, 0, 0, 25.4
269
+ 90, 6.35, 0, 0, 25.4
270
+ 0, 0, 0, 0, 25.4, -6.35, 6.35
271
+ 0, 0, 6.35, 0, 25.4, -6.35, 6.35
272
+ 0, 0, 12.7, 0, 25.4, 6.35, -6.35
273
+ 0, 0, 19.05, 0, 25.4, 6.35, -6.35
274
+ 90, 12.7, 0, 0, 25.4, 6.35, -6.35
275
+ 90, 19.05, 0, 0, 25.4, 6.35, -6.35` },
276
+
277
+ 'BRASS': {
278
+ description: 'Brass material', pattern:
279
+ `0, 0, 0, 0, 6.35
280
+ 0, 0, 3.175, 0, 6.35, 3.175, -1.5875` },
281
+
282
+ 'BRICK': {
283
+ description: 'Brick or masonry-type surface', pattern:
284
+ `0, 0, 0, 0, 6.35
285
+ 90, 0, 0, 0, 12.7, 6.35, -6.35
286
+ 90, 6.35, 0, 0, 12.7, -6.35, 6.35 ` },
287
+
288
+ 'BRSTONE': {
289
+ description: 'Brick and stone', pattern:
290
+ `0, 0, 0, 0, 8.382
291
+ 90, 22.86, 0, 8.382, 12.7, 8.382, -8.382
292
+ 90, 20.32, 0, 8.382, 12.7, 8.382, -8.382
293
+ 0, 22.86, 1.397, 12.7, 8.382, -22.86, 2.54
294
+ 0, 22.86, 2.794, 12.7, 8.382, -22.86, 2.54
295
+ 0, 22.86, 4.191, 12.7, 8.382, -22.86, 2.54
296
+ 0, 22.86, 5.588, 12.7, 8.382, -22.86, 2.54
297
+ 0, 22.86, 6.985, 12.7, 8.382, -22.86, 2.54 ` },
298
+
299
+ 'CLAY': {
300
+ description: 'Clay material', pattern:
301
+ `0, 0, 0, 0, 4.7625
302
+ 0, 0, 0.79375, 0, 4.7625
303
+ 0, 0, 1.5875, 0, 4.7625
304
+ 0, 0, 3.175, 0, 4.7625, 4.7625, -3.175` },
305
+
306
+ 'CORK': {
307
+ description: 'Cork material', pattern:
308
+ `0, 0, 0, 0, 3.175
309
+ 135, 1.5875, -1.5875, 0, 8.98026, 4.49013, -4.49013
310
+ 135, 2.38125, -1.5875, 0, 8.98026, 4.49013, -4.49013
311
+ 135, 3.175, -1.5875, 0, 8.98026, 4.49013, -4.49013` },
312
+
313
+ 'CROSS': {
314
+ description: 'A series of crosses', pattern:
315
+ `0, 0, 0, 6.35, 6.35, 3.175, -9.525
316
+ 90, 1.5875, -1.5875, 6.35, 6.35, 3.175, -9.525` },
317
+
318
+
319
+ 'DASH': {
320
+ description: 'Dashed lines', pattern:
321
+ `0, 0, 0, 3.175, 3.175, 3.175, -3.175`,
322
+ },
323
+
324
+ 'DOLMIT': {
325
+ description: 'Geological rock layering', pattern:
326
+ `0, 0, 0, 0, 6.35
327
+ 45, 0, 0, 0, 17.9605,8.98025612106915355989072339,-17.9605122421383071197814467` },
328
+
329
+ 'DOTS': {
330
+ description: 'A series of dots', pattern:
331
+ `0, 0, 0, 0.79375, 1.5875, 0, -1.5875`,
332
+ },
333
+
334
+ 'EARTH': {
335
+ description: 'Earth or ground (subterranean)', pattern:
336
+ `0, 0, 0, 6.35, 6.35, 6.35, -6.35
337
+ 0, 0, 2.38125, 6.35, 6.35, 6.35, -6.35
338
+ 0, 0, 4.7625, 6.35, 6.35, 6.35, -6.35
339
+ 90, 0.79375, 5.55625, 6.35, 6.35, 6.35, -6.35
340
+ 90, 3.175, 5.55625, 6.35, 6.35, 6.35, -6.35
341
+ 90, 5.55625, 5.55625, 6.35, 6.35, 6.35, -6.35` },
342
+
343
+ 'ESCHER': {
344
+ description: 'Escher pattern', pattern:
345
+ `60, 0, 0, -15.24, 26.3964542936, 27.94, -2.54
346
+ 180, 0, 0, -15.24, 26.3964542936, 27.94, -2.54
347
+ 300, 0, 0, 15.24, 26.3964542936, 27.94, -2.54
348
+ 60, 2.54, 0, -15.24, 26.3964542936, 5.08, -25.4
349
+ 300, 2.54, 0, 15.24, 26.3964542936, 5.08, -25.4
350
+ 60, -1.27, 2.199704516, -15.24, 26.3964542936, 5.08, -25.4
351
+ 180, -1.27, 2.199704516, -15.24, 26.3964542936, 5.08, -25.4
352
+ 300, -1.27, -2.199704516, 15.24, 26.3964542936, 5.08, -25.4
353
+ 180, -1.27, -2.199704516, -15.24, 26.3964542936, 5.08, -25.4
354
+ 60, -10.16, 0, -15.24, 26.3964542936, 5.08, -25.4
355
+ 300, -10.16, 0, 15.24, 26.3964542936, 5.08, -25.4
356
+ 60, 5.08, -8.7988180894, -15.24, 26.3964542936, 5.08, -25.4
357
+ 180, 5.08, -8.7988180894, -15.24, 26.3964542936, 5.08, -25.4
358
+ 300, 5.08, 8.7988180894, 15.24, 26.3964542936, 5.08, -25.4
359
+ 180, 5.08, 8.7988180894, -15.24, 26.3964542936, 5.08, -25.4
360
+ 0, 5.08, 4.3994090574, -15.24, 26.3964542936, 17.78, -12.7
361
+ 0, 5.08, -4.3994090574, -15.24, 26.3964542936, 17.78, -12.7
362
+ 120, 1.27, 6.5991135734, 15.24, 26.3964542936, 17.78, -12.7
363
+ 120, -6.35, 2.199704516, 15.24, 26.3964542936, 17.78, -12.7
364
+ 240, -6.35, -2.199704516, 15.24, 26.3964542936, 17.78, -12.7
365
+ 240, 1.27, -6.5991135734, 15.24, 26.3964542936, 17.78, -12.7` },
366
+
367
+ 'FLEX': {
368
+ description: 'Flexible material', pattern:
369
+ `0, 0, 0, 0, 6.35, 6.35, -6.35
370
+ 45,6.35,0,4.490128053,4.490128053,1.5875,-5.8052561314,1.5875,-8.9802561314` },
371
+
372
+ 'GOST_GLASS': {
373
+ description: 'glass material', pattern:
374
+ `45, 0, 0, 6, -6, 5, -7
375
+ 45, 2.121320, 0, 6, -6, 2, -10
376
+ 45, 0, 2.121320, 6, -6, 2, -10` },
377
+
378
+ 'GOST_WOOD': {
379
+ description: 'wood material', pattern:
380
+ `90, 0, 0, 0, -6, 10, -2
381
+ 90, 2, -2, 0, -6, 6, -1.5, 3, -1.5
382
+ 90, 4, -5, 0, -6, 10, -2` },
383
+
384
+ 'GOST_GROUND': {
385
+ description: 'ground', pattern:
386
+ `45, 0, 0, 10, -10
387
+ 45, 3, 0, 10, -10
388
+ 45, 6, 0, 10, -10` },
389
+
390
+ 'GRASS': {
391
+ description: 'Grass area', pattern:
392
+ `90, 0, 0, 17.96051224, 17.96051224, 4.7625, -31.15852448
393
+ 45, 0, 0, 0, 25.4, 4.7625, -20.6375
394
+ 135, 0, 0, 0, 25.4, 4.7625, -20.6375` },
395
+
396
+ 'GRATE': {
397
+ description: 'Grated area', pattern:
398
+ `0, 0, 0, 0, 0.79375
399
+ 90, 0, 0, 0, 3.175` },
400
+
401
+ 'GRAVEL': {
402
+ description: 'Gravel pattern', pattern:
403
+ `228.0127875, 18.288, 25.4, 305.85067529778, 1.88796713245,3.4172144,-338.30483639565
404
+ 184.969741, 16.002, 22.86, -305.8545235377, 1.10019612724, 5.8640472, -580.54048893524
405
+ 132.5104471, 10.16,22.352, -377.59492241548, 1.56030959675, 4.1348152, -409.347227941
406
+ 267.273689,.254,16.002,-508.63316875916,1.20815479432,5.3400452,-528.66437425738
407
+ 292.83365418,0.0,10.668,-330.19770134945,1.23208097566,5.236337,-518.39807745344
408
+ 357.273689,2.032,5.842,-508.63316875916,1.20815479432,5.3400452,-528.66437425738
409
+ 37.69424047,7.366,5.588,-416.58997273292,.91357450169,7.0619366,-699.13115314247
410
+ 72.25532837,12.954,9.906,586.40373773403,.96766293399,6.6671952,-660.05256601905
411
+ 121.42956562,14.986,16.256,387.71230339293,1.2040754753,5.35813,-530.45545698712
412
+ 175.2363583,12.192,20.828,-280.5442400419,2.10935518695,6.1171328,-299.7393695
413
+ 222.3974378,6.096,21.336,413.48123885686,.81554484621,7.9107792,-783.16772512177
414
+ 138.81407483,25.4,15.748,234.164238558,2.38943100688,2.7000454,-267.30565824344
415
+ 171.4692344,23.368,17.526,-334.082478726,1.25594916784,5.1368198,-508.5463899704
416
+ 225.00000,18.288,18.288,17.96051224214,17.96051224214,3.5920934,-32.32893108428
417
+ 203.19859051,16.51,21.336,-136.74251918,3.33518339548,1.9344132,-191.50622368894
418
+ 291.80140949,14.732,20.574,-80.18324702488,4.71666158921,2.7356562,-134.0475299
419
+ 30.96375653,15.748,18.034,91.47734531502,4.35606406258,4.4431966,-143.6629815291
420
+ 161.56505118,19.558,20.32,-56.2252967978,8.03218525675,3.2128714,-77.10898116828
421
+ 16.389540334,0.0,20.574,265.17991128726,1.43340492604,4.50088,-445.58826672539
422
+ 70.34617594,4.318,21.844,-297.29446803469,1.70858889651,3.7759894,-373.822156782
423
+ 293.19859051,19.558,25.4,-136.7425191801,3.33518339548,3.868801,-189.57183588894
424
+ 343.61045967,21.082,21.844,-265.17991128725,1.433404926,4.50088,-445.5882667254
425
+ 339.44395478,0.0,4.826,-136.75087638398,2.97284513779,4.340352,-212.67734313106
426
+ 294.7751406,4.064,3.302,-306.90424056705,1.77401295215,3.6367212,-360.0359338072
427
+ 66.80140949,19.812,0.0,136.74251918012,3.33518339452,3.868801,-189.57183588894
428
+ 17.35402464,21.336,3.556,-345.47402804977,1.51523696536,4.2578274,-421.523759802
429
+ 69.44395478,7.366,0.0,-136.75087638396,2.97284513874,2.170176,-214.84751913106
430
+ 101.309932474,18.288,0.0,104.60834648271,4.98134983255,1.295146,-128.21994964526
431
+ 165.963756532,18.034,1.27,-80.085263387,6.16040487582,5.236337,-99.49054589069
432
+ 186.00900596,12.954,2.54,-255.26337856879,1.32949676118,4.85267,-480.41364863337
433
+ 303.69006753,15.748,15.748,-56.35753993648,7.0446924921,3.6632388,-87.9177635968
434
+ 353.15722659,17.78,12.7,434.77679606606,1.0087628707,6.3955676,-633.16009065031
435
+ 60.9453959,24.13,11.938,-204.76648550216,2.46706609031,2.6150824,-258.8939231811
436
+ 90.0000000,25.4,14.224,25.4,25.4,1.524,-23.876
437
+ 120.25643716,12.446,3.302,-204.77318477297,1.8283320086,3.5286696,-349.339407732
438
+ 48.01278750,10.668,6.35,305.85067529778,1.88796713138,6.8344288,-334.88762199565
439
+ 0.000000000,15.24,11.43,25.4,25.4,6.604,-18.796
440
+ 325.3048465,21.844,11.43,310.04235091354,-1.6064370526,4.0160956,-397.5931672414
441
+ 254.0546041,25.146,9.144,104.6687497289,3.48895832444,3.6982908,-181.21650038772
442
+ 207.64597536,24.13,5.588,545.36007557253,1.07143433066,6.021451,-596.12464422938
443
+ 175.42607874,18.796,2.794,331.1739336186,1.01276432357,6.3702946,-630.6584645624` },
444
+
445
+ 'HEX': {
446
+ description: 'Hexagons', pattern:
447
+ `0, 0, 0, 0, 5.4992613154, 3.175, -6.35
448
+ 120, 0, 0, 0, 5.4992613154, 3.175, -6.35
449
+ 60, 3.175, 0, 0, 5.4992613154, 3.175, -6.35` },
450
+
451
+ 'HONEY': {
452
+ description: 'Honeycomb pattern', pattern:
453
+ `0, 0, 0, 4.7625, 2.749630645, 3.175, -6.35
454
+ 120, 0, 0, 4.7625, 2.749630645, 3.175, -6.35
455
+ 60, 0, 0, 4.7625, 2.749630645, -6.35, 3.175` },
456
+
457
+ 'HOUND': {
458
+ description: 'Houndstooth check', pattern:
459
+ `0, 0, 0, 6.35, 1.5875, 25.4, -12.7
460
+ 90, 0, 0, 6.35, 1.5875, 25.4, -12.7` },
461
+
462
+ 'INSUL': {
463
+ description: 'Insulation material', pattern:
464
+ `0, 0, 0, 0, 9.525
465
+ 0, 0, 3.175, 0, 9.525, 3.175, -3.175
466
+ 0, 0, 6.35, 0, 9.525, 3.175, -3.175` },
467
+
468
+ /*
469
+ Hatch Pattern Definition related to ISO/DIS 12011 line types
470
+
471
+ (Width * 5 = Distance between lines)
472
+
473
+ The size of the line segments related to the ISO/DIS 12011 linetypes
474
+ define the following hatch pattern.
475
+ The pen width of 1 mm is the base of the definition. To use them with
476
+ the other ISO/DIS 12011 predefined pen widths, the line has to be scaled
477
+ with the appropriate value (e.g. pen width 0,5 mm -> ltscale 0.5).
478
+ */
479
+
480
+ 'ACAD_ISO02W100': {
481
+ description: 'dashed line', pattern:
482
+ `0, 0,0, 0,5, 12,-3`,
483
+ },
484
+
485
+ 'ACAD_ISO03W100': {
486
+ description: 'dashed space line', pattern:
487
+ `0, 0,0, 0,5, 12,-18`,
488
+ },
489
+
490
+ 'ACAD_ISO04W100': {
491
+ description: 'long dashed dotted line', pattern:
492
+ `0, 0,0, 0,5, 24,-3,.5,-3`,
493
+ },
494
+
495
+ 'ACAD_ISO05W100': {
496
+ description: 'long dashed double dotted line', pattern:
497
+ `0, 0,0, 0,5, 24,-3,.5,-3,.5,-3`,
498
+ },
499
+
500
+ 'ACAD_ISO06W100': {
501
+ description: 'long dashed triplicate dotted line', pattern:
502
+ `0, 0,0, 0,5, 24,-3,.5,-3,.5,-6.5
503
+ 0, 0,0, 0,5, -34,.5,-3` },
504
+
505
+ 'ACAD_ISO07W100': {
506
+ description: 'dotted line', pattern:
507
+ `0, 0,0, 0,5, .5,-3`,
508
+ },
509
+
510
+ 'ACAD_ISO08W100': {
511
+ description: 'long dashed short dashed line', pattern:
512
+ `0, 0,0, 0,5, 24,-3,6,-3`,
513
+ },
514
+
515
+ 'ACAD_ISO09W100': {
516
+ description: 'long dashed double-short-dashed line', pattern:
517
+ `0, 0,0, 0,5, 24,-3,6,-3,6,-3`,
518
+ },
519
+
520
+ 'ACAD_ISO10W100': {
521
+ description: 'dashed dotted line', pattern:
522
+ `0, 0,0, 0,5, 12,-3,.5,-3`,
523
+ },
524
+
525
+ 'ACAD_ISO11W100': {
526
+ description: 'double-dashed dotted line', pattern:
527
+ `0, 0,0, 0,5, 12,-3,12,-3,.5,-3`,
528
+ },
529
+
530
+ 'ACAD_ISO12W100': {
531
+ description: 'dashed double-dotted line', pattern:
532
+ `0, 0,0, 0,5, 12,-3,.5,-3,.5,-3`,
533
+ },
534
+
535
+ 'ACAD_ISO13W100': {
536
+ description: 'double-dashed double-dotted line', pattern:
537
+ `0, 0,0, 0,5, 12,-3,12,-3,.5,-6.5
538
+ 0, 0,0, 0,5, -33.5,.5,-3` },
539
+
540
+ 'ACAD_ISO14W100': {
541
+ description: 'dashed triplicate-dotted line', pattern:
542
+ `0, 0,0, 0,5, 12,-3,.5,-3,.5,-6.5
543
+ 0, 0,0, 0,5, -22,.5,-3` },
544
+
545
+ 'ACAD_ISO15W100': {
546
+ description: 'double-dashed triplicate-dotted line', pattern:
547
+ `0, 0,0, 0,5, 12,-3,12,-3,.5,-10
548
+ 0, 0,0, 0,5, -33.5,.5,-3,.5,-3` },
549
+
550
+ 'JIS_LC_20': {
551
+ description: 'LC JIS A 0150(@20)', pattern:
552
+ `45,0,0,0,20
553
+ 45,.4,0,0,20` },
554
+
555
+ 'JIS_LC_20A': {
556
+ description: 'LC JIS A 0150(@20Се)', pattern:
557
+ `45,0,0,0,20
558
+ 45,1,0,0,20` },
559
+
560
+ 'JIS_LC_8': {
561
+ description: 'LC JIS A 0150(@8)', pattern:
562
+ `45,0,0,0,7.8
563
+ 45,.4,0,0,7.8` },
564
+
565
+ 'JIS_LC_8A': {
566
+ description: 'LC JIS A 0150(@8Се)', pattern:
567
+ `45,0,0,0,7.8
568
+ 45,1,0,0,7.8` },
569
+
570
+ 'JIS_RC_10': {
571
+ description: 'RC JIS A 0150(@10)', pattern:
572
+ `45,0,0,0,10
573
+ 45,.725,0,0,10
574
+ 45,1.45,0,0,10` },
575
+
576
+ 'JIS_RC_15': {
577
+ description: 'RC JIS A 0150(@15)', pattern:
578
+ `45,0,0,0,15
579
+ 45,.725,0,0,15
580
+ 45,1.45,0,0,15` },
581
+
582
+ 'JIS_RC_18': {
583
+ description: 'RC JIS A 0150(@18)', pattern:
584
+ `45,0,0,0,18
585
+ 45,1,0,0,18
586
+ 45,2,0,0,18` },
587
+
588
+ 'JIS_RC_30': {
589
+ description: 'RC JIS A 0150(@30)', pattern:
590
+ `45,0,0,0,30
591
+ 45,1,0,0,30
592
+ 45,2,0,0,30` },
593
+
594
+ 'JIS_STN_1E': {
595
+ description: 'STONE JIS A 0150(@1)', pattern:
596
+ `45, 0, 0, 0, 1
597
+ 45, .705, 0, 0,1, 1, -.5` },
598
+
599
+ 'JIS_STN_2.5': {
600
+ description: 'STONE JIS A 0150(@2.5)', pattern:
601
+ `45, 0, 0, 0, 2.5
602
+ 45, 1.765, 0, 0,2.5, 1.2, -.5` },
603
+
604
+ 'JIS_WOOD': {
605
+ description: 'WOOD JIS A 0150', pattern:
606
+ `45,0,0,0,.70710678`,
607
+ },
608
+
609
+ 'LINE': {
610
+ description: 'Parallel horizontal lines', pattern:
611
+ `0, 0, 0, 0, 3.175`,
612
+ },
613
+
614
+ 'MUDST': {
615
+ description: 'Mud and sand', pattern:
616
+ `0, 0, 0, 12.7, 6.35, 6.35,-6.35, 0, -6.35, 0, -6.35`,
617
+ },
618
+
619
+ 'NET': {
620
+ description: 'Horizontal / vertical grid', pattern:
621
+ `0, 0, 0, 0, 3.175
622
+ 90, 0, 0, 0, 3.175` },
623
+
624
+ 'NET3': {
625
+ description: 'Network pattern 0-60-120', pattern:
626
+ `0, 0, 0, 0, 3.175
627
+ 60, 0, 0, 0, 3.175
628
+ 120, 0, 0, 0, 3.175` },
629
+
630
+ 'PLAST': {
631
+ description: 'Plastic material', pattern:
632
+ `0, 0, 0, 0, 6.35
633
+ 0, 0, 0.79375, 0, 6.35
634
+ 0, 0, 1.5875, 0, 6.35` },
635
+
636
+ 'PLASTI': {
637
+ description: 'Plastic material', pattern:
638
+ `0, 0, 0, 0, 6.35
639
+ 0, 0, 0.79375, 0, 6.35
640
+ 0, 0, 1.5875, 0, 6.35
641
+ 0, 0, 3.96875, 0, 6.35` },
642
+
643
+ 'SACNCR': {
644
+ description: 'Concrete', pattern:
645
+ `45, 0, 0, 0, 2.38125
646
+ 45, 1.6838, 0, 0, 2.38125, 0, -2.38125` },
647
+
648
+ 'SQUARE': {
649
+ description: 'Small aligned squares', pattern:
650
+ `0, 0, 0, 0, 3.175, 3.175, -3.175
651
+ 90, 0, 0, 0, 3.175, 3.175, -3.175` },
652
+
653
+ 'STARS': {
654
+ description: 'Star of David', pattern:
655
+ `0, 0, 0, 0, 5.4992613154, 3.175, -3.175
656
+ 60, 0, 0, 0, 5.4992613154, 3.175, -3.175
657
+ 120, 1.5875, 2.7496306704, 0, 5.4992613154, 3.175, -3.175` },
658
+
659
+ 'STEEL': {
660
+ description: 'Steel material', pattern:
661
+ `45, 0, 0, 0, 3.175
662
+ 45, 0, 1.5875, 0, 3.175` },
663
+
664
+ 'SWAMP': {
665
+ description: 'Swampy area', pattern:
666
+ `0, 0, 0, 12.7, 21.9970452362, 3.175, -22.225
667
+ 90, 1.5875, 0, 21.9970452362, 12.7, 1.5875, -42.4065904724
668
+ 90, 1.984375, 0, 21.9970452362, 12.7, 1.27, -42.7240904724
669
+ 90, 1.190625, 0, 21.9970452362, 12.7, 1.27, -42.7240904724
670
+ 60, 2.38125, 0, 12.7, 21.9970452362, 1.016, -24.384
671
+ 120, 0.79375, 0, 12.7, 21.9970452362, 1.016, -24.384` },
672
+
673
+ 'TRANS': {
674
+ description: 'Heat transfer material', pattern:
675
+ `0, 0, 0, 0, 6.35
676
+ 0, 0, 3.175, 0, 6.35, 3.175, -3.175` },
677
+
678
+ 'TRIANG': {
679
+ description: 'Equilateral triangles', pattern:
680
+ `60, 0, 0, 4.7625, 8.2488919604, 4.7625, -4.7625
681
+ 120, 0, 0, 4.7625, 8.2488919604, 4.7625, -4.7625
682
+ 0, -2.38125, 4.1244459802, 4.7625, 8.2488919604, 4.7625, -4.7625` },
683
+
684
+ 'ZIGZAG': {
685
+ description: 'Staircase effect', pattern:
686
+ `0, 0, 0, 3.175, 3.175, 3.175, -3.175
687
+ 90, 3.175, 0, 3.175, 3.175, 3.175, -3.175` },
688
+
689
+ };
690
+ }