1 Naposledy upravil: kolin (2009-03-09 10:44:03)

Téma: Unselect (Qualify) vs. vysvicene casti soucastek

Dobry den, ted tak koukam, co ze to vlastne dela funkce Select | Qualify | Components | All v pripadech, kdy pomoci okenka vyberu nejakou skupinu elementu, mezi nimiz se nachazeji soucastky cele lezici v poli okenka, a take jen jednotlive elementy patrici nejake soucastce nekde na hranici okenka, ktera ale jako takova vybrana nebyla.

Nejak premyslim, jestli je spravne ci zadouci stavajici chovani, kdy pri pouziti vyse zmineneho prikazu "Qualify" zustanou stale vysvicene i ty elementy, ktere nalezi jine soucastce, ktera jako takova ale neni nezahrnuta do vyberu. Jak to vidite Vy?

Pro nazornost, na obrazku jsou pomoci okenkoveho oznacovani uplne vybrane souc. C27, C38 a R24. Dale je vybrano nekolik elementu (pady) z Q1. Nyni provedu Select | Qualify | Components | All a nyni nastava ona otazka, zda by nemely zustat oznacene pouze C27, C38 a R24, zatimco pady od Q1 by mely zhasnout, protoze nenalezi k zadne oznacene soucastce:

http://www.formica.cz/files/forum/qualify_unsel.jpg

2

Re: Unselect (Qualify) vs. vysvicene casti soucastek

kolin napsal:

... jestli je spravne ci zadouci stavajici chovani ...

Dobrý den, jaksi tak povšechně bych řekl, že záleží na tom, z kterého hlediska správnost posuzovat -- zda funkce odpovídá názvu příkazu, zařazení na dané místo menu, anebo symetrii a konsistenci soustavy množinových operací či tomu, co by systém měl umět, a již pod jakýmkoliv jménem příkazu.

Představte si, že máte desku, kde jsou pájecí body typu N užity jednak v součástkách, jednak jako prokovky, a Vy chcete mít označené právě ty v součástkách (abyste je pak mohl hromadně změnit na jiný typ).  Nejjednodušší postup zřejmě bude označit typ N příkazem Select | Select | Pads | One Type, a pak užít Select | Qualify | Components | All.  Zde mi tedy stávající chování příkazu připadá žádoucí.

??ekl bych, že zdrojem nelogičnosti, na kterou poukazujete, je to, že označením součástky se ve Formice rozumí jednou označení jejích prvků, jindy zas příznaku (neviditelného, krom v 2. řádce okna), že součástka jako taková je označena -- vždy podle toho, co se zrovna lépe hodí.  Snažil jsem se vymyslet to tak, aby množinové operace i přesto (či právě takto) fungovaly jako celek rozumně.  Požadujeme-li, aby příkaz Select | Select | Components | All označil (navíc viditelně) součástky tak, jak je uživatel chápe a vidí, pak asi je z hlediska logiky a vzájemné symetrie množinových operací Select a Qualify potřebné, aby se příkaz, na který se ptáte, choval popsaným způsobem.

(Ze zmíněné symetrie operací mimochodem vyplývá také to, že zcela stejné pájecí body můžete stejně dobře označit i "obrácenou" dvojicí příkazů, totiž Select | Select | Components | All, a poté Select | Qualify | Pads | One Type.  Přitom právě takováhle symetrie podstatně zvyšuje intuitivní použitelnost množinových operací, podobně jako třeba komutativní zákon v aritmetice.  Totiž, umím si představit, že běžnému uživateli slova "intuitivní použitelnost množinových operací" asi znějí značně ironicky a někomu třeba i vyplavují adrenalin, ale ono ve skutečnosti stačí na počátku pochopit jen malý kousek určité abstrakce, a zbytek člověku přejde do krve právě kvůli těm symetriím.)

Naopak, kdybych důsledně rozlišoval mezi označením součástky a označením jejích prvků, uživatele bych tím nutil jednak určité operace dělat "poslepu", jednak užívat příkaz Select | ... | Components | Marked, a navíc -- aby to celé bylo použitelné -- bych zřejmě musel přidat příkaz, kterým se označení součástky přenese na její prvky (ledaže by se užívalo makro, které uvádím dole).  Příliš důslednosti může někdy být na škodu.

kolin napsal:

Pro nazornost, na obrazku jsou pomoci okenkoveho oznacovani uplne vybrane souc. C27, C38 a R24. Dale je vybrano nekolik elementu (pady) z Q1. Nyni provedu Select | Qualify | Components | All a nyni nastava ona otazka, zda by nemely zustat oznacene pouze C27, C38 a R24, zatimco pady od Q1 by mely zhasnout, protoze nenalezi k zadne oznacene soucastce:

Kde však je jádro potíží, ilustruje např. to, že z obrázku ve skutečnosti není vůbec patrné, které součástky jsou vybrány -- záleží to na vlajce, které si uživatel obvykle příliš nevšímá, a příkazy Select | ... | Components | All také ne (spíše jí vnucují nějakou hodnotu).  Pokud by ty pasivní součástky např. měly skrytý text (hodnotu, jméno pouzdra) někam odsunutý, také by nebyly označené, ačkoliv tak vypadají.

Mimochodem, pro zvýraznění právě jen označených součástek by šlo užít např. takovéhoto makra, které jejich označení "začistí" tak, jak zřejmě požadujete:

  <Ctrl-F10> "zvýrazni označené souč." (
    <Alt-S> <u> <p> <a> 
    <Alt-S> <u> <l> <a> 
    <Alt-S> <u> <a> <a> 
    <Alt-S> <u> <t> <a> 
    <Alt-S> <s> <c> <r>)