ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² написании студСнчСских Ρ€Π°Π±ΠΎΡ‚
АнтистрСссовый сСрвис

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° систСмы Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ проСктирования

ΠšΡƒΡ€ΡΠΎΠ²Π°ΡΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈΠ£Π·Π½Π°Ρ‚ΡŒ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΠΌΠΎΠ΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹

Π’Ρ…ΠΎΠ΄Π½Ρ‹ΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ для Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° являСтся Π·Π°Π΄Π°Π½ΠΈΠ΅ Π½Π° ΠΊΡƒΡ€ΡΠΎΠ²ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ. Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ΡΠ²Π»ΡΡŽΡ‚ΡΡ тСорСтичСскиС свСдСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½ΡƒΠΆΠ½Ρ‹ для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ матСматичСской части задания, ΠΈ Π·Π°Π΄Π°Π½ΠΈΠ΅ Π½Π° ΠšΠ , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π½ΡƒΠΆΠ½ΠΎ Ρ€ΡƒΠΊΠΎΠ²ΠΎΠ΄ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΏΡ€ΠΈ Π΅Ρ‘ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ. На Π²Ρ‹Ρ…ΠΎΠ΄Π΅ ΠΌΡ‹ ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΠΎΡ‚Ρ‡Π΅Ρ‚ ΠΈ ΠΏΡ€Π΅Π·Π΅Π½Ρ‚Π°Ρ†ΠΈΡŽ. Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅ Π—Π°Π΄Π°Π½ΠΈΠ΅ Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ описаниС процСсса Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠœΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΠ°Ρ модСль ОписаниС… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° систСмы Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ проСктирования (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° систСмы Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ проСктирования

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅ Π—Π°Π΄Π°Π½ΠΈΠ΅ Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ описаниС процСсса Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠœΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΠ°Ρ модСль ОписаниС Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ…/Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… ОписаниС структуры ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ОписаниС Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Бписок ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ 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.

ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ вСсь тСкст
Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ