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

vyhledání dílu v sestavě

Kompletní přehled příspěvků v tématu vyhledání dílu v sestavě řazený podle data jejich publikace na fóru.

UživatelPříspěvek
Petr

Poslat zprávu | Profil
Datum: 12.10. 2020 | Zobrazeno: 4919x
Konfigurace CATIA: V5-6R2014

Text dotazu:
Zdravim,
chtěl bych poradit, chci vytvořit macro, které vyhledá díl podle zadané pozice a otevře ho do nového okna, za předpokladu, že mám otevřenou sestavu...

Má to sloužit při kontrole, kdy podle rozpisky kdy vyhledávám díly a kontroluji rozměry.

Klasicky používám Ctrl+F → zadam číslo pozice → hledat → center graph → open in new window

přijde mi to zdlouhavé...

Díky za rady.



Ing Jan Cinert

Poslat zprávu | Profil
[#6864] | Publikováno: 12.10. 2020 - 13:55
Dobrý den,

stačí takhle jednoduše? Bez ošetření nutnosti otevřené sestavy....

Sub CATMain() 

Dim Name
Set oADoc = CATIA.ActiveDocument
Set oSelection = oADoc.Selection
oSelection.Clear()
Name = InputBox("Zadejte cislo dilu...", "Otevreni v novem okne", "")
oSelection.Search(".Part.Name='*" & Name & "*', all")
If oSelection.Count = 1 Then
CATIA.StartCommand "Open in New Window"
End If
End Sub
Jakub Dědík

Poslat zprávu | Profil
[#6865] | Publikováno: 12.10. 2020 - 14:15
Na toto téma so toho dá vymyslet opravdu hodně :) ... kdysi jsem měl nápad udělat si jednoduchou appku co mi načte bom a data z CATIE a já si budu klikat díl po dílu v appce a catie mi je bude zobrazovat a hned při tom budu mít možnost měnit parametry přes appku, jakou výrobou bude díl vytvářenej a další detaily co se tvořily složitě ručně + kontrola designu. Kdybych tam jako konstruktér zůstal asi bych to vymyslel :D, pak se změnila práce a toto už jsem nepotřeboval.

zkuste si projít dokumentaci a něco napsat

Za mě bych asi řešil tyto kroky

- zjistit co je v catii otevřený
- zobrazit to tak jak by se mi hodilo
- reagovat na to v catii při výběru tam kde jsem si to zobrazil
Petr

Poslat zprávu | Profil
[#6866] | Publikováno: 12.10. 2020 - 19:43
Super funguje, mockrát děkuji.
Petr

Poslat zprávu | Profil
[#6939] | Publikováno: 11.03. 2021 - 14:57
Zdravim,
chci se zeptat jestli není jednoduší způsob na vyhledání partu v sestavě? Přes oSelection.Search to funguje výborně, jen u větších sestav to déle trvá a v podtatě mě to vyhledává všechny shodné party a mě vlastně stačí první shoda.....

Napadlo mě procházet sestavu rekurivně, je to je psano tady na foru viz. kod dole... V kodu bude podminka, když najde shodné nazvy, tak otevře díl v novém okně.

A právě tady je kámen úrazu, že nevim jak přidat do selekce ten part, který má shodu s hledanám názvem.

Tohle je špatně, ale nevim jak by to spolu mělo být propojené, jestli to vubec jde...
oSelection1.Item (1)


For Each oSubProduct In oProduct.Products
oPartName = oSubProduct.PartNumber
If oPartName=hledanyPart then
oSelection1.Item (1)
CATIA.StartCommand "Open in New Window"
End if
If oSubProduct.Products.count > 0 Then
Explore oSubProduct
End If
Next


Děkuji za každou radu..
Petr

Poslat zprávu | Profil
[#6948] | Publikováno: 17.03. 2021 - 08:35
Zdravim,
tak jsem našel co jsem hledal na zahraničním foru.



Sub Main()

Dim doc, sel, setName
setName = "Example"
Set doc = CATIA.ActiveDocument
Set sel = doc.Selection
Dim selSets
' get SelectionSets object (a tricky part)
Set selSets = doc.Product.GetItem("CATIAVBSelectionSetsImpl")
' create new selection set
selSets.CreateSelectionSet setName
' add selected elements to selection set
selSets.AddCSOIntoSelectionSet setName
sel.Clear
' activate the content of selection set
selSets.PutSelectionSetIntoCSO setName
'Dim a()
'selSets.GetListOfSelectionSet a
End Sub
Ing Jan Cinert

Poslat zprávu | Profil
[#6949] | Publikováno: 17.03. 2021 - 13:47
A co na to jít přes kolekci Documents? Budete hledat podle Document name, nikoliv podle PartNumber, resp. postupně budete procházet kolekcí Documents a porovnávat PartNumber a při shodě zavoláte Documents.Open(DocName) a tím se dokument také otevře do nového okna. Stačí pak jen vypnout souborové hlášky, kdy Catie varuje, že už je dokument otevřený v sestavě.
Petr

Poslat zprávu | Profil
[#6976] | Publikováno: 21.05. 2021 - 09:02
Dobrý den,
po koušel jsem se o vytvoření makra o otevirání partu v novém okne na základě Documents.Open(DocName) a vubec mi to nefunguje píše mi to hlašku "Object doesnt support this property or method"

Sub CATMain()

Dim oDocs As Documents
Dim oDocument As Document
Dim fName As String
Set oDocs = CATIA.Documents
For i = 1 To oDocs.count
Set oDocument = oDocs.Item(i)
If TypeName(oDocument) = "PartDocument" Then
fName = oDocs.Item(i).Name
If Mid(fName, 1, 3) <> "CAT" Then oDocs.Item(fName).Open
End If
Next
End Sub
Petr

Poslat zprávu | Profil
[#6977] | Publikováno: 21.05. 2021 - 09:26
Tak už vím v čem byla chyba ale stejně to nefunguje... Píše to " Operation failed, Tpart can not be loaded...."


Sub CATMain()
Dim oDocs As Documents
Dim oDocument As Document
Dim oPart As Part
Dim fName As String
Set oDocs = CATIA.Documents
For i = 1 To oDocs.count
Set oDocument = oDocs.Item(i)
If TypeName(oDocument) = "PartDocument" Then
Set oPart = oDocument.Part
fName = oDocs.Item(i).Name
If Mid(fName, 1, 3) <> "CAT" Then
CATIA.Documents.Open (fName)
End If
End If
Next
End Sub
Ing Jan Cinert

Poslat zprávu | Profil
[#6978] | Publikováno: 22.05. 2021 - 20:17
Dobrý den,

musíte použít vlastnost Fullname, kde je název souboru i s cestou, jinak se to snaží otevírat jen název souboru.

Tedy opravte si řádek:

fName = oDocs.Item(i).Fullname


a dále Mid(fName,1,3) vám bude vracet něco jako C:\, teda začátek cesty k souboru - nevím co tím sledujete, ale je to nesmysl :-)


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.