Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Abfrage cgr

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:  Abfrage cgr (1984 mal gelesen)
Azazel1
Mitglied



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

Beiträge: 32
Registriert: 08.09.2014

X5450; 16GB
Win 7 SP1
CATIA V5R19 SP9

erstellt am: 01. Okt. 2014 15:23    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,

bis jetzt hat mir das Forum immer gut weitergeholfen, jedoch komme ich nun nicht mehr weiter.

Ich bin dabei alle Parts & Products einer Station an einen neuen Ort abzuspeichern. Das Funktioniert auch alles einwandfrei.
Jetzt wurde in der Konstruktion ein cgr verwendet.
Wie ist es möglich abzufragen, ob es sich bei meinem Teil um ein cgr oder CATPart handelt.

Mein Vorschlag wäre die Partnumber abzufragen, jedoch wüsste ich nicht wie.

Vielen Dank!

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

RSchulz
Moderator²
Head of CAD, Content & Collaboration / IT-Manager



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

Beiträge: 5541
Registriert: 12.04.2007

@Work
Lenovo P510
Xeon E5-1630v4
64GB DDR4
Quadro P2000
256GB PCIe SSD
512GB SSD
SmarTeam V5-6 R2016 Sp04
CATIA V5-6 R2016 Sp05
E3.Series V2019
Altium Designer/Concord 19
Win 10 Pro x64

erstellt am: 01. Okt. 2014 15:36    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 Azazel1 10 Unities + Antwort hilfreich

Hallo,

ich denke der einfachste Weg ist der Dateiname oder was meinst du mit abfragen?

------------------
MFG
Rick Schulz

Nettiquette (CAD.de)  -  Was ist die Systeminfo?  -  Wie man Fragen richtig stellt.  -  Unities

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: 01. Okt. 2014 15:41    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 Azazel1 10 Unities + Antwort hilfreich

Servus
Tom hat mal vor einiger Zeit eine kleine Strategie zur Unterschreitung von CATPart, CATProduct, Komponente, cgr ... gepostet.

Gruß
Bernd

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

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

Azazel1
Mitglied



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

Beiträge: 32
Registriert: 08.09.2014

X5450; 16GB
Win 7 SP1
CATIA V5R19 SP9

erstellt am: 01. Okt. 2014 15:41    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

Das Problem ist nur das die Dateiendung .CATPart ist.
Nicht wundern, das war nicht meine Idee 

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

RSchulz
Moderator²
Head of CAD, Content & Collaboration / IT-Manager



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

Beiträge: 5541
Registriert: 12.04.2007

@Work
Lenovo P510
Xeon E5-1630v4
64GB DDR4
Quadro P2000
256GB PCIe SSD
512GB SSD
SmarTeam V5-6 R2016 Sp04
CATIA V5-6 R2016 Sp05
E3.Series V2019
Altium Designer/Concord 19
Win 10 Pro x64

erstellt am: 01. Okt. 2014 15:45    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 Azazel1 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von Azazel1:
Das Problem ist nur das die Dateiendung .CATPart ist.
Nicht wundern, das war nicht meine Idee  

WTF wer kommt denn auf sowas? Dann nennen wir demnächst PDF´s in .doc und Zip in rar und was weis ich nicht... Irgendwann wundert man sich dann, warum das nicht funktionieren kann. Am Ende das gleiche Prinzip, wie wenn Herr Müller auf seiner Klingel und dem Briefkasten Schmitz stehen hat und sich wundert, dass keine Briefe oder so ankommen...

Tja ich glaube da hast du kaum eine Chance, denn AFAIK kannst du kaum noch Unterscheiden. Suche dir irgendwelche Parameter oder Features/Unterobjekt, die so ein Objekt klar identifizieren können.

------------------
MFG
Rick Schulz

Nettiquette (CAD.de)  -  Was ist die Systeminfo?  -  Wie man Fragen richtig stellt.  -  Unities

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

Azazel1
Mitglied



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

Beiträge: 32
Registriert: 08.09.2014

X5450; 16GB
Win 7 SP1
CATIA V5R19 SP9

erstellt am: 02. Okt. 2014 09:37    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

Nach mehrmaliger Absprache mit meinem Projektleiter haben wir nun herausgefunden das dieser Fall nur einmal auftritt und somit auch von Hand gelöst werden kann.

Jedoch bin ich auf ein weiteres Problem gestoßen. Woran erkenne ich ob ein Teil ein Component ist, bzw die Teile darunter zu einem Component dazugehören.

Gruß

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: 02. Okt. 2014 10:04    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 Azazel1 10 Unities + Antwort hilfreich

Servus
Schau zB mal hier.

Gruß
Bernd

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

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

RSchulz
Moderator²
Head of CAD, Content & Collaboration / IT-Manager



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

Beiträge: 5541
Registriert: 12.04.2007

@Work
Lenovo P510
Xeon E5-1630v4
64GB DDR4
Quadro P2000
256GB PCIe SSD
512GB SSD
SmarTeam V5-6 R2016 Sp04
CATIA V5-6 R2016 Sp05
E3.Series V2019
Altium Designer/Concord 19
Win 10 Pro x64

erstellt am: 02. Okt. 2014 10:05    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 Azazel1 10 Unities + Antwort hilfreich

Hallo,
das geht so gehen...

[CODE]
Sub CATMain()
  Dim oDocNode As Product
  Dim oActDoc As ProductDocument
  Dim oMainPrd As Product

  Set oActDoc = CATIA.ActiveDocument
  Set oMainPrd = oActDoc.Product
 
  For Each oDocNode In oMainPrd.Products
        If oDocNode.ReferenceProduct.Parent.FullName = oDocNode.Parent.Parent.ReferenceProduct.Parent.FullName Then
          MsgBox ("Ich bin eine Komponente >>> " & oDocNode.PartNumber)
        End If
  Next
End Sub

------------------
MFG
Rick Schulz

Nettiquette (CAD.de)  -  Was ist die Systeminfo?  -  Wie man Fragen richtig stellt.  -  Unities

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

Azazel1
Mitglied



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

Beiträge: 32
Registriert: 08.09.2014

X5450; 16GB
Win 7 SP1
CATIA V5R19 SP9

erstellt am: 02. Okt. 2014 11:02    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


Bild.jpg

 
Vielen Dank für die schnellen Antworten.

Jetzt habe ich herausgefunden ob eine Baugruppe eine Komponente ist. Wie finde ich jedoch heraus, das die Teile darunter ebenfalls zu der Komponente gehören.

Ich habe im Anhang ein Bild angehängt um mein Beispiel zu verdeutlichen.
Gespeichert werden müsste nur die erste 5 Zeilen. Die anderen resultieren alle daraus, weil es Komponenten sind.

Ich hoffe ihr versteht mein Problem.

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: 02. Okt. 2014 11:07    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 Azazel1 10 Unities + Antwort hilfreich

Servus
Was hast du genau vor? Wie weit bist du? wie bist du vorgegangen?
IMHO ist es am einfachsten die Struktur rekursive abzuarbeiten (siehe Forensuche oder auch meine verlinkte Diskussion)

Gruß
Bernd

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

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

RSchulz
Moderator²
Head of CAD, Content & Collaboration / IT-Manager



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

Beiträge: 5541
Registriert: 12.04.2007

@Work
Lenovo P510
Xeon E5-1630v4
64GB DDR4
Quadro P2000
256GB PCIe SSD
512GB SSD
SmarTeam V5-6 R2016 Sp04
CATIA V5-6 R2016 Sp05
E3.Series V2019
Altium Designer/Concord 19
Win 10 Pro x64

erstellt am: 02. Okt. 2014 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 Azazel1 10 Unities + Antwort hilfreich

Ich check die Frage nicht... Wenn du doch weist, dass das eine Komponente ist, dann kannst du die Kinder über .Products abfragen und weist, wer zu dieser Komponente gehört. Die Fragen, die Bernd da aufwirft, sind essentiell. Wir können nicht wissen, was du willst, brauchst oder dir gar vll. einen Gedankenstoß geben, wenn du minimale Informationen gibst.

Es konnte noch niemand über einen Tellerrand schauen, wenn kein Teller da ist 

------------------
MFG
Rick Schulz

Nettiquette (CAD.de)  -  Was ist die Systeminfo?  -  Wie man Fragen richtig stellt.  -  Unities

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

Azazel1
Mitglied



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

Beiträge: 32
Registriert: 08.09.2014

X5450; 16GB
Win 7 SP1
CATIA V5R19 SP9

erstellt am: 02. Okt. 2014 12:40    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

Meine Aufgabe besteht darin, eine Vorrichtung mit allen darin beinhalteten Daten an einen anderen Ort zu speichern.

Es muss in CATIA die Vorrichtung geladen werden. Anschließend erstellt mein Code im Explorer an einem angegebenen Verzeichnis Ordner.
Einen Ordner für die Station an sich und darunter die Ordner für die jeweiligen Baugruppen.

Anschließend wird überprüft ob es ein Fertigungsteil (beginnend mit "36.8")ist, oder ein Kaufteil. Kaufteile werden generell in den Ordner "Purchase" gespeichert.
Die Fertigungsteile werden in die entsprechenden Baugruppen Ordner gespeichert.

Gehen wir von diesem Fall aus funktioniert alles so weit ganz gut.

Wenn jedoch gespiegelte Baugruppen/Fertigungsteile eingebaut sind, werden diese unter eine Komponente erstellt. Alle Teile unter der Komponente, einschließlich der Komponente an sich müssen nicht abgespeichert werden.

Code:
Sub rumprobieren()
CATIA = GetObject(, "CATIA.Application")
        Dim ProduktDoc As Object
        Dim Produkt, produkte As Object
        CATIA.DisplayFileAlerts = False
        CATIA.ActiveDocument.Product.ApplyWorkMode (DESIGN_MODE)
        ProduktDoc = CATIA.ActiveDocument
        Produkt = ProduktDoc.Product
        produkte = Produkt.Products
        Verzeichnis1 = "E:\"
        CATIA.FileSystem.CreateFolder (Verzeichnis1 + "\" + CATIA.ActiveDocument.Product.PartNumber)
        Verzeichnis = Verzeichnis1 + "\" + CATIA.ActiveDocument.Product.PartNumber
        For i = 1 To produkte.Count
            If Strings.Right(produkte.Item(i).PartNumber, 7) = "adapter" Then
            Else
                If Strings.Right(produkte.Item(i).ReferenceProduct.Parent.Name, 10) = "CATProduct" Then
                    If Strings.Len(produkte.Item(i).PartNumber) < 18 Then
                        CATIA.FileSystem.CreateFolder (Verzeichnis + "\" + produkte.Item(i).PartNumber)
                    End If
                End If
            End If
        Next
        CATIA.FileSystem.CreateFolder (Verzeichnis + "\purchase")
        test1 (Produkt)
        CATIA.ActiveDocument.SaveAs (Verzeichnis + "\" + CATIA.ActiveDocument.Product.PartNumber + ".CATProduct")
        MsgBox ("Vorgang beendet")
    End Sub
    Private Sub test1(ByVal Produkt As Object)
    CATIA = GetObject(, "CATIA.Application")
        Dim produkte As Object
        CATIA.DisplayFileAlerts = False
        produkte = Produkt.Products
        For i = 1 To produkte.Count

            If Strings.Left(produkte.Item(i).PartNumber, 4) = "36.8" Then
                test1 (produkte.Item(i))
                MsgBox (produkte.Item(i).PartNumber)
                If Strings.Right(produkte.Item(i).ReferenceProduct.Parent.Name, 7) = "CATPart" Then
                    If Strings.Right(produkte.Item(i).PartNumber, 7) = "adapter" Then
                        If Strings.Len(produkte.Item(i).PartNumber) > 26 Then ' adapter im Schweißteil
                            produkte.Item(i).ReferenceProduct.Parent.SaveAs (Verzeichnis + "\" + produkte.Item(i).Parent.Parent.Parent.Parent.PartNumber + "\" + produkte.Item(i).PartNumber + ".CATPart")
                        ElseIf Strings.Len(produkte.Item(i).PartNumber) > 22 Then ' adapter in der Baugruppe
                            produkte.Item(i).ReferenceProduct.Parent.SaveAs (Verzeichnis + "\" + produkte.Item(i).Parent.Parent.PartNumber + "\" + produkte.Item(i).PartNumber + ".CATPart")
                        Else ' adapter in Station
                            produkte.Item(i).ReferenceProduct.Parent.SaveAs (Verzeichnis + "\" + produkte.Item(i).PartNumber + ".CATPart")
                        End If
                    ElseIf Strings.Len(produkte.Item(i).PartNumber) > 22 And Strings.Len(produkte.Item(i).Parent.Parent.PartNumber) > 18 Then ' Parts im Schweißteil
                        produkte.Item(i).ReferenceProduct.Parent.SaveAs (Verzeichnis + "\" + produkte.Item(i).Parent.Parent.Parent.Parent.PartNumber + "\" + produkte.Item(i).PartNumber + ".CATPart")
                    Else ' Parts in Baugruppe
                        produkte.Item(i).ReferenceProduct.Parent.SaveAs (Verzeichnis + "\" + produkte.Item(i).Parent.Parent.PartNumber + "\" + produkte.Item(i).PartNumber + ".CATPart")
                    End If
                End If

                If Strings.Right(produkte.Item(i).ReferenceProduct.Parent.Name, 10) = "CATProduct" Then
                    If Strings.Len(produkte.Item(i).PartNumber) > 18 Then 'Products im Product bsp. Schweißteile
                        produkte.Item(i).ReferenceProduct.Parent.SaveAs (Verzeichnis + "\" + produkte.Item(i).Parent.Parent.PartNumber + "\" + produkte.Item(i).PartNumber + ".CATProduct")
                    Else ' wenn alle anderen products
                        produkte.Item(i).ReferenceProduct.Parent.SaveAs (Verzeichnis + "\" + produkte.Item(i).PartNumber + "\" + produkte.Item(i).PartNumber + ".CATProduct")
                    End If
                End If
            Else
                test1 (produkte.Item(i))
                If Strings.Right(produkte.Item(i).ReferenceProduct.Parent.Name, 7) = "CATPart" Then
                    produkte.Item(i).ReferenceProduct.Parent.SaveAs (Verzeichnis + "\purchase\" + produkte.Item(i).PartNumber + ".CATPart")
                ElseIf Strings.Right(produkte.Item(i).ReferenceProduct.Parent.Name, 10) = "CATProduct" Then
                    produkte.Item(i).ReferenceProduct.Parent.SaveAs (Verzeichnis + "\purchase\" + produkte.Item(i).PartNumber + ".CATProduct")
                End If
            End If
        Next i
    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: 02. Okt. 2014 13:00    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 Azazel1 10 Unities + Antwort hilfreich

Servus
Ich hätte gleich ein paar Fragen zum Makro.
Programmierst du in VB.net?
Bis zu welcher Ebene soll durchsucht werden? Beim anlegen der Verzeichnis gehst du nur bis zur ersten Unterbaugruppenebene.
Die Unterscheidung der "Teiletypen" über die Länge der PartNumber scheint mir unzuverlässig.
Meiner Ansicht nach fehkt noch eine Fallunterscheidung Part/Product, du rufst die "test1" auch bei Einzellteilen auf.
Einfacher wäre es meiner Ansicht nach die Verzeichnisse erst beim Scan der Baugruppe zu erzeugen. Dann könntest du an die Unterroutine "ProductScan" neben der Product noch das Verzeichnis der aktuellen Baugruppe an die Unterbaugruppe weiterzugeben.

Gruß
Bernd

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

[Diese Nachricht wurde von bgrittmann am 02. Okt. 2014 editiert.]

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

Azazel1
Mitglied



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

Beiträge: 32
Registriert: 08.09.2014

X5450; 16GB
Win 7 SP1
CATIA V5R19 SP9

erstellt am: 02. Okt. 2014 13:13    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

Mahlzeit Bend,

Das ist richtig, ich programmiere lieber in VB.net.
Die Verzeichnisse müssen nur für Baugruppen angelegt werden, dementsprechend alle Products auf der 1 Ebene von meiner Vorrichtung.

Wie oben schon erwähnt müssen alle Teile umgespeichert werden, falls diese jedoch unter einer Komponente liegen nicht.
Mir ist leider bis jetzt noch keine andere möglichkeit eingefallen, als den Teiltyp über die Länge zu definieren.
Wäre deswegen auch sehr dankbar wenn ich andere Vorschläge zu hören bekomme.

Deine letzten beiden Punkte verstehe ich nicht so ganz. Könntest du mir diese etwas genauer erläutern.
Gruß

Timo

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: 02. Okt. 2014 16:11    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 Azazel1 10 Unities + Antwort hilfreich

Servus
Anbei ein kleines Beispiel wie ich so was aufbauen würden (in VBA erstellt, keine Fehlerbehandlung, deine Kaufteile nicht berücksichtigt, wenig getestet, ...).
Dabei ist es egal wie viele Ebenen es gibt.
Code:
Sub CATMain()

    Dim oRootProduct As Product
    Dim oProducts As Products
    Dim sRootPath As String
    Dim sWorkPath As String
   
    sRootPath = "D:"
   
    Set oRootProduct = CATIA.ActiveDocument.Product
    Call CreateSubFolder(sRootPath, oRootProduct.PartNumber)
    sWorkPath = sRootPath + "\" + oRootProduct.ReferenceProduct.PartNumber
    Call ScanProduct(oRootProduct, sWorkPath)

End Sub


Sub ScanProduct(oRootProduct As Product, sFolderPath As String)

    Dim oProduct As Product
    Dim sFileName As String

    For Each oProduct In oRootProduct.Products
   
        If Not oProduct.Products.Count <> 0 Then 'Keine Komponente/Baugruppe
            If TypeName(oProduct.ReferenceProduct.Parent) = "PartDocument" Then 'wirklich ein Part?
                sFileName = oProduct.ReferenceProduct.PartNumber
                oProduct.ReferenceProduct.Parent.SaveAs sFolderPath + "\" + sFileName + ".CATPart"
            End If
        Else
            If oProduct.ReferenceProduct.Parent.FullName <> oProduct.Parent.Parent.ReferenceProduct.Parent.FullName Then 'CATProduct oder Komponente
                'CATProduct
                Call CreateSubFolder(sFolderPath, oProduct.ReferenceProduct.PartNumber)
                Call ScanProduct(oProduct, sFolderPath + "\" + oProduct.ReferenceProduct.PartNumber)
                sFileName = oProduct.ReferenceProduct.PartNumber
                oProduct.ReferenceProduct.Parent.SaveAs sFolderPath + "\" + sFileName + ".CATProduct"
            Else
                'Komponente
                Call ScanProduct(oProduct, sFolderPath)
            End If
        End If
   
    Next

End Sub


Sub CreateSubFolder(sFolder As String, sSubfolderName As String)

    Dim sSubFolderPath As String
   
    sSubFolderPath = sFolder + "\" + sSubfolderName
    If Not CATIA.FileSystem.FolderExists(sSubFolderPath) Then
        CATIA.FileSystem.CreateFolder sSubFolderPath
    End If

End Sub


Kannst du die verschiedenen Typen (ADapter) nicht am Namen (nicht der Länge) erkennen?

Gruß
Bernd

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

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

Azazel1
Mitglied



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

Beiträge: 32
Registriert: 08.09.2014

X5450; 16GB
Win 7 SP1
CATIA V5R19 SP9

erstellt am: 06. Okt. 2014 07:53    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

Guten Morgen,

Ich habe soeben mal deinen Code getestet und bin damit sehr zufrieden

1. jedoch müssten die "Baugruppen Products" noch in dem jeweiligen Baugruppenordner gespeichert werden.

2. Sobald in einer Baugruppe ein zweites Product ist, wird für dieses Product ein Unterordner erstellt. In diesem Unterordner befinden sich dann die Parts dieses Products. Ein Unterordner dürfte jedoch nicht existieren, da alles in den Baugruppenordner gespeichert werden soll.

Beispielsweiße:
Station
----Baugruppe
------Schweißteil
-----------Part X
-----------Part X
------Part Y

Part X müssten jedoch in dem Ordner der Baugruppe gespeichert werden.

Wenn mir jemand dabei helfen könnte, wäre mir sehr geholfen.

Gruß
Timo

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: 06. Okt. 2014 09:38    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 Azazel1 10 Unities + Antwort hilfreich

Servus
zu 1): Du könntest das Abspeichern der Baugruppe zum Anfang Sub-Routine "ScanProduct" verschieben.

zu 2): dann lass dir einfallen wie du das Makro entweder ganz umbautes oder ein Prüfung oder Ebenenzähler einbaust.

Gruß
Bernd

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

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

Azazel1
Mitglied



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

Beiträge: 32
Registriert: 08.09.2014

X5450; 16GB
Win 7 SP1
CATIA V5R19 SP9

erstellt am: 20. Nov. 2014 11:33    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,

ich möchte hier das Thema noch einmal aufkommen lassen.

Mit SaveAs wird dem Part keine neue UUID zugewießen.
Wenn ich in dem Fenster SaveAs den Haken "Save as new document" setze wird jedoch eine neue UUID vergeben, richtig?

Wenn ja, wie kann ich diesen Haken in meinen Code einbauen?

Gruß

Timo

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: 20. Nov. 2014 12:25    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 Azazel1 10 Unities + Antwort hilfreich

Servus
IMHO geht das bei "SaveAs" per Makro nicht.
ggf geht es über NewFrom

Gruß
Bernd

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

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