1

Téma: Nastavení výchozích pozic nápisů (Default Image)

Dobry den, hraju si tu trochu s nastavenim Default Image, docela by se mi tu libila funkce, kdy pokud prepnu nektery z napisu na hidden, a timpadem mi vznikne na miste nyni schovaneho napisu prazdny radek, kdyby se ostatni napisy posunuly smerem k telu soucastky prave o tu jednu schovanou pozici. Takto bych si totiz mohl vlastne jen urcit poradi napisu jak se maji zobrazit, a kdyz budu mit zobrazenou pouze referenci soucastky (ktere bych urcil, ze bude zobrazena na nejvrchnejsim radku - reference se bezne umistuji jako prvni radek), nevznikne mi to, ze mam referenci a kilometr od ni teprve soucastku. Nebo tam tato funkce je, ale nevsiml jsem si ji? Puvodne jsem si myslel ze to je sloupec "Round" ale mylil jsme se.
Samozrejme necekam ze by se napisy mely "sesypat" k soucastce jakmile napis schovam, ale staci, pokud se sesypou v okamziku kdy otocim soucastku, stejne jako se az tehdy hybe napisy nyni.

2

Re: Nastavení výchozích pozic nápisů (Default Image)

Dobrý den,
Váš požadavek je na jedné straně velmi rozumný (tak nějak to člověk udělá ručně, aniž by nad tím moc přemýšlel), na druhé straně mi není jasné, jak by mělo vypadat ovládání takového chování a jaké by mohlo umožňovat smyslupné modifikace. (Možná něco vyplyne z tohoto vlákna.)

A proto je podobné chování v editoru už dlouhá léta pevně zabudováno. Namísto dlouhého vysvětlování uvedu komentář ze zdrojového textu, který snad dostatečně popisuje, jak program umísuje popisy součástek, pokud jsou PartName nebo Reference nulové velikosti, případně pokud je PartName skryto (skrytá Reference do výjimek zahrnuta není, na důvod už si nevzpomínám). Pokud první výjimka vede na nějakou změnu, pak druhá zachází s přesunutými nápisy.

    // vyjimka: neviditelne PartName nebo nulove velikosti ->
    //   pozice PartName blize stredu soucastky nez Value1 ->
    //     Value1 prevezme pozici od PartName a Value2 od Value1
    //   else
    //     pozice PartName blize stredu soucastky nez Value2 ->
    //       Value2 prevezme pozici od PartName

    // vyjimka: Reference nulove velikosti ->
    //   pozice Reference blize stredu soucastky nez PartName ->
    //     PartName prevezme pozici od Reference a Value1 od PartName a Value2 od Value1
    //   else
    //     pozice Reference blize stredu soucastky nez Value1 ->
    //       Value1 prevezme pozici od Reference a Value2 od Value1
    //     else
    //       pozice Reference blize stredu soucastky nez Value2 ->
    //         Value2 prevezme pozici od Reference

3

Re: Nastavení výchozích pozic nápisů (Default Image)

krivka napsal:

...Váš požadavek je na jedné straně velmi rozumný (tak nějak to člověk udělá ručně, aniž by nad tím moc přemýšlel),...

Mno, kdyz jsem si napriklad u definice pro soucastku s vyvody jinam nez nahoru nastavil, ze veskere napisy chci mit vyskladane smerem nahoru, pak vznika takovy pitomy stav, kdy mam od nejvyse polozeneho radku: Reference, Part Name, Package, Value, Note. A ted, pokud nemam nic v Package, Value, nebo Note (prip.ani v jednom), pak mi tam vznika zbytecna mezera, ktera by byla u kazde takove soucastky.

krivka napsal:

...na druhé straně mi není jasné, jak by mělo vypadat ovládání takového chování a jaké by mohlo umožňovat smyslupné modifikace.

Predstavuji si to napr.tak, ze kdyz rozkliknu nekterou ze 16ti definic v "Default Image", uvidim dole vedle "Copy from >" jeste prepinac "Auto Align" (On/Off) nebo "dY numbering" (Absolute/Relative). Fungovalo by to tak, ze pokud bude prepinac na On (resp.Relative), a zaroven obsah polozky bude nulovy, nebo viditelnost jakekoliv z polozek Hidden, (ma se to vztahovat pro uplnost i na nulovou velikost pisma?) pak vsechny ostatni polozky, ktere lezi na radcich s vyssi absolutni hodnotou dY, se posunou o radek blize stredu soucastky.

Programatorsky to vidim nejak takto:

- pokud je Reference Corner roven Top Left nebo Top Right, tak
    - vezmi jeste neotestovanou polozku s nejnizsim cislem radku vetsim nebo rovnem nule
    - tuto polozku otestuj na neviditelnost, nulovy obsah, nulove pismo - pokud neco z toho splnuje, pak vsem polozkam s vyssim cislem radku dekrementuj jejich cislo o 1
    - opakuj do otestovani vsech polozek s cislem radku vetsim nebo rovnem nule
- pokud je Reference Corner roven Bottom Left nebo Bottom Right, tak
    - vezmi jeste neotestovanou polozku s nejvyssim cislem radku mensim nebo rovnem nule
    - tuto polozku otestuj na neviditelnost, nulovy obsah, nulove pismo - pokud neco z toho splnuje, pak vsem polozkam s nizsim cislem radku inkrementuj jejich cislo o 1
    - opakuj do otestovani vsech polozek s cislem radku vetsim nebo rovnem nule

4

Re: Nastavení výchozích pozic nápisů (Default Image)

kolin napsal:

Mno, kdyz jsem si napriklad u definice pro soucastku s vyvody jinam nez nahoru nastavil, ze veskere napisy chci mit vyskladane smerem nahoru, pak vznika takovy pitomy stav, kdy mam od nejvyse polozeneho radku: Reference, Part Name, Package, Value, Note. A ted, pokud nemam nic v Package, Value, nebo Note (prip.ani v jednom), pak mi tam vznika zbytecna mezera, ktera by byla u kazde takove soucastky.

To je pochopitelné. Popsané výjimky byly šité na míru výchozímu nastavení, kde se nikdy Package, Value a Note neumísovaly mezi PartName a součástku.

kolin napsal:

Predstavuji si to napr.tak, ze kdyz rozkliknu nekterou ze 16ti definic v "Default Image", uvidim dole vedle "Copy from >" jeste prepinac "Auto Align" (On/Off) nebo "dY numbering" (Absolute/Relative). Fungovalo by to tak, ze pokud bude prepinac na On (resp.Relative), a zaroven obsah polozky bude nulovy, nebo viditelnost jakekoliv z polozek Hidden, (ma se to vztahovat pro uplnost i na nulovou velikost pisma?) pak vsechny ostatni polozky, ktere lezi na radcich s vyssi absolutni hodnotou dY, se posunou o radek blize stredu soucastky.
Programatorsky to vidim nejak takto:

- pokud je Reference Corner roven Top Left nebo Top Right, tak
    - vezmi jeste neotestovanou polozku s nejnizsim cislem radku vetsim nebo rovnem nule
    - tuto polozku otestuj na neviditelnost, nulovy obsah, nulove pismo - pokud neco z toho splnuje, pak vsem polozkam s vyssim cislem radku dekrementuj jejich cislo o 1
    - opakuj do otestovani vsech polozek s cislem radku vetsim nebo rovnem nule
- pokud je Reference Corner roven Bottom Left nebo Bottom Right, tak
    - vezmi jeste neotestovanou polozku s nejvyssim cislem radku mensim nebo rovnem nule
    - tuto polozku otestuj na neviditelnost, nulovy obsah, nulove pismo - pokud neco z toho splnuje, pak vsem polozkam s nizsim cislem radku inkrementuj jejich cislo o 1
    - opakuj do otestovani vsech polozek s cislem radku vetsim nebo rovnem nule

Děkuji za námět. Rozmyslím si to. Ještě by to totiž vyžadovalo zobecnění na svislé nápisy apod.

A co kdyby pro každou z pěti položek součástky bylo v příslušné definici jenom uvedeno, co se má stát, je-li prázdná/skrytá/přesunutá jinam/má nulovou velikost? Možnosti jsou buď ponechat, anebo přesunout na její místo jinou určenou položku. To by jednak umožnilo jednoznačně řešit i případy, kdy leží více popisů na řádku, jednak by to umožnilo zahrnout současné výjimky do výchozího nastavení.

kolin napsal:

Samozrejme necekam ze by se napisy mely "sesypat" k soucastce jakmile napis schovam, ale staci, pokud se sesypou v okamziku kdy otocim soucastku, stejne jako se az tehdy hybe napisy nyni.

Estetický problém může představovat opačná situace, kdy skrytou položku zviditelním.

5

Re: Nastavení výchozích pozic nápisů (Default Image)

krivka napsal:

Děkuji za námět. Rozmyslím si to. Ještě by to totiž vyžadovalo zobecnění na svislé nápisy apod.

Aha, to je take pravda. Pak by to resila jeste podminka na nastaveni horiz./vert.smeru a podle toho se bude hybat s dY nebo dX..

krivka napsal:

A co kdyby pro každou z pěti položek součástky bylo v příslušné definici jenom uvedeno, co se má stát, je-li prázdná/skrytá/přesunutá jinam/má nulovou velikost? Možnosti jsou buď ponechat, anebo přesunout na její místo jinou určenou položku. To by jednak umožnilo jednoznačně řešit i případy, kdy leží více popisů na řádku, jednak by to umožnilo zahrnout současné výjimky do výchozího nastavení.

- Bylo by to take mozne, uzivatel by mel uplnou kontrolu, jen jestli by to nebylo tak slozite, ze budu pul dne nastavovat. Uz takhle jsem si musel vytvorit matici 16ti druhu soucastek podle umisteni vyvodu a na nich to overovat. To by bylo dobre promyslet, co vsechno je opravdu nutne nezavisle nastavovat. Jestli o to bude zajem a jestli to neni jen pridelavani si prace.
- Zajimava by byla ta moznost zakazat hybani s napisem, ktery neni ve vychozi pozici (viz Vase slova "...co se má stát, je-li prázdná/skrytá/přesunutá jinam/má nulovou velikost...")
- Napadly me dva pripady, kdy mam dve popisky na jednom radku (predpokladam ze umistene vedle sebe - pres sebe nemaji valny vyznam), ale nedokazu si prilis predstavit prakticke vyuziti. Pak jeste, ze mam nastavene dve polozky na jednom miste: budto jsou obe skryte, a pak se na jejich misto neco posune. Nebo jsou obe videt a pak je to uzivateluv problem. Pak muze byt jedna videt a jedna ne. V takovem pripade pri reseni mnou navrzenym hrozi, ze diky te jedne neviditelne se jina polozka z vedlejsiho radku presune na totez misto, pak je treba prehodnotit zpusob podminek. Nebudou se testovat viditelnosti polozek, ale bude se testovat obsazenost konkretniho radku alespon jednou z viditelnych polozek.

krivka napsal:

Estetický problém může představovat opačná situace, kdy skrytou položku zviditelním.

Pokud to chapu dobre, tak myslite situaci, kdy zneviditelnim polozku, soucastku zvednu a provedu kroky k aktualizaci pozic napisu (otocim o 90° a zase zpet), nasledne neviditelnou polozku zobrazim a ta se bude diky autom.posunu nalezat na stejnem miste jako jina polozka. Tak to je neco, s cim se musi pocitat a opet provedu manevr k aktualizaci pozic napisu...

6

Re: Nastavení výchozích pozic nápisů (Default Image)

kolin napsal:

- Zajimava by byla ta moznost zakazat hybani s napisem, ktery neni ve vychozi pozici (viz Vase slova "...co se má stát, je-li prázdná/skrytá/přesunutá jinam/má nulovou velikost...")

Neměl jsem na mysli nějakou další možnost (např. zakázat hýbání). Jen jsem chtěl uvážit možnost "řetězeného nahrazování", kdy daná položka není na daném místě zobrazena nikoliv proto, že je neviditelná, nýbrž proto, že už předtím nahradila jinou položku.