Թիմկոնֆիգուրացիայի օբյեկտ է, որով մշակողը կարող է նկարագրել օգտատիրոջ կողմից նախատեսված գործողությունները:
Կան ընդհանուր հրամաններ՝ հրամաններ, որոնք հատուկ չեն օբյեկտի կամ օգտագործվում են գործողություններ կատարելու համար այն օբյեկտների վրա, որոնք չեն օգտագործում ստանդարտ հրամաններ:
Հրամաններ կարող են գոյություն ունենալ նաև առանձին կազմաձևման օբյեկտների համար: Դրանք օգտագործվում են այս կոնկրետ օբյեկտի հետ կապված գործողություններ կատարելու համար:
Հրամանները կարող են պարամետրացվել, այսինքն՝ նրանք կարող են իրենց ալգորիթմում օգտագործել հարթակի կողմից փոխանցված որոշ արժեք։ Այս արժեքի տեսակը սահմանվում է կոնֆիգուրատորում, և նման պարամետրացված հրամանը ցուցադրվում է միայն այն ձևերում, որոնք ունեն նույն տեսակի մանրամասներ, ինչ հրամանի պարամետրը:
Հրամանի կատարած գործողությունները նկարագրված են հրամանի մոդուլում ներկառուցված լեզվով:
Օգտակար հղումներ.
- Կազմաձևման օբյեկտներ
- Զարգացման գործիքներ.
Հրաման
Թիմգործողություն է, որը օգտվողը կարող է կատարել ծրագրում: Բոլոր հրամանները կարելի է դասակարգել մի քանի ձևով.
Ստանդարտ և մշակողի կողմից ստեղծված հրամաններ
Ինչ վերաբերում է այն բանին, թե ինչպես է հրամանը հայտնվել կազմաձևում, բոլոր հրամանները կարելի է բաժանել.
- Ստանդարտ,
- Ստեղծվել է մշակողի կողմից:
Ստանդարտ հրամանները ավտոմատ կերպով տրամադրվում են հարթակի կողմից: Կազմաձևման օբյեկտները, ինչպես նաև ձևերի ընդլայնումները և տարրերի ընդլայնումները, կարող են մատակարարել ստանդարտ հրամաններ Աղյուսակ, գտնվում է ձևի մեջ: Կարդալ ավելին...
Օրինակ, գրացուցակ Կողմնակիցներկարող է հրամաններ տալ Կողմնակիցներ, Կապալառու՝ ստեղծելԵվ Կապալառուներ. ստեղծել խումբ.
Մշակողը կարող է ինքնուրույն ստեղծել կամայական հրամաններ կոնֆիգուրացիայի մեջ: Նա կարող է ավելացնել Command օբյեկտ ճյուղին Ընդհանուր են, ավելացրեք Command օբյեկտ որոշակի կազմաձևման օբյեկտին կամ նկարագրեք հրամանը որպես ընթացակարգ ներկառուցված լեզվով հատուկ ձևով: Կարդալ ավելին...
Օրինակ, ընդհանուր հրամանները կարող են ավելացվել Տեղադրեք շտրիխ կոդերի սկաները, Շտրիխ կոդերի սկաների կարգավորումեւ ուրիշներ.
Նավիգացիայի և գործողությունների հրամաններ
Ինչ վերաբերում է հրամանի կատարման արդյունքին, բոլոր հրամանները կարելի է բաժանել.
- Նավիգացիոն հրամաններ
- Գործողությունների հրամաններ.
Նավիգացիայի հրամանները բացում են ձևերը ընթացիկ պատուհանում: Որպես կանոն, այսպես է կատարվում անցում որոշ ցուցակների։ Կարդալ ավելին...
Օրինակ, նավիգացիոն հրամանը Պահեստներհիմնական պատուհանում կբացի պահեստների ցանկը:
Գործողությունների հրամանի կատարման արդյունքում բացվում է օժանդակ պատուհան։ Որպես կանոն, այսպես եք գնում օբյեկտի ձևին կամ հաշվետվության/մշակման ձևին։ Կարդալ ավելին...
Օրինակ՝ գործողության հրաման Բաժնետոմսերկբացի նոր պահեստի տվյալները խմբագրելու օժանդակ պատուհան:
Անկախ և պարամետրիզացվող հրամաններ
Իրենց ներքին կառուցվածքի հետ կապված բոլոր հրամանները կարելի է բաժանել.
- Անկախ,
- Պարամետրիզացվող
Անկախ հրամանները չեն պահանջում որևէ լրացուցիչ տեղեկատվություն կատարման համար: Կարդալ ավելին...
Օրինակ՝ անկախ թիմ Կողմնակիցներչի պահանջում որևէ լրացուցիչ տեղեկատվություն դրա կատարման համար: Այն պարզապես բացում է բոլոր կոնտրագենտների ցուցակը:
Պարամետրիզացվող հրամանները կատարելու համար անհրաժեշտ է լրացուցիչ տեղեկատվություն՝ հրամանի պարամետրի արժեքը: Կարդալ ավելին...
Օրինակ՝ պարամետրիզացվող հրամանը Ընթացիկ հաշիվներ (Object.Supplier)բացում է կոնկրետ կոնտրագենտի ընթացիկ հաշիվների ցանկը: Հետևաբար, այն իրականացնելու համար դուք պետք է իմանաք, թե որ կողմի ընթացիկ հաշիվները պետք է բացվեն: Այսինքն, կոնտրագենտը այս հրամանի պարամետրն է:
Գլոբալ հրամաններ և տեղական ձևի հրամաններ
Ըստ հրամանների որոշակի ձևի հարաբերության՝ բոլոր հրամանները կարելի է բաժանել.
Ընդհանուր հրամաններ- հարթակի մեխանիզմ, որը նախատեսված է 1C 8.3 կոնֆիգուրացիայի հաճախակի օգտագործվող հրամանները նկարագրելու համար:
Ընդհանուր կամ գլոբալ հրամանները հարմար են օգտագործելու համար, եթե մի հրաման անհրաժեշտ է բազմաթիվ կոնֆիգուրացիայի օբյեկտների համար: Օրինակ՝ փաստաթղթերի ենթակայության կառուցվածքը ցուցադրելու կոճակ, փաստաթղթերի տեղադրում ցուցադրելու հրաման, օբյեկտի փոփոխությունների մասին հաշվետվություն։
Հրամանին կարող եք պարամետրեր փոխանցել, օրինակ, թե որ օբյեկտի ձևից է այն կոչվում։
1C-ում ընդհանուր հրամանի կարգավորում և հատկություններ
Նոր հրաման ավելացնելը և ընդհանուր ձևը հարմարեցնելը բավականին պարզ է, եկեք ավելի մանրամասն նայենք այս գործընթացին.
Ստացեք 267 վիդեո դասեր 1C-ում անվճար.
- Խումբ— ապագա հրամանի գտնվելու վայրը ինտերֆեյսի վրա:
- Հրամանի պարամետրի տեսակը— սահմանում է օբյեկտների մի շարք, որոնցում կցուցադրվի ապագա հրամանը:
- Պարամետրերի օգտագործման ռեժիմ- սահմանում է մեկ կամ մի քանի արժեքներ որպես հրամանի պարամետր փոխանցելու ունակություն:
- Փոփոխում է տվյալները— եթե վանդակը նշված է, ապա երբ հրամանը կատարվի, ձևը կվերահաշվարկվի սերվերից:
- Հրամանի մոդուլ— հրամանի կատարման կարգավորիչ, որը կատարվում է հաճախորդի վրա:
Հրամանի մոդուլի օրինակ.
&Հաճախորդի ընթացակարգի վրա Հրամանների մշակում (Հրամանի պարամետր, հրամանի կատարման պարամետրեր) Եթե արժեքը լրացված է (հրամանի պարամետր), ապա OpenForm( «Ընդհանուր ձև. ենթակայության կառուցվածք», Նոր կառուցվածք («Ընտրության օբյեկտ» , Հրամանի պարամետր) , Հրամանի կատարման պարամետրեր։ Աղբյուր, Հրամանի կատարման պարամետրեր: Աղբյուր. Եզակիության բանալի, հրամանի կատարման պարամետրեր: Պատուհան); Վերջ Եթե ; Ընթացակարգի ավարտըԱյստեղ CommandParameter-ն այն օբյեկտն է, որը կանչում է հրամանը: Իսկ Command Execution Parameters-ում կառուցվածքը, որը նկարագրում է Աղբյուրը (կոչվող ձևը), պատուհանը (ClientApplication Window), եզակիությունը, ցույց է տալիս՝ փնտրե՞լ արդեն բաց ձևը, թե՞ ոչ:
1C հրամանատարական խմբեր
Օգտագործելով հրամանը ԸՆԴՄԻՋՈՒՄօբյեկտը կոտրվում է օգտագործողի կողմից սահմանված կետում կամ կետերում: Օգտագործելով հրամաններ ՇԱՄՖԵՐ (CHAMFER)Եվ ՖԻԼԵ) ստեղծվում են փորվածքներ և ֆիլեներ
Հաճախ ավելի հեշտ է նկարել մեկ երկար հատված, այնուհետև այն բաժանել երկու կամ ավելի, քան մի քանի հատված նկարելը: Թիմ ԸՆԴՄԻՋՈՒՄԱռավել հաճախ օգտագործվում է դռների և պատուհանների բացվածքներում պատերը քանդելու համար ճարտարապետական պլաններ ստեղծելիս: Եթե օբյեկտի վրա նշեք երկու կետ, AutoCADկջնջի ամեն ինչ արանքում: Սովորաբար, այս կետերը սահմանելու համար օգտագործվում է օբյեկտի snap: Երբեմն դուք կարող եք օգտագործել հրամանը դրա համար TRIMբայց եթե դժվարանում եք նշել կտրող եզրերը, նախընտրելի է օգտագործել հրամանը ԸՆԴՄԻՋՈՒՄ.
Հետևյալ AutoCAD օբյեկտները կարող են կոտրվել՝ գծեր, պոլիգծեր, գծեր, xlines, ճառագայթներ, շրջաններ, աղեղներ և էլիպսներ:
Օգտագործելով հրամանը ՇԱՄՖԵՐ (CHAMFER)երկու ոչ զուգահեռ հատվածներով ձևավորված անկյուններում ստեղծվում են փորվածքներ: Այս հրամանը կարող է գործել նաև ուղիղ գծերով, ճառագայթներով և բազմագծերով: Անկյուն կարող է ստեղծվել՝ պարզապես երկարացնելով հատվածները, մինչև դրանք հատվեն, կամ կարող եք ստեղծել շեղակ։ Եթե ստեղծվում է փորվածք, ապա այն սահմանվում է կամ երկու ոտքով, կամ մեկ ոտքով և եզրերից մեկի նկատմամբ շեղակի անկյունով:
Շերտի ստեղծման գործընթացը բաղկացած է երկու քայլից. Նախ, սահմանվում են փորվածքի պարամետրերը: Սրանք կարող են լինել կամ երկու ոտք, կամ մեկ ոտք և մեկ թեք անկյուն: Արժեքները մուտքագրելուց հետո AutoCAD-ը կավարտի հրամանը ՉԱՄՖԵՐ(ՉԱՄՖԵՐ): Դրանից հետո դուք պետք է նորից գործարկեք այս հրամանը և ընտրեք երկու տող, որոնք ներկայացնում են եզրերը, որոնց միջև կստեղծեք շեղում: AutoCAD-ը կստեղծի փորվածք՝ օգտագործելով նախորդ քայլում ստացված տեղեկատվությունը:
Թիմ ՖԻԼԵ (ՄԱՏԵՍ)օգտագործվում է աղեղով երկու հատվածների հարթ խոնարհում կառուցելու համար: Այս գործողությունը հաճախ օգտագործվում է մեխանիկական գծագրեր ստեղծելու ժամանակ: Որոշ դեպքերում հրամանը ՖԻԼԵ (ՄԱՏԵՍ)կարող է օգտագործվել հրամանի փոխարեն ARC (ARC)կամարներ ստեղծելու համար. Նույնը, ինչ հրամանն օգտագործելիս ՉԱՄՖԵՐ(CHAMFER), օգտագործելով հրամանը ՖԻԼԵ(ՀԱՄԱԽՄԲՈՒՄՆԵՐ) կարող եք զուգակցել հատվածներ, ուղիղ գծեր, ճառագայթներ կամ բազմագծեր, որոնք նույնպես կարող են զուգահեռ լինել: Բայց, բացի այս առարկաներից, կարող են զուգավորվել նաև շրջաններ, աղեղներ և էլիպսներ։ Զուգավորվող աղեղ ձևավորելու հրամանում անհրաժեշտ է նշել դրա շառավիղը
Զուգավորման գործընթացը նույնպես երկքայլ է: Նախ, որոշվում է զուգավորման աղեղի շառավիղը: Այս գործողությունից հետո AutoCAD-ն ավարտում է հրամանը: Այժմ դուք պետք է նորից գործարկեք հրամանը ՖԻԼԵ (ՄԱՏԵՍ)և ընտրել երկու զուգավորման հատված: AutoCAD-ը կզուգավորի տողերը՝ ըստ առկա տեղեկատվության:
Խմբեր.
Եթե դուք ունեք օբյեկտների որոշակի հավաքածու, որոնք իմաստ ունի շահարկել որպես խմբակ, և դուք աշխատում եք բավականին բարդ բազմակի օգտագործման ընտրության գծագրի հետ, ապա կարող եք խուսափել վերընտրության հոգնեցուցիչ ընթացակարգի կրկնությունից՝ օգտագործելով օբյեկտները միավորելու մեխանիզմը: խումբ.
Խմբերի ստեղծում և փոփոխություն:Խումբ ստեղծելու կամ փոխելու համար անհրաժեշտ է մուտքագրել հրամանի տող խումբև այդպիսով բացեք երկխոսության տուփ Օբյեկտների խմբավորում(Օբյեկտների խմբավորում):
Նոր խումբ ստեղծելու համար հետևեք մի շարք քայլերի:
1. Մուտքի դաշտում Խմբի անվանումըմուտքագրեք խմբի անունը. Անունը կարող է լինել մինչև 31 նիշ առանց բացատների: Դուք կարող եք օգտագործել գծիկ (-) և ընդգծում (_) ձեր մուտքագրած անվան մեջ: .
2. Ցանկության դեպքում դաշտում ՆկարագրությունԴուք կարող եք մուտքագրել մինչև 64 նիշ երկարությամբ մեկնաբանություն: Մեկնաբանություններում կարող եք բացատներ ներառել։
3. Սեղմեք կոճակը Նոր. AutoCAD-ը վերադառնում է գծագրին և հրամանի տողում ցուցադրում է հուշում Ընտրեք օբյեկտներ.Այս հուշում ընտրեք այն օբյեկտները, որոնք ցանկանում եք ներառել խմբում: Ավարտեք օբյեկտների ընտրությունը՝ սեղմելով
4. Սեղմեք լավ.
Այժմ խումբ է ստեղծվել՝ նրա հետ հետագա աշխատանքի համար։
Մեկ օբյեկտը կարող է պատկանել մի քանի խմբերի:
Գոտում Խմբի նույնականացումերկխոսության տուփ Օբյեկտների խմբավորումկա նաև կոճակ Գտեք անունը.Այս կոճակը օգտագործվում է այն խմբի անունը որոնելու համար, որին պատկանում է ընտրված օբյեկտը: AutoCAD-ը թույլ է տալիս ընտրել օբյեկտ և այնուհետև ցուցադրել համապատասխան խմբի (կամ խմբերի) անունը:
Սեղմելով կոճակը Ընդգծելթույլ է տալիս տեսողականորեն ընդգծել տվյալ խումբը: Առաջինը ցուցակից Խմբի անվանումըխումբն ընտրվում է, և կոճակը սեղմելուց հետո Ընդգծել AutoCAD-ը վերադառնում է գծագրին և ընտրում խմբի բոլոր օբյեկտները: Կոճակը սեղմելուց հետո Շարունակել AutoCAD-ը վերադառնում է երկխոսության տուփ: Կոճակ Ընդգծելօգտագործվում է այն դեպքերում, երբ չկա վստահություն հետագա աշխատանքի համար ցուցակից խմբի ճիշտ ընտրության հարցում:
Փոխեք երկխոսության տուփի Խմբի տարածքը Օբյեկտների խմբավորումԱպահովում է ճկունություն խմբի կառավարման մեջ: Խումբը փոխելու համար դուք պետք է ներառեք խմբերի ցանկում Խմբի անվանումըԵրկխոսության պատուհանի վերևում սեղմեք ցանկացած խմբի անվան վրա: Դրանից հետո գոտու բոլոր կոճակները Փոխել խումբըհասանելի դառնալ։ Եկեք նկարագրենք դրանց նպատակը:
Հեռացնել.Եթե դուք սահմանում եք այս տարբերակը, AutoCAD-ն անցնում է գծագիրը էկրանի գրաֆիկական տարածք դուրս բերելուն և հրամանի տողում հուշում է ցուցադրում: Ընտրեք առարկաներ խմբից հեռացնելու համար.... Ընտրեք այն առարկաները, որոնք պետք է բացառվեն գծագրից: Գործողությունն ավարտելու համար սեղմեք
Ավելացնել.Եթե սահմանեք այս տարբերակը, AutoCAD-ն անցնում է գծագրման տարածք և ցուցադրում է հրաման հրամանի տողում Ընտրեք օբյեկտներ խմբին ավելացնելու համար: . . (Ընտրեք օբյեկտները խմբին ավելացնելու համար...):Ընտրեք այն օբյեկտները, որոնք պետք է ավելացվեն խմբին: Գործողությունն ավարտելու համար սեղմեք
Վերանվանել։Երբ այս տարբերակը նշված է, խումբը, որը պետք է վերանվանվի, ընտրվում է և մուտքագրման դաշտում Խմբի անվանումընրա անունը փոխվում է. Սեղմեք կոճակը Վերանվանել։Խմբի անունը ցանկում Խմբի անվանումընույնպես պետք է փոխվի. Սեղմեք լավ.
Կրկին պատվիրել.Խմբի յուրաքանչյուր օբյեկտին տրվում են թվեր՝ սկսած 0-ից: Որոշ դեպքերում կարևոր է խմբում առարկաների տեղադրման հերթականությունը (օրինակ՝ խմբի օբյեկտների վրա գործող ծրագիր իրականացնելիս): Ընտրեք այն խումբը, որտեղ պետք է փոխվի օբյեկտների հերթականությունը: AutoCAD-ը կբացի երկխոսության տուփ Պատվերների խումբ.Եթե ցանկանում եք օբյեկտները խմբով դասավորել գոյություն ունեցողների հակառակ հերթականությամբ, սեղմեք կոճակները Հակադարձ կարգ.Հակառակ դեպքում սեղմեք կոճակները Ընդգծել և նախորդը. Այս պատուհանի ստորին աջ անկյունում
Նկարագրություն. Այս տարբերակը թարմացնում է խմբի նկարագրությունը:
Պայթել.Այս տարբերակը բաժանում է խումբը իր բաղադրիչների: Բոլոր առարկաները մնում են գծագրում, բայց նրանք դադարում են լինել խումբ:
Ընտրելի։Եթե խումբն ընտրելի է, ապա մեկ խմբի օբյեկտ ընտրելով ընտրվում է ամբողջ խումբը: Այս տարբերակը թույլ է տալիս ժամանակավորապես անցնել առանձին օբյեկտների մանիպուլյացիայի ռեժիմին՝ առանց խումբը բաժանելու:
ԳԼՈՒԽ 4
Օբյեկտների վրա հրամաններ և գործողություններ
- Հիմնական հրամաններ և գործողություններ
- Օբյեկտների ընտրություն
- Օբյեկտների ընտրություն և հրամանի կատարում
- Ենթաօբյեկտների ընտրություն
- Օբյեկտների տեսանելիության վերահսկում
- Կլոնավորում օբյեկտներ
- Օբյեկտների խմբավորում
- Օբյեկտների փոխակերպումներ
2. Հիմնական հրամաններ և գործողություններ
Հիմնական հրամաններ և գործողություններ
Max միջավայրում գտնվող օբյեկտների վրա հիմնական հրամաններն ու գործողությունները կարող են սահմանվել հետևյալ խմբերով.
- Օբյեկտների ընտրություն;
- Օբյեկտների ընտրություն և հրամանի կատարում;
- Սուբյեկտների ընտրություն;
- Օբյեկտների տեսանելիության վերահսկում; Կլոնավորում օբյեկտներ;
- Օբյեկտների միավորում խմբերի մեջ:
- Օբյեկտների փոխակերպումներ
- Եկեք նայենք դրանցից յուրաքանչյուրին ավելի մանրամասն:
3. Օբյեկտների ընտրություն
Օբյեկտների ընտրություն
Օբյեկտների ընտրության գործառնություններն իրականացնելու և կառավարելու համար կան մի քանի համընկնող տեխնիկա: Բացի դրանցից ամենավանդականից՝ ընտրված օբյեկտի վրա ձախ սեղմելով, այս պրոցեդուրան կարող է իրականացվել մի խումբ իրերի միջոցով: Ընտրելբացվող մենյուից Խմբագրել(նկ. 4.01):
Ստորև բերված է այս տարրերի ցանկը՝ դրանց գործառույթների համառոտ նկարագրությամբ.
- Ընտրել բոլորը- թույլ է տալիս ընտրել բոլոր չթաքնված և «չսառեցված» օբյեկտները (այս տերմինների իմաստը կնկարագրվի ստորև):
- Ընտրեք Ոչ մեկը- ապաընտրում է տեսարանի բոլոր օբյեկտները:
- Ընտրեք Invert- հակադարձորեն ընտրում է բոլոր չընտրված օբյեկտները:
ՆԿԱՐ 4.01. Օբյեկտների ընտրության կետերը
- Ընտրեք ըստ գույնի- ստեղծել ընտրություն՝ հիմնված նշված օբյեկտի գույնի վրա
- Ընտրեք ըստ անունով- երկխոսության տուփի միջոցով ընդհանուր ցանկից ընտրել մեկ կամ մի քանի օբյեկտ անունով (նկ. 4.02):
ՆԿԱՐ 4.02.Ցանկից օբյեկտների անուններով ընտրություն
- Տարածաշրջան- ունի երկու անջատիչ, որոնք սահմանում են օբյեկտի ընտրության ռեժիմը.
- Պատուհան- Վհավաքածուն ներառում է առարկաներ, որոնք լիովին տեղավորվում են ընտրության տարածքում.
- Անցնելով- օբյեկտները ընտրվում են, նույնիսկ եթե դրանք դիպչում են միայն ընտրության տարածքին:
Նաև օբյեկտների ընտրության գործողությունը կարող է իրականացվել կոճակների խմբի միջոցով (նկ. 4.03).
ՆԿԱՐ 4.03.Հիմնական Գործիքադարակի օբյեկտների ընտրության կոճակների խումբ
- Ընտրեք Օբյեկտ- մոդալ կոճակ, որը հնարավորություն է տալիս մկնիկի ձախ սեղմումով օբյեկտների ընտրության ռեժիմը: Յուրաքանչյուր ձախ սեղմումով վերակայվում է նախորդ ընտրությունը և ընտրվում է միայն մեկը՝ օբյեկտներից վերջինը: Առանց վերակայման հավաքածուին նոր օբյեկտ ավելացնելու համար սեղմեք ձախ կոճակը՝ սեղմած պահելով ստեղնը
, ընտրված օբյեկտը հավաքածուից բացառելու համար սեղմեք ստեղնի հետ միասին. - Ընտրության շրջան- օբյեկտի ընտրության տարածքի ձևը փոխելու կոճակների ցանկը: Կարող է նշվել որպես Ուղղանկյուն, շրջանաձևկամ Ցանկապատ (Polyline):
Ցանկալի ձևն ընտրելու համար սեղմեք այս կոճակի վրա (մինչև հայտնվի ամբողջ ցանկը) և մկնիկի ձախ կոճակը պահելով, կուրսորը տեղափոխեք ցուցակի վրայով, բաց թողնելով այն համապատասխան կոճակի վրա:
Ընտրեք ըստ անունովԱնուն) - կոճակ, որը կանչում է նախկինում նշված երկխոսության տուփը Ընտրեք Օբյեկտներ(նկ. 4.02): Անդրադառնանք դրա պարամետրերին:
Հիմնական տեղեկատվական դաշտը պարունակում է տեսարանի օբյեկտների ցանկ, և տեսակավորման կարգը և ցուցադրման եղանակը կախված են պարամետրերի խմբերից Տեսակավորել և ցուցակագրել տեսակները:
Դրանցից առաջինը թույլ է տալիս սահմանել տեսարանների օբյեկտների անունները ըստ դասակարգելու մեթոդը Այբբենական կարգով, ըստ տեսակի, գույնի և չափի:
Խմբի վանդակներ Ցուցակի տեսակներըվերահսկել կանոնը, թե Max օբյեկտների որ կատեգորիաները կցուցադրվեն ընդհանուր ցանկում և որոնք կթաքցվեն: Կոճակներ Բոլորը, Ոչ մեկը և Invertանհրաժեշտ է խմբային դրոշների ամբողջ հավաքածուն արագ կառավարելու համար:
Պատուհանի ներքևի ձախ մասում գտնվող վանդակների լրացուցիչ ցանկը վերահսկում է հետևյալ ընտրանքները.
- Ցուցադրել ենթածառը- միացնել օբյեկտների ցուցադրումը, որոնք ունեն հիերարխիկ հարաբերություններ կամ բաց խմբեր (խմբերը կքննարկվեն ավելի ուշ):
- Ընտրեք Ենթածառ- միացնել նման օբյեկտների ընտրությունը:
- Գործի զգայուն- գործի ազդեցությունը վերին տեքստային դաշտում դրված անվան վրա:
- Ընտրեք Կախվածներ- օբյեկտ ընտրելը կհանգեցնի դրա բոլորի միաժամանակյա ընտրությանը Օրինակներ և հղումներ.
Կոճակներ AI (All), None և InvertԱյս ցուցակից վերևում թույլ են տալիս արագ վերահսկել օբյեկտների անունների ընտրության վրա: Եվ վերջապես ցուցակը Ընտրության հավաքածութույլ է տալիս ընտրել նախապես ստեղծված և անվանված օբյեկտների մի քանի խմբերից մեկը: Հետագայում այս գլխում մենք մանրամասն կանդրադառնանք նման հավաքածուների ստեղծմանը:
Օբյեկտների կատեգորիան ընտրելու համար, որոնցով ընտրություն է կատարվում, դուք պետք է օգտագործեք Ընտրության զտիչ:Այս ցանկը թույլ է տալիս ընտրել օբյեկտների մեկ կամ մի քանի կատեգորիաներ աշխատելու համար և բացառել մյուսներին:
Ցանկի արժեքը Բոլորը (Բոլոր օբյեկտները)տարածվում է տեսարանի բոլոր օբյեկտների վրա և վերացնում է բոլոր սահմանափակումները:
Պատկեր՝
Պատկեր՝
4. Օբյեկտների ընտրություն և հրամանի կատարում
Օբյեկտների ընտրություն և հրամանի կատարում
Նկարագրված խմբում մնացած կոճակները Հիմնական Գործիքադարակբոլորը մոդալ են և հնարավորություն են տալիս ընտրություն կատարելուց հետո անցնել համապատասխան հրամանի կատարմանը.
- Ընտրեք և կապեք- կատարում է ստորադաս տեսարանի օբյեկտների հիերարխիկ միացման գործողությունը ըստ տեսակի Ծնող-երեխա.
- Ընտրեք և տեղափոխեք- թույլ է տալիս սկսել օբյեկտի կամ առարկաների տեղափոխումը ընտրությունն ավարտելուց անմիջապես հետո:
- Ընտրել և պտտել- նույնը ընտրված օբյեկտների վրա ռոտացիայի գործողության համար:
- Ընտրեք և չափեք- կախված կոճակների ցանկի ներկա վիճակից Սանդղակդա կարող է լինել վիրահատություն Համազգեստ, ոչ համազգեստմասշտաբը և Դդմիկընտրությունն ավարտելուց անմիջապես հետո:
Ստեղծելու համար Անվանված ընտրության հավաքածուդուք պետք է ընտրեք ցանկալի օբյեկտները և մուտքագրեք եզակի անուն անունների ցանկի տեքստային դաշտում Հիմնական Գործիքադարակ(նկ. 4.04):
Յուրաքանչյուր նոր անուն ավելացվում է անունների ցանկում և պահվում Max նախագծի ֆայլում: Անվանված հավաքածուները կարգավորելու և փոխելու համար օգտագործեք երկխոսության տուփը Անվանված ընտրության հավաքածու(նկ. 4.05), որը կանչվում է հրամանով ԱնվանվածԸնտրություն Կոմպլեկտներճաշացանկում Խմբագրել,կամ հիմնական գործիքագոտու համանուն կոճակը:
բրինձ. 4.04.Անվանված հավաքածուների ցանկ
ՆԿԱՐ 4.05.Անվանված հավաքածուների խմբագրում
Այս պատուհանի վերևում գտնվող կոճակները թույլ են տալիս.
- ստեղծել նոր հավաքածուներ;
- ջնջել երկխոսության վանդակում ընտրված օբյեկտը հավաքածուից կամ ջնջել ամբողջ հավաքածուն.
- ավելացնել ծրագրի պատուհանում ընտրված օբյեկտը հավաքածուին.
- ջնջել ծրագրի պատուհանում ընտրված օբյեկտը հավաքածուից.
- ընտրեք ծրագրի պատուհանի օբյեկտները, որոնք ներառված են երկխոսության վանդակում ընտրված հավաքածուում.
- ընտրեք օբյեկտները իրենց անունով՝ օգտագործելով երկխոսության տուփը Ընտրեք Օբյեկտներ:
- ընդգծել երկխոսության վանդակում ընտրված օբյեկտները:
Պատկեր՝
Պատկեր՝
5. Ենթաօբյեկտների ընտրություն
Ենթաօբյեկտների ընտրություն
հետ աշխատելու հնարավորություն Ենթաօբյեկտներ(Subobjects) տեղի է ունենում, եթե ընտրված օբյեկտն ունի բազմամակարդակ կառուցվածք: Max միջավայրում ենթաօբյեկտները մակարդակներ են Vertex, Segment and Spline inտեսակի օբյեկտներ Ձևավորում; Գագաթ (գագաթ), ծայր (եզր), դեմք (դեմք), բազմանկյուն (հարթություն) և տարր (տարր)տեսակի օբյեկտներում Ցանց (շրջանակ)և այլն: Մոդիֆիկատորներից որևէ մեկը՝ օբյեկտների ներքին կառուցվածքը փոխելու հատուկ գործիքներ, կարող է մակարդակ ունենալ Ենթաօբյեկտայն, ինչ ցուցադրվում է պատուհանում Modifier Stack.Եթե փոփոխիչի անվան կողքին «+» նշան չկա, ապա փոփոխիչը թույլ չի տալիս աշխատել ենթաօբյեկտի մակարդակի հետ և հակառակը (նկ. 4.06):
ՆԿԱՐ 4.06.Ենթաօբյեկտի մակարդակի ընտրություն
Ռեժիմին անցնելու հեշտության համար Ենթաօբյեկտիսկ աջ սեղմումով կանչված ընտրված օբյեկտի համատեքստային մենյուում կրկին պարունակում է համանուն տարր (նկ. 4.07):
ՆԿԱՐ 4.07.Ենթաօբյեկտի մակարդակը համատեքստի ընտրացանկում
Ռեժիմում գտնվելու ժամանակ Հնարավոր է ենթաօբյեկտնաև ստեղծել Անվանված ընտրության հավաքածուենթաօբյեկտների համար, սակայն դրանք հասանելի կլինեն միայն այս ռեժիմում:
Պատկեր՝
Պատկեր՝
6. Օբյեկտների տեսանելիության վերահսկում
Օբյեկտների տեսանելիության վերահսկում
Max միջավայրում մշակվել է տեսարանի օբյեկտների տեսանելիությունը վերահսկելու շատ ճկուն համակարգ: Բացի մշակված հրամանատարական համակարգից, կա մի շարք պարամետրեր և պարամետրեր, որոնք լրացնում են միմյանց, ինչը թույլ է տալիս օպտիմալացնել աշխատանքը և «տեսնել» միայն այն օբյեկտները կամ օբյեկտների խմբերը, որոնք անհրաժեշտ են տվյալ պահին: Օբյեկտների տեսանելիության հարցը հատկապես արդիական է բարդ, հարուստ տեսարաններում, որտեղ երբեմն պետք է երկար սպասել էկրանի թարմացման (վերագծագրման) համար (պետք է հիշել, որ բոլոր թաքնված կամ սառեցված օբյեկտները անտեսվում են):
Տեսանելիության բոլոր հսկիչները կենտրոնացած են վահանակում Ցուցադրել և Display Floater-ումորը կարելի է կանչել բացվող ընտրացանկից Գործիքներ.
Տեսարանի յուրաքանչյուր օբյեկտ կարող է ունենալ տեսանելիության մի քանի մակարդակ.
- Օբյեկտը տեսանելի է ինչպես դիտակետերում, այնպես էլ տեսարանը ցուցադրելիս:
- Օբյեկտը տեսանելի է դիտակետերում, բայց չի ցուցադրվում կամ ցուցադրվում տեսարանում:
- Օբյեկտը տեսանելի է դիտակետերում և ցուցադրվում է տեսարանը ցուցադրելիս, սակայն «սառեցված» է (անհասանելի) ընտրության և խմբագրման հրամանների համար:
- Օբյեկտը թաքնված է և տեսանելի չէ դիտակետերում կամ արտապատկերումներում:
Խստորեն ասած, օբյեկտների տեսանելիության ևս մի քանի տարբերակներ կան, բայց դրանք ավելի քիչ բնորոշ են և չարժե անդրադառնալ:
Օբյեկտները կառավարելու ամենահարմար միջոցը միջոցով է Ցուցադրել FloaterՀետեւաբար, եկեք վերլուծենք այն ավելի մանրամասն: Այս վահանակը (նկ. 4.08) բաղկացած է երկու ներդիրից Թաքցնել / սառեցնել և օբյեկտի մակարդակ:
Նրանցից առաջինը կրկնում է հիմնական վահանակի բոլոր հրամանները Ցուցադրելբացառությամբ որոշ հազվադեպ օգտագործվողների։ Հրամանների համար պատասխանատու են բարձրացված կոճակների երկու խումբ Թաքցնել (Թաքցնել) և Ապացուցել (Ցուցադրել),ավելին երկու - Սառեցնել և ապասառեցնել:Նշավանդակ Թաքցնել սառեցված օբյեկտըթույլ է տալիս միաժամանակ սառեցնել և թաքցնել առարկաները: Դաջված կոճակները թույլ են տալիս թաքցնել/սառեցնել Ընտրված, Չընտրվածառարկաներ, ընտրություն կատարեք Անունով և Հիթով:
Էջանիշ Օբյեկտի մակարդակկառավարում է պարամետրը Թաքցնել ըստ կատեգորիայիև մի շարք վանդակներ Ցուցադրել Հատկություններ. Ցուցադրել Floater Panel-ըկարելի է ցանկացած ժամանակ հեռացնել էկրանից (ձախ սեղմելով փակման կոճակի վրա) կամ նորից կանչել:
ՆԿԱՐ 4.08.Լողացող ցուցադրման վահանակ
Պատկեր՝
7. Օբյեկտների կլոնավորում
Կլոնավորում օբյեկտներ
Max-ում օբյեկտների պատճեններ ստեղծելու մի քանի եղանակ կա: Առավել օգտագործվածը պատճենված օբյեկտը կամ օբյեկտների խումբն ընտրելն է և փոխակերպման հրամաններից մեկը օգտագործելը. Տեղափոխել, պտտելկամ Սանդղակսեղմված ստեղնով
ՆԿԱՐ 4.09.Կլոնի ռեժիմների ընտրություն
- Սորու (պատճեն)- նոր օբյեկտը ժառանգում է բնօրինակի բոլոր հատկությունները (երկրաչափություն, նյութեր, ցուցադրման ռեժիմներ տեսադաշտերում և այլն):
Պատճենում կամ բնօրինակում կատարված ցանկացած փոփոխություն եզակի է և վերաբերում է միայն փոփոխվող օբյեկտին:
- Օրինակ- նոր օբյեկտը բնօրինակի ամբողջական պատճենն է, և նրանց միջև ստեղծվում է հետևյալ երկկողմանի տրամաբանական կապը. բնօրինակի ցանկացած փոփոխություն անմիջապես արտացոլվում է նրա բոլոր պատճեններում և հակառակը:
- Հղում- օրինակի տարբերակ, բայց միակողմանի հաղորդակցությամբ: Միայն բնօրինակի փոփոխությունները հանգեցնում են նույն փոփոխություններին բոլոր հղումներում: Օբյեկտների հղումների ցանկացած փոփոխություն վերաբերում է միայն փոփոխվող հատուկ հղման օբյեկտին:
Մնում է ավելացնել, որ պատուհան Կլոնի ընտրանքներթույլ է տալիս տեքստային դաշտում անուն դնել ստեղծված օբյեկտների համար Անուն(Անուն) և հաշվիչի միջոցով ընտրեք նոր պատճենների քանակը Պատճենների քանակը։
Տարրը օգտագործելով օբյեկտների կլոնավորման տարբերակ կա Կլոնավորումբացվող ընտրացանկում Խմբագրել.Օգտագործելով այն, բացվում է նույն պատուհանը Կլոնի ընտրանքներբայց առանց ստեղծված կրկնօրինակների թիվը փոխելու հնարավորության, որը հավասար է 1-ի: Օբյեկտների պատճենների ստեղծման այս տարբերակը հարմար է, եթե պատճենները պետք է ունենան նույն կոորդինատները, ինչ բնօրինակը:
Կլոնավորման մեկ այլ տարբերակ հրամանների օգտագործումն է Հայելի (Mirror) և Array (Array):
Նրանցից առաջինը կոչվում է կոճակով Հայելային ընտրված առարկաներԼրացուցիչ երկխոսության տուփից Հայելի. Էկրանի կոորդինատներ(նկ. 4.10) թույլ է տալիս ընտրել պատճենման առանցքը՝ X, Y, Z կամ պատճենահանման հարթությունը. XY, YZ, ZX.
ՆԿԱՐ 4.10.Օբյեկտների հայելային պատճենների ստեղծում
Անջատիչի դիրքը Կլոնի ընտրությունհնարավորություն է տալիս ընտրել ստեղծվող պատճենների տեսակը և դիրքը Ոչ մի կլոն (նա կլոն)կատարում է բնօրինակ առարկայի հայելային պատկերը՝ առանց պատճեններ ստեղծելու:
Թիմ Զանգվածկոչվում է գործիքագոտու վրա տեղադրված կոճակների ցանկից Առանցքի սահմանափակումներ.Նույն անունով երկխոսության տուփ Զանգվածթույլ է տալիս սահմանել պատճենման մեթոդը, զանգվածի չափը (1,2 կամ 3D), ինչպես նաև փոխակերպման տեսակը (Տեղափոխել, պտտելկամ մասշտաբ)որը կկիրառվի յուրաքանչյուր օրինակի վրա (նկ. 4.11):
ՆԿԱՐ 4.11.Զանգվածների ստեղծում
Պատկեր՝
Պատկեր՝
Պատկեր՝
Պատկեր՝
8. Օբյեկտների միավորում խմբերի մեջ
Օբյեկտների խմբավորում
Օբյեկտների հավաքածուները կառավարելը և առարկաներով հարուստ տեսարանները հեշտացնելու համար օգտագործեք հրամանը Խումբ.Այն կոչվում է նույն անունով բացվող ընտրացանկի միջոցով Խումբև վերաբերում է ընտրված օբյեկտներին: Ստեղծվելիք խմբի անունը մուտքագրելու պատուհան է հայտնվում (նկ. 4.12): Խմբի անունը հաստատելուց հետո ստեղծվում է տեսարանի նոր օբյեկտ:
ՆԿԱՐ 4.12.Խմբի անվան հավաքում
Որոշ չափորոշիչների համաձայն խմբի մեջ միավորված առարկաների դեպքում (բարդ օբյեկտի բաղադրիչ տարրեր, նույն տիպի օբյեկտների հաճախակի կրկնվող հավաքածուներ և այլն), շատ հարմար է կատարել այնպիսի գործողություններ, ինչպիսիք են ընտրությունը, կլոնավորումը, նյութերի նշանակումը, փոխակերպումները: և շատ ավելին: Խմբերը կարող են ունենալ բազմամակարդակ բնադրված կառուցվածք։ Դիտարկենք Max միջավայրում օբյեկտների խմբերի հետ աշխատելու հնարավորությունները։ Բոլոր կառավարման հրամանները կենտրոնացված են նախկինում նշված Group բացվող ընտրացանկում.
- Խումբ- ընտրված օբյեկտները միավորում է խմբի մեջ նոր անունով՝ մուտքագրված համանուն երկխոսության վանդակում (նկ. 4.12): Խմբի անունը հայտնվում է թավով Անուն դաշտում կամ քառակուսի փակագծերում՝ «Ընտրել օբյեկտներ» երկխոսության վանդակում (Նկար 4.13):
ՆԿԱՐ 4.13.Խմբերի ցուցադրում օբյեկտների ցուցակներում
Բաց - մասամբ հեռացնում է խմբավորումը՝ հնարավորություն տալով ընտրել, փոփոխել և վերափոխել բացված խմբում ընդգրկված ցանկացած օբյեկտ։ Այս դեպքում հայտնվում է լրացուցիչ օբյեկտ, որը ծավալային կոնտեյներ է, որի մեջ տեղավորվում են խմբի բոլոր օբյեկտները և ունի այն ստեղծման ժամանակ նշված անունը: Այս տարան գծված է էկրանին կարմիր գույնով:
Փակել - վերադարձնում է խումբը իր լռելյայն վիճակին՝ թաքցնելով խմբի անունով օբյեկտը և վերադարձնելով ամբողջական խմբավորումը խմբի բոլոր օբյեկտներին:
- Ապախմբավորել- հեռացնում է ընտրված խմբում ընդգրկված օբյեկտների խմբավորումը՝ թույլ տալով առանձին աշխատել դրանցից յուրաքանչյուրի վրա:
- Պայթել- ջնջում է օբյեկտների խմբավորումը, որոնք կազմում են բազմամակարդակ, ներդիր խումբ:
- Անջատել- ընտրում է ընտրված օբյեկտը (կամ օբյեկտները) խմբից: Այս հրամանը գործարկելու համար նախ պետք է բացել խումբը հրամանով Բաց.
- Կցել- ընտրված օբյեկտները ավելացնում է մկնիկի ձախ սեղմումով նշված խմբին:
Պատկեր՝
Պատկեր՝
9. Օբյեկտների փոխակերպումներ
Օբյեկտների փոխակերպումներ
Փոխակերպումների տեսակները
Max միջավայրում երեք հիմնական փոխակերպման գործողություններ կարող են կատարվել ցանկացած օբյեկտի, մի քանի օբյեկտների կամ խմբի հետ. Տեղափոխել, պտտել և չափելորոնք միավորված են մեկ ընդհանուր տերմինով. Փոխակերպումներ.Բոլոր փոխակերպումները վերագրվում են համապատասխան կոճակներին Հիմնական Գործիքադարակը և Սանդղակը- կոճակների ցանկ: Տեղաշարժման փոխակերպումը թույլ է տալիս փոխել օբյեկտի դիրքը եռաչափ տարածության մեջ, ռոտացիան՝ նրա կողմնորոշումը և մասշտաբը՝ օբյեկտի գծային չափերը: Ավելին, վերջին փոխակերպումը կարող է լինել երեք տեսակի.
- Համազգեստ- միասնական մասշտաբում երեք կոորդինատային առանցքների երկայնքով X, Y, Z;
- Ոչ միասնական- կատարվում է օբյեկտի առանցքներից կամ հարթություններից մեկի երկայնքով.
- Դդմիկ- առանցքներից մեկի և մյուս երկուսի հարթության երկայնքով փոխադարձ հակադիր միաժամանակյա մասշտաբը, կամ հակառակը:
Փոխակերպման բոլոր հրամանները կրկնօրինակվում են օբյեկտի համատեքստային մենյուում և կարող են կանչվել ընտրված օբյեկտի վրա աջ սեղմելով:
Սովորաբար, տեսարանի օբյեկտների վրա փոխակերպումներ կատարելը կատարվում է մոտավոր ճշգրտությամբ («աչքով»)՝ ըստ դիրքի, կողմնորոշման կամ մասշտաբի տեսողական ընկալման: Այնուամենայնիվ, կան դեպքեր, երբ անհրաժեշտ է պարամետրերի ճշգրիտ մուտքագրում, ինչի համար օգտագործվում է մեթոդը: Մուտքագրեք:Համապատասխան երկխոսության տուփը կարող է կանչվել տարրի միջոցով Transform Type-In (Փոխակերպման պարամետրերի ճշգրիտ մուտքագրում)բացվող մենյու Գործիքներ.Կախված ընտրված փոխակերպման տեսակից, կոչվում է պատուհան Տեղափոխել, պտտելկամ Scale Transform Type-In (տեղափոխել, պտտել կամ մասշտաբել),որը պարունակում է հաշվիչների երկու խումբ. Բացարձակ՝ աշխարհ և օֆսեթ՝ էկրան(նկ. 4.14):
ՆԿԱՐ 4.14.Ճշգրիտ պարամետրերի մուտքագրում
Սկզբում, երբ կանչվում է այս պատուհանը, առաջին խմբի հաշվիչները ցուցադրում են ընտրված օբյեկտի դիրքի ճշգրիտ արժեքները եռաչափ տարածության մեջ, դրա կողմնորոշումը: Փոխակերպման այլ տեսակի անցնելիս (օգտագործելով համապատասխան մոդալ կոճակները Հիմնական Գործիքադարակկամ զանգահարելով խմբագրվող օբյեկտի համատեքստային մենյու), Type-In պատուհանը անմիջապես փոխվում է համապատասխանի:
Լրացուցիչ գործիքներ, որոնք վերահսկում են Max-ի փոխակերպումների պարամետրերը Սահմանափակումնշված է մի խումբ մոդալ կոճակներով, Հղման կոորդինատների համակարգընտրելի է կոճակների ցանկից: Նրանք բոլորը գտնվում են գործիքագոտու վրա Առանցքի սահմանափակումներ(նկ. 4.15): Կոճակների մեկ այլ ցուցակ Point Center (Փոխակերպման կենտրոն),նախատեսված է փոխակերպումները կառավարելու համար, գտնվում է Հիմնական Գործիքադարակ.
ՆԿԱՐ 4.15.Սահմանափակումների խումբ կոճակներ Եկեք ավելի մանրամասն նայենք դրանցից յուրաքանչյուրին:
Ժամանակակից ծրագրերի մեծ մասը մշակվում է ծրագրավորողների թիմերի կողմից: Ինչ-որ մեկը պատասխանատու է օգտագործողի ինտերֆեյսի համար, ինչ-որ մեկը հիմնականի համար, և ինչ-որ մեկը լրացուցիչ մոդուլների համար: Ապահովելու համար, որ այս բոլոր մարդկանց աշխատանքն անիմաստ չի գնա, անհրաժեշտ է ճիշտ համատեղել նախագծի տարբեր մասերը՝ չմոռանալով դրա հնարավոր ընդլայնման մասին։ Դա անելու համար մեզ անհրաժեշտ կլինի «Թիմ» դիզայնի օրինակը, որը ներառում է առաջադրանքը կատարողին և դրա պայմանները:
Եկեք պատկերացնենք, որ մենք աշխատում ենք մի ընկերությունում, որը գրում է բարդ բազմաբաղադրիչ ծրագրեր: Նախագիծը խիստ մասնագիտացված է և ունի բազմաթիվ տարբեր մոդուլներ, որոնց թիվը ժամանակի ընթացքում կարող է ընդլայնվել: Մեր խնդիրն է այս ծրագրի համար գրել ճկուն և հարմար «hotkey» համակարգ: Հնարավոր համակցությունների շարքը սահմանափակված է թեժ ստեղներով
Թվում է, թե ամեն ինչ պարզ է. ես կոդավորեցի մի մեծ անջատիչ բլոկ, որը, երբ սեղմվում են կոճակների տարբեր համակցություններ, կանչում է մոդուլի այս կամ այն գործառույթը և ուրախանում: Բայց, առաջին հերթին, այս մոտեցումը ճկուն չէ։ Երբ նախագիծն ավելացնում է նոր մոդուլներ կամ թեժ ստեղներ, մենք ստիպված կլինենք փոխել այս ճյուղի փքված հայտարարության կոդը, ինչը կհանգեցնի այն էլ ավելի փքվածության: Եվ երկրորդը, ղեկավարությունը կարմիր մեծ տառերով գրել է, որ օգտատերը պետք է կարողանա վերանշանակել այս տաք ստեղները։ Այսպիսով, մենք հաստատ չենք կարողանա կոշտ կոդավորել հրամանները անջատիչի կոդի մեջ:
Նայելով նախագծի մոդուլների ծածկագրին և դրանց հրամանների ցուցակներին, որոնք կարող են վերագրվել թեժ ստեղներին, մենք էլ ավելի համոզված ենք, որ մենք պետք է շատ տանջվենք, նախքան այս ամենի համար քիչ թե շատ աշխատող ճարտարապետություն գտնելը:
Մոդուլի միջերեսները հասանելի են HotKeys դասի Հաշվիչի միջոցով ( public: void runCalc(); void closeCalc(); ) class Printer (public: void printDocument(); void printImage(); void printEmail(); void closeBrowser( ) // Եվ հետո կան շատ տարբեր դասեր:
Թիմի օրինաչափություն
Երգերը մի կողմ դնելով, անցնենք «Թիմի» կաղապարի ուսումնասիրությանը, որը պետք է օգնի մեզ այս դժվարին գործում։ Նախ պետք է պարզել, թե ինչ ունենք: Մենք ունենք բազմաթիվ մոդուլներ API-ների լայն տեսականիով: Մենք նաև ունենք պատուհան, որտեղ օգտատերը կարող է ցանկից ընտրել մոդուլների կողմից տրամադրված հրամաններից մեկը և այն վերագրել ստեղնաշարի հատուկ դյուրանցմանը:
Ձևականորեն, ստեղնաշարի մշակողը հաճախորդն է, տաք ստեղներով կոչվող մոդուլների API գործառույթները առաջադրանքներ են, իսկ մոդուլները, որոնք ապահովում են այդ առաջադրանքները, կատարողներ են: Թեժ ստեղների կարգավորումների պատուհանը մի տեսակ միջնորդ է հաճախորդի և կատարողի միջև՝ թաքցնելով կատարվող գործողությունների բոլոր մանրամասները: Այս կառուցվածքը թույլ է տալիս հաճախորդին ամբողջությամբ առանձնացնել կատարողից, այսինքն՝ օգտատերը պատկերացում չունի, թե որ մոդուլն է աշխատում, երբ սեղմվում է ստեղների որոշակի համակցությունը և ինչ է այն անում: Եվ սա շատ լավ է, քանի որ որքան լավ են կոդի մասերը մեկուսացված միմյանցից, այնքան ավելի հուսալի է աշխատում ծրագիրը։
Նման մեկուսացման համար մենք պետք է սահմանենք հրամանի օբյեկտ, հետևաբար՝ համապատասխան ինտերֆեյս։ Այն բավականին պարզ է և սահմանում է միայն մեկ execute() մեթոդ, որը պետք է կատարի մոդուլներից որևէ մեկի մեթոդը:
«Commands» օբյեկտի դասի ինտերֆեյս Command (public: void execute() = 0; )
Հատուկ օբյեկտ սահմանելու համար մենք պարզապես հայտարարում ենք նոր դաս, որը ժառանգում է Command ինտերֆեյսը և սահմանում դրա execute() մեթոդը։ Ենթադրենք, մենք ցանկանում ենք ստեղծել հրաման, որը գործարկում է հաշվիչը: Դա անելու համար մենք կստեղծենք RunCalcCommand դաս, որը կժառանգի Command ինտերֆեյսը և կշրջանցի execute()-ը՝ Calculator մոդուլի runCalc() մեթոդը կանչելու համար:
Հաշվիչի դասը գործարկելու հրաման RunCalcCommand. public Command ( Հաշվիչ *calc; public: RunCalcCommand(Հաշվարկիչ *excalc) ( calc = excalc; ) void execute() (calc->runCalc();))
Եթե ուշադիր նայեք հրամանի կոդը, ապա կնկատեք, որ RunCalcCommand դասի կոնստրուկտորում ցուցիչ է փոխանցվում Calculator մոդուլին։ Սա արվում է ավելի մեծ ճկունության համար: Ապագայում մենք կարող ենք ունենալ ModernCalculator դաս, որը կանչում է հաշվարկային ծրագրի առաջադեմ տարբերակը: Օգտագործելով կոմպոզիցիա, այսինքն՝ առանց կատարողին կոդի մեջ խստորեն ֆիքսելու, մենք մեծացնում ենք կոդի մեկուսացումը, ինչը հետագայում ժամանակ կխնայի։
Այժմ դուք պետք է կապեք հրամանը տաք ստեղնի հետ: Դա անելու համար դուք կարող եք ստեղծել Command դասի օբյեկտների ցուցիչների զանգված: Զանգվածի չափը հավասար կլինի աջակցվող թեժ ստեղների քանակին: Հրամանային զանգվածի յուրաքանչյուր տարր քարտեզագրված է կոնկրետ թեժ ստեղնի վրա: Մեր դեպքում դա անելու համար կարող ենք թվային արժեքի վերածել այն կոճակի արժեքը, որը Ctrl-ի հետ միասին կազմում է հնարավոր համակցություններից որևէ մեկը։ Եթե մենք օգտագործեինք դյուրանցումներ, ինչպիսիք են ctrl-a-ից մինչև ctrl-k, մեզ պետք կլիներ մի փոքր այլ մոտեցում:
Ստանալով սեղմված ստեղների համակցության կոդը և այն փոխակերպելով հրամանների զանգվածի համապատասխան ինդեքսի՝ մենք կարող ենք ապահով կերպով զանգահարել օբյեկտի execute() մեթոդը, որի ցուցիչը գտնվում է զանգվածի ցանկալի բջիջում։
Hotkey-ին հրաման վերագրելը և այն գործարկելը // Command and hotkey startization code const int comCount = 10; Հրաման * հրամաններ; Հաշվիչ *calc = new Calculator(); հրամաններ = նոր RunCalcCommand (calc); // Կոդը ստեղնաշարի սեղմիչում // Ստացեք սեղմված ստեղները hotkey = catchHotKey(); // Փոխակերպեք դրանք ինդեքսի և գործարկեք հրամանը int index = hotkey2index(hotkey); հրամաններ->կատարել();
Ամեն ինչ բավականին պարզ է. Դուք կարող եք սահմանել ևս մի քանի հրամանի ժառանգներ, որոնք կկատարեն հատուկ գործողություններ և կապակցեն դրանք թեժ ստեղների հետ: Այս ճարտարապետությունը թույլ է տալիս լիովին առանձնացնել հաճախորդին կատարողներից: Ստեղնաշարի կառավարիչը պատկերացում չունի, թե որ մոդուլն է մշակում հրամանը և կոնկրետ ինչ է այն անում, իսկ մոդուլներն իրենց հերթին պատկերացում չունեն, որ դրանք հասանելի են թեժ ստեղների միջոցով և ոչ այլ կերպ:
Չեղարկել հրամանը
Թվում է, թե ամեն ինչ լավ է, բայց մենք ամբողջովին մոռացել ենք չեղարկման մասին: Ctrl-z ստեղնաշարի դյուրանցումը պետք է չեղարկի վերջին հրամանի ազդեցությունը: Չեղյալ հայտարարելը բավականին պարզ է, թեև առաջին հայացքից կարող է այդպես չթվալ։ Դա անելու համար մենք մի փոքր կփոխենք Command ինտերֆեյսը:
Հրամանների դաս, որն աջակցում է Command դասի չեղարկում (public: void execute() = 0; void undo() = 0; ) class RunCalcCommand. public Command ( Հաշվիչ *calc; public: RunCalcCommand(Calculator *excalc) ( calc = excalc; ) void execute() (calc->runCalc();) void undo() (calc->closeCalc();))
Մենք պարզապես ավելացրել ենք undo() մեթոդը, որը պետք է վերացվի հետնորդ դասերում: Ծրագրավորողն ինքն է որոշում, թե որ մոդուլի ֆունկցիան կօգտագործի չեղյալ համարելու մեթոդը: Այսպիսով, Undo() մեթոդը RunCalcCommand-ի համար կկանչի Calculator մոդուլի closeCalc() ֆունկցիան: Մենք նաև պետք է մի փոքր շտկենք ստեղնաշարի մշակման կոդը:
Վիքիպեդիա «Թիմ» օրինաչափության մասին։ Ստեղնաշարի մշակիչ՝ չեղարկման աջակցությամբ // Հրամանի և թեժ ստեղնաշարի սկզբնավորման կոդը const int comCount = 10; Հրաման * հրամաններ; Հրահանգ *lastCommand = նոր NoCommand(); Հաշվիչ *calc = new Calculator(); հրամաններ = նոր RunCalcCommand (calc); // Կոդը ստեղնաշարի սեղմիչում // Ստացեք սեղմված ստեղները HotKey *hotkey = catchHotKey(); // Եթե սա չեղարկում է, ապա զանգահարեք համապատասխան մեթոդը if (hotkey->str() == "ctrl-z") ( lastCommand->undo(); ) // Մշակում է այլ համակցություններ
Այստեղ մենք պարզապես պահում ենք lastCommand փոփոխականում օգտագործված վերջին հրամանի ցուցիչը և ctrl-z սեղմելիս կանչում ենք համապատասխան մեթոդը։ Բացի այդ, մենք դիմում ենք փոքրիկ հնարքի՝ օգտագործելով դատարկ հրամանի NoCommand օբյեկտը: Այս դասի կոդը այսպիսի տեսք ունի.
Դատարկ հրաման NoCommand դաս NoCommand. հանրային հրաման (public: void execute() (); void undo() ();)
Նման կոճղային առարկաները բավականին հաճախ են օգտագործվում: Դրանք անհրաժեշտ են զրոյական ցուցիչի ստուգումների քանակը նվազեցնելու համար: Եթե lastCommand-ը լիներ NULL, ապա մինչ undo() մեթոդը կանչելը պետք է ստուգեինք այս ցուցիչի արժեքի ճիշտությունը, որն անցանկալի է, քանի որ մի օր կարող ենք մոռանալ դա անել, ինչի արդյունքում ծրագիրը խափանվի։ . Խորհուրդ է տրվում օգտագործել նույն կոճղային օբյեկտները այլ թեժ ստեղների համար, որոնց չեն վերագրվում համապատասխան հրամաններ:
Ի դեպ, ստեղնաշարի մշակման կոդը կարող է փոփոխվել այնպես, որ այն աջակցի չեղյալ համարել ոչ միայն վերջին գործողությունը, այլև կատարված հրամանների բոլոր շղթաները: Դա անելու համար դուք պետք է օգտագործեք բուրգ՝ վերջին հրամանի պարզ ցուցիչի փոխարեն: Ցանկացած թեժ ստեղնը մշակելիս կույտին կավելացվի համապատասխան հրամանի ցուցիչ: Այս կերպ մենք կստանանք հրամանների զանգերի ամբողջական պատմություն, որը թույլ կտա մեզ հերթով չեղարկել ամեն ինչ՝ օգտագործելով ctrl-z։
Մակրոներ
Մակրոները մարդկության ամենամեծ գյուտերից են, որոնք օգնում են խնայել տոննաներով ժամանակ: Մեր օրինաչափությունը թույլ է տալիս իրականացնել մակրո հրամաններ ընդամենը մի քանի լրացուցիչ տող կոդով: Նախ, եկեք սահմանենք մի դաս, որը պատասխանատու է գործողությունների խմբային կատարման տրամաբանության համար:
Մակրո հրամանների դաս MacroCommand. public Command ( Command *command; int comCount; public: MacroCommand(Command *comArray, int elemCount) (հրամաններ = comArray; comCount = elemCount; ) void execute() ( (int i = 0; i-ի համար)< comCount; i++) { commands[i]->կատարել (); ) ) void undo() ( համար (int i = 0; i< comCount; i++) { commands[i]->չեղարկել (); ))))
Ինչպես տեսնում եք, MacroCommand դասը Command-ի իրավահաջորդն է և անտեսում է կատարման և չեղարկման նույն մեթոդները: Ինտերֆեյսում այն սովորական հրամանից տարբերվում է միայն իր կոնստրուկտորով։ Այս դասը չի ընդունում կատարման մոդուլի ցուցիչ, այլ պարզ հրամանների ցուցիչների զանգված։ execute() կոդը պարզապես անցնում է զանգվածի տարրերով և կանչում է յուրաքանչյուրին: undo()-ը նույն կերպ է վարվում: Ստեղնաշարի կառավարիչը, երբ մուտք է գործում հրամանի օբյեկտ, չի պատկերացնում՝ դա մակրո է, թե սովորական առանձին գործողություն. գլխավորն այն է, որ դրանք բոլորն ապահովում են execute() և undo() ֆունկցիաներ:
«Թիմ» օրինաչափության առաջադեմ առանձնահատկությունները
Մեր նախշը կարող է օգտագործվել ոչ միայն ստեղնաշարի դյուրանցումների մշակման համար: Այն կարող է օգտագործվել հարցումների հերթեր կազմակերպելու համար: Ենթադրենք, մենք ունենք թելերի լողավազան, որը պետք է կատարի որոշ առաջադրանքներ: Բոլոր առաջադրանքները օբյեկտներ են, որոնք իրականացնում են արդեն ծանոթ Command ինտերֆեյսը: Հրամանները շարված են հերթում, որին հաջորդաբար մուտք են գործում թելերը: Նրանք հրամաններ են վերցնում այս հերթից և գործարկում են իրենց execute() մեթոդները: Թեմաներին չի հետաքրքրում, թե ինչ են անում այս օբյեկտները, քանի դեռ նրանք աջակցում են execute() կանչին: Հրամանները կարող են պահպանվել ձեր կոշտ սկավառակի վրա և վերականգնվել այնտեղից: Դա անելու համար դուք պետք է մի փոքր ընդլայնեք դրանց հիմնական ինտերֆեյսը:
Command դասի պահպանման և բեռնման աջակցությամբ հրաման (public. void execute() = 0; void undo() = 0; void load() = 0; void store() = 0; )
load() մեթոդը հրամանը գրանցամատյանում պահելու համար է, իսկ store()-ը՝ այնտեղից վերականգնելու համար։ Այս մեթոդների կոդը կարող է օգտագործել ծրագրավորման լեզվի սերիականացման մեխանիզմները, եթե առկա են: Այս ֆունկցիոնալությունն անհրաժեշտ է մեծ քանակությամբ տվյալների հետ աշխատելու համար, որոնք չեն կարող պահպանվել դրա վրա յուրաքանչյուր գործողություն կատարելուց հետո: Եթե ծրագիրը ձախողվի, մենք կկարողանանք բեռնել պահված հրամանները և հաջորդաբար կիրառել դրանք տվյալների առկա պատճենի վրա՝ այս տվյալները թարմացնելու համար:
Եզրակացություն
Օգտագործելով «Հրաման» օրինաչափությունը, մենք կարողացանք ամբողջությամբ առանձնացնել տարբեր կատարող մոդուլները հաճախորդից՝ ստեղնաշարի կառավարիչից: Եթե ապագայում ծրագրում հայտնվեն նոր մոդուլներ, մենք հեշտությամբ կարող ենք ավելացնել համապատասխան հրամանները և դրանց վրա տաք ստեղներ հատկացնել։ Սա կլինի պարզ, էլեգանտ և արդյունավետ լուծում։
Աշխարհի գավաթ. մրցաշարի երիտասարդական առաջնության մասին
Զենք և ինքնապաշտպանություն. ինքնապաշտպանության միջոցների «հիթ շքերթ».
Գլիկոգեն. մարդու էներգիայի պաշարներ. ինչու՞ է կարևոր իմանալ դրանց մասին՝ նիհարելու համար:
Դիմածնոտային շրջանի, դեմքի նյարդերի նյարդայնացում
Biceps brachii Երկար գլխի բիսեպսի անատոմիայի ջիլ