files brynjarh23 found on the basement computer
This commit is contained in:
101
Software_folder/Foamcutter_demo.m
Normal file
101
Software_folder/Foamcutter_demo.m
Normal file
@@ -0,0 +1,101 @@
|
||||
function Foamcutter_demo
|
||||
%
|
||||
% Forrit sem b<EFBFBD>r til G-k<EFBFBD><EFBFBD>a fyrir frau<EFBFBD>plastskera sem sta<EFBFBD>settur
|
||||
% er <EFBFBD> vindgangar<EFBFBD>mi H<EFBFBD>sk<EFBFBD>lans <EFBFBD> Reykjav<EFBFBD>k.
|
||||
% <EFBFBD>ttaksbreyta: G-k<EFBFBD><EFBFBD>i sem skrifa<EFBFBD>ur er <EFBFBD> skr<EFBFBD>nna 'filename.gcode'
|
||||
% H<EFBFBD>fundur: ISR, H<EFBFBD>sk<EFBFBD>linn <EFBFBD> Reykjav<EFBFBD>k, Vor 2013
|
||||
% <EFBFBD>essi k<EFBFBD><EFBFBD>i gerir r<EFBFBD><EFBFBD> fyrir a<EFBFBD> hlutur hafi eins l<EFBFBD>gun <EFBFBD> sitt hvorum enda
|
||||
%
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
%
|
||||
clear all
|
||||
% Nafn <EFBFBD>ttaksskr<EFBFBD>ar. Endingin skal vera .gcode.
|
||||
filename='test.gcode';
|
||||
%
|
||||
%Upphafssta<EFBFBD>a
|
||||
x0 = 0;
|
||||
y0 = 0;
|
||||
% Skali sem skalar mm yfir <EFBFBD> f<EFBFBD>rslueiningar frau<EFBFBD>plastskera
|
||||
skali = 8.889;
|
||||
ns=40; %fj<EFBFBD>ldi skrefa <EFBFBD> ferli
|
||||
|
||||
x(1) = x0; %Fyrsti punktur <EFBFBD> ferli er upphafssta<EFBFBD>a
|
||||
y(1) = y0;
|
||||
|
||||
% Allir punktar <EFBFBD> ferli eru reikna<EFBFBD>ir <EFBFBD>t og skrifa<EFBFBD>ir <EFBFBD> r<EFBFBD>ttri r<EFBFBD><EFBFBD>
|
||||
% inn <EFBFBD> vektorana x og y. Punktarnir ver<EFBFBD>a a<EFBFBD> vera <EFBFBD> s<EFBFBD>mu r<EFBFBD><EFBFBD> og
|
||||
% skerinn <EFBFBD> a<EFBFBD> skera <EFBFBD>v<EFBFBD> annars kemur st<EFBFBD>kk <EFBFBD> skur<EFBFBD>inn.
|
||||
|
||||
% H<EFBFBD>r er form<EFBFBD>lur fyrir ferilinn. <EFBFBD>essu <EFBFBD>arf a<EFBFBD> breyta ef <EFBFBD> a<EFBFBD> skera <EFBFBD>t
|
||||
% anna<EFBFBD> form.
|
||||
h = 100; %t<EFBFBD>lur sem <EFBFBD>kvar<EFBFBD>a st<EFBFBD>r<EFBFBD> <EFBFBD> demohlut
|
||||
b = 50; % <EFBFBD>verm<EFBFBD>l boga
|
||||
ii = 1;
|
||||
|
||||
% teiknar beina l<EFBFBD>nu <EFBFBD> ns skrefum
|
||||
lina(x(1),y(1),-b/2,h,ns);
|
||||
%teiknar h<EFBFBD>lfhring <EFBFBD> ns skrefum me<EFBFBD> mi<EFBFBD>ju <EFBFBD> (0,h) og rad<EFBFBD>us b/2
|
||||
bogi(x(ii),y(ii),0,h,pi,-1,ns);
|
||||
% teiknar a<EFBFBD>ra beina l<EFBFBD>nu <EFBFBD> ns skrefum
|
||||
lina(x(ii),y(ii),x0,y0,ns);
|
||||
|
||||
%Ferill plotta<EFBFBD>ur sko<EFBFBD>i<EFBFBD> vel hvort hann hefur r<EFBFBD>tt form <EFBFBD><EFBFBD>ur en
|
||||
% G-k<EFBFBD><EFBFBD>inn er keyr<EFBFBD>ur <EFBFBD> kutterinn.
|
||||
|
||||
plot(x,y,'r')
|
||||
|
||||
axis equal
|
||||
grid on
|
||||
hold off
|
||||
|
||||
l = length(x);
|
||||
% GCODE t<EFBFBD>knbreytir -> breytir l<EFBFBD>nuvigrum <EFBFBD> f<EFBFBD>rslul<EFBFBD>nur G-k<EFBFBD><EFBFBD>a.
|
||||
% Fyrst er vigrum breytt <EFBFBD>r sta<EFBFBD>setningarvigrum yfir <EFBFBD> f<EFBFBD>rsuvigra
|
||||
% <EFBFBD> f<EFBFBD>rslueiningum frau<EFBFBD>plastskera.
|
||||
for i=1:l-1
|
||||
xx(i)=(x(i+1)-x(i))*skali;
|
||||
yy(i)=(y(i+1)-y(i))*skali;
|
||||
end
|
||||
|
||||
%Svo er skr<EFBFBD>in opnu<EFBFBD>
|
||||
fid=fopen(filename,'wt');
|
||||
%Og g-k<EFBFBD><EFBFBD>inn skrifa<EFBFBD>ur <EFBFBD> hana
|
||||
% Upphafspunktur ath. a<EFBFBD> x - y hli<EFBFBD>in hefur vi<EFBFBD>sn<EFBFBD>in y <EFBFBD>s
|
||||
fprintf(fid,['G1 X' num2str(x0*skali) ' Y' num2str(-y0*skali) ' F2000\n']);
|
||||
fprintf(fid,['G1 A' num2str(x0*skali) ' B' num2str(y0*skali) ' F2000\n']);
|
||||
|
||||
% Ferill
|
||||
for i=1: l-1
|
||||
fprintf(fid,['G1 X' num2str(xx(i)) ' Y' num2str(-yy(i)) ' F2000\n']);
|
||||
fprintf(fid,['G1 A' num2str(xx(i)) ' B' num2str(yy(i)) ' F2000\n']);
|
||||
end
|
||||
|
||||
%Setur skerhausa aftur <EFBFBD> n<EFBFBD>llpunkt
|
||||
fprintf(fid,['G1 X' num2str(-x0*skali) ' Y' num2str(y0*skali) ' F2000\n']);
|
||||
fprintf(fid,['G1 A' num2str(-x0*skali) ' B' num2str(-y0*skali) ' F2000\n']);
|
||||
|
||||
% f<EFBFBD>ll til a<EFBFBD> teikna l<EFBFBD>nur og boga
|
||||
|
||||
function lina(x1,y1,x2,y2,n)
|
||||
dx = (x2 -x1)/n;
|
||||
dy = (y2 - y1)/n; %F<EFBFBD>rsluhnit
|
||||
for i = 1:n
|
||||
ii = ii+1;
|
||||
x(ii)=x1 + dx*i;
|
||||
y(ii)=y1 + dy*i;
|
||||
end
|
||||
end
|
||||
|
||||
function bogi(x1,y1,x0,y0,horn,k,n)
|
||||
r = sqrt((x1-x0)^2+(y1-y0)^2);
|
||||
fi = atan2((y1-y0),(x1-x0));
|
||||
for i = 1:n
|
||||
ii = ii+1;
|
||||
theta = k*i*horn/n;
|
||||
x(ii) = x0 + r*cos(theta+fi);
|
||||
y(ii) = y0+r*sin(theta+fi);
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user