Přeukládání drawing
Uživatel | Příspěvek |
petan86 Poslat zprávu | Profil |
Datum:
24.9. 2015
| Zobrazeno:
10832x Konfigurace CATIA: R24 SP04, MD2 Text dotazu: |
Andrej Verný Poslat zprávu | Profil |
[#5366]
| Publikováno:
24.09. 2015 - 20:14 Ja by som v tom problém nevidel. Podľa mna je to možné aj z TXT ako aj Excel súboru. Osobne by som preferoval asi excel súbor :). (plusom je práca s bunkami )
|
petan86 Poslat zprávu | Profil |
[#5367]
| Publikováno:
24.09. 2015 - 20:39 No a teď jak to naprogramovat ... |
Andrej Verný Poslat zprávu | Profil |
[#5368]
| Publikováno:
24.09. 2015 - 20:53 Alt+F11 v CATII a ide sa :D. Alebo pokiaľ nie sú znalosti VBA , tak odporúčam youtube štúdium a tým pádom je poriešený aj Excel. Potom už len doštudovať Ojekty Catie , kde by som doporúčal si dokúpiť aj literatúru, ktorá urýchly ten proces. A už len skúšať a čítať fóra (EN / DE) a raz to pôjde. |
Andrej Verný Poslat zprávu | Profil |
[#5369]
| Publikováno:
24.09. 2015 - 20:57 Alebo varianta dva - nechať si to niekym známim napísať. |
Andrej Verný Poslat zprávu | Profil |
[#5370]
| Publikováno:
24.09. 2015 - 21:14 známym... Ospravedlňujem sa za chyby. Ale nevidím tu možnosť opraviť po sebe text po publikovaní. |
petan86 Poslat zprávu | Profil |
[#5371]
| Publikováno:
24.09. 2015 - 21:30 Když teď nebudu řešit načítání dat z excelu a měl bych v jedné proměnné uložený název starého výkresu a v druhé proměnné název nového výkresu, tak jak postupovat dál??
Zkoušel jsem použít záznam makra v Catii a vyšlo mě tohle: Sub CATMain() |
Andrej Verný Poslat zprávu | Profil |
[#5372]
| Publikováno:
24.09. 2015 - 21:44 treba googliť a niečo si z toho zobrať.
https://v5vb.wordpress.com/2010/02/08/file-dialogs/ |
Ing Jan Cinert Poslat zprávu | Profil |
[#5373]
| Publikováno:
24.09. 2015 - 22:45 V principu by to mohlo vypadat nějak takhle...
Sub CATMain() |
petan86 Poslat zprávu | Profil |
[#5374]
| Publikováno:
25.09. 2015 - 19:01 Dobrý den,
Děkuji, tohle mi velice pomůže. Akorád si nevím rady s příkazem: If CATIA.FileSystem.FileExist("cesta ke starym souborum"\OldNames(i)) Then Chápu, že má určit jestli zadaný soubor je uložený na zadané cestě. Pokud, ale zadám přímo: If CATIA.FileSystem("C:\pokus\Deska.CATDrawing") Then Tak mi na zadaném řádku pořád vyskakuje chyba. Nevim si s tím rady. |
Ing Jan Cinert Poslat zprávu | Profil |
[#5375]
| Publikováno:
26.09. 2015 - 10:09 To bude tím, že to má být ... FileExists , s "s" na konci. Je to běžná funkce ve všech jazycích. Mě to "s" vypadlo, většinou tyhle kusy kódu píšu z hlavy.
Pokud byste psal v nějakém vývojovém prostředí, tak vás to samo upozorní na chybu, ale editor v Catii je otřesný. |
petan86 Poslat zprávu | Profil |
[#5376]
| Publikováno:
26.09. 2015 - 10:50 Dobrý den, super už mě to funguje. Děkuji moc.
Ještě se zeptám. Když mám v Catii otevřený produt.CATProduct a více Drawingu např. Deska.CATDrawing a Svarenec.CATDrawing, tak jak pomocí makra aktivuju nebo vyberu Drawing? Napřiklad abych měl aktivní Deska.CATDrawing a mohl použí příkaz. oDoc.SaveAs("cesta k novym souborum"\NewNames(i))
Jde me o to, že výkresy, které chci přeuloži už budu mít otevřené, tak abych je nemusel znovu otevírat. Příkazem: Set oDoc = oDocs.Open("cesta ke starym souborum"\OldNames(i)) Prostě nevim jak se na daný soubor jinak odkázat. |
petan86 Poslat zprávu | Profil |
[#5378]
| Publikováno:
26.09. 2015 - 18:38 Dobrý den, ještě mám jednu otázku.
Jak lze přepnout z aktivního prostředí assembly do Drawing pomocí makra? Děkuji |
Ing Jan Cinert Poslat zprávu | Profil |
[#5379]
| Publikováno:
27.09. 2015 - 10:24 Všechny otevřené soubory jsou dostupné v kolekci Documents, tedy:
Set oDocs = CATIA.Documents
K jednotlivým souborům v kolekci se pak dostanete přes jejich index, tj. Set oDrwDoc = oDocs.Item("Vykres.CATDrawing") a když už máte instanci dokumentu, lze ji jednoduše aktivovat oDrwDoc.Activate() |
petan86 Poslat zprávu | Profil |
[#5386]
| Publikováno:
30.09. 2015 - 20:25 Dobrý den, trochu jsem postoupil, ale zasekl jsem se..
Option Explicit |
petan86 Poslat zprávu | Profil |
[#5387]
| Publikováno:
30.09. 2015 - 20:37 Chybu má v poslední části, kde se snažim přejmenovat soubory. Chci tím ověřit jestli soubor na disku opravdu existuje než ho začnu kopírovat.
If CATIA.FileSystem.FileExist(MyDocuments.Item(i).path & "\" & MyDocument.Name) Then |
petan86 Poslat zprávu | Profil |
[#5388]
| Publikováno:
30.09. 2015 - 20:47 Tak už vím kde je chyba. Špatný název příkazu. FileExists. Chybělo mě tam zase "s"
If CATIA.FileSystem.FileExists(MyDocuments.Item(i).path & "\" & MyDocument.Name) Then |
petan86 Poslat zprávu | Profil |
[#5389]
| Publikováno:
30.09. 2015 - 21:44 Ještě bych měl jednu otázku, když spustím makro a začnou se mi ukládat jednotlivé díly a produkty, tak mě ukaždého dílu vyskakuje hlážka že mám použít save manager.. Jde pomocí makra tato hláška potvrdit abych nemusel u každého souboru mačkat OK????
Nebo jde to vyřešit nějak lépe??? Makro jsem ještě upravil, že se nejdříve uloží party, pak produkty a naposledy výkresy.. Ukladají se od posledního k prvnímu. Děkuji za každou radu. |
Ing Jan Cinert Poslat zprávu | Profil |
[#5390]
| Publikováno:
30.09. 2015 - 23:26 Tyhle souborové hlášky se dají vypnout, jinak by (v některých případech) způsobily pád makra. Pokud přistupujete ke CATIA zvenčí (.NET), makro nepředpokládá tuto hlášku, která je kolikrát na pozadí a čeká na potvrzení. Někdy ani nečeká a rovnou to skončí na výjimce.
Je to přepínač CATIA.DisplayFileAlerts = False - ale na konci makra je dobré to zase zapnout, jinak se vám to může vymstít. |
Petr Poslat zprávu | Profil |
[#5455]
| Publikováno:
08.11. 2015 - 09:28 Dobrý den,
Jde pomocí makra zjistit jméno souboru na které se linkuje výkres? Děkuji |
Andrej Verný Poslat zprávu | Profil |
[#5457]
| Publikováno:
09.11. 2015 - 08:39 Ano , ide to cez metódu "DrawingViewGenerativeBehavior". |
Ing Jan Cinert Poslat zprávu | Profil |
[#5459]
| Publikováno:
09.11. 2015 - 09:00 Přesně tak, je to vlastnost každého pohledu - výkres může mít více linků.
Celá kontextová cesta k vlastnosti je (v případě výkresu): CATIA.ActiveDocument.DrawingRoot.Sheets.Item(i).Views.Item(i).GenerativeBehavior.Document
Tohle vrátí link konkrétního pohledu - objekt typu Document (může být typu CATPart nebo CATProduct, popř. i jiný) a z něj už si pak vyčtete název - vlastnost Name. Vždy se vrací vrcholový objekt struktury, tj. i když je pohled linkovaný na instanci v sestavě, vrací to celou sestavu. Pak je ještě metoda pro zjištění jednotlivých linků, ale ta funguje ne úplne ideálně a musí se správně ošetřit. (Vlastnost GenerativeLinks a její metody FirstLink a NextLink) |
Andrej Verný Poslat zprávu | Profil |
[#5460]
| Publikováno:
09.11. 2015 - 09:34 Dík za upresnenie. Na generativeLinks som zabudol :)) |
Petr Poslat zprávu | Profil |
[#5462]
| Publikováno:
11.11. 2015 - 21:26 Děkuji, tohle mi pomůže |
Petr Poslat zprávu | Profil |
[#5466]
| Publikováno:
15.11. 2015 - 10:56 Dobrý den,
v macru se odkazuji na excel soubor, který chci otevřit a zapsat do něj data. Set wb = myExcel.Workbooks.Open(Filename:=fName, ReadOnly:=False) Do FName, ale musím napsat celou cestu k souboru. Jde nějak jednoduše zadat pouze relativní relativní cestu, když mám excel soubor uložený u macra???? Děkuji |
Ing Jan Cinert Poslat zprávu | Profil |
[#5467]
| Publikováno:
15.11. 2015 - 20:08 Dobrý den,
zkuste nastavit pracovní adresář při spuštění makra. Jde to udělat přes WScript. Set oShell = CreateObject("WScript.Shell") Pak by mohla relativní cesta zafungovat. Já to používám u .NET maker, která si načítají různé konfigurace ze souborů a po až po spuštění. Soubory jsou v root složkách u spustitelného souboru. Skript nejdřív nastaví pracovní adresář a já si ho pak můžu snadno zjistit jako proměnnou a zbytek cesty mi stačí relativně. |
Petr Poslat zprávu | Profil |
[#5468]
| Publikováno:
16.11. 2015 - 20:22 Dobrý den, tohle mi nefunguje. Programuji ve vba, které je v catii. Je ještě nějaká možnost, jak to vyřešit? |
Ing Jan Cinert Poslat zprávu | Profil |
[#5469]
| Publikováno:
17.11. 2015 - 00:01 Ale tohle funguje v catii. Je to součástí CATScriptu, který spouští .NET makra. V integrovaném VBA by mělo fungovat stejně. Resp. i VBA makro se dá spustit pomocí CATScriptu, který nastavení pracovního adresáře může zajistit.
Nechci to tvrdit, ale myslím si, že pokud v makru použijete relativní cestu, vždy se bude vázat právě k aktuálně nastavenému pracovnímu adresáři. Takže buď tento nastavíte podle toho jak potřebujete, nebo prostě máte smůlu. Musela by existovat nějaká funkce ve VBA, která by vracela, odkud je skript spuštěný - já o ní nevím. Pořád si myslím, že by vám to co jsem popsal v předchozím příspěvku mohlo pomoct. Navíc makro máte někde uložené, abyste ho mohl spouštět. Co vám brání v tom, abyste cestu zadal absolutně? |
Andrej Verný Poslat zprávu | Profil |
[#5470]
| Publikováno:
17.11. 2015 - 07:03 Cesta odkiaľ sa spúšťa makro sa dá nájsť takto :
|
Ing Jan Cinert Poslat zprávu | Profil |
[#5471]
| Publikováno:
17.11. 2015 - 12:04 Tak přece...
Zkoušel jsem hledat něco o objektu MSAPC.Apc, na zahraničích fórech je toho plno (COE,...). Určitě to spoustě lidem pomůže. Já to od přechodu na .NET neřeším, ale přiznám se, že jsem o tomhle neměl ani tušení. Díky za dobrý tip. |
Petr Poslat zprávu | Profil |
[#5472]
| Publikováno:
17.11. 2015 - 18:10 Dobrý den, děkuji funguje to výborně. |
Andrej Verný Poslat zprávu | Profil |
[#5473]
| Publikováno:
17.11. 2015 - 20:16 Som veľmi rád,že som trošku pomohol. |
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.