Autor
|
Thema: GeoSet Kopieren von Part zu Part (2010 mal gelesen)
|
joehz Moderator Freiberuflicher Konstrukteur
Beiträge: 1057 Registriert: 25.11.2006 Win7 Pro 64 + Ubuntu + Irix6.5.20 Dell Precision M6600 i7-2960XM 2.7GHz 16GB NVidia Quadro M5010 Catia V5R19 VB6Pro.SP6/VBA 6.5.1053
|
erstellt am: 11. Mrz. 2015 22:03 <-- editieren / zitieren --> Unities abgeben:
ich möchte die Bodies und Sets von einem CatPart in ein anders 'dumm' kopieren. Während die Bodies klappen, machen die HybridBodies Probleme (siehe Fehlermeldung). Der Fehler tritt auf in der zweiten Schleife in der Zeile mit 'osel.PasteSpecial'. Was überseh' ich? Code:
Option ExplicitConst strVersion As String = "V1.0" Const strMacroName As String = "CopyPartToPart" Public oRefAx As AxisSystem 'Part Ref axis system,1/1/1;0/0/0 Public oSourceDoc As PartDocument 'source part doc Public oDestDoc As PartDocument 'destinaton Sub CATMain() Dim oSourceWindow As Window Dim oDestWindow As Window Dim oSourcePart As Part Dim oDestPart As Part Dim oHBdy As HybridBody Dim oSel As Selection Dim n As Integer Set oSel = CATIA.ActiveDocument.Selection oSel.Clear Set oSourceWindow = CATIA.ActiveWindow Set oSourceDoc = CATIA.ActiveDocument Set oSourcePart = oSourceDoc.Part 'create dest part Set oDestDoc = CreateNewPart(oSourceDoc.Part.Name & "_NewPart", _ "New Part aus " & oSourceDoc.Name, True, True) Set oDestWindow = CATIA.Windows.Item(CATIA.Windows.Count) Set oDestPart = oDestDoc.Part Set oRefAx = CreateNewAxisSp(oDestDoc.Part, "RefAxis") oSourceWindow.Activate DoEvents CATIA.RefreshDisplay = False CATIA.DisplayFileAlerts = False CATIA.HSOSynchronized = False For n = 1 To oSourcePart.Bodies.Count oSel.Clear oSel.Add oSourcePart.Bodies.Item(n) oSel.Copy ' oSel.Clear oSel.Add oDestPart oSel.PasteSpecial "CATPrtResultWithOutLink" Next ' oSel.Clear For n = 1 To oSourcePart.HybridBodies.Count oSel.Clear oSel.Add oSourcePart.HybridBodies.Item(n) oSel.Copy oSel.Clear oSel.Add oDestPart oSel.PasteSpecial "CATPrtResultWithOutLink" Next oSel.Clear oDestDoc.Part.Update CATIA.RefreshDisplay = True CATIA.HSOSynchronized = True CATIA.DisplayFileAlerts = True oDestWindow.Activate End Sub
TIA, Joe Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
JPF Mitglied Programmierer
Beiträge: 128 Registriert: 17.08.2001 CATIA V5R19 SP9--HP420,Intel(R) Xeon(R) CPU E5-1620 3.60GHz,32 GB Ram, NVIDIA Quadro 2000--Windows 7 Enterprise 64bit
|
erstellt am: 12. Mrz. 2015 06:51 <-- editieren / zitieren --> Unities abgeben: Nur für joehz
|
imation1999 Mitglied dipl.-ing. Maschinenbau
Beiträge: 276 Registriert: 02.08.2011 Dell Precision T3500 Intel® Xeon® Quad Core NVIDIA Quadro® 5000 Win7 x64 Ultimate CATIA V5 R20 SP2
|
erstellt am: 12. Mrz. 2015 07:14 <-- editieren / zitieren --> Unities abgeben: Nur für joehz
Hallo Joe, Code: For n = 1 To oSourcePart.HybridBodies.Count oSel.Clear oSel.Add oSourcePart.HybridBodies.Item(n) oSel.Copy oSel.Clear oSel.Add oDestPart <----- du musst hier die Ziel GeoSet selektieren, statt Zielpart oSel.PasteSpecial "CATPrtResultWithOutLink" Next
zB.:
Code:
Dim oSel2 Set oSel2 = oDestDoc.Selection For n = 1 To oSourcePart.HybridBodies.Count oSel.Clear oSel.Add oSourcePart.HybridBodies.Item(n) oSel.Copy oSel2.Add oDestPart.HybridBodies.Item(1) oSel2.PasteSpecial "CATPrtResultWithOutLink" oSel2.Clear Next
[Diese Nachricht wurde von imation1999 am 12. Mrz. 2015 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
joehz Moderator Freiberuflicher Konstrukteur
Beiträge: 1057 Registriert: 25.11.2006 Win7 Pro 64 + Ubuntu + Irix6.5.20 Dell Precision M6600 i7-2960XM 2.7GHz 16GB NVidia Quadro M5010 Catia V5R19 VB6Pro.SP6/VBA 6.5.1053
|
erstellt am: 12. Mrz. 2015 10:46 <-- editieren / zitieren --> Unities abgeben:
|
joehz Moderator Freiberuflicher Konstrukteur
Beiträge: 1057 Registriert: 25.11.2006 Win7 Pro 64 + Ubuntu + Irix6.5.20 Dell Precision M6600 i7-2960XM 2.7GHz 16GB NVidia Quadro M5010 Catia V5R19 VB6Pro.SP6/VBA 6.5.1053
|
erstellt am: 12. Mrz. 2015 10:58 <-- editieren / zitieren --> Unities abgeben:
Hi imation, den Test hab ich auch schon durch. Ich will eigentlich die Baum-Struktur beibehalten. Die einzig verbleibende Methode scheint zu sein: - geoset im Zielpart erzeugen - geoset umbenennen - elemente aus geoset-quelle nach geoset-ziel kopieren
Ich probier noch 'n Bisschen. Danke, Joe
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
imation1999 Mitglied dipl.-ing. Maschinenbau
Beiträge: 276 Registriert: 02.08.2011 Dell Precision T3500 Intel® Xeon® Quad Core NVIDIA Quadro® 5000 Win7 x64 Ultimate CATIA V5 R20 SP2
|
erstellt am: 12. Aug. 2015 20:22 <-- editieren / zitieren --> Unities abgeben: Nur für joehz
|
joehz Moderator Freiberuflicher Konstrukteur
Beiträge: 1057 Registriert: 25.11.2006 Win7 Pro 64 + Ubuntu + Irix6.5.20 Dell Precision M6600 i7-2960XM 2.7GHz 16GB NVidia Quadro M5010 Catia V5R19 VB6Pro.SP6/VBA 6.5.1053
|
erstellt am: 12. Aug. 2015 21:35 <-- editieren / zitieren --> Unities abgeben:
Hallo imation, So weit: http://ww3.cad.de/foren/ubb/Forum137/HTML/005829.shtml Mein nächstes Ziel wäre gewesen, die Transformationsachsen und unsichtbaren Elemente loszuwerden; vermutlich durch erneutes Kopieren in ein drittes(finales) CatPart. Der Schritt lässt sich auch händisch relativ einfach umsetzen: - Alle Bodies/Hybridbodies(ausser PartBody) im Baum selektieren, kopieren und in ein frisches CATPart as Result 'Pasten'. - ins NoShow wechseln; alles auswählen, löschen - update, speichern, fertig. Wenn ich mal Lust hab', mach' ich's fertig. Tschau, Joe ------------------ The problem with the world is that the intelligent people are full of doubts, while the stupid ones are full of confidence. ~Charles Bukowski Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |