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

Vyhledaní daného feature v sestavě

UživatelPříspěvek
Pavel Krsek

Poslat zprávu | Profil
Datum: 8.4. 2010 | Zobrazeno: 10560x
Konfigurace CATIA:

Text dotazu:
Měl bych prosím dotaz ohledně daného catscriptu:


Language="VBSCRIPT"
Sub CATMain()
Set productDocument1 = CATIA.ActiveDocument
Set selection1 = productDocument1.Selection
Set Jmeno = selection1.Item(1).Value
strName = Jmeno.Name
selection1.Search "Name= "& strName &",all"
If selection1.Count <= 1 Then
MsgBox("Hledany Part nebyl nalezen")
End If
End Sub


Dané makro funguje OK do té doby, než se v názvu Feature objeví znaménko "-" (tj. pomlcka) - pak makro nic nenajde.
Pokud vyzkouším přímé hledání přes řádek:

selection1.Search "Name='001_00 - Pudorys',all"


Tak se najdou všechny features s daným jménem.
Ví někdo čím to je, popř. jak daný problém vyřešit.

Děkuji za radu

Ing Jan Cinert

Poslat zprávu | Profil
[#397] | Publikováno: 08.04. 2010 - 09:02
Zkuste si řetězec pro hledání (Search string) připravit do proměnné předem. Někdy mi to také dělalo problémy.
Př:
strSearch = "Name=" & Name & ", all"

oSelection.Search strSearch

A ještě otázka. Co používáte za prohlížeč? Ptám se k***i nekorektnímu převodu znaků uvozovek. Stává se to u někoho a zatím se mi nedaří přijít na to proč.
Pavel Krsek

Poslat zprávu | Profil
[#398] | Publikováno: 08.04. 2010 - 09:17
Tak to taky nepomuze. Upravil jsem to dle vasi rady tj.:

Language="VBSCRIPT"

Sub CATMain()
Set productDocument1 = CATIA.ActiveDocument
Set selection1 = productDocument1.Selection
Set Jmeno = selection1.Item(1).Value
strName = Jmeno.Name
strSearch = "Name=" & strName & ", all"
MsgBox (strName)
selection1.Search strSearch
If selection1.Count <= 1 Then
MsgBox("Hledany Part nebyl nalezen")
End If
End Sub


Vsechny elementy to najde, ale jakmile je tam ta pomlcka tak to nic nenajde. Viz. priloha. Element 001_zakladana NAJDE (je tam podtrzitko) - elementy 002 - ... a 003- ... nenajde.

Jinak prohlizec je IE 6.0.
Spise to, ale vzniklo tim, ze jsem text psal v jinem soft a pak pres schranku dany text kopiroval.

Přiložené obrázky:

Ing Jan Cinert

Poslat zprávu | Profil
[#399] | Publikováno: 08.04. 2010 - 09:41
Tak už vím čím to je. Znaky +, -, a & jsou rezervované pro vyhledávací syntaxi a znamenají:

+ = OR, & = AND, - = EXCEPT (vyjma)

Takže řešení je jednoduché - tyhle znaky prostě v názvech nepoužívat.
Peter Kovac

Poslat zprávu | Profil
[#2885] | Publikováno: 25.04. 2012 - 09:33
ako mozem vyhladat urcity nazov v konkretnom geometrickom sete

Set hybridBodies1 = oPart.HybridBodies

Set HybridBody1 = oPart.FindObjectByName(NazovSetu)

Nazov1="Axis*"
oSelection.Search("Name=" &Nazov1 & ", in")


Takto to funguje tak, ze mi vyhlada v celom parte. Myslel som, ze ak budem definovany v sete, tak bude hladat len tam, ale mylil som sa. Viem, ze "sel" budem vyberat len zo selekcie, ale ako to zadat, aby bol oznaceny dany geometricky set? Skusil som viacero sposobov, nijaky mi nefunguje zatial...

Peter Kovac

Poslat zprávu | Profil
[#2887] | Publikováno: 25.04. 2012 - 09:52
tak uz mi to ide:

oSelection.add HybridBody1


a potom

oSelection.Search("Name=" &Nazov1 & ", sel")

Ing Jan Cinert

Poslat zprávu | Profil
[#2888] | Publikováno: 25.04. 2012 - 11:06
Zkuste si vždycky představit všechny kroky, které děláte pro danou operaci. Stejné kroky je třeba pak zapsat do makra. :-)


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.