Hallo zusammen,
Seit zwei tagen setze ich mich nun mit, einem für mich doch leider größeren, Problem auseinander. Da ich mich erst seit zwei Wochen mit der Makroprogrammierung beschäftige ist mein Wissen leider sehr überschaubar. Da ich im Forum nach mehrstündiger suche leider nichts konkrettes zu meinem Problem gefunden habe (eventuel falsche suchkriterien) wende ich mich nun direkt an euch.
Ich habe mir einen Slider Crank (Schubkurbel) in mit Catia v5 R19 erstellt und mit Bedingungen vesehen. Nun möchte ich über ein Makro den Crank (die Kurbel) drehen lassen und zu jeder angegebenen Winkelstellung die Bauteile aus denen ich den Slider angefertigt habe in ein neues Produkt kopieren (bis hierhin Funktioniert alles einwandfrei).
Nun zum Problem:
Sobald ich das Programm mir einer "Auswahl Selection" erweitern möchte, dass nur die Teile kopiert werden sollen, welche ich ausgewählt habe tretten die ersten Probleme auf. Die Selection an sich Funktioniert, d.h. die Teile die ich vor dem Makrostart ausgewählt habe werden auch kopiert. Was nicht Funktioniert ist, dass nach jeder Winkelposition die Parts an die richtige Stelle kopiert werden. Die Teile werden alle an die selbe (erste) Position kopiert. Nachdem ich eine MsgBox eingebaut habe die sich nach jedem durchlauf meldet ist mir aufgefallen, dass nach dem ersten durchlauf meine selektierten bodies nicht mehr selektiert sind. Ich glaube daran liegt das Problem bin mir aber nicht sicher.
Wäre super wenn Ihr mir da irgendwie weiterhelfen könntet dieses Problem zu beheben.
Gruß Ivanl
Anbei habe ich mal meinen Programmcode eingefügt:
Sub CATMain() 'Part für Kopien erzugen
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 product2 As Product
Set product2 = products1.Item("Varianten.1") 'Zielproduct in dem die Bodies Kopiert werden sollen
Dim products2 As Products
Set products2 = product2.Products
Dim product3 As Product
Set product3 = products2.AddNewComponent("Part", "")
Dim UserSelektion As Selection 'Selektion der Bodies
Set UserSelektion = CATIA.ActiveDocument.Selection
If UserSelektion.Count > 0 Then
Dim Was As Integer
Was = UserSelektion.Count
For I = 1 To UserSelektion.Count
MsgBox (UserSelektion.Item(I).Value.Name)
Next
End If
UserSelektion.Copy
Dim Name As String
Dim documents1 As Documents 'Kopien erzeugen
Set documents1 = CATIA.Documents
Set productDocument1 = CATIA.ActiveDocument
Dim selection2 As Selection
Set selection2 = productDocument1.Selection
selection2.Clear
Dim partDocument2 As Document
Set partDocument2 = documents1.Item("Part1.CATPart")
Dim part2 As Part
Set part2 = partDocument2.Part
selection2.Add part2
selection2.PasteSpecial "CATPrtResultWithOutLink"
product1.Update
End Sub
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP