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

Mazání nepoužitých partů

UživatelPříspěvek
Petr

Poslat zprávu | Profil
Datum: 14.3. 2016 | Zobrazeno: 13478x
Konfigurace CATIA: Catia V5 R24 SP4 HF22

Text dotazu:
Dobrý den,
přemyšlím nad makrem, které by promazalo adresař od starých souboru tzn. těch partu a produktu které nejsou nahráty v hlavním produktu.

Nebo existuje jinný způsob jak to udělat bez makra? Podmínkou je, že nechci editovat (přeukládat data).

Děkuji

Andrej Verný

Poslat zprávu | Profil
[#5681] | Publikováno: 14.03. 2016 - 11:53
Jediný spôsob ktorý ma napadá bez použitia makra je funkcia "Send to" - "Directory" a preuložiť všetky data do iného adresára. Potom pôvodny adresár premazať a potom už len data z nového adresara skopírovať do starého.
Inak ma nič nenapadá. Makrom to pôjde tiež.
Petr

Poslat zprávu | Profil
[#5682] | Publikováno: 14.03. 2016 - 12:52
Send to znám a používám, ale problem je že kopíruje jen CATpart a CATproduct, ale ne drawings. Pokud to tedy nejde nějak nastavit...
Ing Jan Cinert

Poslat zprávu | Profil
[#5683] | Publikováno: 14.03. 2016 - 14:15
Dobrý den,

koukám že Send to už bylo zmíněno, takže opravdu zůstává jen možnost makra.

Pokud by se nejednalo i o výkresy, bylo by makro vcelku jednoduché (vytvoření seznamu souborů podle struktury sestavy a vše ostatní smazat). S výkresy by se navíc musel otevřít každý výkres (možné jen přečíst), vytvořit seznam linkovaných souborů a pokud by výkres neobsahoval link do žádného ze souborů v sestavě, také by se smazal.

A ještě poznámka - mazání bych raději nahradil přesunutím do složky "Ke smazání" - přeci jen se uživatel nebo makro může někdy splést a vždy je dobré mít kam se vrátit.

Třešničkou na dortu by pak byl seznam toho, co zůstalo.
.
Pokud byste měl zájem o realizaci makra, napište nebo zavolejte: jan.cinert@catia-forum.cz nebo 734 762 843.
Petr

Poslat zprávu | Profil
[#5695] | Publikováno: 17.03. 2016 - 19:32
Dobrý den,

přesun produktu a partu do složky "old" mě už funguje pomocí makra, ale nevím, jak zjistit na jaký part je linkované drawing.

Byla by nějaká rada? Děkuji
Ing Jan Cinert

Poslat zprávu | Profil
[#5696] | Publikováno: 17.03. 2016 - 21:12
Projít všechny listy, pak každý pohled a u něj zjistit na jaký soubor je linkovaný. View má vlastnost generative behavior a v tomto objektu je další vlastnost document, což už odpovídá dokumentu catia - part/product. A pak už to bude stejné - vytvoří se seznam dokumentů a porovná se s tím, co je v adresáři k promazání.
Petr

Poslat zprávu | Profil
[#5700] | Publikováno: 20.03. 2016 - 12:13
Dobrý den,
zjišťování liků už mě funguje. Už jen stačí porovnat seznam souborů a přebyteční promazat.

Děkuji za pomoc.


Dim Odocs As Documents
Dim Odraw As DrawingDocument
Dim oFileName As String
Dim Filelist As String
Dim path As String
Dim soubor As String
Dim List As String

path = "C:\Pokus\"
Filelist = Dir(path & "*.CATDrawing")

Do While Filelist <> ""
soubr = path & Filelist
Set Odocs = CATIA.Documents
Set Odraw = Odocs.Read(path & Filelist)
oFileName = Odraw.DrawingRoot.Sheets.Item(1).Views.Item(3).GenerativeBehavior.Document.Parent.Name
List = List & oFileName & Chr(13)
Filelist = Dir
Loop
MsgBox (List)
Petr

Poslat zprávu | Profil
[#5709] | Publikováno: 23.03. 2016 - 13:01
Dobrý den,
chci se zeptat. Pokud načtu drawing pomocí metody read a chci zjistit link na soubor pomocí

oFileName = Odraw.DrawingRoot.Sheets.Item(1).Views.Item(3).GenerativeBehavior.Document.Parent.Name

a pokud se soubor linkuje na smazaný part nebo produkt tam mi to vyhodí chybu.

Run-time error '-2147418113(8000ffff)
Method 'Document' of object 'DrawingViewGenerationBehavior' failed


Proto jsem se pokusil odchytit chybu pomocí On error goto handle1...

On Error GoTo Handel1:
oFileName = Odraw.DrawingRoot.Sheets.Item(1).Views.Item(3).GenerativeBehavior.Document.Parent.Name
Handel1:
If Err > 0 Then něco..

Problem je, že mi to nepomohlo a pořád mi to vyhazuje stejou chybu. nevíte v čem by mohl být problém??

Děkuji



Ing Jan Cinert

Poslat zprávu | Profil
[#5710] | Publikováno: 23.03. 2016 - 13:22
Zkuste On Error Resume Next
Petr

Poslat zprávu | Profil
[#5716] | Publikováno: 05.04. 2016 - 13:20
Dobrý den,
měl bych otazku, jak se ve visual basicu provádí vymunování všech načtených referencí, případně proměných?

Mám makro, teré napopvé funguje, ale pravděpodobně zustane "něco" uložené v paměti, proto když je spustím znovu, tak načítá špatná data...

Pomůže až opětovné restartování catie.

Děkuji

Ing Jan Cinert

Poslat zprávu | Profil
[#5717] | Publikováno: 06.04. 2016 - 12:44
To záleží na typu proměnné. U objektu by mělo stačit Set oObject = Nothing, u stringu se dává "", u čísel 0. Záleží na tom, co se v programu očekává a jak jsou ošetřeny vstupy.

Prostě jen na začátku procedury nastavíte vše na Nothing / 0 / "" a to by mělo stačit.

U .NET je ještě navíc třeba odstranit COM referenci, ale to se vás v případě CATVBA netýká.

Také se ale může stát, že makro Catii "nakopne" a pak se opravdu musí provést restart. Pokud Catia po dokončení makra funguje normálně dál, stačí vynulovat reference. Jinak se musí najít chyba, která ale nemusí být přímo v makru.

Příklad: zákazník používal makro pro editaci razítka ve výkresu. Na osmi stanicích vše fungovalo bez problémů, na deváté, která měla stejné parametry, instalaci atd. se po ukončení makra Catia začala chovat tak, že se s ní nedalo pracovat. Nikdo nepřišel na to proč - pomohla až přeinstalace celého systému :-(


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.