«  »

Разработка и исследование подсистемы учебно-исследовательской САПР РЭА (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

?
?
?