NÁMĚT: Hromadná změna textu

dotazy uživatelů k funkcím programu Layout, 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:

NÁMĚT: Hromadná změna textu

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

(patrně jsme to kdysi řešili v mailu jako námět, ale nemohu dohledat ani mail, ani výsledek debaty)
Nemohu se ani v menu dopátrat hromadné změny obsahu označených textů (ani na předpokládané trase Edit - Change, ani jinde), takže podávám jako námět..
Uživatelský avatar
Petr Horský
Member
Příspěvky: 620
Registrován: úte čer 19, 2007 12:40 pm
Bydliště: Praha
Kontaktovat uživatele:

Příspěvek od Petr Horský »

Tohle program teď vskutku neumí. Ona by se asi dala celkem jednoduše napsat náhrada textu všech označených nápisů jiným, nebo i záměna zadaného podřetězce v označených nápisech jiným (s kontrolou překročení max. povolené délky), bylo by však asi třeba odtud vyjmout názvy součástek; jinak by se samozřejmě muselo testovat, zda tam nevznikají duplicitní.

Můžete prosím popsat situace, v kterých byste to chtěl užívat?
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 »

Teď jsem si například kreslil krabičku a její varianty, kde jsem potřeboval změnit asi 20 textů protože jsem měl okomentované jednotlivé výstupky, jak jsou v které části vysoké. To je jednou za čas. Často ale bych funkci využil v momentech, kdy dělám revizi desky. Dnes mám pro R, L, i C jedno pouzdro např.0805, jmenuje se RLC0805. Ale na starších deskách je totéž pouzdro zvlášť (R0805, L0805, C0805). Nebudu polemizovat, proč chci pouzdra sjednocovat, prostě to nutné je a na vysvětlování složité. Každopádně teď jdu v Layoutu do editace součástky, nechám označit nulové texty (velikost 0,0mm), změním na nenulové, R0805 přepíšu na RLC0805 a zas to všechno změním na nulový text a totéž u dvou zbývajících druhů. S novým příkazem bych prostě zadal "*0805" -> "RLC0805" a hotovo.
Názvy součástek - myslíte reference? Buď to lze přepínačem, nebo mít možnost Select / Qualify / Unselect /... na druhy textu, pokud jsou v layoutu nějak rozlišovány?
Uživatelský avatar
Petr Horský
Member
Příspěvky: 620
Registrován: úte čer 19, 2007 12:40 pm
Bydliště: Praha
Kontaktovat uživatele:

Příspěvek od Petr Horský »

Tomáš Och píše:S novým příkazem bych prostě zadal "*0805" -> "RLC0805" a hotovo.
No, možná byste nejprve musel již existujícím příkazem Select / Select / Text / Masked ty nápisy označit.
Tomáš Och píše:Názvy součástek - myslíte reference? Buď to lze přepínačem, nebo mít možnost Select / Qualify / Unselect /... na druhy textu, pokud jsou v layoutu nějak rozlišovány?
Ano. Uvažujeme-li ten jednodušší případ, tedy náhradu celých nápisů (spíše než náhradu podřetězců), je buď označen název jediné součástky, jenže pak nemá žádný dobrý smysl jej měnit hromadnou operací, anebo je jich označeno více, jenže pak jim zas nelze vnucovat stejný text (každý název musí zůstat unikátní).
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 »

Nemyslim ale jen o nahrazovani textu patricich soucastkam (pripustme vyjimku pro reference (resp.nazvy soucastek), kde to smysl nema), ale o vsech textech na desce. Dale, v prikladu jsem sice nastinil nahrazeni celeho textu, pokud by se neco takoveho ale delalo, tak nezaslouzilo by si to plnou podporu? Tedy i zmenu casti retezce?
Uživatelský avatar
Petr Horský
Member
Příspěvky: 620
Registrován: úte čer 19, 2007 12:40 pm
Bydliště: Praha
Kontaktovat uživatele:

Příspěvek od Petr Horský »

To zatím byly jen jakési předběžné úvahy mezi minimálním a maximálním řešením: První může vnucovat nový text bez ohledu na předchozí, a názvy součástek prostě přeskakovat, protože stejně nemá smysl je takovýmto způsobem měnit. Naopak u druhého existují důvody i pro práci s názvy součástek (např. změna XTAL* na X*), bylo by tedy třeba kontrolovat vznik duplicit, podobně záměna podřetězce (která by mimochodem mohla být i opakovaná, např. ABC za A by z ABRAKA udělalo ABCBRABCKABC) obecně může řetězec prodloužit, takže by se musela hlídat i max. výsledná délka. Minimální řešení by ovšem vycházelo programátorsky o dost jednodušší.

Mimochodem, také byli uživatelé, kteří podobné operace dělávali textovým editorem v .pcb souboru. (To mělo, technicky vzato, určité výhody, např. duplicitní názvy součástek se našly při otvírání souboru, podobně se v té chvíli přepočetla okénka nápisů a případně i okénka součástek je vlastnících...)
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 »

Jake mate presne na mysli nepripustne duplicity? Napadaji me prave jen ty reference...
Uživatelský avatar
Petr Horský
Member
Příspěvky: 620
Registrován: úte čer 19, 2007 12:40 pm
Bydliště: Praha
Kontaktovat uživatele:

Příspěvek od Petr Horský »

Ano, přesně tak. Přitom, kdyby se to mělo naprogramovat opravdu komfortně, musela by se celá záměna provést nejprve „nanečisto“, pak zkontrolovat, zda nevznikly duplicity, a pouze pokud ne, změnit texty doopravdy.
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 »

Tak ohledne referenci jsme se shodli, ze ty by se ignorovaly z principu, cili s tim, ze se ignorujou, by to uz melo byt mnohem jednodussi?
Uživatelský avatar
Petr Horský
Member
Příspěvky: 620
Registrován: úte čer 19, 2007 12:40 pm
Bydliště: Praha
Kontaktovat uživatele:

Příspěvek od Petr Horský »

Reference bych pro začátek opravdu vynechal zcela.
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 »

Ano, presne tak, ja bych je vynechal nejen pro zacatek, ale uplne. Nebo myslite, ze by to pozdeji zahrnout chtelo i je? Je k tomu nejaky duvod?
Uživatelský avatar
jarex
Member
Příspěvky: 21
Registrován: čtv čer 25, 2009 12:31 pm

Příspěvek od jarex »

Opět asi jen můj požadavek. Pokud by šlo označit např 100 součástek a napsat do formuláře LED1 a dát ENTER. A těch 100 součástek by v tu chvíli bylo pojmenováno jako LED1 - LED100 v tom smyslu že by program vybíral prvky z leva do prava po "řádcích", byla by to úspora času veliká. Ale jde o to, pokud vůbec někdo mimo mě něco takového potřebuje.
Naposledy upravil(a) jarex dne úte led 30, 2018 11:37 am, celkem upraveno 1 x.
Uživatelský avatar
Petr Horský
Member
Příspěvky: 620
Registrován: úte čer 19, 2007 12:40 pm
Bydliště: Praha
Kontaktovat uživatele:

Příspěvek od Petr Horský »

Tohle bych asi nebral jako změnu textu, nýbrž jako přečíslování; už před začátkem operace totiž ty součástky musely mít nějaká unikátní jména.

Budu rád, když se případní další zájemci o podobné operace přihlásí v tomto fóru.
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 »

Neco podobneho, se zminenim moznych potizi nebo slozitejsiho reseni, pokud by to nekdo chtel zpetne promitnout so schematu: http://www.formica.cz/forum/viewtopic.php?id=212
Uživatelský avatar
Petr Horský
Member
Příspěvky: 620
Registrován: úte čer 19, 2007 12:40 pm
Bydliště: Praha
Kontaktovat uživatele:

Příspěvek od Petr Horský »

Zpět k těm záměnám textu, jakožto takovým:

Pokusně jsem to dnes naprogramoval, s následujícími omezeními:
1) pracuje to jen na označených nápisech;
2) z nich však jsou všechny názvy součástek ignorovány;
3) lze buď nahradit všechny nápisy (pattern to replace = "*"),
4) anebo doslovně zadaný podřetězec (pattern to replace = cokoliv jiného), je-li nalezen, nahradit jiným.

Jinými slovy, nelze užívat wildcards (vyjma té samostatné hvězdičky). (Díky tomu stačila knihovní funkce StringReplace, a nemusel jsem programovat vlastní.) Bylo třeba ošetřit nějaké chybové stavy; výsledný řetězec totiž nesmí být delší než povolených 72 znaků, ale nesmí být ani prázdný.

Pravděpodobně Vám pošlu odkaz na verzi k vyzkoušení, popřípadě jej pak přidám i sem.

— — —

Zde je odkaz: http://www.formica.cz/files/Layout-441-p109-1115.zip
Naposledy upravil(a) Petr Horský dne pát bře 09, 2018 1:12 pm, celkem upraveno 1 x.
Odpovědět