*ARCHIVED* development moved to aircraft-studio.
1
%wing shear flow
2
clear all;
3
close all;
4
5
6
7
8
Vx = 1; Vz = 1; My = 1; %test loads will be applied individually
9
10
%define a few
11
numTopStringers = 6;
12
numBottomStringers = 8;
13
numNoseTopStringers = 4;
14
numNoseBottomStringers = 4;
15
16
t_upper = 0.02/12;
17
t_lower = 0.02/12;
18
t_upper_front = 0.02/12;
19
t_lower_front = 0.02/12;
20
t_frontSpar = 0.04/12;
21
t_rearSpar = 0.04/12;
22
23
frontSpar = 0.2;
24
backSpar = 0.7;
25
chord = 5;
26
27
sparCaps(1).posX = frontSpar*chord;
28
sparCaps(2).posX = frontSpar*chord;
29
sparCaps(3).posX = backSpar*chord;
30
sparCaps(4).posX = backSpar*chord;
31
32
sparCaps(1).posZ = get_z(,1)*chord;
33
sparCaps(2).posZ = get_z(,0)*chord;
34
sparCaps(3).posZ = get_z(,1)*chord;
35
sparCaps(4).posZ = get_z(,0)*chord;
36
37
sparCaps(1).area = .1;
38
sparCaps(2).area = .1;
39
sparCaps(3).area = .1;
40
sparCaps(4).area = .1;
41
42
upperStringerGap = (sparCaps(3)-sparCaps(1))/(+1);
43
lowerStringerGap = (sparCaps(3)-sparCaps(1))/(+1);
44
upperNoseStringerGap = (sparCaps(1)-0)/(+1);
45
lowerNoseStringerGap = (sparCaps(1)-0)/(+1);
46
47
48
%set stringers spaced evenly along X axis betwen Spars
49
%top Stringers
50
for i=1:numTopStringers
51
topStringers().posX = sparCaps(1).posX + upperStringerGap*i;
52
topStringers().posZ = get_z(topStringers()/,1)*chord;
53
topStringers().area = .1;
54
end
55
56
%bottom Stringers
57
for i=1:numBottomStringers
58
bottomStringers().posX = sparCaps(4).posX - lowerStringerGap*i;
59
bottomStringers().posZ = get_z(bottomStringers()/,0)*chord;
60
bottomStringers().area = .1;
61
62
end
63
64
%nose bottom Stringers
65
for i=1:numNoseBottomStringers
66
noseBottomStringers().posX = sparCaps(2).posX - lowerNoseStringerGap*i;
67
noseBottomStringers().posZ = get_z(noseBottomStringers()/,0)*chord;
68
noseBottomStringers().area = .1;
69
end
70
71
%nose top Stringers
72
for i=1:numNoseTopStringers
73
noseTopStringers().posX = upperNoseStringerGap*i;
74
noseTopStringers().posZ = get_z(noseTopStringers()/,1)*chord;
75
noseTopStringers().area = .1;
76
end
77
78
79
centroid.posX = sum([]*[]) + ...
80
sum([]*[]) + ...
81
sum([]*[]) + ...
82
sum([]*[]) + ...
83
sum([]*[]);
84
85
centroid.posX = centroid.posX / (sum([])+sum([])+
86
sum([])+sum([])+sum([]));
87
88
centroid.posZ = sum([]*[]) + ...
89
sum([]*[]) + ...
90
sum([]*[]) + ...
91
sum([]*[]) + ...
92
sum([]*[]);
93
94
centroid.posZ = centroid.posZ / (sum([])+sum([])+
95
sum([])+sum([])+sum([]));
96
97
%summing contributions for inertia terms
98
Ix = 0; Iz = 0; Ixz = 0;
99
100
for i=1:4 %spar caps
101
Ix = Ix + sparCaps().area*(sparCaps()-)^2;
102
Iz = Iz + sparCaps().area*(sparCaps()-)^2;
103
Ixz = Ixz + sparCaps().area*(sparCaps()-)*(sparCaps()-);
104
end
105
106
107
for i=1:numTopStringers %top stringers
108
Ix = Ix + topStringers().area*(topStringers()-)^2;
109
Iz = Iz + topStringers().area*(topStringers()-)^2;
110
Ixz = Ixz + topStringers().area*(topStringers()-)*(topStringers()-);
111
end
112
for i=1:numBottomStringers %bottom stringers
113
Ix = Ix + bottomStringers().area*(bottomStringers()-)^2;
114
Iz = Iz + bottomStringers().area*(bottomStringers()-)^2;
115
Ixz = Ixz + bottomStringers().area*(bottomStringers()-)*(bottomStringers()-);
116
end
117
for i=1:numNoseTopStringers %nose top stringers
118
Ix = Ix + noseTopStringers().area*(noseTopStringers()-)^2;
119
Iz = Iz + noseTopStringers().area*(noseTopStringers()-)^2;
120
Ixz = Ixz + noseTopStringers().area*(noseTopStringers()-)*(noseTopStringers()-);
121
end
122
for i=1:numNoseBottomStringers %nose bottom stringers
123
Ix = Ix + noseBottomStringers().area*(noseBottomStringers()-)^2;
124
Iz = Iz + noseBottomStringers().area*(noseBottomStringers()-)^2;
125
Ixz = Ixz + noseBottomStringers().area*(noseBottomStringers()-)*(noseBottomStringers()-);
126
end
127
128
%Ixz = -Ixz;
129
130
%define webs
131
132
%% web cell 1
133
134
%upper webs
135
numStringers = numTopStringers;
136
stringerGap = upperStringerGap;
137
webThickness = t_upper;
138
tempStringers = topStringers;
139
140
for i=1:(+1)
141
web().xStart = sparCaps(1).posX + stringerGap*(-1);
142
web().xEnd = sparCaps(1).posX + stringerGap*();
143
web().thickness = webThickness;
144
web().zStart = get_z(web()/,1)*chord;
145
web().zEnd = get_z(web()/,1)*chord;
146
if i==1
147
web().dp_area = sparCaps(1).area;
148
web().dP_X = 0;
149
web().dP_Z = 0;
150
web().qPrime_X = 0;
151
web().qPrime_Z = 0;
152
else
153
web().dp_area = tempStringers(-1).area;
154
dx = web().xStart-centroid.posX; dz = web().zStart-centroid.posZ;
155
web().dP_X = get_dp(,,,0,,,,web()); %just Vx
156
web().dP_Z = get_dp(,,0,,,,,web()); %just Vz
157
web().qPrime_X = web(-1).qPrime_X - web().dP_X;
158
web().qPrime_Z = web(-1).qPrime_Z - web().dP_Z;
159
end
160
tempInt = get_int(web()/,web()/,1)*chord^2; %integral of airfoil function
161
triangle1 = abs((web()-sparCaps(1))*web()/2);
162
triangle2 = abs((web()-sparCaps(1))*web()/2);
163
web().Area = tempInt + triangle1 - triangle2;
164
web().ds = get_ds(web()/,web()/,1)*chord;
165
web().dS_over_t = web().ds / web().thickness;
166
167
web().q_dS_over_t_X = web().qPrime_X * web().dS_over_t;
168
web().q_dS_over_t_Z = web().qPrime_Z * web().dS_over_t;
169
web().two_A_qprime_X = 2*web().Area*web().qPrime_X;
170
web().two_A_qprime_Z = 2*web().Area*web().qPrime_Z;
171
web().qp_dx_X = web().qPrime_X *(web()-web());
172
web().qp_dx_Z = web().qPrime_Z *(web()-web());
173
web().qp_dz_X = web().qPrime_X *(web()-web());
174
web().qp_dz_Z = web().qPrime_Z *(web()-web());
175
end
176
webTop = web;
177
web = [];
178
179
%rear spar
180
i=1;
181
web().xStart = sparCaps(3).posX;
182
web().xEnd = sparCaps(4).posX;
183
web().thickness = t_rearSpar;
184
web().zStart = sparCaps(3).posZ;
185
web().zEnd = sparCaps(4).posZ;
186
web().dp_area = sparCaps(3).area;
187
dx = web().xStart-centroid.posX; dz = web().zStart-centroid.posZ;
188
web().dP_X = get_dp(,,,0,,,,web());
189
web().dP_Z = get_dp(,,0,,,,,web());
190
web().qPrime_X = webTop(+1).qPrime_X - web().dP_X;
191
web().qPrime_Z = webTop(+1).qPrime_Z - web().dP_Z;
192
193
web().Area = (sparCaps(3)-sparCaps(1))*sparCaps(3).posZ/2 + ...
194
abs((sparCaps(3)-sparCaps(1))*sparCaps(4)/2);
195
web().ds = abs(sparCaps(3)-sparCaps(4));
196
web().dS_over_t = web().ds / web().thickness;
197
198
web().q_dS_over_t_X = web().qPrime_X * web().dS_over_t;
199
web().q_dS_over_t_Z = web().qPrime_Z * web().dS_over_t;
200
web().two_A_qprime_X = 2*web().Area*web().qPrime_X;
201
web().two_A_qprime_Z = 2*web().Area*web().qPrime_Z;
202
web().qp_dx_X = web().qPrime_X *(web()-web());
203
web().qp_dx_Z = web().qPrime_Z *(web()-web());
204
web().qp_dz_X = web().qPrime_X *(web()-web());
205
web().qp_dz_Z = web().qPrime_Z *(web()-web());
206
207
webRearSpar = web;
208
web = [];
209
210
211
%lower webs
212
numStringers = numBottomStringers;
213
stringerGap = lowerStringerGap;
214
webThickness = t_lower;
215
tempStringers = bottomStringers;
216
217
for i=1:(+1)
218
web().xStart = sparCaps(4).posX - stringerGap*(-1);
219
web().xEnd = sparCaps(4).posX - stringerGap*();
220
web().thickness = webThickness;
221
web().zStart = get_z(web()/,0)*chord;
222
web().zEnd = get_z(web()/,0)*chord;
223
dx = web().xStart-centroid.posX; dz = web().zStart-centroid.posZ;
224
if i==1
225
web().dp_area = sparCaps(4).area;
226
web().dP_X = get_dp(,,,0,,,,web());
227
web().dP_Z = get_dp(,,0,,,,,web());
228
web().qPrime_X = webRearSpar.qPrime_X - web().dP_X;
229
web().qPrime_Z = webRearSpar.qPrime_Z - web().dP_Z;
230
else
231
web().dp_area = tempStringers(-1).area;
232
web().dP_X = get_dp(,,,0,,,,web());
233
web().dP_Z = get_dp(,,0,,,,,web());
234
web().qPrime_X = web(-1).qPrime_X - web().dP_X;
235
web().qPrime_Z = web(-1).qPrime_Z - web().dP_Z;
236
end
237
238
tempInt = get_int(web()/,web()/,0)*chord^2; %integral of airfoil function
239
triangle2 = abs((web()-sparCaps(1))*web()/2);
240
triangle1 = abs((web()-sparCaps(1))*web()/2);
241
web().Area = tempInt + triangle1 - triangle2;
242
web().ds = get_ds(web()/,web()/,0)*chord;
243
web().dS_over_t = web().ds / web().thickness;
244
245
web().q_dS_over_t_X = web().qPrime_X * web().dS_over_t;
246
web().q_dS_over_t_Z = web().qPrime_Z * web().dS_over_t;
247
web().two_A_qprime_X = 2*web().Area*web().qPrime_X;
248
web().two_A_qprime_Z = 2*web().Area*web().qPrime_Z;
249
web().qp_dx_X = web().qPrime_X*(web()-web());
250
web().qp_dx_Z = web().qPrime_Z*(web()-web());
251
web().qp_dz_X = web().qPrime_X*(web()-web());
252
web().qp_dz_Z = web().qPrime_Z*(web()-web());
253
254
%web().radCurv = ... Example: get_curve(web(),web(),1)
255
end
256
webBottom = web;
257
web = [];
258
259
%front Spar
260
i=1;
261
web().xStart = sparCaps(2).posX;
262
web().xEnd = sparCaps(1).posX;
263
web().thickness = t_frontSpar;
264
web().zStart = sparCaps(2).posZ;
265
web().zEnd = sparCaps(1).posZ;
266
web().dp_area = sparCaps(2).area;
267
dx = web().xStart-centroid.posX; dz = web().zStart-centroid.posZ;
268
web().dP_X = get_dp(,,,0,,,,web());
269
web().dP_Z = get_dp(,,0,,,,,web());
270
web().qPrime_X = webBottom(+1).qPrime_X - web().dP_X;
271
web().qPrime_Z = webBottom(+1).qPrime_Z - web().dP_Z;
272
web().Area = 0;
273
web().ds = abs(sparCaps(2)-sparCaps(1));
274
web().dS_over_t = web().ds / web().thickness;
275
276
web().q_dS_over_t_X = web().qPrime_X * web().dS_over_t;
277
web().q_dS_over_t_Z = web().qPrime_Z * web().dS_over_t;
278
web().two_A_qprime_X = 2*web().Area*web().qPrime_X;
279
web().two_A_qprime_Z = 2*web().Area*web().qPrime_Z;
280
web().qp_dx_X = web().qPrime_X *(web()-web());
281
web().qp_dx_Z = web().qPrime_Z *(web()-web());
282
web().qp_dz_X = web().qPrime_X *(web()-web());
283
web().qp_dz_Z = web().qPrime_Z *(web()-web());
284
285
webFrontSpar = web;
286
web = [];
287
288
289
290
291
%% web cell 2
292
293
%lower nose webs
294
numStringers = numNoseBottomStringers;
295
stringerGap = lowerNoseStringerGap;
296
webThickness = t_lower_front;
297
tempStringers = noseBottomStringers;
298
299
for i=1:(+1)
300
web().xStart = sparCaps(2).posX - stringerGap*(-1);
301
web().xEnd = sparCaps(2).posX - stringerGap*();
302
web().thickness = webThickness;
303
web().zStart = get_z(web()/,0)*chord;
304
web().zEnd = get_z(web()/,0)*chord;
305
dx = web().xStart-centroid.posX; dz = web().zStart-centroid.posZ;
306
307
if i==1
308
web().dp_area = sparCaps(2).area;
309
web().dP_X = 0;
310
web().dP_Z = 0;
311
web().qPrime_X = 0;
312
web().qPrime_Z = 0;
313
else
314
web().dp_area = tempStringers(-1).area;
315
web().dP_X = get_dp(,,,0,,,,web());
316
web().dP_Z = get_dp(,,0,,,,,web());
317
web().qPrime_X = web(-1).qPrime_X - web().dP_X;
318
web().qPrime_Z = web(-1).qPrime_Z - web().dP_Z;
319
end
320
tempInt = get_int(web()/,web()/,0)*chord^2; %integral of airfoil function
321
triangle1 = abs((web()-sparCaps(2))*web()/2);
322
triangle2 = abs((web()-sparCaps(2))*web()/2);
323
web().Area = tempInt + triangle1 - triangle2;
324
web().ds = get_ds(web()/,web()/,0)*chord;
325
web().dS_over_t = web().ds / web().thickness;
326
327
web().q_dS_over_t_X = web().qPrime_X * web().dS_over_t;
328
web().q_dS_over_t_Z = web().qPrime_Z * web().dS_over_t;
329
web().two_A_qprime_X = 2*web().Area*web().qPrime_X;
330
web().two_A_qprime_Z = 2*web().Area*web().qPrime_Z;
331
web().qp_dx_X = web().qPrime_X *(web()-web());
332
web().qp_dx_Z = web().qPrime_Z *(web()-web());
333
web().qp_dz_X = web().qPrime_X *(web()-web());
334
web().qp_dz_Z = web().qPrime_Z *(web()-web());
335
336
%web().radCurv = ... Example: get_curve(web(),web(),1)
337
end
338
webLowerNose = web;
339
web = [];
340
341
%upper nose webs
342
numStringers = numNoseTopStringers;
343
stringerGap = upperNoseStringerGap;
344
webThickness = t_upper_front;
345
tempStringers = noseTopStringers;
346
347
for i=1:(+1)
348
web().xStart = stringerGap*(-1);
349
web().xEnd = stringerGap*();
350
web().thickness = webThickness;
351
web().zStart = get_z(web()/,1)*chord;
352
web().zEnd = get_z(web()/,1)*chord;
353
dx = web().xStart-centroid.posX; dz = web().zStart-centroid.posZ;
354
if i==1
355
web().dp_area = 0;
356
web().dP_X = 0;
357
web().dP_Z = 0;
358
web().qPrime_X = webLowerNose(+1).qPrime_X - web().dP_X;
359
web().qPrime_Z = webLowerNose(+1).qPrime_Z - web().dP_Z;
360
else
361
web().dp_area = tempStringers(-1).area;
362
web().dP_X = get_dp(,,,0,,,,web());
363
web().dP_Z = get_dp(,,0,,,,,web());
364
web().qPrime_X = web(-1).qPrime_X - web().dP_X;
365
web().qPrime_Z = web(-1).qPrime_Z - web().dP_Z;
366
end
367
tempInt = get_int(web()/,web()/,1)*chord^2; %integral of airfoil function
368
triangle2 = abs((web()-sparCaps(2))*web()/2);
369
triangle1 = abs((web()-sparCaps(2))*web()/2);
370
web().Area = tempInt + triangle1 - triangle2;
371
web().ds = get_ds(web()/,web()/,1)*chord;
372
web().dS_over_t = web().ds / web().thickness;
373
374
web().q_dS_over_t_X = web().qPrime_X * web().dS_over_t;
375
web().q_dS_over_t_Z = web().qPrime_Z * web().dS_over_t;
376
web().two_A_qprime_X = 2*web().Area*web().qPrime_X;
377
web().two_A_qprime_Z = 2*web().Area*web().qPrime_Z;
378
web().qp_dx_X = web().qPrime_X *(web()-web());
379
web().qp_dx_Z = web().qPrime_Z *(web()-web());
380
web().qp_dz_X = web().qPrime_X *(web()-web());
381
web().qp_dz_Z = web().qPrime_Z *(web()-web());
382
383
end
384
webUpperNose = web;
385
web = [];
386
387
388
%front Spar
389
i=1;
390
web().xStart = sparCaps(1).posX;
391
web().xEnd = sparCaps(2).posX;
392
web().thickness = t_frontSpar;
393
web().zStart = sparCaps(1).posZ;
394
web().zEnd = sparCaps(2).posZ;
395
web().dp_area = sparCaps(1).area;
396
dx = web().xStart-centroid.posX; dz = web().zStart-centroid.posZ;
397
398
web().dP_X = get_dp(,,,0,,,,web());
399
web().dP_Z = get_dp(,,0,,,,,web());
400
web().qPrime_X = webUpperNose(+1).qPrime_X - web().dP_X;
401
web().qPrime_Z = webUpperNose(+1).qPrime_Z - web().dP_Z;
402
web().Area = 0;
403
web().ds = abs(sparCaps(1)-sparCaps(2));
404
web().dS_over_t = web().ds / web().thickness;
405
web().q_dS_over_t_X = web().qPrime_X * web().dS_over_t;
406
web().q_dS_over_t_Z = web().qPrime_Z * web().dS_over_t;
407
web().two_A_qprime_X = 2*web().Area*web().qPrime_X;
408
web().two_A_qprime_Z = 2*web().Area*web().qPrime_Z;
409
web().qp_dx_X = web().qPrime_X *(web()-web());
410
web().qp_dx_Z = web().qPrime_Z *(web()-web());
411
web().qp_dz_X = web().qPrime_X *(web()-web());
412
web().qp_dz_Z = web().qPrime_Z *(web()-web());
413
414
webFrontSparCell2 = web;
415
web = [];
416
417
418
%check that q'*dx sums up to Vx
419
420
Fx = sum([webTop.qp_dx_X])+webRearSpar.qp_dx_X+ sum([webBottom.qp_dx_X])+webFrontSpar.qp_dx_X; %cell 1
421
Fx = Fx + sum([webLowerNose.qp_dx_X])+ sum([webUpperNose.qp_dx_X]); %cell 2
422
Fx
423
Fz = sum([webTop.qp_dz_X])+webRearSpar.qp_dz_X+ sum([webBottom.qp_dz_X])+webFrontSpar.qp_dz_X; %cell 1
424
Fz = Fz + sum([webLowerNose.qp_dz_X])+ sum([webUpperNose.qp_dz_X]); %cell 2
425
Fz
426
427
%check that q'*dz sums up to Vz
428
429
430
Fx = sum([])+webRearSpar.qp_dx_Z+ sum([])+webFrontSpar.qp_dx_Z; %cell 1
431
Fx = Fx + sum([])+ sum([]); %cell 2
432
Fx
433
Fz = sum([])+webRearSpar.qp_dz_Z+ sum([])+webFrontSpar.qp_dz_Z; %cell 1
434
Fz = Fz + sum([])+ sum([]); %cell 2
435
Fz
436
437
%%
438
439
% sum up the ds/t and q*ds/t to solve 2 equations, 2 unknowns
440
441
% []*[q2s] = B
442
443
A11 = sum([dS_over_t])+webRearSpar.dS_over_t+ sum([dS_over_t])+webFrontSpar.dS_over_t;
444
A22 = sum([dS_over_t])+ sum([dS_over_t])+webFrontSparCell2.dS_over_t;
445
A12 = -webFrontSpar.dS_over_t;
446
A21 = -webFrontSparCell2.dS_over_t;
447
448
B1_X = sum([])+webRearSpar.q_dS_over_t_X+ sum([])+webFrontSpar.q_dS_over_t_X;
449
B2_X = sum([])+ sum([])+webFrontSparCell2.q_dS_over_t_X;
450
B1_Z = sum([])+webRearSpar.q_dS_over_t_Z+ sum([])+webFrontSpar.q_dS_over_t_Z;
451
B2_Z = sum([])+ sum([])+webFrontSparCell2.q_dS_over_t_Z;
452
453
Amat = [;A22];
454
Bmat_X = -[;];
455
Bmat_Z = -[;];
456
457
qs_X = inv()*Bmat_X;
458
qs_Z = inv()*Bmat_Z;
459
460
461
462
sum_2_a_q_X = sum([])+webRearSpar.two_A_qprime_X+ sum([]); %cell 1 qprimes
463
sum_2_a_q_X = sum_2_a_q_X + sum([])+ sum([]); %cell 2 qprimes
464
sum_2_a_q_X = sum_2_a_q_X + 2*qs_X(1)*(sum([])++sum([]));
465
sum_2_a_q_X = sum_2_a_q_X + 2*qs_X(2)*(sum([])+sum([]));
466
467
sum_2_a_q_Z = sum([])+webRearSpar.two_A_qprime_Z+ sum([]); %cell 1 qprimes
468
sum_2_a_q_Z = sum_2_a_q_Z + sum([])+ sum([]); %cell 2 qprimes
469
sum_2_a_q_Z = sum_2_a_q_Z + 2*qs_Z(1)*(sum([])++sum([]));
470
sum_2_a_q_Z = sum_2_a_q_Z + 2*qs_Z(2)*(sum([])+sum([]));
471
472
%shear center
473
sc.posX = sum_2_a_q_Z / Vz + frontSpar*chord;
474
sc.posZ = - sum_2_a_q_X / Vx;
475
476
477
% now consider the torque representing shifting the load from the quarter
478
% chord to the SC(moments)
479
480
torque_Z = Vz*(-0.25*);
481
torque_X = -Vx*sc.posZ;
482
483
484
Area1 = sum([]) + webRearSpar.Area + sum([]);
485
%check area
486
Area1_check = get_int(,,1)*chord^2 + get_int(,,0)*chord^2;
487
488
Area2 = sum([]) + sum([]);
489
Area2_check = get_int(0,,1)*chord^2 + get_int(0,,0)*chord^2;
490
491
492
%for twist equation(example)
493
494
q1t_over_q2t = (/+dS_over_t/)/(/+dS_over_t/);
495
496
q2t = torque_X/(2**+2*);
497
q1t = q2t*q1t_over_q2t;
498
qt_X = [;];
499
500
q2t = torque_Z/(2**+2*);
501
q1t = q2t*q1t_over_q2t;
502
qt_Z = [;];
503
504
505
506
% --- - add up all shear flows: qtot = (+) + qt
507
508
509
510
511
%--- insert force balance to check total shear flows ---
512
513
% --- --
514
515
516
%end
517
518
sc
519
520
521
%plotting airfoil cross-section
522
523
xChord = 0:.01:1;
524
xChord = xChord*chord;
525
upperSurface = zeros(1,length());
526
lowerSurface = zeros(1,length());
527
528
for i=1:length()
529
upperSurface() = get_z(xChord()/,1)*chord;
530
lowerSurface() = get_z(xChord()/,0)*chord;
531
end
532
533
figure; hold on; axis equal; grid on;
534
%plot(,,'-')
535
plot(,,'-k','linewidth',2)
536
plot(,,'-k','linewidth',2)
537
plot([01],[00],'--k','linewidth',1)
538
539
540
for i = 1:length()
541
vecX = [*webTopwebTop];
542
vecZ = [0webTopwebTop];
543
fill(,,[0.90.90.9])
544
end
545
546
for i = 1:length()
547
vecX = [*webBottomwebBottom];
548
vecZ = [0webBottomwebBottom];
549
fill(,,[0.90.90.9])
550
end
551
552
for i = 1:length()
553
vecX = [*webUpperNosewebUpperNose];
554
vecZ = [0webUpperNosewebUpperNose];
555
fill(,,[0.70.91.0])
556
end
557
558
for i = 1:length()
559
vecX = [*webLowerNosewebLowerNose];
560
vecZ = [0webLowerNosewebLowerNose];
561
fill(,,[0.70.91.0])
562
end
563
564
vecX = [*sparCaps3sparCaps4];
565
vecZ = [0sparCaps3sparCaps4];
566
fill(,,[0.90.90.9])
567
568
569
sparCapSize = 18;
570
stringerSize = 18;
571
plot([sparCaps1sparCaps2],[sparCaps1sparCaps2],'-k','linewidth',2)
572
plot([sparCaps3sparCaps4],[sparCaps3sparCaps4],'-k','linewidth',2)
573
plot([],[],'.b','markersize',)
574
plot([],[],'.r','markersize',)
575
plot([],[],'.r','markersize',)
576
plot([],[],'.r','markersize',)
577
plot([],[],'.r','markersize',)
578
plot(,,'.k','markerSize',18)
579
plot(,,'.g','markersize',18)
580