blob: 84ea4d603b5280621c8d5ff25b45e4a1281f49be (
plain)
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
72
73
74
75
76
77
78
|
// 08.12.06
// 08.12.18
// 09.02.20
// 09.02.27
// 14.03.05 MARKLEN
// 17.03.19 VL=[] => VL="";
function Out=Setunitlen(varargin)
global FID XMIN XMAX YMIN YMAX ULEN
global MilliIn MARKLEN MARKLENNow PenThickInit;
if length(varargin)==0
Out=ULEN;
disp(ULEN);
return;
end;
Ul=varargin(1);
Dx=XMAX-XMIN;
Dy=YMAX-YMIN;
Sym='.0123456789 +-*/';
Tmp=ascii(Sym);
SL=Sym;
OL='+-*/';
if Ul~=''
ULEN=Ul;
end;
Out=ULEN;
Is=1;
VL=""; // 17.03.19
Ucode=ascii(ULEN);
for I=1:length(Ucode)
C=char(Ucode(I));
if mtlb_findstr(SL,C)~=[]
if mtlb_findstr(OL,C)
Str=char(Ucode(Is:(I-1)));
VL=VL+Str+C;
Is=I+1;
end
else
Unit=char(Ucode(I:(I+1)));
Str=char(Ucode(Is:(I-1)));
VL=VL+Str;
break;
end;
end;
Valu=evstr(VL);
Str=string(Valu);
ULEN=Str+Unit;
Out=ULEN;
if Unit=='cm'
MilliIn=1000/2.54*Valu;
end
if Unit=='mm'
MilliIn=1000/2.54*Valu/10;
end
if Unit=='in'
MilliIn=1000*Valu;
end
if Unit=='pt'
MilliIn=1000/72.27*Valu;
end
if Unit=='pc'
MilliIn=1000/6.022*Valu;
end
if Unit=='bp'
MilliIn=1000/72*Valu;
end
if Unit=='dd'
MilliIn=1000/1238/1157/72.27*Valu;
end
if Unit=='cc'
MilliIn=1000/1238/1157/72.27*12*Valu;p
end
if Unit=='sp'
MilliIn=1000/72.27/65536*Valu/10;
end
MARKLEN=MARKLENNow*1000/2.54/MilliIn;
endfunction;
|