Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  zusammenfügen von geöffneten Fenster

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
Autor Thema:  zusammenfügen von geöffneten Fenster (770 / mal gelesen)
FRZ
Mitglied
Maschinenbauer


Sehen Sie sich das Profil von FRZ an!   Senden Sie eine Private Message an FRZ  Schreiben Sie einen Gästebucheintrag für FRZ

Beiträge: 13
Registriert: 04.06.2020

Windows 10, CATIA V5R19

erstellt am: 04. Jun. 2020 10:16    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Zusammen,

Ich versuche die im Hintergrund geöffneten Fenster zusammen zu adden für ein Vergleich.

Dim FensterZahl As Integer
Dim n As Integer

FensterZahl = CATIA.windows.Count
n = FensterZahl - 1

Dim windows As windows
Set windows = CATIA.windows

windows.Item(n + 1).Activate

Dim A As ProductDocument
Set A = CATIA.ActiveDocument

For i = 1 To n

windows.Item(i).Activate


Set B = CATIA.ActiveDocument

Set A = B.Add().Product

Next

Ich bin noch ein Anfänger und das ist mein erster Versuch! Könnt Ihr mir bitte helfen wo ich Fehler mache? 

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

bgrittmann
Moderator
Konstrukteur


Sehen Sie sich das Profil von bgrittmann an!   Senden Sie eine Private Message an bgrittmann  Schreiben Sie einen Gästebucheintrag für bgrittmann

Beiträge: 11780
Registriert: 30.11.2006

CATIA V5R19

erstellt am: 04. Jun. 2020 11:21    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für FRZ 10 Unities + Antwort hilfreich

Servus

Willkommen im Forum. Bitte Systeminfo ausfüllen.
Ich nehme an dass bei dir das im letzten Fenster ein CATProduct geöffnet ist. Um darin ein Einzeltteil/Baugruppe einzufügen gibt es die Methoden AddComponent und AddComponentsFromFiles. (siehe auch Doku)
In den restlichen Fenstern sind dann Einzelteile/Baugruppe die dort eingefügt werden sollen?
Also im Groben sollte folgendes gehen (ungetestet):

Code:
Dim FensterZahl As Integer
Dim n As Integer

FensterZahl = CATIA.windows.Count
n = FensterZahl - 1

Dim windows As windows
Set windows = CATIA.windows

windows.Item(n + 1).Activate

Dim oRootDocument As ProductDocument
Set oRootDocument = CATIA.ActiveDocument

For i = 1 To n

   windows.Item(i).Activate

   Set oDocument = CATIA.ActiveDocument
   If TypeName(oDocument) = "PartDocument" or TypeName(oDocument) = "ProductDocument" then
      Set oChildProduct = oDocument.Product
      oRootDocument.Product.Products.AddComponent oChildProduct
   end if

Next


Gruß
Bernd

------------------
Warum einfach, wenn es auch kompliziert geht.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

FRZ
Mitglied
Maschinenbauer


Sehen Sie sich das Profil von FRZ an!   Senden Sie eine Private Message an FRZ  Schreiben Sie einen Gästebucheintrag für FRZ

Beiträge: 13
Registriert: 04.06.2020

Windows 10, CATIA V5R19

erstellt am: 04. Jun. 2020 11:49    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Servus Bernd,

Vielen Dank für die schnelle Antwort.

Im letzten Fenster ist ein CATProduct geöffnet. In den restlichen Fenster kann sowohl ein Product als auch ein Part geöffnet sein.

wenn man das Fenster aktiviert

"windows.Item(i).Activate"

und danach

den Befehl

"Set oDocument = CATIA.ActiveDocument" gibt,

Wird automatisch die Geometrie im Fenster auf oDocument gespeichert?

oder muss man es zuerst selektieren?

Vielen Dank

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

bgrittmann
Moderator
Konstrukteur


Sehen Sie sich das Profil von bgrittmann an!   Senden Sie eine Private Message an bgrittmann  Schreiben Sie einen Gästebucheintrag für bgrittmann

Beiträge: 11780
Registriert: 30.11.2006

CATIA V5R19

erstellt am: 04. Jun. 2020 11:51    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für FRZ 10 Unities + Antwort hilfreich

Servus

Du musst nichts selektieren.
Hast du meinen Code schon mal probiert?

Gruß
Bernd

------------------
Warum einfach, wenn es auch kompliziert geht.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

FRZ
Mitglied
Maschinenbauer


Sehen Sie sich das Profil von FRZ an!   Senden Sie eine Private Message an FRZ  Schreiben Sie einen Gästebucheintrag für FRZ

Beiträge: 13
Registriert: 04.06.2020

Windows 10, CATIA V5R19

erstellt am: 04. Jun. 2020 12:46    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Vielen Dank Bernd,

Dein Code funktioniert einwandfrei, Ich glaube ich habe vorher mit "For-Next" einen Fehler gemacht.( Ich bin halt noch ein Anfänger)

Ich schicke  mal den ganzen code hier, Falls jemand es braucht.


Sub CATMain()

'Erstellung eines CADProduktes

Dim ADoc As Document

Set ADoc = CATIA.Documents.Add("Product")

'Umbenennen

Dim BV As ProductDocument
Set BV = CATIA.ActiveDocument

Dim Product1 As Product
Set Product1 = BV.Product

Product1.PartNumber = "BauteilVergleich"

'Fenster Zahl n ohne das Fenster "BauteilVergleich"

Dim FensterZahl As Integer
Dim n As Integer
FensterZahl = CATIA.windows.Count
n = FensterZahl - 1

Dim windows As windows
Set windows = CATIA.windows

windows.Item(n + 1).Activate

Dim oRootDocument As ProductDocument
Set oRootDocument = CATIA.ActiveDocument

'Zusammengügen von geöffneten Fenster


For i = 1 To n

  windows.Item(i).Activate

  Set oDocument = CATIA.ActiveDocument
  If TypeName(oDocument) = "PartDocument" Or TypeName(oDocument) = "ProductDocument" Then
      Set oChildProduct = oDocument.Product
      oRootDocument.Product.Products.AddComponent oChildProduct
  End If

Next
End Sub

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

bgrittmann
Moderator
Konstrukteur


Sehen Sie sich das Profil von bgrittmann an!   Senden Sie eine Private Message an bgrittmann  Schreiben Sie einen Gästebucheintrag für bgrittmann

Beiträge: 11780
Registriert: 30.11.2006

CATIA V5R19

erstellt am: 04. Jun. 2020 12:49    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für FRZ 10 Unities + Antwort hilfreich

Servus

Zur Info: ADoc, BV und oRootDocument sind das gleiche Dokument.
Somit könntest du den Code etwas vereinfachen/übersichtlicher machen.

Gruß
Bernd

------------------
Warum einfach, wenn es auch kompliziert geht.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

FRZ
Mitglied
Maschinenbauer


Sehen Sie sich das Profil von FRZ an!   Senden Sie eine Private Message an FRZ  Schreiben Sie einen Gästebucheintrag für FRZ

Beiträge: 13
Registriert: 04.06.2020

Windows 10, CATIA V5R19

erstellt am: 04. Jun. 2020 13:08    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

es war sehr hilfreich, Ich bedanke mich Bernd

Ich füge den vereinfachten Code ein.

Sub CATMain()

'Erstellung eines CADProduktes

Dim oRootDocument As Document

Set oRootDocument = CATIA.Documents.Add("Product")


'Umbennenug

Dim Product1 As Product
Set Product1 = oRootDocument.Product

Product1.PartNumber = "BauteilVergleich"


'Fenster Zahl n ohne das Fenster "BauteilVergleich"

Dim FensterZahl As Integer
Dim n As Integer
FensterZahl = CATIA.windows.Count
n = FensterZahl - 1

Dim windows As windows
Set windows = CATIA.windows

windows.Item(n + 1).Activate

Set oRootDocument = CATIA.ActiveDocument


'Zusammengügen von geöffneten Fenster

For i = 1 To n

  windows.Item(i).Activate

  Set oDocument = CATIA.ActiveDocument
  If TypeName(oDocument) = "PartDocument" Or TypeName(oDocument) = "ProductDocument" Then
      Set oChildProduct = oDocument.Product
      oRootDocument.Product.Products.AddComponent oChildProduct
  End If

Next
End Sub

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz