Spojitost mezi objekty Product a Document?
Uživatel | Příspěvek |
Břeťa Doležal ![]() ![]() Poslat zprávu | Profil |
Datum:
6.6. 2012
| Zobrazeno:
11160x Konfigurace CATIA: Text dotazu: Product.PartNumber = Document.Product.Name ale nejsem si jist. Pokud má někdo s tímto zkušenost, prosím o radu? V rámci makra, chci procházet všechny Party v sestavě a vyčíst si hmotnosti, hustoty a polohy těžišť jednotlivých Body, s tím že sestava může mít i několik v různém počtu podsestav a třeba i v několika úrovních. Pokud by už někdo měl podobný problém vyřešený a byl ochoten poskytnou makro *.catvba byl bych velice rád a ušetřil si práci. Jen část kódu:
|
Ing Jan Cinert ![]() ![]() Poslat zprávu | Profil |
[#2975]
| Publikováno:
06.06. 2012 - 09:21 Ahoj,
obecně asi takto: Dokument je buď typu PartDocument nebo ProductDocument, objekt (jejich vlastnost) Product lze použít u obou. Vlastnost Part má jen PartDocument. To porovnání co píšete není správně, PartNumber není to co Name, Name je v sestavě název instance. Objekt Document je zdrojový soubor daného Objektu a jeho nalezení závisí na tom, kde se právě nacházíme. V sestavě se dá použít: Document = Product.ReferenceProduct.Parent ' instance v sestave Pokud to potřebujete obráceně, tj. nalézt objekt Part při procházení sestavy, použijete jednoduše: Part = Document.Part nebo Part = Product.ReferencedProduct.Part ale samozřejmě si musíte být jistý, že se opravdu jedná o PartDocument, jinak to shoří. Makro na rekurzivní procházení sestavy mám, poměrně vychytané, ale v .NET. |
Břeťa Doležal ![]() ![]() Poslat zprávu | Profil |
[#2976]
| Publikováno:
06.06. 2012 - 10:37 Už používám toto porovnání
Product.PartNumber = Document.Product.PartNumber Můj problém je hlavně v tom, jak z Product objektu pro Part vyzískat referenci na ten objekt Part a následně s tím pracovat. Toto by bylo ideální, ale nefunguje to. Part = Product.ReferencedProduct.Part Toto funguje, ale musím právě vyzjišťovávat který object Document odpovídá objektu Product. Part = Document.Part Hurá!!! ...už to asi mám z tvé rady, jen spojit více řádků... (doplnil jsem ještě .Parent.) Part = Product.ReferenceProduct.Parent.Part Jinak .NET není problém. Už používám Visual Basic 2010Express, ale to až když mám doladěný základ pro Catii. VB 6 v Catii mi ukazuje strukturu objektů. VS2010 mi ukazuje jen že se jedná o COM instanci a nevidím struktůru objektu. Možná jen nevím jak to zapnout, ale spíš předpokládám, že to ani nejde. Každopádně veliké dík za radu. |
Ing Jan Cinert ![]() ![]() Poslat zprávu | Profil |
[#2977]
| Publikováno:
06.06. 2012 - 11:59 Já používám VS 2008 Expres pro V5 a VS 2008 FULL pro Catii V6 (kvůli kompilaci do 32bit aplikace). Možnosti řádkové nápovědy (nebo jak se tomu správně říká, prostě ten rozpad objektu na vlastnosti a metody) u VS 2008 je daleko lepší než u VB6, nedá se to srovnat, asi to máš nesprávně nareferencované nebo něco není nastavené.
PS: Jo, chybělo tam Parent, protože Part je vlastnost Documentu, ale z té definice předtím to vyplývá. |
Ing Jan Cinert ![]() ![]() Poslat zprávu | Profil |
[#2978]
| Publikováno:
06.06. 2012 - 12:01 Ještě ukázka z VS 2008 jak to napovídá... |
Břeťa Doležal ![]() ![]() Poslat zprávu | Profil |
[#2983]
| Publikováno:
06.06. 2012 - 12:34 Špatně jsem se vyjádřil. U VS2010 Expres mi vadí, že nevidím v Locals na obsah Catiovských objektů při ladění. Ale jak jsem již psal...část programu si udělám v Catii VB6 a potom si to přenesu do VS. Dá se to přežít.
|
karel koupelna ![]() ![]() Poslat zprávu | Profil |
[#2985]
| Publikováno:
06.06. 2012 - 12:43 Tohle funguje ale je to šílenost.
|
Ing Jan Cinert ![]() ![]() Poslat zprávu | Profil |
[#2986]
| Publikováno:
06.06. 2012 - 14:31 Uživatel odpovídá na příspěvek #2983:To je divné, tohle taky funguje spolehlivě. Při krokování se dá každý objekt rozkliknout až do konce a jsou k dispozici všechny hodnoty vlastností.
Možná nějaká anomálie VS 2010... |
Břeťa Doležal ![]() ![]() Poslat zprávu | Profil |
[#3098]
| Publikováno:
19.07. 2012 - 08:18 Zdravím ještě jednou k tomuto tématu. Potřeboval bych vyzjistit, jak v sestavě nějak bezpečně rozpoznat když mám seznam produktů, co je model z Catie V4. Part a Product rozeznat už umím, tím že přetypuji Product na Document a zněj už se ptám na typ. Ale přetypování z Productu na Document nefunguje u V4 modelu. Je nějaká vlastnost či funkce u Produktu co by mi řekla, že se jedná o V4 model. Minimálně mohu rozeznat podle jména, páč máme všechny V4 modely s počátečním prefixem, ale nezdá se mi to moc bezpečné a univerzální pro kohokoliv jiného mimo naší firmu.
Děkuji za případnou radu. Snad jsem to vysvětlil dostatečně
|
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.