Vítejte !   Přihlášení | Registrace
Hlavní menu
CATIA fórum.cz
Novinky
Seriál CATIA
Obecně o CAD
Novinky ze světa DS
Makra pro CATIA V5
Diskuse
Vytvořit téma
Koncepty
Seznam oblíbených
Soukromé zprávy
Pravidla
Live CHAT
VIP žádost
Základy Catia
Ke stažení
Doporučujeme
Pracovní příležitosti
Reklama a kampaně
O fóru
Nápověda

Document Name

Kompletní přehled příspěvků v tématu Document Name řazený podle data jejich publikace na fóru.

UživatelPříspěvek
Viktor Dičér

Poslat zprávu | Profil
Datum: 27.8. 2012 | Zobrazeno: 10767x
Konfigurace CATIA:

Text dotazu:
Dobrý deň,
vedel by mi niekto poradiť, ako načítať do zoznamu (ListBox) iba dokumenty ktoré mám otvorené v oknách? Potrebujem zistit ich meno (Document Name, nie Window Name), skušal som to podľa tutoriálu na tejto stránke (http://www.catia-forum.cz/articles/?article_id=41), funguje to bezchybne pokiaľ sa nepripojím do SmarTeam-u, po pripojení meno okna už nie je meno dokumentu(meno.CATPart) , ako pred pripojením, ale meno + názov.
Ďakujem

Ing Jan Cinert

Poslat zprávu | Profil
[#3265] | Publikováno: 27.08. 2012 - 21:10
Nestačilo by jen vybrat si z názvu okno tu část, které označuje DocumentName? Tj. třeba nalézt pozici podřetězce .CATPart, .CATProduct, .CATDrawing v řetězci a brát jen část od začátku do této pozice nebo odstřihnout konec (název), pokud je pořád stejný.
Viktor Dičér

Poslat zprávu | Profil
[#3266] | Publikováno: 27.08. 2012 - 21:17
Myslím si, že by to nestačilo, pretože názvy v SmarTeam-e sú veľkými písmenami a zdrojový súbor je uložený raz s veľkými písmenami a raz s malými(neviem prečo) a tu vzniká problém.
agaragar

Poslat zprávu | Profil
[#3267] | Publikováno: 27.08. 2012 - 23:37
Niečo na tento spôsob?

Toto vypisuje mená súborov, ktoré sú aktuálne otvorené,
skúsiť na malej zostave inak bude veľa MessageBoxov otvárať a teda Vy zatvárať :).

Ak je to ono tak si len dopíšte zvyšok kódu aby Vám to plnilo ten ListBox.


Sub CATMain()

Dim oDocs As Documents
Set oDocs = CATIA.Documents

Dim oDoc As Document
For Each oDoc In oDocs

If InStr(oDoc.Name, ".CATfct") = False Then

'Dorobiť kód
MsgBox oDoc.Name

End If
Next

End Sub

Ing Jan Cinert

Poslat zprávu | Profil
[#3268] | Publikováno: 27.08. 2012 - 23:49
ad velká a malá písmena:
To by neměl být problém, název souboru musí být jedinečný, dá se převést na malá (velká) a pak by to určitě šlo.

ad kód by agaragar:
Tohle vypíše všechny dokumenty - sestava jich může mít 1000, ale je otevřená v jen jednom okně, takže to není ono.

Ještě mi napadlo jít okno po okně, vždy ho aktivovat a pak se dá brát ActiveDocument podle okna. U něj už není problém se dostat na file name. Otázka je, jestli to bude dostatečně rychlé a fail safe.
Viktor Dičér

Poslat zprávu | Profil
[#3269] | Publikováno: 28.08. 2012 - 06:56
Vedeli by ste mi napísať ako vytrhnúť časť textu (iba číslo dokumentu) a následné prevedenie na veľké alebo malé písmená?
Ďakujem
Viktor Dičér

Poslat zprávu | Profil
[#3272] | Publikováno: 28.08. 2012 - 09:40
Zistil som, že to nebude fungovať univerzálne,pretože v niektorých prípadoch je súbor uložený pod iným menom ako v SmarTeam-e. Takže asi bude treba document name. Bude to možné zrealizovať?
Ďakujem
Ing Jan Cinert

Poslat zprávu | Profil
[#3273] | Publikováno: 28.08. 2012 - 16:39
V čem to chcete psát? CATScript, VBA, .NET?

Tady jsou popsány metody pro práci s řetězci.

http://www.vbnet.cz/clanek--45-vb_net_od_zacatku_dil_12_prace_s_textem_a_retezci.aspx

Jméno souboru v SM tady jedno, CATIA bere to co má otevřené z Worku. V každém případě vždy dostanete to, co je uloženo na disku.
Viktor Dičér

Poslat zprávu | Profil
[#3277] | Publikováno: 28.08. 2012 - 19:59
Píšem to v VBA. Zistil som, že SmarTeam čo sme mali predtým ukladal súbory tak, že im do názvu pridal nejaké vygenerované číslo, čiže s tým textovým reťazcom to asi nepôjde.
Ing Jan Cinert

Poslat zprávu | Profil
[#3278] | Publikováno: 28.08. 2012 - 22:36
V tom případě to nepůjde, protože DocumentName je de facto název souboru (Document = soubor) a tím pádem i Window name (Caption). Vy ale potřebujete původní FileName, které v tu chvíli (po připojení SmarTeamu) už nikde není. Pokud má řetězec přidávaný SM konstantní délku, pořád to půjde zjistit. Pak se také podívejte, jestli náhodou není DocumentName = PartNumber, pak by to už nebyl problém.
Viktor Dičér

Poslat zprávu | Profil
[#3279] | Publikováno: 29.08. 2012 - 00:37
Uvádzam malý príklad:
meno dokumentu: A-80-00-00 (SmarTeam)
názov dokumentu: ZOSTAVA (SmarTeam)
súbor na disku: a-80-00-00_zostava_85467.catproduct (85467 je náhodne vygenerované číslo)

Ak použijem Window Caption, MsgBox mi vypíše A-80-00-00 ZOSTAVA 1 a.0 (tú jednotku tam píše zakaždým a a.0 je revízia)

Ak použijem Document Name, MsgBox mi vypíše a-80-00-00_zostava_85467.catproduct


Ing Jan Cinert

Poslat zprávu | Profil
[#3286] | Publikováno: 29.08. 2012 - 11:23
Jméno dokumentu má pořád stejnou délku, tj. 10 znaků? Pokud ano, je to bez problémů. Pokud je to stejné alespoň u typu dokumentu, je to také řešitelné.

Vezmete DocumentName a odpočítáte prvních x znaků (Jméno), pak dalších x (název) atd.


Uživatel nepřihlášen

Pro zobrazení obsahu stránky / provedení akce (vytvoření nového téma, napsání odpovědi do diskuse apod.) musíte být přihlášeni.