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
| function scrivi_lsp (fattore,larghezza,altezza)
% Autori
% Prof. Danilo Pasquini IPSIA Parodi Delfino, Colleferro (Roma)
% Prof. Paolo Sordi IPSIA A. Pacinotti, Pontedera (Pisa)
% Creazione file LISP per importazione di grafici in Autocad
%
close all
x = -10:0.1:10;
y = 0.15* x.^2;
plot(x,y)
y1 = 10+0.01*x.^3;
fid = fopen('d:\grafici.lsp', 'wt');
fprintf(fid, ['(defun disegno_grafici () \n']);
fprintf(fid, ['(command "._layer" "_M" "LAYER1" "") \n']);
fprintf(fid, ['(command "._layer" "_M" "LAYER2" "") \n']);
fprintf(fid, ['(command "._layer" "_M" "LAYER3" "") \n']);
fprintf(fid, ['(command "._layer" "_M" "LAYER4" "") \n']);
for i=2:length(y)
% fprintf(fid, ['(command "_color" "T" "' num2str(100) ',' num2str(100) ',' num2str(100) '" )\n']);
fprintf(fid, ['(setvar "CLAYER" "LAYER1")\n']);
fprintf(fid, ['(command "_line" "' num2str(x(i-1),'% 10.2f') ',' num2str(y(i-1),'% 10.2f') '" "' num2str(x(i),'% 10.2f') ',' num2str(y(i),'% 10.2f') '" "") \n']);
if (rem(i,3) == 0)
fprintf(fid, ['(setvar "CLAYER" "LAYER3")\n']);
min_y = min(y(i-1),y(i))
fprintf(fid, ['(command "_line" "' num2str(x(i-1),'% 10.2f') ',' num2str(min_y,'% 10.2f') '" "' num2str(x(i-1),'% 10.2f') ',' num2str(0,'% 10.2f') '" "") \n']);
fprintf(fid, ['(command "_line" "' num2str(x(i),'% 10.2f') ',' num2str(min_y,'% 10.2f') '" "' num2str(x(i),'% 10.2f') ',' num2str(0,'% 10.2f') '" "") \n']);
fprintf(fid, ['(command "_line" "' num2str(x(i),'% 10.2f') ',' num2str(min_y,'% 10.2f') '" "' num2str(x(i-1),'% 10.2f') ',' num2str(min_y,'% 10.2f') '" "") \n']);
fprintf(fid, ['(command "_line" "' num2str(x(i),'% 10.2f') ',' num2str(0,'% 10.2f') '" "' num2str(x(i-1),'% 10.2f') ',' num2str(0,'% 10.2f') '" "") \n']);
end
% fprintf(fid, ['(command "_color" "T" "' num2str(150) ',' num2str(150) ',' num2str(150) '" )\n']);
fprintf(fid, ['(setvar "CLAYER" "LAYER2")\n']);
fprintf(fid, ['(command "_line" "' num2str(x(i-1),'% 10.2f') ',' num2str(y1(i-1),'% 10.2f') '" "' num2str(x(i),'% 10.2f') ',' num2str(y1(i),'% 10.2f') '" "") \n']);
if (rem(i,4) == 0)
fprintf(fid, ['(setvar "CLAYER" "LAYER4")\n']);
min_y = max(y1(i-1),y1(i))
fprintf(fid, ['(command "_line" "' num2str(x(i-1),'% 10.2f') ',' num2str(min_y,'% 10.2f') '" "' num2str(x(i-1),'% 10.2f') ',' num2str(20,'% 10.2f') '" "") \n']);
fprintf(fid, ['(command "_line" "' num2str(x(i),'% 10.2f') ',' num2str(min_y,'% 10.2f') '" "' num2str(x(i),'% 10.2f') ',' num2str(20,'% 10.2f') '" "") \n']);
fprintf(fid, ['(command "_line" "' num2str(x(i),'% 10.2f') ',' num2str(min_y,'% 10.2f') '" "' num2str(x(i-1),'% 10.2f') ',' num2str(min_y,'% 10.2f') '" "") \n']);
fprintf(fid, ['(command "_line" "' num2str(x(i),'% 10.2f') ',' num2str(20,'% 10.2f') '" "' num2str(x(i-1),'% 10.2f') ',' num2str(20,'% 10.2f') '" "") \n']);
end
end
fprintf(fid, [') \n']);
plot (x,y)
hold on
plot (x,y1)
fclose(fid) |