Autor
|
Thema: in Produkt externes Part durch select ersetzen (1363 mal gelesen)
|
cmb Mitglied Systembetreuer
Beiträge: 500 Registriert: 12.07.2002 CATIA V5-6R2016 64bit Smarteam R22.6 Moldflow Adviser 2014 Lenovo Think Pad P90
|
erstellt am: 30. Sep. 2011 13:58 <-- editieren / zitieren --> Unities abgeben:
Hallo Forum, ich habe in meiner Catia Sitzung ein CATProduct (active Document) und ein Part geöffnet. Nun möchte ich durch eine selektion einen Replace machen. Das zu ersetzende Part kann ich auswählen das funktioniert. Aber die zweite selektion bringe ich nicht zum laufen. Muss ich die selektion in ein Array übergeben? Gruß Norbert
Code: Sub CATMain() Dim oDocs As Documents Dim oDoc As Document Dim oProd As Product Dim oSel As Object Dim aAuswahlFilter(0) Dim Status As String Dim oPartNeu As Document Set oDoc = CATIA.ActiveDocument Set oDocs = CATIA.Documents Set oProd = oDoc.Product Set oSel = oDoc.Selection oSel.Clear aAuswahlFilter(0) = "Product" Status = oSel.SelectElement2(aAuswahlFilter, "Bitte zu ersetzendes Part auswählen", False) If Status = "Normal" Then Set Part = oSel.Item(1).Value Set Ptemplate = oProd.Products.Item(Part.Name) ' oSel.Clear 'Geöffnetes Part (nicht active Document) auswählen Status = oSel.SelectElement2(aAuswahlFilter, "Bitte neues Part auswählen", False) 'If Status = "Normal" Then '' bei externen Parts immer Status Cancel Set Part02 = oSel.Item(1).Value 'MsgBox Part.Name 'der Exemplarname Set oPartNeu = oProd.Products.Item(Part02.Name) ' Set Pneu = oProd.Products.ReplaceComponent(Ptemplate, oPartNeu, True) End If End Sub
------------------ V5R20 Catia + Smarteam Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 30. Sep. 2011 17:13 <-- editieren / zitieren --> Unities abgeben: Nur für cmb
Servus Zum ein Objekt in einem anderen Dokument wählen zu können, muss du die Methode SelectElement4 verwenden. Dann wird eine Document und ein Selection zurückgeliefert. Anbei ein Beispiel: Code:
Sub CATMain() Dim oDocs As Documents Dim oDoc As Document Dim PartDocument As Document Dim oProd As Product Dim oSel As Selection Dim oSelB As Object Dim aAuswahlFilter(0) Dim Status As String Dim oPartAlt As Product Dim oPartNeu As Product Dim path As String Set oDoc = CATIA.ActiveDocument Set oDocs = CATIA.Documents Set oProd = oDoc.Product Set oSel = oDoc.Selection Set oSelB = oSel oSel.Clear aAuswahlFilter(0) = "Product" 'Exemplar wählen, dass ersetz werden soll Status = oSelB.SelectElement2(aAuswahlFilter, "Bitte zu ersetzendes Part auswählen", False) If Status <> "Normal" Then MsgBox "Es wurde kein zu ersetzendes Exemplar gewählt. Das Makro wir beendet" Exit Sub End If Set oPartAlt = oSel.Item(1).Value oSel.Clear 'Filter neu setzen, um nur Parts selektieren zu können aAuswahlFilter(0) = "Part" Status = oSelB.SelectElement4(aAuswahlFilter, "Bitte neues Part auswählen", "Bitte neues Part auswählen", False, PartDocument) If Status <> "Normal" Then MsgBox "Es wurde kein Part selektiert. Das Makro wir beendet" Exit Sub End If 'Pfad des externen Dokuments ermitteln path = PartDocument.fullname 'oPartAlt ersetzen Set oPartNeu = oProd.Products.ReplaceComponent(oPartAlt, path, False) End Sub
In diesem Beispiel wird nur das zurückgelieferte Document weiter verwendet.Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cmb Mitglied Systembetreuer
Beiträge: 500 Registriert: 12.07.2002 CATIA V5-6R2016 64bit Smarteam R22.6 Moldflow Adviser 2014 Lenovo Think Pad P90
|
erstellt am: 04. Okt. 2011 09:17 <-- editieren / zitieren --> Unities abgeben:
Hallo Bernd, vielen Dank für die Lösung, funktioniert Super. Wenn ich die Frage früher gepostet hätte, hätte ich mir 2 Tage ausprobieren erspart ,-(. Gruß Norbert ------------------ V5R20 Catia + Smarteam Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|