Գործողություններ օբյեկտների վրա. Օբյեկտների ձևավորման հրամաններ Օբյեկտների վրա հրամաններ և գործողություններ

  • 10.01.2024

Թիմկոնֆիգուրացիայի օբյեկտ է, որով մշակողը կարող է նկարագրել օգտատիրոջ կողմից նախատեսված գործողությունները:

Կան ընդհանուր հրամաններ՝ հրամաններ, որոնք հատուկ չեն օբյեկտի կամ օգտագործվում են գործողություններ կատարելու համար այն օբյեկտների վրա, որոնք չեն օգտագործում ստանդարտ հրամաններ:

Հրամաններ կարող են գոյություն ունենալ նաև առանձին կազմաձևման օբյեկտների համար: Դրանք օգտագործվում են այս կոնկրետ օբյեկտի հետ կապված գործողություններ կատարելու համար:

Հրամանները կարող են պարամետրացվել, այսինքն՝ նրանք կարող են իրենց ալգորիթմում օգտագործել հարթակի կողմից փոխանցված որոշ արժեք։ Այս արժեքի տեսակը սահմանվում է կոնֆիգուրատորում, և նման պարամետրացված հրամանը ցուցադրվում է միայն այն ձևերում, որոնք ունեն նույն տեսակի մանրամասներ, ինչ հրամանի պարամետրը:

Հրամանի կատարած գործողությունները նկարագրված են հրամանի մոդուլում ներկառուցված լեզվով:

Օգտակար հղումներ.

  • Կազմաձևման օբյեկտներ
  • Զարգացման գործիքներ.

Հրաման

Թիմգործողություն է, որը օգտվողը կարող է կատարել ծրագրում: Բոլոր հրամանները կարելի է դասակարգել մի քանի ձևով.

Ստանդարտ և մշակողի կողմից ստեղծված հրամաններ

Ինչ վերաբերում է այն բանին, թե ինչպես է հրամանը հայտնվել կազմաձևում, բոլոր հրամանները կարելի է բաժանել.

  • Ստանդարտ,
  • Ստեղծվել է մշակողի կողմից:

Ստանդարտ հրամանները ավտոմատ կերպով տրամադրվում են հարթակի կողմից: Կազմաձևման օբյեկտները, ինչպես նաև ձևերի ընդլայնումները և տարրերի ընդլայնումները, կարող են մատակարարել ստանդարտ հրամաններ Աղյուսակ, գտնվում է ձևի մեջ: Կարդալ ավելին...

Օրինակ, գրացուցակ Կողմնակիցներկարող է հրամաններ տալ Կողմնակիցներ, Կապալառու՝ ստեղծելԵվ Կապալառուներ. ստեղծել խումբ.

Մշակողը կարող է ինքնուրույն ստեղծել կամայական հրամաններ կոնֆիգուրացիայի մեջ: Նա կարող է ավելացնել 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-ը վերադառնում է գծագրին և հրամանի տողում ցուցադրում է հուշում Ընտրեք օբյեկտներ.Այս հուշում ընտրեք այն օբյեկտները, որոնք ցանկանում եք ներառել խմբում: Ավարտեք օբյեկտների ընտրությունը՝ սեղմելով . AutoCAD-ը երկխոսության տուփը վերադարձնում է էկրանին:

4. Սեղմեք լավ.

Այժմ խումբ է ստեղծվել՝ նրա հետ հետագա աշխատանքի համար։

Մեկ օբյեկտը կարող է պատկանել մի քանի խմբերի:

Գոտում Խմբի նույնականացումերկխոսության տուփ Օբյեկտների խմբավորումկա նաև կոճակ Գտեք անունը.Այս կոճակը օգտագործվում է այն խմբի անունը որոնելու համար, որին պատկանում է ընտրված օբյեկտը: AutoCAD-ը թույլ է տալիս ընտրել օբյեկտ և այնուհետև ցուցադրել համապատասխան խմբի (կամ խմբերի) անունը:

Սեղմելով կոճակը Ընդգծելթույլ է տալիս տեսողականորեն ընդգծել տվյալ խումբը: Առաջինը ցուցակից Խմբի անվանումըխումբն ընտրվում է, և կոճակը սեղմելուց հետո Ընդգծել 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), որտեղ պետք է նշեք ստեղծվող օբյեկտի տեսակը կամ օբյեկտների խումբը։ Կան երեք տեսակ.


ՆԿԱՐ 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» համակարգ: Հնարավոր համակցությունների շարքը սահմանափակված է թեժ ստեղներով նախքան , և ներառում է նաև ctrl-z համակցությունը՝ գործողությունը չեղարկելու համար:

Թվում է, թե ամեն ինչ պարզ է. ես կոդավորեցի մի մեծ անջատիչ բլոկ, որը, երբ սեղմվում են կոճակների տարբեր համակցություններ, կանչում է մոդուլի այս կամ այն ​​գործառույթը և ուրախանում: Բայց, առաջին հերթին, այս մոտեցումը ճկուն չէ։ Երբ նախագիծն ավելացնում է նոր մոդուլներ կամ թեժ ստեղներ, մենք ստիպված կլինենք փոխել այս ճյուղի փքված հայտարարության կոդը, ինչը կհանգեցնի այն էլ ավելի փքվածության: Եվ երկրորդը, ղեկավարությունը կարմիր մեծ տառերով գրել է, որ օգտատերը պետք է կարողանա վերանշանակել այս տաք ստեղները։ Այսպիսով, մենք հաստատ չենք կարողանա կոշտ կոդավորել հրամանները անջատիչի կոդի մեջ:

Նայելով նախագծի մոդուլների ծածկագրին և դրանց հրամանների ցուցակներին, որոնք կարող են վերագրվել թեժ ստեղներին, մենք էլ ավելի համոզված ենք, որ մենք պետք է շատ տանջվենք, նախքան այս ամենի համար քիչ թե շատ աշխատող ճարտարապետություն գտնելը:

Մոդուլի միջերեսները հասանելի են 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()-ը՝ այնտեղից վերականգնելու համար։ Այս մեթոդների կոդը կարող է օգտագործել ծրագրավորման լեզվի սերիականացման մեխանիզմները, եթե առկա են: Այս ֆունկցիոնալությունն անհրաժեշտ է մեծ քանակությամբ տվյալների հետ աշխատելու համար, որոնք չեն կարող պահպանվել դրա վրա յուրաքանչյուր գործողություն կատարելուց հետո: Եթե ​​ծրագիրը ձախողվի, մենք կկարողանանք բեռնել պահված հրամանները և հաջորդաբար կիրառել դրանք տվյալների առկա պատճենի վրա՝ այս տվյալները թարմացնելու համար:

Եզրակացություն

Օգտագործելով «Հրաման» օրինաչափությունը, մենք կարողացանք ամբողջությամբ առանձնացնել տարբեր կատարող մոդուլները հաճախորդից՝ ստեղնաշարի կառավարիչից: Եթե ​​ապագայում ծրագրում հայտնվեն նոր մոդուլներ, մենք հեշտությամբ կարող ենք ավելացնել համապատասխան հրամանները և դրանց վրա տաք ստեղներ հատկացնել։ Սա կլինի պարզ, էլեգանտ և արդյունավետ լուծում։