PowerCopy + cislovanie
Uživatel | Příspěvek |
Peter Kovac ![]() ![]() Poslat zprávu | Profil |
Datum:
16.3. 2012
| Zobrazeno:
10800x Konfigurace CATIA: Text dotazu: |
Ing Jan Cinert ![]() ![]() Poslat zprávu | Profil |
[#2702]
| Publikováno:
16.03. 2012 - 13:30 Nevím jestli to půjde, ale zkusil bych v definici parametrů najít atribut s názvem oné Line a publikovat ho. Pak by bylo možné při vkládání instancí zadat i název Line. Pokud tohle nepůjde, můžou se všechny Line jmenovat shodně, např. Line_for_makro, a makro si je nejprve najde a postupně přečísluje na Line_for_makro.1 až x. To by neměl být žádný problém.
Další možností by mohlo být použít knowledgeware template, kde by také mohl jít vybrat název line jako vstupní atribut. |
Peter Kovac ![]() ![]() Poslat zprávu | Profil |
[#2703]
| Publikováno:
16.03. 2012 - 14:59 Publikacia mi nesla, knowledgeware template nepoznam, ale precislovanie pomocou makra je vlastne vynikajuci napad. Otazkou pre mna ostava, ako :)
Premenovat sa da, neviem vsak, ako spravit, aby postupne preslo celym partom, naslo vsetky ciary, resp. pocet s rovnakym nazvomm, ale predovsetkym ako ich postupne premenovat, kedze maju vsetky rovnaky nazov. Sice co to spravim, nie som ale zrovna moc zrucny v makre. Predpokladam, ze najprv zistim pocet opakujucich sa ciar s rovnakym nazvom (neviem ako ma kod vyzerat) a potom algoritmom na zaklade poctu jednotlivo premenujem, neviem vsak, ako to spravit aby to postupne premenovavalo... Postupne sa tym nejako "prehryziem", urcite by mi vsak pomohla nejaka pomoc... |
Ing Jan Cinert ![]() ![]() Poslat zprávu | Profil |
[#2704]
| Publikováno:
17.03. 2012 - 09:15 Pro vyhledání Line bude asi nejlepsi klasické vyhledávání, tedy (pro CATScript)
Set oSelection = CATIA.ActiveDocument.Selection tím se vyhledají všechny line, pro jejich přejmenování pak použijete cyklus For For i = 1 To oSelection.Count De facto můžete dovnitř cyklu napsat i Vámi zamýšlené makro, které bude s Line pracovat, takže by se ani nemusely přejmenovávat. |
Peter Kovac ![]() ![]() Poslat zprávu | Profil |
[#2705]
| Publikováno:
19.03. 2012 - 08:07 kod vyzera nasledovne:
Sub CATMain() sice makro nehlasi chybu, ale ani nic nespravi, resp. ako keby nenasiel ziadny vyber a nema co premenovat... |
Ing Jan Cinert ![]() ![]() Poslat zprávu | Profil |
[#2706]
| Publikováno:
19.03. 2012 - 11:28 Zkuste místo Type='Line' napsat Type='.Line' . Pro kontrolu si můžete nechat vypsat počet nalezených feature - MsgBox(oSelection.Count) . |
Peter Kovac ![]() ![]() Poslat zprávu | Profil |
[#2707]
| Publikováno:
19.03. 2012 - 12:10 format Type='.Line'hlasi ako chybny. Pocet najdenych dava 0. Skusil som tiez len podla nazvu, snad sa da takto zapisat: oSelection.Search("Name='xLineA'; all")
Ale tiez pocet najdenych 0. Netreba nejako definovat, kde ma hladat? Teda v akom geometrickom set atd., ci toto hlada v celom parte? |
Ing Jan Cinert ![]() ![]() Poslat zprávu | Profil |
[#2709]
| Publikováno:
20.03. 2012 - 08:48 Ano, pokud byste to definoval jen názvem, je to správně. Kde hledat se určuje výrazem za středníkem, all - celý dokument, in - aktuálně vybraný element (např. set), scr - viditelné na monitoru atd.
Syntaxi si můžete ověřit ještě pomocí funkce Search v menu Edit. Vyberte typ elementu a zadejte atribut (Name = ) a kliknětě na search. Ve spodní části se pak objeví správně část syntaxe před středníkem, které je shodná s makrem. Některé příklady na Search jsou i zde - http://www.catia-forum.cz/articles/?article_id=43 |
Peter Kovac ![]() ![]() Poslat zprávu | Profil |
[#2712]
| Publikováno:
20.03. 2012 - 13:19 tak konecne, za pomoci toho spominaneho Search v menu Edit (je to pekne prehladne spravene) funguje takato syntax:
oSelection.Search("Type='Line' & Name=xLineA,all")
dakujem |
Peter Kovac ![]() ![]() Poslat zprávu | Profil |
[#2713]
| Publikováno:
20.03. 2012 - 14:45 no a narazil som opat na problem. Chcel som si spravit troska interaktivne prepisovanie a kod vyzera nasledovne:
Sub CATMain() problem vsak nastal v tomto bode: oSelection.Search("Name=Nazov1,all")
nemozem tam dostat jednoducho tu premennu, teda Nazov1, stale mi ho berie ako text a nie ako string s urcitym obsahom. Ide len o syntax, ale uz som skusil vsetko mozne a nie a nie to tam dostat... |
Ing Jan Cinert ![]() ![]() Poslat zprávu | Profil |
[#2714]
| Publikováno:
20.03. 2012 - 15:10 Search query také string, takže to musí být "Name=" & Nazov1 & ", all" |
Peter Kovac ![]() ![]() Poslat zprávu | Profil |
[#2723]
| Publikováno:
22.03. 2012 - 10:00 dakujem, funguje ;)
otazka dalsia, uz je to sice off topic, ale nadvazuje na predchadzajuce. pri zadani do hladaneho nazvu, napr. toho xLineB zadam napr. *xLine*, najde vsetky elementy obsahujuce zadanu cast xLine. To chcem, len rad by som dosiahol to, ze prave oznacenu cast zo vsetkych najdenych elementov premenujem na novy nazov a zvysok nazvu ostane. Cize ako premenujem len cast nazvu. |
Ing Jan Cinert ![]() ![]() Poslat zprávu | Profil |
[#2724]
| Publikováno:
22.03. 2012 - 10:51 To je potom otázka metod objektu string, které se mohou lišit podle vývojového prostředí.
Takže např. Replace(string,find,replacewith[,start[,count[,compare]]]) . |
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.