. , , ,

,,,

- —

:

"

- "

,

.-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-SPAN│STEINER│STEINER-MINVIA│

├────────────────────┼───────┼────────┼───────┼──────────────┤

│ 蠠 │ 100│ 100│ 100│ 100 │

│ ⠠ │ 107746│ 107025│ 100975│ 101575 │

│ │ 23│ 16│ 22│ 25 │

│ (.)│ 01.25│ 01.28│ 01.38│ 01.45 │

└────────────────────┴───────┴────────┴───────┴──────────────┘

2.3.

┌──────────────────────┬─────┬────────┬───────┬──────────────┐

│ 񠠠 │DAISY│MIN-SPAN│STEINER│STEINER-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-SPAN│STEINER│STEINER-MINVIA│

├────────────────────┼───────┼────────┼───────┼──────────────┤

│ 蠠 │ 99.4│ 100│ 100│ 100 │

│ ⠠ │ 150975│ 150222│ 139999│ 145439 │

│ │ 78│ 77│ 64│ 59 │

│ (.)│ 03.48│ 02.41│ 03.15│ 03.18 │

└────────────────────┴───────┴────────┴───────┴──────────────┘

2.4.

┌──────────────────────┬─────┬────────┬───────┬──────────────┐

│ 񠠠 │DAISY│MIN-SPAN│STEINER│STEINER-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

* └──│────│─────│────│───│───│──┘ 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

: " - " ,

 

 

 

! , , , .
. , :