Разработка и исследование подсистемы учебно-исследовательской САПР РЭА (Quatro Pro)
:
"
- "
,
.-53, ""
.
-
102 ,
37 ., 7 , 14 . 6
3.
-
-
(). ,
() P-CAD,
Personal CAD System.
-
-
.
, -
.
, -
-
,
. ,
, -
P-CAD.
PC-PLACE, -
,
.
PC-ROUTE. -
.
, -
,
, P-CAD.
-
, ,
P-CAD, Picture Maker, Paint Brush .
,
PC-PLOT.
, -
.
- -
- -
P-CAD,
, .
"", -
.. .
..
.
""
.
____________________
"___"__________ 1993.
1. :
- .
No 191/1 22.03.93.
2. 01.06.93
3.
3.1. :
- .
3.2. :
; pp pp p
p ; , -
P-CAD; - p
pp p p.
4. p-
p.
5. : ; p -
p, (p p -
, , p pp
); pp p-
, P-CAD; -
p pp p-
p; p (pp p p-
, pp pp).
6. p p ( 3):
1) I. . -
;
2) I. .
3) I. COMP.
4) I. SOLDER.
5) - .
6) - .
7.
_______________________________________ ..
10.03.93.
_______________________________________ ..
.
..
- .
. , 1993, 102 ., 37 .,
7 ., 14 ., 6 .
-
- -
P-CAD,
, -
.
, -
-
,
.
RTN (IBM PC,
Clipper), 2000 -
.
-
P-CAD.
PC-PLACE,
,
.
PC-ROUTE. -
. -
2-3 .
- -
- -
P-CAD,
, .
.
4
1. 6
1.1. 6
1.2. 11
1.3. 19
1.4. 39
2. , P-CAD 41
2.1. 41
2.2. I. . 41
2.3. II. . 65
3. - P-CAD 81
90
92
I. RTV. 93
.
-
()
. , -
.
. -
, ,
. -
, -
, -
.
-
-
-
. , -
,
-
.
-
-
(). ,
(), (), ()
P-CAD, Personal CAD System.
P-CAD
,
IBM PC.
C P-CAD (Personal Computer Aided Design) -
.
, -
(),
,
, , -
, . -
, , .
- 5 -
$$$
-
( -
)
-
, :
- -
, -
;
- ""
-
.
-
, -
. -
P-CAD -
.
-
, P-CAD
-
.
- , -
, -
.
.
- 6 -
$$$
1.
1.1.
.
, -
. -
:
, ,
,
.
-
. -
.
, ,
, , -
(dx x dy) .
,
:
- , -
,
;
- .
dx dy : dx >= Hmin,
dy >= Hmin, Hmin -
.
,
, .
-, -
- . -
, -
,
- 7 -
$$$
.
-
- M( x, y, z),
z .
-
, -
.
.
-
.
-
, . -
-
( , M( x, y, z).
M( x, y, z)
V
kj = (zj - 1) * Xo * Yo + Xo * (yj - 1) + xj (1.1)
kj - V; Xo, Yo - -
x y M.
-
V . ,
(..1.3.6) -
. 1.2.
, Zj = 1. -
M( x, y, z), Xj Yj, V
kj (1.1). 1, 2, 3, 4
(. 1.2) V
:
1. kj = kj + Xo
2. kj = kj + 1
3. kj = kj - Xo
4. kj = kj - 1
.
- 8 -
$$$
Zj = 1 Zj = 2
Ŀ Ŀ
3 G H I 3 P R S
Ĵ Ĵ
2 D E F 2 M N O
Ĵ Ĵ
1 A B C 1 J K L
Yj / 1 2 3 Yj / 1 2 3 ]
Xj Xj
) )
V
Ŀ
A B C D E F G H I J K ... R S
1 2 3 4 5 6 7 8 9 10 11 17 18
Kj
)
. 1.1.
: , -
M( x, y, z) (Xo = Yo = 3); -
M( x, y, z) .
Ŀ
1
Ŀ
4 < O > 2
3
. 1.2. .
.
- 9 -
$$$
, -
, -
.
, -
-
.
, -
.
[1],
:
kj = [(xj + yj)*Yo + yj + (zj - 1)*Xo*Yo] mod( Zo Xo Yo) (1.2)
T, T < q
T mod(q) = {
(T - q), T >= q
1.2 ,
M( x, y, z) :
x E [ 0, Xo - 1]
y E [ 0, Yo - 1]
z E [ 0, Zo - 1].
. 1.3
M( x, y, z) V.
(1.2) , -
, , -
(.1.2)
, -
. -
.
,
"",
.
- 10 -
$$$
Zj = 1 Zj = 2
Ŀ Ŀ
3 G H I 3 P R S
Ĵ Ĵ
2 D E F 2 M N O
Ĵ Ĵ
1 A B C 1 J K L
Yj / 1 2 3 Yj / 1 2 3 ]
Xj Xj
) )
V
Ŀ
A R B D S C E G J F H ... N P
1 2 3 4 5 6 7 8 9 10 11 17 18
Kj
)
. 1.3.
.
-
zj .
, ,
,
.
.
- 11 -
$$$
1.2.
1.2.1.
-
,
,
,
.
-
(
= 10e-3...10e-10) - ,
.
-
, -
.
-
.
, -
, ""
-
,
.
-
, ,
. -
().
[2] -
-
V
S . V (S) - (-
), -
, -
, -
, -
.
(V S) -
. () -
- 12 -
$$$
(0.1...0.3)
V S -
(.1.4):
V = 1.5 * Amax * Bmax * Hmax
S = 1.3 * Amax * Bmax
> 0.3...0.5 V S -
,
(.1.5), -
.
1.2.2.
Vs = Kv * SUM( Vi) = ( 1/Kv) * SUM( Vi)
Ss = Ks * SUM( Si) = ( 1/Ks) * SUM( Si)
Vs (Ss) - () ;
Kv (Ks) - (), -
5..1 (3..1);
Vi (Si) - () i-
Kv - (0.2...0.1)
Ks - ,
.. (0.33...1).
0.4...1.6 /^3.
-
RTV, -
( I). -
, -
.
2000 , -
.
.
- 13 -
$$$
,
.
1.2.3.
.
. (,
)
.
-
Ti( Xi, Qi), Xi, Qi - ,
. -
( X1, Q1, 1,..., Xn, Qn, n),
, -
-
.
-
.
,
. -
,
.
-
. -
-
, .
1.2.4. ,
,
, -
, : -
; -
- 14 -
$$$
-
: 0', 90', 180' 270';
; ,
, .
1.2.5.
A k T1, T2, ...,
Ti, ..., Tk.
. -
:
1.
, ;
2. . A -
Ti. .
: , -
, ;
3. -
. ;
4. -
.
5. . -
. , -
, .
6. ,
.
.
7. . -
? , , -
.
,
, -
.
- 15 -
$$$
.
1.2.6.
.
t1 x t2 To
( t1, t2) -
- . -
Ti( Xi, Qi),
Xi=( t1i, t2i), Qi={ 0, 90', 180', 270').
().
-
, .
1.2.7.
-
,
: X Y m -
xi yi, i = 1...m. -
:
f(x,y)=MAX{ max( f(i,y)+f(x-i,y)), max( f(x,i)+f(x,y-i))} (1.3)
i=0..x i=0..j
f( x, 0) = f(0,y) = 0, f(xi,yi) >= Ci, (1.4)
Ci - i- .
.
- 16 -
$$$
f(x,y),
(1.3)-(1.4), -, x y -
f(x,y) = max ( fj ),
j:xj<=x,yj<=y
{ xj, yj, fj} - .
-
(1.3) .
(xj, yj, fj), j = 1..R.
, xj<=X, yj<=Y j1,j2
x'(j1,j2) = xj1 + xj2,
y"(j1,j2) = yj1 + yj2,
x"(j1,j2) = MAX{ xj1, xj2 },
y'(j1,j2) = MAX{ yj1, yj2 }.
n, k
n (xj,yj,cj), , i=1..k
j=i..n, xi
. ,
.
n , .
:
1. .
. - -
, ,
(xi,yi,ci), (xi,yi,ci)k=0.
4.
2. . n-k , -
, x, ,
, y. k+1-
, k k+1.
3. . i=0..k
: (x'(i,k), y"(i,k),fi+fk) (x"(i,k), y"(i,k),fi+fk).
, ,
n.
- 17 -
$$$
4. .
. i j, xi<=x, yi<=yj
fj<=fi, j- . ,
.
, n=k, f(X,Y) =
max(fj), 2.
.
,
[1]. : -
, , , -
.
-
-
- ,
,
.
-
.
1.3.
1.3.1.
-
-
. -
() . -
: -
, -
-
- 18 -
$$$
. -
( -
) ( )
.
()
,
.
, -
, -
.
-
, . -
-
-
-
.
-
.
.
, -
. ,
-
( -
, , , - -
) .
-
,
.
"" . -
,
. .
1.
-
.
- 19 -
$$$
2. -
, , -
-
.
3. -
-
, -
- -
.
4. -
.
,
, ,
-
.
1.3.2.
-
(..1.2). -
:
.
-
:
1. ,
.
2. .
3.
( -
).
4. .
.
- 20 -
$$$
1.3.3.
, -
(..
),
.
-
. .1.6 -
.
[3]. -
n -
. n-2
,
. .1.6 ( x1,
x2, x3, x4, x5) ,
x6 ( x5, x6),
, . -
.1.6
[(x1,x2) (x2,x3) (x2,x4) (x4,x5) (x5,x6) (x6,x7)].
-
.
,
; -
(.1.6).
, -
x1' x2', -
.
-
, .
1.3.4.
:
.
- 21 -
$$$
1. -
,
( -
).
2. ,
,
.
:
1. -
(.1.7).
2.
, -
(.1.7) -
, -
(x1,x2) (x3,x4) .1.7.
.
1.3.5.
, -
.
,
.
,
. :
1. -
( -
).
,
.
2. -
, .
.
- 22 -
$$$
.
(. . 1.7), , -
, .
-
-
.
-
-
.
1.3.6.
-
( ). ,
, , ..
"" -
, .
-
:
- , ,
- -
.
-
(..1.1). D
D' D". D' -
, -
. -
D" ,
. D :
Pj,
j- ; Aj, -
- 23 -
$$$
.
(Xi,Yi) (Xj,Yj) -
, :
Xi - Xj + Yi - Yj = 1.
D" P,
.
.
1. D' A=0.
X Y.
2. "" (Xo,Yo).
3. Ao := Po; K := 1; X(1) := Xo; Y(1) := Yo.
4. Xj := X(1); Yj := Y(1); X(1) = Y(1) = 0,
.6.
5. -
(Xi,Yi), :
Xi - Xj + Yi - Yj = 1.
: Pi <> OO Ai < Pj + Pi, K := K + 1; X(K) :=
Xi; Y(K) := yi, Ai = Pj + Pi; 5
( Pi = OO Ai >= Pj + Pi). -
5 -
X Y . -
.
6. .
.1.8.
1.3.7.
-
.
,
. -
- 24 -
$$$
-
.
.
, -
-,
.
.
[ 4, 5].
.
,
-
, , -
.
, -
,
,
, -
.
-
,
. ,
; "" -
, ,
, . ,
,
.
:
1. -
(.1.9).
2. , -
. ,
. ,
.
- 25 -
$$$
,
, L T (.1.10).
3. , .
,
, ,
. -
.
,
.
, -
,
.
,
,
, , ,
. , -
-
. ,
, , -
-
. , ,
,
.
[6]. .1.11.
, ,
- 26 -
$$$
(), , -
,
() .
, -
.
, , .1.12,
, -
- . -
, , -
(.1.12). , -
, , -
(.1.12).
"",
-
, -
(.1.13).
(.1.14) -
, ,
, -
, . -
, , ,
, -
100%- . , -
-
, .
1.3.8.
, -
,
,
,
.
-
(.1.15),
A B.
()
11, 12 11, 12 (- -)
- 27 -
$$$
( -, -
-). - -,
, .
.
-
, . - - -
: {11, 12, 21, 22, 23, 24} {11, 12, 21, 22}
.. 22 -
-.
,
, ,
, "" -
(1 2). -
-
.
"" . i -
j, d,
.
,
.
-
, -
, -
.
-
.
1.3.9.
, ,
[1] .
,
" " -
- 28 -
$$$
. -
.
-
,
.
1.4.
, (.1.16).
-
(.1.16),
(.1.16).
.
- 41 -
2. , P-CAD
2.1.
-
, P-CAD
-
.
- , -
, -
.
, , -
P-CAD,
.
,
( ,
), -
. (.2.1)
-
.
- III -
,
. (.2.2), , -
. -
.
2.2. I.
2.2.1.
, . -
RTV.
.2.1.
.
- 44 -
2.1.
Ŀ
,
Ĵ
M_0125 19 6x2.2x2.2
KM-5 4 8x 8x 3
K50-6 1 18x 10x 10
KT315 1 7.2x 3x 8
K1553 1 19.5x7.5x 5
K1551 1 19.5x7.5x 5
K1555 1 19.5x7.5x 5
1552 1 19.5x7.5x 5
1553 1 21.5x7.5x 5
5564 1 21.5x7.5x 5
PK-172-TB-1 2 13x3.5x 10
-1 2 16x 11x 9
13 5x 2x 2
1806 ^2
0.4
45150 ^2
60 x 75
2.2.2.
PC-PACK.
(NLT-), (LIB-) , -
(PCB-).
PKG-, -
, .
PC-PLACE,
, PC-CARDS.
PC-PACK
PKG- (. 2.3). ,
205 225 ,
- 46 -
, RTV. -
60 75 , -
.
2.2.3.
P-CAD -
PC-PLACE, -
, . , -
-
. , -
-
- , -
100% .
2.2.3.1.
60 75
100 100 DBU
50 50 DBU
DIP16
DIP14
MLT_0125
C-PF
CVAR
KT315
K50-6
ZQ
PIN ( ) -
,
.
(: 200 DBU = 5 )
.
- 47 -
PLR-,
.
00:00:17
(mils) 134511
54
5
( ) 10.38
49
0
0.69
( )
10
(MLT_0125 7)
(C-PF 3)
-
,
,
-
(. 2.4). -
:
- 0-35%;
- 35-50%:
- 50%.
-
. -
.
.
- 49 -
:
( X)
128 .
40 ( 31 %)
0 ( 0 %)
0 ( 0 %)
5 ( 3 %)
( Y)
218 .
40 ( 18 %)
0 ( 0 %)
0 ( 0 %)
11 ( 5 %)
0
2.2.3.2.
,
, -
,
, .
-
.
.
- 50 -
( X)
128 .
39 ( 30 %)
0 ( 0 %)
0 ( 0 %)
5 ( 3 %)
( Y)
218 .
39 ( 17 %)
0 ( 0 %)
0 ( 0 %)
10 ( 4 %)
3
PC-PLACE -
, -
. -
.
,
.
-
. -
.
1. 216519 mils
R14 R18
DD2.1 DD2.6
R5 R6
R14 R17
- 51 -
R4 R7
R20 R5
DD4.1 DD4.4
R20 R11
R3 R16
DD4.2 DD4.3
DD1.2 DD1.3
2. 211305 mils
DD2.6 DD2.5
R6 R18
3. 208137 mils
DD2.5 DD2.4
R7 R18
5. 206106 mils
206106 mils
00:00:08
:
( X)
128 .
38 ( 29 %)
0 ( 0 %)
0 ( 0 %)
4 ( 3 %)
( Y)
218 .
.
- 52 -
36 ( 16 %)
0 ( 0 %)
0 ( 0 %)
9 ( 4 %)
5
,
-
.
PC-PLACE
-
.
.
1. 109141 mils
R12 R15
R5 R9
R15 R6
R13 R10
R7 R3
R11 R4
R9 R8
R2 R8
C1 C6
C4 C3
R14 R16
R18 R17
DD4 DD5
R4 R8
C5 C8
- 53 -
2. 97583 mils
R15 R2
R5 R20
R20 R13
R18 R17
R2 R7
C1 C8
DD2 DD4
3. 94207 mils
R15 R3
R3 R7
R2 R14
R18 R16
R16 R17
R11 R9
4. 93093 mils
93093 mils
00:00:08
:
( X)
128 .
34 ( 26 %)
0 ( 0 %)
0 ( 0 %)
4 ( 3 %)
( Y)
218 .
.
- 54 -
28 ( 12 %)
0 ( 0 %)
0 ( 0 %)
8 ( 3 %)
10
. , -
-
. PC-PLACE -
, ? , -
-
.
1. 198750 mils
DD1.4 DD1.3
DD2.3 DD2.1
DD1-D DD1.2
R20 R10
R11 R20
R7 R3
R15 R5
DD4.4 DD4.1
DD4.3 DD4.2
DD5.2 DD5.1
2. 196477 mils
R10 R4
DD2.1 DD2.4
.
- 55 -
3. 196295 mils
196295 mils
00:00:15
:
( X)
128 .
35 ( 27 %)
0 ( 0 %)
0 ( 0 %)
4 ( 3 %)
( Y)
218 .
29 ( 13 %)
0 ( 0 %)
0 ( 0 %)
8 ( 3 %)
9
-
,
. -
.
, -
-
, -
,
-
,
. -
,
- 56 -
,
.
.
180`
. -
15.
( X)
128 .
30 ( 23 %)
0 ( 0 %)
0 ( 0 %)
4 ( 3 %)
( Y)
218 .
28 ( 12 %)
0 ( 0 %)
0 ( 0 %)
8 ( 3 %)
15
-
- ,
(.2.5) -
.
.
- 58 -
2.2.4.
PC-ROUTE, -
, PC-PLACE, -
:
1. DAISY - ;
2. MIN-SPAN - ;
3. STEINER - - -
;
4. STEINER-MINVIA - -
.
/
-
. , DAISY, -
-
, -
-
-
. -
,
, -
MIN-SPAN,
.
STEINET - -
-
, . .1.16
.
, P-CAD.
- ,
- ,
- ,
- .
46 , 109 166 .
.
- 59 -
IBM-PC 386DX 40MHz. -
.2.6., .2.2.
.2.3.
2.2.
Ŀ
DAISY MIN-SPANSTEINERSTEINER-MINVIA
Ĵ
100 100 100 100
107746 107025 100975 101575
23 16 22 25
(.) 01.25 01.28 01.38 01.45
2.3.
Ŀ
DAISYMIN-SPANSTEINERSTEINER-MINVIA
Ĵ
1 1 1 1
25 19 21 31
. 1. 23 19 22 25
5 4 5 5
. 2. 32 28 27 32
2 2 2 2
, -
-
. , , -
:
-
.
"" "" ;
-
. -
100% , , ,
- 65 -
. DAISY,
, ,
(
);
- -
MIN-SPAN. ,
.
,
(.2.7 - 2.9) , -
(MIN-SPAN), (.2.10 - 2.11).
2.3. II.
2.3.1.
-
-
.
-
. . -
6090 . -
.2.2.
2.3.2.
PC-PACK
PKG- (. 2.12). , -
100110 , ,
, .
, -
. -
-
,
. -
6090 .
- 68 -
2.3.3.
2.3.3.1.
60 90
100 100 DBU
50 50 DBU
PIN ( ) -
,
.
PLR-,
.
00:00:16
(mils) 188746
53
18
( ) 19.88
35
0
0.43
( )
4
(K1555 4)
.
- 70 -
:
( X)
88 .
81 ( 92 %)
0 ( 0 %)
50 ( 56 %)
45 ( 51 %)
( Y)
80 .
57 ( 71 %)
0 ( 0 %)
46 ( 57 %)
36 ( 45 %)
0
2.3.3.2.
,
, -
, -
, -
, -
.
.
.
- 71 -
= 167990 mils
1 . = 167990 mils
2 . = 151410 mils
3 . = 146788 mils
4 . = 140787 mils
5 . = 139182 mils
6 . = 139015 mils
= 138931 mils
: 00:00:16
= 146160 mils
1 . = 146160 mils
2 . = 138860 mils
3 . = 134839 mils
4 . = 129759 mils
5 . = 127235 mils
6 . = 123560 mils
7 . = 123252 mils
= 123252 mils
: 00:00:18
,
, -
. -
, .
= 123166 mils
1 . = 123166 mils
2 . = 119388 mils
3 . = 118848 mils
- 72 -
4 . = 118476 mils
5 . = 118026 mils
6 . = 117792 mils
7 . = 117590 mils
= 117538 mils
: 00:00:26
= 157613 mils
1 . = 157613 mils
2 . = 143600 mils
3 . = 142331 mils
4 . = 141548 mils
= 141548 mils
: 00:00:14
= 130695 mils
1 . = 130695 mils
2 . = 126391 mils
3 . = 119905 mils
4 . = 118569 mils
5 . = 118225 mils
6 . = 117975 mils
= 117975 mils
: 00:00:23
= 157089 mils
1 . = 157089 mils
2 . = 142944 mils
3 . = 142651 mils
4 . = 141868 mils
- 73 -
= 141868 mils
: 00:00:14
180`
. -
9.
( X)
72 .
63 ( 87 %)
18 ( 25 %)
48 ( 66 %)
42 ( 58 %)
( Y)
44 .
38 ( 86 %)
0 ( 0 %)
30 ( 68 %)
25 ( 56 %)
9
-
- ,
(.2.13)
.
2.3.4.
,
PC-ROUTE.
:
- 75 -
- ,
- ,
- .
62 , 170 318 .
.2.3, .2.4. .2.14, .2.15.
2.3.
Ŀ
DAISY MIN-SPANSTEINERSTEINER-MINVIA
Ĵ
99.4 100 100 100
150975 150222 139999 145439
78 77 64 59
(.) 03.48 02.41 03.15 03.18
2.4.
Ŀ
DAISYMIN-SPANSTEINERSTEINER-MINVIA
Ĵ
1 1 2 2
120 66 150 88
. 1. 65 57 70 73
10 10 9 9
. 2. 9 10 9 9
3 3 3 3
DEISY 100% , -
.
MIN-SPAN ,
. -
,
- -
.
- 79 -
- STEINER
STEINER-MINSPAN . -
, -
(. .
1.3.3). STEINER-MINSPAN -
,
. -
. -
-
, -
. -
STEINER-MINVIA,
, -
.
-
(.. 1.3.5).
.2.5. .2.16.
2.5.
Ŀ
- -
Ĵ
100 100
145439 139772
59 40
(.) 03:18 02:30
,
. -
, ,
. -
.
.
- 80 -
,
. , -
-
,
( -
0.4). ( ,
, ) ,
, ,
P-CAD, -
. , I
-
, . . -
, II, -
,
-
. -
, P-CAD
.
.
,
.
.
- 81 -
3.
P-CAD
" "
,
-
- -
. -
-
(). -
, , , -
,
,
, -
.
-
,
, -
. -
,
,
, ,
, ,
-
, .
-
,
- ,
, -
-
.
, -
, :
- ,
- 82 -
(
,
);
- , -
" - "
-
, ,
,
-
;
- , -
-
, -
, -
;
- -
, .
P-CAD - -
,
. :
;
;
;
.
.1.1.
1.1.
Ŀ
-Ĵ
Ĵ
1. - N, N / 280 280
, -
2. t, t -/ 165 64
- dt = 101
.
- 83 -
.1.1.
Ŀ
-Ĵ
Ĵ
3. - N, N / 600 600
, -
4. t, t -/ 66 41
- dt = 25
5. - N, N / 140 140
6. t, t -/ 100 40
- dt = 60
7. - C /- 500 500
8. - C /- 550 550
9. K1 % 28 28
10. 2 % 5.4 5.4
.
11. K3 % 3.6 3.6
.
12. 4 % 2 2
13. - K .. 1000
, -
-
.
- 84 -
.1.1.
Ŀ
-Ĵ
Ĵ
14. K .. 3000
,
,
15. 1 C / 200
16. F 2400
-
-
17. T % 90
-
18. - T 5
-
1.
P-CAD.
1.1.
:
K = K + T * K
K = 1000 + 0.9 * 3000 = 3700 ..
( ).
.
- 85 -
1.2. :
) :
= T * * F / 1000
= 0.9 * 200 * 2.4 = 432 ./
)
5 ( -
):
= 1 = 2 =3 = 3 = 4 = ,
= *0 + *1 + *2 + *3 + *4
= 432 * (1 + 0.9091 + 0.8264 + 0.7513 + 0.6831) =
= 1801.4 ..
( ai .1.2).
1.2.
ai.
Ŀ
i ai
Ĵ
0 1
1 0.9091
2 0.8264
3 0.7513
4 0.6831
1.3.
:
= +
= 3700 + 1801.4 = 5501.4 ..
( ).
2.
( ).
.
- 86 -
2.1.
:
dT = T * (dt * N + dt * N)
dT = T * dt * N
dT = (101 * 280 + 60 * 140 ) * 5 = 183400
dT = 25 * 600 * 5 = 75000
2.2. , -
,
:
P = SUM( Ni * dti * Ci) * [1 + SUM(Ki)] / 1000
P = [1+(K1+K2+K3+K4)] * [N*dt*C +
+ N*dt*C +
+ N*dt*C]/ 1000,
P = 1.39 / 1000 *
*(280*101*500 + 600*25* 550 + 140*60* 500) =
= 36960.1 ./
2.3. -
P = P -
= 36960.1 - 432 = 36528.1 ./
2.4. ,
-
:
P = P * (ao + a1 + a2 + a3 + a4)
= 36528.1 * 4.1699 = 152318.5 ..
.
- 87 -
.
, -
, -
.
-
-
.
.
, -
-
,
.
- .
2.5. ,
:
= - /
= 36528.1 - 3700 / 5 = 35788.1 ./
2.6. , -
:
= -
= 152318.5 - 3700 = 148618.5 ..
2.7. :
= /
= 36528.1 3700 = 9.9 1/
.
- 88 -
2.8. :
= 1 /
= 1 / 9.9 = 0.1
T < 1
1/Ea = 1/37475.82 = 0.1 . -
, , . .
.
.
- 89 -
P-CAD:
.
-/
1.
2.
3.
.3.1. P-CAD: .
.
- 90 -
-
-
-
. -
-
.
, , -
-
,
.
,
, -
.
RTV (IBM, Clipper) .
2000 -
. -
" " .
" ,
P-CAD" -
PC-PLACE,
, -
. -
PC-ROUTE
.
P-CAD
" -
P-CAD", -
- 91 -
-
,
.
-
P-CAD, , -
.
2-3 .
.
,
-
. - -
- -
P-CAD,
,
.
, -
, .
,
. -
,
- , -
. -
.
.
- 92 -
1. :
. / .., .., ..
.; . ...- .: , 1986.
2. : -
/ . ... - .:., 1980.
3.
/ .., ..-
.:., 1983.
4. . : .
./ . ...- .: , 1990.
5.
/ .., .., .., ..
.- .: , 1988.
6. : . ./ .,
., ., .- .:, 1988.
7. Placement and routing. User's Manuals. Personal CAD
Systems Inc. 1987.
8. .., .. :
- . - .: ,
1989.
9. , -
- : -
.- ., 1989
10. -
/ .., .., -
.. .- .:, 1986.
11. /
.., .., .. .- .:
, 1982.
12. / ..-
, .., .., ...- .:.,
1980.
13. .. -
. - .: , 1983.
14. .., .., .. -
-
.- .: , 1983.
.
- 93 -
I. RTV.
* Clipper Summer'87.
* -------------------------------------------------------------- *
* RTV - *
* ., , , .. *
* , 1992 ., 1993 . *
* -------------------------------------------------------------- *
*
* :
*
* L
* _______
* D / / :
* Ŀ D=0 .
*
*
* H Selem = L x L
* / Velem = H x Selem
*
*
* L
* _______________________________ (DIP )
* D / / :
* Ŀ
* H / Selem = L x D
* ijijijijijij Velem = H x Selem
*
*
wsetmove(.F.)
set key 28 to my_help
set key -9 to menu
set scoreboard off
set cursor off
set wrap on
public baza, Kol, N_ALL, N_ELEMENT[20]
public Selem, Velem, Vreal, Vusta, Mass, GlavMenu, WM, WE, WB, TXT
public KoeV, KoeM, VGA
public sideX, sideY, sideZ
public nfile, ok, vk, box1
declare Pole_base[15], Titl[15], T[1]
ok =.T.
vk = chr(13)+chr(10)
TXT = ""
VGA =.F.
Selem = 0
Velem = 0
Vreal = 0
Vusta = 0
Mass = 0
KoeV = 0.50
KoeM = 1.25
sideX = 0
sideY = 0
sideZ = 0
nfile = "rtv.doc "
GlavMenu = 3
T[1] = "baza0->element"
box1 = "ɴ "
box2 = "̴ "
DO GetScreen
DO SetScreen
set color to "w*/n"
clearwin(0,0,24,79, "w*/n"," ")
set color to "n */w ,w+ /n"
WM=wopen( 0,0,0,79)
- 94 -
wselect( 0)
@ 0, 0 say space(80)
@24, 0 say space(80)
@24, 2 say "F1-Help "
@24,67 say " F10-Menu"
keyboard chr(27)
do menu
if file("RTV_1.DBF") # ok .or. ;
file("RTV_1.DBT") # ok .or. ;
file("RTV_2.DBF") # ok .or. ;
file("RTV_3.DBF") # ok
window( 10,13,14,66, "w+/r")
@ 2,4 say " - "
inkey(0)
wclose()
l_gmode(3)
quit
endif
window(7,21,17,58, "w+*/b ,w+ /n")
do copyright
select 1
use RTV_1 alias baza0
do menu_new
PUBLIC N[n_all]
afill( N,0)
select 2
use RTV_2 alias Korpus
if file("RTV_2.NTX") # ok
index on DIP to RTV_2
endif
set index to RTV_2
select 3
use RTV_3 alias Standart
if file("RTV_3.NTX") # ok
index on GOST to RTV_3
endif
set index to RTV_3
wclose()
WB=window( 2, 16, 21, 76, "w+*/b ,w+ /n")
set color to "n/w"
@ 0,59,19,60 box box1
set color to "n */w ,w+ /n"
@ 0,59 say ""
@ 19,59 say ""
@ 4,51 say " PgUp "
@ 7,51 say " PgDn "
@10,51 say " Tab "
set color to "n */b"
@ 4,57 say ""
@ 5,52 say ""
@ 7,57 say ""
@ 8,52 say ""
@10,57 say ""
@11,52 say ""
WE=window( 2, 1, 15, 12, "w+*/b ,w+ /n")
select 1
go top
* --------------------------------------------------------- *
* *
* --------------------------------------------------------- *
dbedit( 1,2,12,9, T, "edit", 0, "","")
quit
- 95 -
* --------------------------------------------------------- *
* , *
* --------------------------------------------------------- *
function edit
parameters m, f
if lastkey()=9 .or. lastkey()=13 && Ret, Tab
do Var_base
endif
return( 1)
* --------------------------------------------------------- *
procedure Var_base
private i, rec, X, Y, tmp, scr, len, N_inp
N_inp = 0
scr = wselect()
tmp = ""
X = 0
Y = 0
wselect( WB)
set color to "n */w"
@ 1,59 say ""
set color to "w+*/b ,w+ /n"
@ 3,1,16,48 box box1
select 1
rec = recno()
afill(Pole_base,"")
baza= baza0->base
@ 1,3 say baza0->NAME
Y=Mlcount(POLE,8)
for i=1 to Y
Pole_base[i]=Memoline(baza0->POLE, 8,i)
@ 3+i,2 say MemoLine(baza0->Glav,15,i)
next i
if rec > 1
for i=1 to rec-1
X=X+N_ELEMENT[i]
next i
endif
select 4
use &baza alias bazaRT
len=lastrec()
set key 9 to exit_code
do while ok
set color to "w+*/b ,w+ /n"
clear gets
for i=1 to Y
if Pole_base[i]="N"
N_inp=N[recno()+X]
@ 3+i,18 get N_inp picture " 9999"
else
tmp=Pole_base[i]
@ 3+i,18 say &tmp
endif
next i
set cursor on
read
set cursor off
N[X+recno()]=N_inp
key=lastkey()
do case
case key=13 .or. key=3 && PgDn, Enter
do print_code
skip +1
if eof()
skip -1
endif
case key=18 && PgUp
do print_code
- 96 -
skip -1
case key=27 && Esc
do print_code
exit
endcase
set color to "n */w"
@ 1+17*recno()/len,59 say ""
enddo
set key 9 to
select 1
goto rec
wselect(scr)
return
* --------------------------------------------------------- *
procedure exit_code
keyboard chr(27)
return
* --------------------------------------------------------- *
procedure print_code
set color to "n/w"
@ 1+17*recno()/len,59 say ""
return
* --------------------------------------------------------- *
Procedure menu
set cursor off
set key -9
private scr
scr=wselect()
do while ok
wselect( WM)
@ 0, 1 prompt " "
@ 0, 5 prompt " "
@ 0,12 prompt " "
@ 0,21 prompt " "
@ 0,30 prompt " "
@ 0,38 prompt " "
@ 0,46 prompt " "
menu to GlavMenu
do case
case GlavMenu=1
window(6,21,16,58,"w+/b", box1)
do copyright
inkey(0)
wclose()
case GlavMenu=2
do menu_file
case GlavMenu=0 .or. GlavMenu=3
GlavMenu=3
clear gets
exit
case GlavMenu=4
do menu_exec
case GlavMenu=5
do menu_graf
case GlavMenu=6
do menu_text
case GlavMenu=7
do menu_quit
endcase
enddo
wselect( scr)
set key -9 to menu
return
* --------------------------------------------------------- *
.
- 97 -
function window
parameters y1, x1, y2, x2, color
private W
W=wopen( y1, x1, y2+1, x2+2)
colorwin( 1, 2, y2-y1+1, x2-x1+2)
set color to &color
@ 0, 0, y2-y1, x2-x1 box box1
return( W)
* --------------------------------------------------------- *
procedure menu_file
private i
i=1
window( 1,5,8,16,"n */w ,w+ /n", box1)
@ 2,1 prompt " Load "
@ 3,1 prompt " Save "
@ 4,1 prompt " Save as.."
@ 5,1 prompt " New "
menu to i
do case
case i=4
afill(N,0)
TXT = ""
endcase
wclose()
return
* --------------------------------------------------------- *
function get_name_file
parameters y,x, nfile
window(y,x,y+2,x+21,"n/w, w+/n", box1)
clear gets
@ 1,2 say "File:" get nfile picture "@K XXXXXXXXXXXX"
set cursor on
read
set cursor off
wclose()
return nfile
* --------------------------------------------------------- *
procedure menu_new
select 1
go top
KOL=0
N_ALL=0
Afill( N_ELEMENT,0)
do while .not. eof()
baza = baza0->base
select 4
if file(baza+".DBF")
use &baza
KOL=KOL+1
N_ELEMENT[Kol]=lastrec()
N_ALL=N_ALL+N_ELEMENT[Kol]
else
select 1
delete
endif
select 1
skip
enddo
pack
return
* --------------------------------------------------------- *
.
- 98 -
procedure menu_exec
private i
i=1
window(1,21,5,43,"n */w ,w+ /n", box1)
@ 1,1 prompt " "
@ 2,1 prompt " "
@ 3,1 prompt " "
menu to i
wclose()
if i#0
do exec with i
endif
return
* --------------------------------------------------------- *
procedure exec
parameters i
private X, OLD_select, OLD_recno1, OLD_recno4, tmp
private D, L, H, M, Sij, XDip, XGost
Selem = 0
Velem = 0
Vreal = 0
Vusta = 0
X = 0
D = 0
L = 0
H = 0
M = 0
rec = 0
Mass = 0
TXT = ""
XDip = ""
XGost = ""
sideZ = 0
OLD_recno4=recno()
OLD_select=select()
select 1
OLD_recno1=recno()
go top
window(2,16,21,65,"w+*/bg", box1)
set color to "n */bg,w+*/n"
@ 2,4 say " .......... 0 ^3"
@ 3,4 say " ........... 0 ^3"
@ 4,4 say " ....... 0 ^3"
@ 6,4 say " .............. 0 ."
@ 7,4 say " ........... 0 ."
@ 9,4 say " X ................ 0 "
@10,4 say " Y ................ 0 "
@11,4 say " Z ................ 0 "
@13,4 say " ... (0.2 _ 1)" get koeV picture "99.99"
@14,4 say " ........ (1.2 _ 3)" get koeM picture "99.99"
wopen(19,20,19,62)
@0,0 say ""+replicate("",41)
do while .not. eof()
baza = baza0->base
tmp = norm_or_min()
rec = recno()
if rec > 1
X=X+N_ELEMENT[rec-1]
endif
select 4
use &baza
for j=X+1 to X+N_ELEMENT[rec]
if N[j]#0
goto j-X
do case
- 99 -
case tmp=1 .and. i=1
D=(D_min+D_max)/2
L=(L_min+L_max)/2
H=(H_min+H_max)/2
case tmp=1 .and. i=2
D=D_max
L=L_max
H=H_max
case tmp=1 .and. i=3
D=D_min
L=L_min
H=H_min
case tmp=2
XDip = DIP
select 2
*// go top
seek XDip
if found()
select 4
D=Korpus->D
L=Korpus->L
H=Korpus->H
M=Korpus->M
else
select 4
D=0
L=0
H=0
M=0
endif
endcase
if H=0
Sij=N[j]*D*D
else
Sij=N[j]*D*H
endif
Selem=Selem+Sij
Velem=Velem+Sij*L
sideZ=max(L,sideZ)
Mass=Mass+M
XGost=Gost
select 3
go top
seek XGost
select 4
TXT=TXT+baza0->element+" "+left(Tip+space(15),15)+;
+" "+Standart->Gost+" "+;
+str(N[j],6)+" . "+str(Sij*L,10)+" ^3"+;
+vk
endif
next j
select 1
@0,0 say replicate("",rec*42/Kol)
skip
enddo
wclose() &&
select 1
goto OLD_recno1
baza=baza0->base
select 4
use &baza
select( OLD_select)
goto OLD_recno4
*//wclose()
* --------------------------------------------------------- *
* *
* *
* *
* --------------------------------------------------------- *
@17,14 say " "
@18, 5 say " "
.
- 100 -
do while ok
Vreal=Selem*sideZ
Vusta=Vreal/KoeV
if sideZ != 0
sideX=sqrt(Vusta/sideZ)
else
sideX=0
endif
sideY=sideX
set color to "n */bg,n /w"
@ 2,30 say str(Velem,10)
@ 3,30 say str(Vreal,10)
@ 4,30 say str(Vusta,10)
@ 6,30 say str(Mass,10)
@ 7,30 say str(Mass*KoeM,10)
@ 9,30 say str(sideX,10)
@10,30 say str(sideY,10)
@11,30 say str(sideZ,10)
clear gets
@13,41 get KoeV picture "99.99" range 0.2,1
@14,41 get KoeM picture "99.99" range 1.2,3
j=1
set color to "n/w, n */w"
@ 17, 4 prompt " NewKoe "
@ 17,20 prompt " View "
@ 17,36 prompt " Cancel "
menu to j
do case
case j=0 .or. j=3
exit
case j=1
set cursor on
set color to "n/w,w+/n"
read
set cursor off
case j=2
DO menu_graf
endcase
enddo
TXT= space(24)+" "+vk +vk+;
+replicate("",76) +vk+;
+TXT+;
+replicate("",76) +vk+;
+" .........."+str(Velem,10) +" ^3"+vk+;
+" ..........."+str(Vreal,10) +" ^3"+vk+;
+" ......."+str(Vusta,10) +" ^3"+vk+;
+" .............."+str(Mass,10) +" ." +vk+;
+" ..........."+str(Mass*KoeM,10)+" ." +vk+;
+" .. "+str(KoeV,4,2) +vk+;
+" ....... "+str(KoeM,4,2) +vk+;
+vk+;
+" :" +vk+;
+"X = "+str( sideX,10)+" " +vk+;
+"Y = "+str( sideY,10)+" " +vk+;
+"Z = "+str( sideZ,10)+" " +vk
wclose()
return
* --------------------------------------------------------- *
function norm_or_min
private i, p, x
p=0
for i=1 to Mlcount(POLE,10)
x=Memoline(POLE,10,i)
do case
case at("MIN",x)#0
p=1
- 101 -
case at("DIP",x)#0
p=2
endcase
next i
return( p)
* --------------------------------------------------------- *
procedure menu_text
private i
i=1
window(1,27,4,44,"n */w, w+/n", box1)
do while ok
@ 1,1 prompt " "
@ 2,1 prompt " "
menu to i
do case
case i=0
exit
case i=1
wopen(1,0,23,79)
set color to "w */n"
wbox(box1)
set color to "w+ */n"
memoedit( TXT, 0,1,22,77,.F.,"",240)
wclose()
case i=2
nfile=get_name_file(6,32,nfile)
if lastkey()=13
memowrit( nfile, TXT)
endif
exit
endcase
enddo
wclose()
return
* --------------------------------------------------------- *
procedure menu_graf
private x[4], y[4], MAX
wopen(0,0,24,79)
L_gmode( 16)
L_line( 260, 200, 260, 639, 1) && --- 9 - B+
L_line( 260, 200, 320, 0, 1) && /
L_line( 260, 200, 0, 200, 1) && |
L_stroke( "X", 1, 265, 620, 15, 12, 9)
L_stroke( "Y", 1, 320, 10, 15, 12, 9)
L_stroke( "Z", 1, 0, 210, 15, 12, 9)
MAX=max( sideX, max( sideY, sideZ))
if MAX#0
x[1]=200
y[1]=260
x[2]=200+400*sideX/MAX
y[2]=260-220*sideZ/MAX
x[3]=200-300*sideY/MAX/2
y[3]=260+ 90*sideY/MAX/2
x[4]=200-300*sideY/MAX/2+400*sideX/MAX
y[4]=260+ 90*sideY/MAX/2-210*sideZ/MAX
l_box ( y[1],x[1],y[2],x[2],10)
l_box ( y[3],x[3],y[4],x[4],10)
l_line( y[4],x[4],y[2],x[2],10)
l_line( y[3],x[3],y[1],x[1],10)
l_line( y[3],x[4],y[1],x[2],10)
l_line( y[4],x[3],y[2],x[1],10)
endif
.
- 102 -
inkey(0)
release x,y,max
do SetScreen
wclose()
return
* --------------------------------------------------------- *
procedure menu_quit
private menu
window(1,32,4,52,"n */w ,w+/n")
@ 1,1 prompt " "
@ 2,1 prompt " "
menu to menu
wclose()
if menu=2
set color to "w/n"
L_gmode(3)
quit
endif
return
* --------------------------------------------------------- *
procedure my_help
set key 28 to
window(3,5,19,73,"w+/bg",box1)
set color to "n/bg"
memoedit( memoread("rtv.hlp"), 1,2,15,65,.F.,"",240)
wclose()
set key 28 to my_help
return
* --------------------------------------------------------- *
procedure copyright
@ 1, 3 say " "
@ 3,13 say " 2.0"
@ 5,10 say " . "
@ 6, 7 say " "
@ 7, 8 say " "
@ 9,13 say " .."
return
* --------------------------------------------------------- *
Procedure GetScreen
Private VI, ADAPTER
VI = " "
ADAPTER = 0
ret = pcxVI(vi)
ADAPTER = asc( substr(VI,1,1))
if ret#0 .or. ADAPTER<3
? " . ."
quit
endif
if ADAPTER == 5
VGA = ok
endif
return
* -------------------------------------------------------------- *
Procedure SetScreen
pcxSM(0) && Set Text Mode
if VGA
_SetFnt16() && VGA Font
else
_SetFnt14() && EGA Font
endif
noblink()
return