CascadeStudio_3D_Manual
332 строки · 14.2 Кб
1{
2"settings": {
3"hasHeaders": true,
4"constrainDragToContainer": true,
5"reorderEnabled": true,
6"selectionEnabled": false,
7"popoutWholeStack": false,
8"blockedPopoutsThrowError": true,
9"closePopoutsOnUnload": true,
10"showPopoutIcon": false,
11"showMaximiseIcon": false,
12"showCloseIcon": false,
13"responsiveMode": "onload",
14"tabOverlapAllowance": 0,
15"reorderOnTabMenuClick": true,
16"tabControlOffset": 10
17},
18"dimensions": {
19"borderWidth": 5,
20"borderGrabWidth": 15,
21"minItemHeight": 10,
22"minItemWidth": 10,
23"headerHeight": 20,
24"dragProxyWidth": 300,
25"dragProxyHeight": 200
26},
27"labels": {
28"close": "close",
29"maximise": "maximise",
30"minimise": "minimise",
31"popout": "open in new window",
32"popin": "pop in",
33"tabDropdown": "additional tabs"
34},
35"content": [
36{
37"type": "row",
38"isClosable": true,
39"reorderEnabled": true,
40"title": "",
41"content": [
42{
43"type": "stack",
44"width": 50,
45"isClosable": true,
46"reorderEnabled": true,
47"title": "",
48"activeItemIndex": 0,
49"content": [
50{
51"type": "component",
52"componentName": "codeEditor",
53"title": "* gherkin_profile_3.json",
54"componentState": {
55"code": [
56"function equationGherkin(x) ",
57"{",
58" let pt1 = x*x - 144*x + 5184;",
59" let pt2 = pt1 / 11664;",
60" let pt3 = 1-pt2;",
61" let pt4 = Math.sqrt(pt3);",
62" let y = 28.25 * pt4;",
63" return y",
64"}",
65"",
66"// construct floors",
67"// 44 floors, 4 meters each = 176 meter, ",
68"// height of tower is 180 meters",
69"",
70"let h = 0;",
71"let c0 = [equationGherkin(h),h];",
72"let face = [];",
73"let gherkin = [];",
74"",
75"// create each floor by revolving a face ",
76"let sc=0.97",
77"for (let hi = 0; hi <= 178; hi+=4)",
78"{",
79" face[hi] = Polygon([[0,0,hi-1],[sc*equationGherkin(hi-1),0,hi-1],[sc*equationGherkin(hi),0, hi],[0,0,hi]],true)",
80" gherkin[hi] = Revolve(face[hi]);",
81"}",
82"",
83"",
84"// create inner construction",
85"let innerConstruction = Cylinder(5,178,false)",
86"",
87"// create parallellograms on outside",
88"// each parallellogram covers 4 floors",
89"let pgram=[];",
90"",
91"for (let hj = 0; hj <= 172; hj+=32)",
92"{",
93" for ( let k = 0; k <= 16 ; k+= 2)",
94" { ",
95" ",
96" let angle_ref = Math.PI/8 * k",
97" let angle_aft = Math.PI/8 * (k-0.5)",
98" let angle_front = Math.PI/8 * (k+0.5)",
99" let xref = Math.cos(angle_ref) * equationGherkin(hj)",
100" let xaft = Math.cos(angle_aft) * equationGherkin(hj+8)",
101" let xfront = Math.cos(angle_front) * equationGherkin(hj+8)",
102" let xtop = Math.cos(angle_ref) * equationGherkin(hj+16)",
103" let yref = Math.sin(angle_ref) * equationGherkin(hj)",
104" let yaft = Math.sin(angle_aft) * equationGherkin(hj+8)",
105" let yfront = Math.sin(angle_front) * equationGherkin(hj+8)",
106" let ytop = Math.sin(angle_ref) * equationGherkin(hj+16)",
107"",
108" let pp0 = [xref, yref, hj]",
109" let pp1 = [xaft, yaft, hj+8] ",
110" let pp2 = [xfront, yfront, hj+8]",
111" let pp3 = [xtop, ytop, hj+16]",
112"",
113" // pgram[k] = Polygon([pp0, pp2, pp1],)",
114" Polygon([pp0, pp2, pp1])",
115" Polygon([pp1, pp2, pp3])",
116"",
117" } ",
118"} ",
119"",
120"for (let hj = 16; hj <= 172; hj+=32)",
121"{",
122" for ( let k = 1; k <= 17 ; k+= 2)",
123" { ",
124" ",
125" let angle_ref = Math.PI/8 * k",
126" let angle_aft = Math.PI/8 * (k-0.5)",
127" let angle_front = Math.PI/8 * (k+0.5)",
128" let xref = Math.cos(angle_ref) * equationGherkin(hj)",
129" let xaft = Math.cos(angle_aft) * equationGherkin(hj+8)",
130" let xfront = Math.cos(angle_front) * equationGherkin(hj+8)",
131" let xtop = Math.cos(angle_ref) * equationGherkin(hj+16)",
132" let yref = Math.sin(angle_ref) * equationGherkin(hj)",
133" let yaft = Math.sin(angle_aft) * equationGherkin(hj+8)",
134" let yfront = Math.sin(angle_front) * equationGherkin(hj+8)",
135" let ytop = Math.sin(angle_ref) * equationGherkin(hj+16)",
136"",
137" let pp0 = [xref, yref, hj]",
138" let pp1 = [xaft, yaft, hj+8] ",
139" let pp2 = [xfront, yfront, hj+8]",
140" let pp3 = [xtop, ytop, hj+16]",
141"",
142" // pgram[k] = Polygon([pp0, pp2, pp1],)",
143" Polygon([pp0, pp2, pp1])",
144" Polygon([pp1, pp2, pp3])",
145"",
146" } ",
147"} ",
148"",
149"",
150"",
151"for (let hk = 8; hk <= 164; hk+=32)",
152"{",
153" for ( let l = 0.5; l <= 16.5 ; l += 2)",
154" { ",
155" ",
156" let angle_ref = Math.PI/8 * l",
157" let angle_aft = Math.PI/8 * (l-0.5)",
158" let angle_front = Math.PI/8 * (l+0.5)",
159" let xref = Math.cos(angle_ref) * equationGherkin(hk)",
160" let xaft = Math.cos(angle_aft) * equationGherkin(hk+8)",
161" let xfront = Math.cos(angle_front) * equationGherkin(hk+8)",
162" let yref = Math.sin(angle_ref) * equationGherkin(hk)",
163" let yaft = Math.sin(angle_aft) * equationGherkin(hk+8)",
164" let yfront = Math.sin(angle_front) * equationGherkin(hk+8)",
165" let xtop = Math.cos(angle_ref) * equationGherkin(hk+16)",
166" let ytop = Math.sin(angle_ref) * equationGherkin(hk+16)",
167"",
168" let pp0 = [xref, yref, hk]",
169" let pp1 = [xaft, yaft, hk+8] ",
170" let pp2 = [xfront, yfront, hk+8]",
171" let pp3 = [xtop, ytop, hk+16]",
172"",
173" // pgram[k] = Polygon([pp0, pp2, pp1],)",
174" Polygon([pp0, pp2, pp1])",
175" Polygon([pp1, pp2, pp3])",
176"",
177" } ",
178"} ",
179"",
180"for (let hk = 24; hk <= 164; hk+=32)",
181"{",
182" for ( let l = 1.5; l <= 17.5 ; l += 2)",
183" { ",
184" ",
185" let angle_ref = Math.PI/8 * l",
186" let angle_aft = Math.PI/8 * (l-0.5)",
187" let angle_front = Math.PI/8 * (l+0.5)",
188" let xref = Math.cos(angle_ref) * equationGherkin(hk)",
189" let xaft = Math.cos(angle_aft) * equationGherkin(hk+8)",
190" let xfront = Math.cos(angle_front) * equationGherkin(hk+8)",
191" let yref = Math.sin(angle_ref) * equationGherkin(hk)",
192" let yaft = Math.sin(angle_aft) * equationGherkin(hk+8)",
193" let yfront = Math.sin(angle_front) * equationGherkin(hk+8)",
194" let xtop = Math.cos(angle_ref) * equationGherkin(hk+16)",
195" let ytop = Math.sin(angle_ref) * equationGherkin(hk+16)",
196"",
197" let pp0 = [xref, yref, hk]",
198" let pp1 = [xaft, yaft, hk+8] ",
199" let pp2 = [xfront, yfront, hk+8]",
200" let pp3 = [xtop, ytop, hk+16]",
201"",
202" // pgram[k] = Polygon([pp0, pp2, pp1],)",
203" Polygon([pp0, pp2, pp1])",
204" Polygon([pp1, pp2, pp3])",
205"",
206" } ",
207"} ",
208"",
209"",
210"for (let hk = 168; hk <= 172; hk+=8)",
211"{",
212" for ( let l = 0.5; l <= 16.5 ; l +=1)",
213" { ",
214" ",
215" let angle_ref = Math.PI/8 * l",
216" let angle_aft = Math.PI/8 * (l-0.5)",
217" let angle_front = Math.PI/8 * (l+0.5)",
218" let xref = Math.cos(angle_ref) * equationGherkin(hk)",
219" let xaft = Math.cos(angle_aft) * equationGherkin(hk+8)",
220" let xfront = Math.cos(angle_front) * equationGherkin(hk+8)",
221" let yref = Math.sin(angle_ref) * equationGherkin(hk)",
222" let yaft = Math.sin(angle_aft) * equationGherkin(hk+8)",
223" let yfront = Math.sin(angle_front) * equationGherkin(hk+8)",
224" // let xtop = Math.cos(angle_ref) * equationGherkin(hk+16)",
225" // let ytop = Math.sin(angle_ref) * equationGherkin(hk+16)",
226"",
227" let pp0 = [xref, yref, hk]",
228" let pp1 = [xaft, yaft, hk+8] ",
229" let pp2 = [xfront, yfront, hk+8]",
230" // let pp3 = [xtop, ytop, hk+16]",
231"",
232" // pgram[k] = Polygon([pp0, pp2, pp1],)",
233" Polygon([pp0, pp2, pp1])",
234" // Polygon([pp1, pp2, pp3])",
235"",
236" } ",
237"} ",
238"",
239"",
240"",
241"// using a spline with 4 points",
242"let p0 = [.13 , 0 ]",
243"let p1 = [.20 , .66 ]",
244"let p2 = [.11 , .80 ]",
245"let p3 = [.03 , 1 ]",
246"let p4 = [ 0 , 1 ]",
247"",
248"let profileGherkin = new Sketch(p0)",
249".BezierTo([p1,p2,p3,p4])",
250".LineTo([0,0])",
251".LineTo(p0)",
252".End().Face(false)",
253"",
254"",
255"Translate([100,0,0],Rotate([1,0,0],90,Revolve(Scale(180,profileGherkin),360,[0,1,0], false, false)))",
256""
257]
258},
259"width": 50,
260"isClosable": false,
261"reorderEnabled": true
262}
263]
264},
265{
266"type": "column",
267"isClosable": true,
268"reorderEnabled": true,
269"title": "",
270"width": 50,
271"content": [
272{
273"type": "stack",
274"height": 79.53995157384988,
275"isClosable": true,
276"reorderEnabled": true,
277"title": "",
278"activeItemIndex": 0,
279"content": [
280{
281"type": "component",
282"componentName": "cascadeView",
283"title": "CAD View",
284"componentState": {
285"componentName": "cascadeView",
286"MeshRes": 0.1,
287"MeshResRange": [
2880.01,
2892
290],
291"Cache?": false,
292"Radius": 30,
293"RadiusRange": [
29420,
29540
296]
297},
298"isClosable": false,
299"reorderEnabled": true
300}
301]
302},
303{
304"type": "stack",
305"height": 20.460048426150124,
306"isClosable": true,
307"reorderEnabled": true,
308"title": "",
309"activeItemIndex": 0,
310"content": [
311{
312"type": "component",
313"componentName": "console",
314"title": "Console",
315"componentState": {},
316"height": 20,
317"isClosable": false,
318"reorderEnabled": true
319}
320]
321}
322]
323}
324]
325}
326],
327"isClosable": true,
328"reorderEnabled": true,
329"title": "",
330"openPopouts": [],
331"maximisedItemId": null
332}