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

Vb.net 2 catie

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

UživatelPříspěvek
Pavel Krsek

Poslat zprávu | Profil
Datum: 24.11. 2015 | Zobrazeno: 8634x
Konfigurace CATIA:

Text dotazu:
Dobrý den,
jak se prosím ošetřuje ve vb.net to, že když mám puštěno více Catií, tak aby script se prováděl v mé požadované Catii?
Děkuji za radu.

Břeťa Doležal

Poslat zprávu | Profil
[#5482] | Publikováno: 24.11. 2015 - 06:36
Toto už jsem také mnohokrát řešil, ale nikdy nedořešil, páč makra dělám jen zřídka a nejsem programátor. Vždy mě to dovedlo k programování na úrovni Windows, tj. Win API, kde se importují různé procedury a funkce z user32.dll, kernel32.dll, apod... a tam už moje znalosti končí. Spíš je to možná i lenost. Nechce se mi pracně hledat a vyhledávat, co která funkce dělá. Pokud dělám makro, tak jen hlídám počet procesů CNEXT. V případě vícero CATII, řeknu uživateli MsgBox-em, aby si pustil pouze jednu CATII. Líbilo by se mi pokud bych byl schopen z kolekce procesů se dostat na object CATIE, ale i zde je to asi složité, co jsem hledal zdrojové kódy a moc to nepobírám. Z těch API dokáži pouze zobrazit okna aplikací, ale jak přímo zachytit příslušnou CATII, nevím :-(


'kolik běží procesů Catie
locProc = Process.GetProcessesByName("CNEXT")
If locProc.Count > 1 Then 'pokud běží více CATII najednou, nutno ošetřit


Ing Jan Cinert

Poslat zprávu | Profil
[#5488] | Publikováno: 24.11. 2015 - 14:28
Dobrý den,

tohle je asi neřešitelné. Hledal jsem to už nesčetněkrát, ale zatím můžu říct, že nevím jak. CATIA je tzv. singl instance, tj. pro každou catii existuje jeden win proces. Ten se sice dá lehce najít, ale už se nedostanete k danému COM objektu.

Jedna z rad vedla k ROT (running object table), kde by mělo být možné se k COM objektu dopracovat. Kódy. které jsem zkoušel, sice bezpečně fungovaly, ale stejně jsem se vdycky dostal jen k první běžící instaci COM serveru a ta pak vrátila první běžící CATII.

Další možnost pracovala s dodatečnými knihovnami v C, kdy se catia "marshalovala" do souboru a z něj se pak už dal získat požadovaný COM objekt (dá se to najít na webu). Postup byl asi ve 4 krocích a já skončil hned u toho prvního - napsat si knihovny v C. I tak se muselo ještě udělat několik věcí, a celá věc fungovala jen na takto upravené stanici (takže nasazení globálně v celé firmě by byla velmi problematická).

A poslední, asi funkční řešení jsem viděl na YouTube - jmenovalo se to asi catia connector (nebo podobně), uživatel měl spuštěné 4 catie najednou a mohl přepínat, která bude aktivní. Opravdu bylo patrné, co je v které otevřeno, tj. jasná ukázka, že to nějak lze. Jestli to souviselo s druhou možností nedokážu říct.

Ptal jsem se i známeho programátora, nedokázal poradit.


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.