Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΡΠΈΡΡΠ΅ΠΌΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ
ΠΡ ΠΎΠ΄Π½ΡΠΌΠΈ Π΄Π°Π½Π½ΡΠΌΠΈ Π΄Π»Ρ Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° ΡΠ²Π»ΡΠ΅ΡΡΡ Π·Π°Π΄Π°Π½ΠΈΠ΅ Π½Π° ΠΊΡΡΡΠΎΠ²ΡΡ ΡΠ°Π±ΠΎΡΡ. Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ΡΠ²Π»ΡΡΡΡΡ ΡΠ΅ΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½ΡΠΆΠ½Ρ Π΄Π»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠ°ΡΡΠΈ Π·Π°Π΄Π°Π½ΠΈΡ, ΠΈ Π·Π°Π΄Π°Π½ΠΈΠ΅ Π½Π° ΠΠ , ΠΊΠΎΡΠΎΡΡΠΌ Π½ΡΠΆΠ½ΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎΠ²Π°ΡΡΡΡ ΠΏΡΠΈ Π΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ. ΠΠ° Π²ΡΡ ΠΎΠ΄Π΅ ΠΌΡ ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΠΎΡΡΠ΅Ρ ΠΈ ΠΏΡΠ΅Π·Π΅Π½ΡΠ°ΡΠΈΡ. Π‘ΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅ ΠΠ°Π΄Π°Π½ΠΈΠ΅ Π€ΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΌΠΎΠ΄Π΅Π»Ρ ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅… Π§ΠΈΡΠ°ΡΡ Π΅ΡΡ >
Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΡΠΈΡΡΠ΅ΠΌΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ (ΡΠ΅ΡΠ΅ΡΠ°Ρ, ΠΊΡΡΡΠΎΠ²Π°Ρ, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½Π°Ρ)
Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΡΠΈΡΡΠ΅ΠΌΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ
Π‘ΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅ ΠΠ°Π΄Π°Π½ΠΈΠ΅ Π€ΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΌΠΎΠ΄Π΅Π»Ρ ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π²Ρ ΠΎΠ΄Π½ΡΡ /Π²ΡΡ ΠΎΠ΄Π½ΡΡ Π΄Π°Π½Π½ΡΡ ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΡΡΡΠΊΡΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π Π΅Π·ΡΠ»ΡΡΠ°ΡΡ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π‘ΠΏΠΈΡΠΎΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠΉ Π»ΠΈΡΠ΅ΡΠ°ΡΡΡΡ ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ 1
Π€ΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΠ»Ρ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΠΌΠΎΠ΄Π΅Π»ΡΡ IDEF0. ΠΠ°Π½Π½Π°Ρ ΠΌΠΎΠ΄Π΅Π»Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π½Π°Π³Π»ΡΠ΄Π½ΠΎ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ ΡΠ΅Π»ΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ°, Ρ ΠΎΠ΄ Π΅Π³ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΎΠ² ΠΏΠΎ ΡΡΠ°ΠΏΠ°ΠΌ, ΡΡΠ΅Π΄ΡΡΠ²Π° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠΏΡΠ°Π²Π»ΡΡΡΠΈΠ΅ Π²ΠΎΠ·Π΄Π΅ΠΉΡΡΠ²ΠΈΡ.
Π‘ΠΎΡΡΠ°Π²ΠΈΠΌ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΊΡΡΡΠΎΠ²ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ ΠΏΠΎ ΠΊΡΡΡΡ «Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π‘ΠΠΠ ».
Π ΠΈΡ. 1. ΠΡΠ»Π΅Π²ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΉ Π±Π»ΠΎΠΊ IDEF0 Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ.
ΠΠ°Π½Π½ΡΠΉ Π±Π»ΠΎΠΊ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΡΡ Π·Π°Π΄Π°ΡΡ, ΠΊΠΎΡΠΎΡΡΡ Π½ΡΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ.
ΠΡ ΠΎΠ΄Π½ΡΠΌΠΈ Π΄Π°Π½Π½ΡΠΌΠΈ Π΄Π»Ρ Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° ΡΠ²Π»ΡΠ΅ΡΡΡ Π·Π°Π΄Π°Π½ΠΈΠ΅ Π½Π° ΠΊΡΡΡΠΎΠ²ΡΡ ΡΠ°Π±ΠΎΡΡ. Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ΡΠ²Π»ΡΡΡΡΡ ΡΠ΅ΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½ΡΠΆΠ½Ρ Π΄Π»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠ°ΡΡΠΈ Π·Π°Π΄Π°Π½ΠΈΡ, ΠΈ Π·Π°Π΄Π°Π½ΠΈΠ΅ Π½Π° ΠΠ , ΠΊΠΎΡΠΎΡΡΠΌ Π½ΡΠΆΠ½ΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎΠ²Π°ΡΡΡΡ ΠΏΡΠΈ Π΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ. ΠΠ° Π²ΡΡ ΠΎΠ΄Π΅ ΠΌΡ ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΠΎΡΡΠ΅Ρ ΠΈ ΠΏΡΠ΅Π·Π΅Π½ΡΠ°ΡΠΈΡ.
ΠΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ°ΠΌΠΈ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ²Π»ΡΡΡΡΡ ΠΏΠ΅ΡΡΠΎΠ½Π°Π»ΡΠ½ΡΠΉ ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΌ Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΡΠ°Π±ΠΎΡΠ°, ΡΡΡΠ΄Π΅Π½Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΠ°Π±ΠΎΡΡ ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅.
ΠΠ΅ΡΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅ΠΌ ΡΠΎ, ΡΡΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΎ Π² Π±Π»ΠΎΠΊΠ΅ Π0 (ΠΏΡΠΎΠ²Π΅Π΄Π΅ΠΌ Π΄Π΅ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΡ).
Π ΠΈΡ. 2.IDEF0 — 1 ΡΡΠΎΠ²Π΅Π½Ρ.
ΠΠ· ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΉ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ Π²ΠΈΠ΄Π½ΠΎ, ΡΡΠΎ, ΠΏΠΎΠ»ΡΡΠΈΠ² Π·Π°Π΄Π°Π½ΠΈΠ΅, ΠΌΡ ΠΏΡΠΈΡΡΡΠΏΠ°Π΅ΠΌ ΠΊ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°.
ΠΠ»Ρ Π½Π°ΡΠ°Π»Π° Π°Π½Π°Π»ΠΈΠ·ΠΈΡΡΠ΅ΠΌ, ΠΊΠ°ΠΊΠΈΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π±ΡΠ΄ΡΡ ΡΠ²Π»ΡΡΡΡΡ Π²Ρ ΠΎΠ΄Π½ΡΠΌΠΈ, Π° ΠΊΠ°ΠΊΠΈΠ΅ Π²ΡΡ ΠΎΠ΄Π½ΡΠΌΠΈ.
ΠΠ° Π²ΡΡ ΠΎΠ΄Π΅ Π±Π»ΠΎΠΊΠ° ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ Π΄Π°Π½Π½ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΡΡΠ΅Π±ΡΡΡΡΡ ΠΏΡΠΈ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΏΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ Π·Π°Π΄Π°ΡΠΈ ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ°.
ΠΠ°Π»Π΅Π΅ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΏΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°ΡΠΈ. ΠΠΎ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΡΡΠ°ΠΏΠ° ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ Π΅Ρ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅.
ΠΠ° ΡΡΠ°ΠΏΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Π²Ρ ΠΎΠ΄Π½ΡΡ Π΄Π°Π½Π½ΡΡ ΠΈ ΡΠΎΠ³Π»Π°ΡΠ½ΠΎ Π·Π°Π΄Π°Π½ΠΈΡ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΡΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π·Π°Π΄Π°ΡΠΈ. ΠΡΠΎΠ³ΠΎΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ Π±Π»ΠΎΠΊ-ΡΡ Π΅ΠΌΠ° Π°Π»Π³ΠΎΡΠΈΡΠΌΠ°, ΠΏΠΎ ΠΊΠΎΡΠΎΡΠΎΠΉ Π±ΡΠ΄Π΅Ρ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΡΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
ΠΠ° ΡΡΠ°ΠΏΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΉ ΠΊΠΎΠ΄. ΠΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠΎΠΌ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, ΠΏΠΎΠΌΠΈΠΌΠΎ ΡΡΡΠ΄Π΅Π½ΡΠ°, ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΠ΅Π΄Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Delphi7. ΠΠ° Π²ΡΡ ΠΎΠ΄Π΅ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΡΠ°ΠΏΠ° ΡΠΎΡΠΌΠΈΡΡΠ΅ΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°, ΠΏΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°ΠΌ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΊΠΎΡΠΎΡΠΎΠΉ Π΄Π°Π½Π½ΡΠ΅ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡΡΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΎΡΡΠ΅ΡΠ°.
ΠΠ΄Π΅ΡΡ ΡΠΎΡΠΌΠΈΡΡΠ΅ΡΡΡ ΠΎΡΡΠ΅Ρ ΠΎ ΠΏΡΠΎΠ΄Π΅Π»Π°Π½Π½ΠΎΠΉ ΡΠ°Π±ΠΎΡΠ΅, ΡΠΎΠ³Π»Π°ΡΠ½ΠΎ Π·Π°Π΄Π°Π½ΠΈΡ ΠΈ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡΠΌ, ΠΏΡΠ΅Π΄ΡΡΠ²Π»ΡΠ΅ΠΌΡΠΌ ΠΊ ΠΎΡΠΎΡΠΌΠ»Π΅Π½ΠΈΡ ΠΎΡΡΠ΅ΡΠ°. ΠΡΡΠ΅Ρ ΠΎΡΠΎΡΠΌΠ»ΡΠ΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ MS Word ΠΈ MS Visio. ΠΠ° Π²ΡΡ ΠΎΠ΄Π΅ ΡΡΠΎΠ³ΠΎ ΡΡΠ°ΠΏΠ° ΡΠΎΡΠΌΠΈΡΡΠ΅ΡΡΡ Π³ΠΎΡΠΎΠ²ΡΠΉ ΠΎΡΡΠ΅Ρ ΠΎ ΠΏΡΠΎΠ΄Π΅Π»Π°Π½Π½ΠΎΠΉ ΡΠ°Π±ΠΎΡΠ΅.
Π ΠΈΡ. 3. ΠΠ΅ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΡ ΡΡΠΎΠ²Π½Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ
ΠΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΌΠΎΠ΄Π΅Π»Ρ
ΡΠΈΡΡΠ΅ΠΌΠ° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
Π ΠΈΡ. 4. Π£ΡΡΡΠΎΠΉΡΡΠ²ΠΎ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ ΠΏΠΎΠ²Π΅ΡΡ Π½ΠΎΡΡΠΈ Π΅ΠΌΠΊΠΎΡΡΠΈ
ΠΠ»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΡΠ°ΡΡΡΠΈΡΠ°ΡΡ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΡ ΠΏΠ»ΠΎΡΠ°Π΄Ρ ΠΏΠΎΠ²Π΅ΡΡ Π½ΠΎΡΡΠΈ ΡΠΈΠ»ΠΈΠ½Π΄ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ Π΅ΠΌΠΊΠΎΡΡΠΈ, Π² ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, ΡΠΎΠ³ΠΎ ΡΠΈΠ»ΠΈΠ½Π΄ΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π²Π½ΡΡΡΠ΅Π½Π½ΡΡ ΠΏΠΎΠ²Π΅ΡΡ Π½ΠΎΡΡΡ Π΅ΠΌΠΊΠΎΡΡΠΈ, Π½ΡΠΆΠ½ΠΎ ΡΠΎΡΡΠ°Π²ΠΈΡΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡ ΠΏΠ»ΠΎΡΠ°Π΄ΠΈ S ΠΎΡ Π²ΡΡΠΎΡΡ H ΠΈΠ»ΠΈ ΡΠ°Π΄ΠΈΡΡΠ° ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΡ R.
ΠΠ»ΠΎΡΠ°Π΄Ρ ΠΏΠΎΠ²Π΅ΡΡ Π½ΠΎΡΡΠΈ Π±ΡΠ΄Π΅Ρ ΡΠ°ΡΡΡΠΈΡΡΠ²Π°ΡΡΡΡ ΠΊΠ°ΠΊ ΠΏΠ»ΠΎΡΠ°Π΄Ρ ΡΠΈΠ»ΠΈΠ½Π΄ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΏΠΎΠ²Π΅ΡΡ Π½ΠΎΡΡΠΈ ΠΈ ΠΏΠ»ΠΎΡΠ°Π΄Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΠΉ:
Π§ΡΠΎΠ±Ρ ΠΎΡΡΠ°Π²ΠΈΡΡ ΠΎΠ΄Π½ΠΎ Π½Π΅ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎΠ΅ Π² ΡΡΠ°Π²Π½Π΅Π½ΠΈΠΈ, Π²ΡΡΠ°Π·ΠΈΠΌ Π²ΡΡΠΎΡΡ h ΡΠ΅ΡΠ΅Π· ΠΎΠ±ΡΠ΅ΠΌ Π΅ΠΌΠΊΠΎΡΡΠΈ
(1)
ΠΠΎΠ»ΡΡΠΈΠΌ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡ S®:
(2)
Π§ΡΠΎΠ±Ρ Π½Π°ΠΉΡΠΈ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ ΡΡΠ½ΠΊΡΠΈΠΈ S, Π½Π°ΠΉΠ΄Π΅ΠΌ Π΅Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΡΡ ΠΈ ΠΏΡΠΈΡΠ°Π²Π½ΡΠ΅ΠΌ ΠΊ Π½ΡΠ»Ρ:
(3)
Π Π΅ΡΠ΅Π½ΠΈΠ΅ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Π² ΠΎΠ±ΡΠ΅ΠΌ Π²ΠΈΠ΄Π΅: ;
Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, ΠΏΠ»ΠΎΡΠ°Π΄Ρ Π±ΡΠ΄Π΅Ρ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½Π° ΠΏΡΠΈ
(4)
ΠΠ»Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π²ΡΡΠΎΡΠ° h, Π΄Π»Ρ Π΅Ρ ΡΠ°ΡΡΠ΅ΡΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΠΎΡΠΌΡΠ»Ρ (1).
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π²Ρ ΠΎΠ΄Π½ΡΡ /Π²ΡΡ ΠΎΠ΄Π½ΡΡ Π΄Π°Π½Π½ΡΡ ΠΡ ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π΄Π»Ρ ΡΠ°ΡΡΠ΅ΡΠ° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΡΠΈΠ»ΠΈΠ½Π΄ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ Π΅ΠΌΠΊΠΎΡΡΠΈ:
Β· ΠΠ±ΡΠ΅ΠΌ V
Β· ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΠΈ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΡΠ°Π΄ΠΈΡΡΡ ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΡ
Β· ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½Π°Ρ ΠΈ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½Π°Ρ Π²ΡΡΠΎΡΠ°
Β· ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΠΈ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΠΎΠ±ΡΠ΅ΠΌ ΠΡΡ ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅:
Β· Π²ΡΡΠΎΡΠ° h
Β· ΡΠ°Π΄ΠΈΡΡ ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΡ R
Β· ΠΏΠ»ΠΎΡΠ°Π΄Ρ ΠΏΠΎΠ²Π΅ΡΡ Π½ΠΎΡΡΠΈ S
ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π²Π²ΠΎΠ΄ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΌΠ° Π΅ΠΌΠΊΠΎΡΡΠΈ ΠΈ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ Π½Π° Π²ΡΡ ΠΎΠ΄Π΅ ΠΎΡΠΊΡΡΡΡΠ΅ ΡΠ°ΠΉΠ» ΡΠ΅ΡΡΠ΅ΠΆΠ° (*.cdw) ΠΈ ΡΠ°ΠΉΠ» 3D-ΡΠ±ΠΎΡΠΊΠΈ (*.a3d)
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΡΡΡΠΊΡΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
Π ΠΈΡ. 5 ΠΠ»ΠΎΠΊ-ΡΡ Π΅ΠΌΠ° ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ ΡΠ°ΡΡΠ΅ΡΠ°
V — Π·Π°Π΄Π°Π½Π½ΡΠΉ ΠΎΠ±ΡΡΠΌ
h — Π²ΡΡΠΎΡΠ° Π΅ΠΌΠΊΠΎΡΡΠΈ
S — ΠΏΠ»ΠΎΡΠ°Π΄Ρ ΠΏΠΎΠ²Π΅ΡΡ Π½ΠΎΡΡΠΈ
R — ΡΠ°Π΄ΠΈΡΡ ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΡ
ΠΠΎΠ΄ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡΡΡ Π² Π΄Π²ΡΡ ΡΠ°ΠΉΠ»Π°Ρ :
KompasAPI.pas — ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ ΠΠΎΠΌΠΏΠ°Ρ 3D. Π ΡΡΠΎΠΌ ΠΌΠΎΠ΄ΡΠ»Π΅ ΠΎΡΠΊΡΡΠ²Π°ΡΡΡΡ Π²ΡΠ΅ Π΄Π΅ΡΠ°Π»ΠΈ ΡΠ±ΠΎΡΠΊΠΈ, ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ R ΠΈ h ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ Π²Π½Π΅ΡΠ½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΠ±ΠΎΡΠΊΠΈ ΠΈ Ρ ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠ±ΠΎΡΠΊΠ° ΠΏΠ΅ΡΠ΅ΡΡΡΠ°ΠΈΠ²Π°Π΅ΡΡΡ.
Unit1.pas — ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΡΠΎΠ±ΡΡΠΈΠΉ, ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° ΡΠ°ΡΡΠ΅ΡΠ° calc, ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ, Π²ΡΠ²ΠΎΠ΄ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² ΡΠ°ΡΡΠ΅ΡΠ°.
ΠΠ½ΠΎΠΏΠΊΠ° Π Π°ΡΡΠ΅Ρ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ Π²Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ, Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ ΡΠ°ΡΡΠ΅ΡΠ° calc, Π΄Π΅Π»Π°Π΅Ρ Π΄ΠΎΡΡΡΠΏΠ½ΡΠΌΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΠΎΠ΄Π΅Π»Ρ ΠΈ Π§Π΅ΡΡΠ΅ΠΆ.
ΠΊΠ½ΠΎΠΏΠΊΠ° ΠΠΎΠ΄Π΅Π»Ρ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΠΌΠΎΠ΄ΡΠ»Ρ KompasAPI. pas, ΠΊΠΎΡΠΎΡΡΠΉ Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠΉ ΠΠΎΠΌΠΏΠ°Ρ3D ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΏΠ΅ΡΠ΅ΡΡΡΠΎΠ΅Π½ΠΈΠ΅ ΡΠ±ΠΎΡΠΊΠΈ Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΡΠΌΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ.
ΠΊΠ½ΠΎΠΏΠΊΠ° Π§Π΅ΡΡΠ΅ΠΆ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΠΌΠΎΠ΄ΡΠ»Ρ KompasAPI. pas, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΏΠ΅ΡΠ΅ΡΡΡΠΎΠ΅Π½ΠΈΠ΅ ΡΠ΅ΡΡΠ΅ΠΆΠ° Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΠ°Π½Π΅Π΅ ΠΏΠΎΡΡΡΠΎΠ΅Π½Π½ΠΎΠΉ ΡΠ±ΠΎΡΠΊΠΈ Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΡΠΌΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ.
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
Π ΠΈΡ. 5. ΠΠΊΠ½ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅
ΠΠΎΡΠ»Π΅ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° ΡΡΠ°Π½ΠΎΠ²ΡΡΡΡ Π΄ΠΎΡΡΡΠΏΠ½Ρ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΠΉ.
Π ΠΈΡ. 6. ΠΠΊΠ½ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΏΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ°ΡΡΠ΅ΡΠ°
ΠΠΎΡΠ»Π΅ Π·Π°ΠΏΡΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΎΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π²Π²Π΅ΡΡΠΈ Π² ΠΏΠΎΠ»Π΅ Π²Π²ΠΎΠ΄Π° Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΌΠ° (ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ°Π²Π½ΠΎ 1000), ΠΠ°ΡΠ΅ΠΌ Π½Π°ΠΆΠ°ΡΡ ΠΊΠ½ΠΎΠΏΠΊΡ Π Π°ΡΡΠ΅Ρ. ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡΡ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π·Π°Π΄Π°ΡΠΈ. ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΌΠΎΠΆΠ΅Ρ Π½Π°ΠΆΠ°ΡΡ Π½Π° Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ ΡΠ΅ΠΏΠ΅ΡΡ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΠΎΠ΄Π΅Π»Ρ ΠΈ Π§Π΅ΡΡΠ΅ΠΆ, ΡΡΠΎΠ±Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΠ»ΠΈΡΡ Π²ΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ. ΠΠΎΠΌΠΏΠ°Ρ3D Π·Π°ΠΏΡΡΡΠΈΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ (Π² ΡΠ»ΡΡΠ°Π΅ Π΅Π³ΠΎ ΠΏΡΠΈΡΡΡΡΡΠ²ΠΈΡ Π½Π° ΠΌΠ°ΡΠΈΠ½Π΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ) .
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
Π ΠΈΡ. 7. ΠΠΊΠ½ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°ΠΌΠΈ ΡΠ°ΡΡΠ΅ΡΠ°
Π ΠΈΡ. 8 ΠΠΊΠ½ΠΎ «ΠΠΎΠΌΠΏΠ°Ρ3D» Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½Π½ΡΠΌ ΡΠ΅ΡΡΠ΅ΠΆΠΎΠΌ
Π ΠΈΡ. 9 ΠΠΊΠ½ΠΎ «ΠΠΎΠΌΠΏΠ°Ρ3D» Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½Π½ΠΎΠΉ ΡΠ±ΠΎΡΠΊΠΎΠΉ
1. ΠΠΎΠ½ΡΠΏΠ΅ΠΊΡ Π»Π΅ΠΊΡΠΈΠΉ ΠΏΠΎ Π΄ΠΈΡΡΠΈΠΏΠ»ΠΈΠ½Π΅ «Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π‘ΠΠΠ », ΠΏΡΠΎΡ., Π΄ΠΎΡ. Π―ΠΌΠ½ΠΈΠΊΠΎΠ²Π° Π. Π., 2010 Π³.;
2. ΠΠ΅ΡΠΎΠ΄ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠΊΠ°Π·Π°Π½ΠΈΡ ΠΏΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΡΡΡΠΎΠ²ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ ΠΏΠΎ ΠΊΡΡΡΡ «Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π‘ΠΠΠ », ΠΏΡΠΎΡ., Π΄ΠΎΡ. Π―ΠΌΠ½ΠΈΠΊΠΎΠ²Π° Π. Π., 2010 Π³.
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ 1
ΠΠΎΠ΄ ΠΌΠΎΠ΄ΡΠ»Ρ Unit1. pas
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComObj, OleCtrls, ksTLB, ComCtrls, StdCtrls, KompasAPI, DB,
Grids, DBGrids, ADODB, ExtCtrls, Buttons, jpeg, XPMan, math;
type
TForm1 = class (TForm)
Button4: TButton;
LabeledEdit1: TLabeledEdit;
OD1: TOpenDialog;
m: TMemo;
Button1: TButton;
Button2: TButton;
OD2: TOpenDialog;
procedure Button4Click (Sender: TObject);
procedure Button2Click (Sender: TObject);
procedure Button1Click (Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
iDocument2D1: ksDocument2D ;
r, v, h, s: real;
implementation
{$R *.dfm}
procedure calc;
begin
if (v>=990) and (v<=1010)then
begin
r:=power ((v/pi), 1/3) ;
s:=2*v/r+pi*power (r, 2);
h:=v/(pi*r*r) ;
with form1. m do
begin
lines.Add ('—-Π Π΅Π·ΡΠ»ΡΡΠ°ΡΡ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ—-');
lines.Add ('ΠΠ°Π΄Π°Π½Π½ΡΠΉ ΠΎΠ±ΡΠ΅ΠΌ Π΅ΠΌΠΊΠΎΡΡΠΈ: '+floattostr (v));
lines.Add ('ΠΡΡΠΎΡΠ°: '+floattostr (h));
lines.Add ('Π Π°Π΄ΠΈΡΡ Π²ΡΠ°ΡΠ΅Π½ΠΈΡ: '+floattostr®);
lines.Add ('ΠΠ»ΠΎΡΠ°Π΄Ρ ΠΏΠΎΠ²Π΅ΡΡ Π½ΠΎΡΡΠΈ: '+floattostr (s));
end;
end
else
MessageDlg ('ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΌΠ° Π²ΡΡ ΠΎΠ΄ΠΈΡ Π·Π° Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΠ΅ ΠΏΡΠ΅Π΄Π΅Π»Ρ!', mtWarning,[mbOk], 0);
end;
procedure TForm1. Button4Click (Sender: TObject);
VAR
c:TStringList;
t:TPartVars;
function full (ch:boolean):real;
begin
if ch then result:=0
else result:=1;
end;
BEGIN
if OD1. Execute then
StartKompas (OD1.FileName);
c:=TStringList.Create;
ReadParts (c);
t:=GetPartVars (c[1]);
ChangeVar ('','h', h);
ChangeVar ('','r', r);
t:=GetPartVars (c[1]);
c.Free ;
Button1.Enabled:=true
end;
procedure TForm1. Button2Click (Sender: TObject);
begin
m.Clear ;
try
V:=strtofloat (LabeledEdit1.Text);
except
MessageDlg ('ΠΠ΅ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΡΠΉ Π²Π²ΠΎΠ΄!', mtWarning,[mbOk], 0);
end;
calc;
button4.Enabled:=true;
end;
procedure TForm1. Button1Click (Sender: TObject);
begin
if OD2. Execute then
StartKompas2d (OD2.FileName);
iDocument2D1 := KompasAPI. doc2d;
end;
end.
ΠΠΎΠ΄ ΠΌΠΎΠ΄ΡΠ»Ρ KompasAPI. pas
unit KompasAPI;
interface
uses ComObj, OleCtrls, ksTLB, Classes, SysUtils;
TYPE TPartVar=RECORD
VarName:STRING;
VarNote:STRING;
VarValue:REAL
END;
TPartVars=ARRAY OF TPartVar;
VAR
kompas:KompasObject;
Doc:ksDocument3D;
KompasHandle:THandle;
prt:TStringList; // ΡΠΏΠΈΡΠΎΠΊ ΠΈΠΌΠ΅Π½ Π΄Π΅ΡΠ°Π»Π΅ΠΉ
partvar:TPartVars;
iDocument2D: ksDocument2D;
doc2d:ksDocument2D;
function StartKompas (filename:string):boolean;
function StartKompas2d (filename:string):boolean;
procedure ReadParts (s:TStringList);
function GetPartVars (partname:STRING):TPartVars;
PROCEDURE ChangeVar (partname, varname: STRING; value_:REAL);
implementation
function StartKompas (filename:string):boolean;
const ka='Kompas.Application.5';
begin
// ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΊ ΠΠΠΠΠΠ‘ 3D
Result:=true;
try
kompas:=KompasObject (GetActiveOleObject (ka)); // Π΅ΡΠ»ΠΈ ΡΠΆΠ΅ Π·Π°ΠΏΡΡΠ΅Π½
except
try
kompas:=KompasObject (CreateOleObject (ka)); // Π΅ΡΠ»ΠΈ Π½Π΅ Π·Π°ΠΏΡΡΠ΅Π½
except
result:=false;
exit
end
end;
// ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΡΡΠ»ΠΊΠΈ Π½Π° ΠΎΠΊΠ½ΠΎ ΠΠΠΠΠΠ‘
KompasHandle := kompas. ksGetHWindow;
// Π΄Π΅Π»Π°Π΅ΠΌ ΠΎΠΊΠ½ΠΎ ΠΠΠΠΠΠ‘Π° Π²ΠΈΠ΄ΠΈΠΌΡΠΌ
kompas.Visible:=true;
// ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΡΡΠ»ΠΊΠΈ Π½Π° ΡΠ΅ΠΊΡΡΠΈΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ ΠΠΠΠΠΠ‘Π°
Doc := ksDocument3D (kompas.ActiveDocument3D);
// Π΅ΡΠ»ΠΈ ΡΠ°ΠΊΠΎΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ Π΅ΡΡΡ…
if Assigned (Doc) then
// ΡΠΎ Π·Π°ΠΊΡΡΠ²Π°Π΅ΠΌ Π΅Π³ΠΎ
Doc.close;
// ΡΠΎΠ·Π΄Π°Π΅ΠΌ Π½ΠΎΠ²ΡΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ…
Doc := ksDocument3D (kompas.Document3D);
// ΠΈ Π·Π°Π³ΡΡΠΆΠ°Π΅ΠΌ Π² Π½Π΅Π³ΠΎ ΡΠ±ΠΎΡΠΊΡ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ filename
Doc.Open (Trim (filename), False);
// Π°ΠΊΡΠΈΠ²ΠΈΡΡΠ΅ΠΌ API
kompas.ActivateControllerAPI
end;
function StartKompas2d (filename:string):boolean;
//var doc2d: ksDocument2D;
const ka='Kompas.Application.5';
begin
// ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΊ ΠΠΠΠΠΠ‘ 3D
Result:=true;
try
kompas:=KompasObject (GetActiveOleObject (ka)); // Π΅ΡΠ»ΠΈ ΡΠΆΠ΅ Π·Π°ΠΏΡΡΠ΅Π½
except
try
kompas:=KompasObject (CreateOleObject (ka)); // Π΅ΡΠ»ΠΈ Π½Π΅ Π·Π°ΠΏΡΡΠ΅Π½
except
result:=false;
exit
end
end;
// ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΡΡΠ»ΠΊΠΈ Π½Π° ΠΎΠΊΠ½ΠΎ ΠΠΠΠΠΠ‘
KompasHandle := kompas. ksGetHWindow;
// Π΄Π΅Π»Π°Π΅ΠΌ ΠΎΠΊΠ½ΠΎ ΠΠΠΠΠΠ‘Π° Π²ΠΈΠ΄ΠΈΠΌΡΠΌ
kompas.Visible:=true;
// ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΡΡΠ»ΠΊΠΈ Π½Π° ΡΠ΅ΠΊΡΡΠΈΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ ΠΠΠΠΠΠ‘Π°
Doc2d := ksDocument2D (kompas.ActiveDocument2D);
// Π΅ΡΠ»ΠΈ ΡΠ°ΠΊΠΎΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ Π΅ΡΡΡ…
if Assigned (Doc2d) then
// ΡΠΎ Π·Π°ΠΊΡΡΠ²Π°Π΅ΠΌ Π΅Π³ΠΎ
Doc2d.ksCloseDocument;
// ΡΠΎΠ·Π΄Π°Π΅ΠΌ Π½ΠΎΠ²ΡΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ…
doc2d:=ksDocument2D (Kompas.Document2D);
doc2d.ksOpenDocument (FileName, false);
// Π°ΠΊΡΠΈΠ²ΠΈΡΡΠ΅ΠΌ API
kompas.ActivateControllerAPI
end;
procedure ReadParts (s:TStringList);
var i, num: word;
parts:ksPartCollection;
part:ksPart;
begin
// ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΡΡΠ»ΠΊΠΈ Π½Π° ΡΠΏΠΈΡΠΎΠΊ Π΄Π΅ΡΠ°Π»Π΅ΠΉ
parts:=ksPartCollection (doc.PartCollection (true));
// ΡΠΈΡΠ»ΠΎ Π΄Π΅ΡΠ°Π»Π΅ΠΉ
num:=parts.GetCount;
s.Clear;
// Π΄Π΅ΡΠ°Π»Ρ Ρ Π½ΠΎΠΌΠ΅ΡΠΎΠΌ -1 Π΅ΡΡΡ ΡΠ°ΠΌΠ° ΡΠ±ΠΎΡΠΊΠ°
s.Add (ksPart (doc.GetPart (-1)).name);
// ΡΠΈΠΊΠ» ΠΏΠΎ Π΄Π΅ΡΠ°Π»ΡΠΌ
for i:=0 to num-1 do
begin
// ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΡΡΠ»ΠΊΠΈ Π½Π° Π΄Π΅ΡΠ°Π»Ρ Π½ΠΎΠΌΠ΅Ρ i
part:=ksPart (parts.GetByIndex (i));
// ΠΏΠΎΠΌΠ΅ΡΠ°Π΅ΠΌ ΠΈΠΌΡ Π΄Π΅ΡΠ°Π»ΠΈ Π² ΡΠΏΠΈΡΠΎΠΊ
s.Add (part.name);
end
end;
function GetPartVars (partname:STRING):TPartVars;
var vr: ksVariableCollection;
parts:ksPartCollection; // ΡΠ±ΠΎΡΠΊΠ°
part:ksPart;
univar:ksVariable;
j, numpart: INTEGER;
begin
parts:=ksPartCollection (doc.PartCollection (true));
// ΡΡΡΠ»ΠΊΠ° Π½Π° Π΄Π΅ΡΠ°Π»Ρ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ partname
if partname='' then
part:=ksPart (doc.GetPart (-1)) // ΡΠ±ΠΎΡΠΊΠ°
else
part:=ksPart (parts.GetByName (partname, True, True));
// ΡΡΡΠ»ΠΊΠ° Π½Π° ΡΠΏΠΈΡΠΎΠΊ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π΄Π΅ΡΠ°Π»ΠΈ
vr:=ksVariableCollection (part.VariableCollection);
// ΡΠΈΠΊΠ» ΠΏΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ Π΄Π΅ΡΠ°Π»ΠΈ
numpart:=vr.GetCount;
SetLength (result, numpart);
for j:=0 to numpart-1 do
begin
// ΡΡΡΠ»ΠΊΠ° Π½Π° ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
univar:=ksVariable (vr.GetByIndex (j));
with result[j] do
begin
VarName:=univar.name;
VarNote:=univar.note;
VarValue:=univar.value
end
end
end;
PROCEDURE ChangeVar (partname, varname: STRING; value_:REAL);
VAR vr: ksVariableCollection;
parts:ksPartCollection;
part:ksPart;
vvv:ksVariable;
Feature:ksFeature;
BEGIN
// Π‘ΠΏΠΈΡΠΎΠΊ Π΄Π΅ΡΠ°Π»Π΅ΠΉ
parts:=ksPartCollection (doc.PartCollection (true));
// ΠΡΠ΅ΠΌ Π΄Π΅ΡΠ°Π»Ρ ΠΈΠ»ΠΈ ΡΠ±ΠΎΡΠΊΡ
if partname='' then
begin
Part:=ksPart (Doc.GetPart (-1));
Feature:=ksFeature (Part.GetFeature);
vr:=ksVariableCollection (Feature.VariableCollection);
end
else
begin
part:=kspart (parts.GetByName (partname, true, true));
vr:=ksVariableCollection (part.VariableCollection)
end;
// ΠΡΠ΅ΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ
vvv:=ksVariable (vr.GetByName (varname, true, true));
// ΠΠ°ΡΠΈΠ½Π°Π΅ΠΌ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ Π΄Π΅ΡΠ°Π»Ρ
if partname<>'' then
part.BeginEdit;
// ΠΠ΅Π½ΡΠ΅ΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ
vvv.value:=value_;
// ΠΠ±Π½ΠΎΠ²Π»ΡΠ΅ΠΌ ΠΌΠΎΠ΄Π΅Π»Ρ
vr.refresh;
part.RebuildModel;
part.Update;
// ΠΠ°Π²Π΅ΡΡΠ°Π΅ΠΌ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π΅ΡΠ°Π»ΠΈ Ρ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ
if partname<>'' then
part.EndEdit (true)
else
begin
doc.RebuildDocument;
doc.UpdateDocumentParam
end;
// ΠΠ±Π½ΠΎΠ²Π»ΡΠ΅ΠΌ ΡΠ±ΠΎΡΠΊΡ
parts.refresh
END;
initialization
begin
// Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΠΈ ΠΏΠΎΠ΄ ΠΌΠ°ΡΡΠΈΠ²Ρ
prt:=TStringList.Create;
SetLength (partvar, 0)
end;
finalization
begin
// ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΠΈ
finalize (partvar);
prt.Free
end;
end.