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

dotazy uživatelů k funkcím editoru schematu, náměty na jeho další rozšíření
Odpovědět
Uživatelský avatar
Tomáš Och
Member
Příspěvky: 394
Registrován: úte čer 19, 2007 4:41 pm
Bydliště: Papouch s.r.o., Praha
Kontaktovat uživatele:

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

Příspěvek od Tomáš Och »

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.
Uživatelský avatar
krivka
Member
Příspěvky: 148
Registrován: čtv čer 28, 2007 1:56 pm

Příspěvek od krivka »

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.

Kód: Vybrat vše

    // 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
Uživatelský avatar
Tomáš Och
Member
Příspěvky: 394
Registrován: úte čer 19, 2007 4:41 pm
Bydliště: Papouch s.r.o., Praha
Kontaktovat uživatele:

Příspěvek od Tomáš Och »

krivka píše:...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 píše:...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
Uživatelský avatar
krivka
Member
Příspěvky: 148
Registrován: čtv čer 28, 2007 1:56 pm

Příspěvek od krivka »

kolin píše: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 píše: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 píše: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.
Uživatelský avatar
Tomáš Och
Member
Příspěvky: 394
Registrován: úte čer 19, 2007 4:41 pm
Bydliště: Papouch s.r.o., Praha
Kontaktovat uživatele:

Příspěvek od Tomáš Och »

krivka píše: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 píše: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 píše: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...
Uživatelský avatar
krivka
Member
Příspěvky: 148
Registrován: čtv čer 28, 2007 1:56 pm

Příspěvek od krivka »

kolin píše:- 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.
Odpovědět