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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
|
// 08.07.11
// 09.09.18
function Kekka=Xyzaxparaname(varargin)
global MilliIn;
Nargs=length(varargin);
Eps=10.0^(-6);
Dr=0.19*1000/2.54/MilliIn;
Tmp=varargin(Nargs);
if Nargs>1 & type(Tmp)==1
Dr=Dr*Tmp;
Nargs=Nargs-1;
end;
if type(varargin(1))==10
Xrange=varargin(1); Yrange=varargin(2); Zrange=varargin(3);
J=mtlb_findstr(Xrange,'=');
Xname=part(Xrange,1:J-1);
Tmp=evstr(part(Xrange,J+1:length(Xrange)));
Px=[Tmp(1),0,0]; Qx=[Tmp(2),0,0];
J=mtlb_findstr(Yrange,'=');
Yname=part(Yrange,1:J-1);
Tmp=evstr(part(Yrange,J+1:length(Yrange)));
Py=[0,Tmp(1),0]; Qy=[0,Tmp(2),0];
J=mtlb_findstr(Zrange,'=');
Zname=part(Zrange,1:J-1);
Tmp=evstr(part(Zrange,J+1:length(Zrange)));
Pz=[0,0,Tmp(1)]; Qz=[0,0,Tmp(2)];
else
Data=varargin(1);
Xname='x'; Yname='y'; Zname='z';
if Nargs>1
if varargin(2)~=''
Xname=varargin(2);
end;
if varargin(3)~=''
Yname=varargin(3);
end;
if varargin(4)~=''
Zname=varargin(4);
end;
end;
Tmp=Mixop(1,Data);
Px=Tmp(1,:); Qx=Tmp(2,:);
Tmp=Mixop(2,Data);
Py=Tmp(1,:) ;
Qy=Tmp(2,:);
Tmp=Mixop(3,Data);
Pz=Tmp(1,:);
Qz=Tmp(2,:);
end;
Ph=Parapt(Px); Qh=Parapt(Qx); R=Vecnagasa(Ph,Qh);
Kekka=[];
if R>Eps
Ch=Qh+Dr/R*(Qh-Ph);
Kekka=Mixadd(Kekka,Pointdata(Ch));
Expr(Ch,'c',Xname);
end
Ph=Parapt(Py); Qh=Parapt(Qy); R=Vecnagasa(Ph,Qh);
if R>Eps
Ch=Qh+Dr/R*(Qh-Ph);
Kekka=Mixadd(Kekka,Pointdata(Ch));
Expr(Ch,'c',Yname);
end;
Ph=Parapt(Pz); Qh=Parapt(Qz); R=Vecnagasa(Ph,Qh);
if R>Eps
Ch=Qh+Dr/R*(Qh-Ph);
Kekka=Mixadd(Kekka,Pointdata(Ch));
Expr(Ch,'c',Zname);
end;
endfunction
|