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

Jak získat 2D pozici/bounding rectangle položky ve stromě?

UživatelPříspěvek
odklizec

Poslat zprávu | Profil
Datum: 21.1. 2013 | Zobrazeno: 9882x
Konfigurace CATIA:

Text dotazu:
Zdravím všechny,

Mam takový hodně specifický problém. Potřeboval bych získat 2D pozici aktuálně vybrané položky ve stromě. V ideálním případě bounding rectangle dané položky. Máte někdo představu, jak toho programově dosáhnout (script/caa)? Nikde nemůžu najít nějakou get coordinate/position/rectangle funkci, vztahující se k položkám ve stromě. Jak říkám, je to hodně specifická věc, kterou asi řeší málokdo, jestli vůbec někdo? ;) Diky za každý nápad!

Ing Jan Cinert

Poslat zprávu | Profil
[#3610] | Publikováno: 21.01. 2013 - 11:53
Dobrý den,

1) nikde není uvedeno, jestli myslíte strom ve 3D nebo ve výkresu.

2) myslíte pozici textu s názvem položky vůči obrazovce? Na to to potřebujete?

Řešil jsem už lecjaké "špeky", ale tohle je opravdu netradiční požadavek. :-)
odklizec

Poslat zprávu | Profil
[#3619] | Publikováno: 22.01. 2013 - 07:50
Přeju pěkný den a díky za odpověď.

Omlouvám se, myslel jsem samozřejmě 3D navigační strom, ale týká se to v podstatě každé implementace Catia "specification tree", tedy například i 2D drawing stromu nebo stromu v menu Tools >> Options.

A na co potřebujeme? Děláme na jednom rozšíření pro GUI automatizační nástroj. Abychom byli schopni ziskat a posílat akce z a do položek v Catia specifikačním stromě, potřebujeme ke každé položce stromu její aktuální pozici a bounding rectangle. Minimálně potřebujeme nejaky bod dané položky (např. levý horní nebo dolní roh) a bounding rectangle si už "nějak" dopočítáme ;)

Je to bohužel hodně specifická věc, ale nevěřím, že se z položek ve stromě nedá toto zjistit? Jen vědět jak.
Ing Jan Cinert

Poslat zprávu | Profil
[#3620] | Publikováno: 22.01. 2013 - 09:17
Proč potřebujete zrovna položky ve stromu? Vždyť každá položka představuje právě jeden objekt, který je většinou dostupný přes API (alespoň co se týká PD, GSD, ASD). Práce se stromem je téměř nemožná, sám jsem se kdysi snažil o jeden automatizovaný nástroj, který kontroloval strukturu stromu podle specifikace metodiky.

Předpokládám, že zamýšlíte na pozici bounding rectanglu posílali kurzor myši a simulovali kliknutí. Tohle podle není vůbec nutné, kromě snad několika málo případů, kdy má funkce dialog a není dostupná v API (např. Disassemble s volbou all cells).

Bohužel v API není nic, čím by se dal strom procházet a už vůbec ne dostat se na jeho grafické části. Už se to tu nejedenou řešilo, vždy bezvýsledně.

Řešení určitě je, ale muselo by se použít prostředí CAA, které má v ČR jen pár firem.
odklizec

Poslat zprávu | Profil
[#3621] | Publikováno: 22.01. 2013 - 12:32
Strom potřebujeme, protože ve stromě je kompletní struktura 3D scény a z pohledu automatizace, je ideální přistupovat k jednotlivým objektům přes strom, než se snažit určité elementy klikat ve 3D. Samozřejmě, automatizace se da udelat přes CAA, ale za předpokladu, že testovat budou lidé bez znalosti CAA, bylo by ideální mít možnost nahrát nějaký scénář pomoci rekordéru, upravit jej a případně opakovaně spustit. A to vše bez nutnosti znát CAA, případně jen s nevyhnutelně nutnou mírou znalosti programováni (nějaký script).

Máme komerční automatizační nástroj, který Catia CAA elementy přímo nepodporuje, ale dá se pomocí rozumné míry hackovani přinutit ty elementy rozeznávat. Strom jako takový už přes spy tool dané aplikace načteme. Bohužel, momentálně jsme zaseknutí na těch pozicích jednotlivých položek specifikačního stromu. Snad na něco příjdeme? ;)

Zapomněl jsem dodat, že my používáme CAA. Ale bohužel, zatim se nám nepodařilo najít interface, který by vrátil pozici/bounding rectangle položky ve stromě. Jsem přesvedčen, že na to určitě nejaký CAA interface je, jen ho najít a správně naimplementovat.
Ing Jan Cinert

Poslat zprávu | Profil
[#3623] | Publikováno: 22.01. 2013 - 21:11
Tak tady bohužel nepomůžu. Já se pohybuju jen v oblasti API (jedu na .NET). Některé moje kousky jsou i složitější, o CAA jsem zatím vždycky jenom slyšel. I společnost kde pracuju o něm přemýšlela, ale usoudilo se, že by investice nejspíš nepřinášela ovoce a upustilo se od toho.

Každopádně držím palce a kdyby to bylo možné, dalo by se o tom (až to bude hotové), tady na webu něco napsat - jako vaše reference.


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.