Hallo ich habe mal wieder ein Problem xD
Es geht um folgendes:
Ich habe ein Makro geschrieben welches ein StartPart aus einem festen Verzeichnis in das geöffnete Product lädt.
Nach einfügen des Startparts wird per InputBox ein neuer Name vergeben und dann im Verzeichnis des Products abgespeichert.
Nun geht es aber darum verschiedene Parts aus einem Verzeichnis einzufügen Hauptordner mit verschiedenen Unterordnern mit verschiedenen
Parts. Ich habe über arrayOfVariant / FileSelectionBox oder Shell nichts erreicht oder gefunden. Alle Funktionen des Makros sollen beibehalten
werden nur benötige ich eine Auswahlmöglichkeit in irgendeiner Form eines Fensters, damit der Anwender die Parts sehen und dann selectieren kann
beginnen soll die Selection im Obersten Ordner... d.h. war die FileSelectionBox Mist weil man sich hier durch die komplette Struktur suchen musste
um dann zum eigentlichen Zielordner zu kommen. Über einen Startpfad habe ich allerdings nur bei der Shell-Funktion was gefunden, aber hier kann man wiederrum nur Ordner auswählen und keine darin enthaltenen Parts...
Language="VBSCRIPT"
'----------------------------------------
Sub CATMain()
'Fehlerbehandlung / Abfrage des aktiven Dokuments
If CATIA.Documents.Count = 0 Then
Box = MsgBox("Es wurde kein aktives Dokument identifiziert!!!" + Chr(10) + "-------------------------------------------------------" + Chr(10) + "Bitte öffnen Sie zuerst ein Dokument und starten Sie" + Chr(10) + "dann das Makro erneut.", vbInformation, "Kein ActiveDocument!!!")
Exit Sub
End If
If CATIA.Windows.Count = 0 Then
Box = MsgBox("Es wurde kein aktives Dokument identifiziert!!!" + Chr(10) + "-------------------------------------------------------" + Chr(10) + "Bitte öffnen Sie zuerst ein Dokument und starten Sie" + Chr(10) + "dann das Makro erneut.", vbInformation, "Kein ActiveDocument!!!")
Exit Sub
End If
Dim oDocument As Document
Set oDocument = CATIA.ActiveDocument
If TypeName(oDocument) <> "ProductDocument" Then
Box = MsgBox("Es wurde kein aktives Product identifiziert!!!" + Chr(10) + "-------------------------------------------------------" + Chr(10) + "Das Makro wurde abgebrochen.", vbInformation, "Kein Product!!!")
Exit Sub
End If
'----------------------------------------
'----------------------------------------
'SartPart_PAD in Product laden
Dim productDocument1 As Document
Set productDocument1 = CATIA.ActiveDocument
Dim product1 As Product
Set product1 = productDocument1.Product
Dim products1 As Products
Set products1 = product1.Products
Dim arrayOfVariantOfBSTR1(0)
arrayOfVariantOfBSTR1(0) = "J:\...\XXX_TEIL-PAD_XXX.CATPart"
products1.AddComponentsFromFiles arrayOfVariantOfBSTR1, "All"
'----------------------------------------
'----------------------------------------
Dim documents1 As Documents
Set documents1 = CATIA.Documents
Dim partDocument1 As Document
Set partDocument1 = documents1.Item("XXX_TEIL-PAD_XXX.CATPart")
Dim strPath As String
strPath = CATIA.ActiveDocument.Path
'Vergabe des neuen InstanceName und der PartNumber
dim myFunc1 As String
myFunc1 = InputBox ("Bitte vergeben Sie einen neuen Namen.", "PartName", "XXXXXXXX-Y-CC_PLATTE_XX")
Dim product2 As CATBaseDispatch
Set product2 = partDocument1.GetItem(myFunc1)
product2.PartNumber = myFunc1
product2.Name = myFunc1
'Geladenes StartPart im Projektordner speichern
strFileName = strPath & "\" & myFunc1
partDocument1.SaveAs strFileName
End Sub
'----------------------------------------
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP