Oznaceni elementu makrem
Uživatel | Příspěvek |
Pavel Krsek Poslat zprávu | Profil |
Datum:
2.4. 2010
| Zobrazeno:
10950x Konfigurace CATIA: Text dotazu: Sub CATMain() Do tohoto makra bych potreboval doplnit opetovne oznaceni(vysviceni) elementu ve strome, proto abych pak na danou selekci mohl aplikovat prikaz COPY. Zkousel jsem neco jako: selection1.Search "Name=Feature.Value.Name,all" ale to hleda primo nazev Feature.Value.Name, ale ne skutecne jmeno daneho Feature. Dekuji za radu |
Ing Jan Cinert Poslat zprávu | Profil |
[#358]
| Publikováno:
02.04. 2010 - 08:57 Tady je jednoduchá pomoc. Odstraňte řádek oSelPart.Clear() - tím si pokaždé výběr smažete - nebo přidejte oSelPart.Copy() před oSelPart.Clear(). Jinak pokud byste chtěl do výběru opět přidávat, musíte si nejprve geometrii někam uložit (např. jako pole s objekty) a pak přidat do výběru příkazem oSelPart.Add( objekt). |
Pavel Krsek Poslat zprávu | Profil |
[#359]
| Publikováno:
02.04. 2010 - 09:04 Ten radek oSelPart.Clear(), tam je schvalne - jde jen o nazorny priklad.
Ve skutecnosti to potrebuji k tomu, aby se oznaceny feature ulozil do "pameti" (jak rikate) - pak se dany part otevre v novem okne a tam potrebuji dany feature opet automaticky oznacit, abych mohl provest prikaz copy. ale nevim jak na to. Dekuji |
Ing Jan Cinert Poslat zprávu | Profil |
[#361]
| Publikováno:
02.04. 2010 - 09:11 A vy to potřebujete jen vložit? Pokud to zkopírujete do schránky ještě než otevřete part v novém okně, zůstane to tam a nemusíte to znovu kopírovat. |
Pavel Krsek Poslat zprávu | Profil |
[#362]
| Publikováno:
02.04. 2010 - 09:18 Ja se snazim sestavit makro na kopirovani linku pomoci metody Multimodellink - jiz zalozene tema.
Proto potrebuji v hlavni sestave oznacit nejaky feature, pak se dany feature (vcetne partu) otevre do noveho okna - tam ho potrebuji nakopirovat, vratit se zpet do sestavy a tam ho vlozit do pozadovaneho partu jako Pastespecial. Dekuji za pomoc. |
Ing Jan Cinert Poslat zprávu | Profil |
[#364]
| Publikováno:
02.04. 2010 - 10:01 Aha, to jste měl říct hned. Budu to psát z hlavy, tak snad tam nenasekám chyby.
(kód pro VB Studio 2008, pokud píšete ve VB6, přidejte si 'set' při vytváření objektů) Sub CatMain() a pak uz se jen vratite zpatky a vlozite vyber kam potrebujete. Netvrdím, že to bude fungovat. Nejsem si jistý, jestli půjdou přidat prvky do výběru, když se vytvářely v jiném okně. Pak by se musely ukládat názvy objektů a hledat je metodou FindObjectByName() |
Pavel Krsek Poslat zprávu | Profil |
[#365]
| Publikováno:
02.04. 2010 - 10:23 Dekuji za pomoc,
ale urcite neni mozne, aby se selekce musela znovu v novem okne provest manualne viz.: 'ted si otevrete nove okno s partem a dale si musite znovu nastavit selekci v partu to by pak nemelo makro temer zadny vyznam. Neslo by to treba pres ten Search - kde se nejprve nadefinuje jmeno oznacenoho elementu a pak se v novem okne pres search vyhleda? Dekuji. |
Ing Jan Cinert Poslat zprávu | Profil |
[#367]
| Publikováno:
02.04. 2010 - 12:16 Search je ošidný, pokud nebudete specifikovat typ elementu, vyhledá i to co nechcete. Třeba pokud zadáte název Point.1, vyberou se všechny body s tímto názvem (i ze skic).
Musel byste tedy u každého elementu přesně specifikovat o jaký typ se jedná, a i pak není zaručeno že se vám některé názvy nebudou shodovat s jinou geometrií. Jinak tu selekci nebudete dělat znovu - je třeba jen znovu nastavit instanci a do ní pak nasypat prvky uložené v poli. Teď mi ještě napadlo, tu první selekci by asi chtělo nastavit na partu v sestavě, ze kterého kopírujete (byla by deklarovaná vzhledem k partu) a pak by se nemusela nastavovat znovu. Jak to udělat jsem vám odpovídal v posledním příspěvku. |
Ing Jan Cinert Poslat zprávu | Profil |
[#372]
| Publikováno:
03.04. 2010 - 21:35 Tak jsem to asi vyřešil. Na ten návod v příspěvku 364 zapomeňte, takhle to nejde. Prvky vybrané v jednom dokumentu s nedají přidat do selekce v jiném. Zkusil jsem jiný způsob. V sestavě vyberete co chcete kopírovat (výběr omezen na plochy, wireframe a Body), pak vyberete Part, do kterého chcete kopírovat a zbytek obstará makro. Zdrojový kód, testovací sestava a videoukázka v příloze. |
Pavel Krsek Poslat zprávu | Profil |
[#382]
| Publikováno:
06.04. 2010 - 08:41 Dobry den,
dekuji za pomoc. Ja jsem dane makro take jiz vytvoril - princip je, ale jiny nez ten Vas - ten take vyzkousim - prijde mi lepsi. To moje makro, ktere jsem sestavil diky vasim dilcim napadum funguje tak, ze part s oznacenymi features se otevre do noveho okna, tam se pomoci funkce FindObjectByName opet reference najdou, zkopiruji, vrati do hlavni sestavy a tam se jako paste special vlozi do aktivniho partu. Vse funguje OK, ale nevyhoda je, ze pokud zdrojovy part obsahuje hodne features, tak pomerne dlouho trva, nez makro v druhem okne pomoci dane funkce jednotlive features najde. Vubec me nenapadlo to sestavit Vasim zpusobem tj. ze do druheho okna se neotevira zdrojovy part, ale part do ktereho potrebuji nakopirovat linky. SUPER napad. Pokud by Vas zajimalo, to moje makro, tak je v priloze. Diky moc. |
Ing Jan Cinert Poslat zprávu | Profil |
[#383]
| Publikováno:
06.04. 2010 - 08:49 Pozor na jednu věc. Pokud se budou dvě feature jmenovat stejně, funkce FindObjectByName najde vždy jen jednu, takže to také vůbec nemusí být ta kterou chcete kopírovat.
Příklad: Budete chtít kopírovat bod se jménem Point.1. Makro vám vybere bod v první skice, protože se stoprocentně jmenuje stejně a navíc (téměř) každá skica bod s tímto názvem obsahuje. Jde to použít, pokud zaručíte jedinečné názvy u všech feature... Používal jsem to v jiném makru a měl jsem velké problémy. |
Pavel Krsek Poslat zprávu | Profil |
[#384]
| Publikováno:
06.04. 2010 - 09:49 Tak jsem zkousel to vase makro a je "temer" OK.
Vadi mi na nem je to, ze musi byt aktivni sestava a ne part do ktereho kopiruji linky. Nechapu proc prikaz oSelection.Copy() musi byt pri aktivni sestave, jinak vyskoci chybova hlaska catstriptu. Pokud makro upravim tak, ze zacatek scriptu vymazu, Copy provedu manualne a pak terpve spustim makro, tak je vse OK. Pri manualnim Copy je jedno co je aktivni (part ci sestava), ale v makru ne. Nechapu. Predpokladam, ze tema, ktere jste zalozil na aktivaci partu ci produktu makrem se vztahuje k tomuto problemu. Je to tak? Dekuji. |
Ing Jan Cinert Poslat zprávu | Profil |
[#385]
| Publikováno:
06.04. 2010 - 10:39 Přesně tak. Lze to obejít nastavením Workbench, pak to funguje bez problémů. |
Pavel Krsek Poslat zprávu | Profil |
[#386]
| Publikováno:
06.04. 2010 - 11:17 Co myslite terminem "Workbench"?
Jak by se muselo prosim kon***ne nastavit? Dekuji |
Ing Jan Cinert Poslat zprávu | Profil |
[#389]
| Publikováno:
06.04. 2010 - 12:32 Workbench je pracovní prostředí - Part Design, Shape Design, Assembly Design atd. Příkaz vypadá CATIA.GetWorkbench("PrtCfg") (pro PartDesign). Problém je, že když se to přepíná do Part Design, otevře se nový Part. Obráceně, tj. přepnutí z Part na Assembly, se aktivuje instance Partu a to stačí. |
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.