Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Komplette Struktur eines Prduktes

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:  Komplette Struktur eines Prduktes (1192 mal gelesen)
Erich
Mitglied
Senior Consultant selbstständig


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

Beiträge: 198
Registriert: 03.10.2000

i7-9850H
RAM 32,0 GB
Nvidia Quadro T2000
Windows 7 Professional 64Bit

erstellt am: 23. Sep. 2006 19:52    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
folgendes Problem:
ich möchte ein komplexes Produkt komplett auflisten. Das Produkt hat Parts und Produkte, sonst ist auf nichts weiter Rücksicht zu nehmen.
Folgendes CATscript steht, bzw. habe ich mir aus dem Forum kopiert:
Sub CatMain()
  Dim ProduktDoc As Product
  Dim Produkt As Product
  Set ProduktDoc = CATIA.ActiveDocument
  Set Produkt = ProduktDoc.Product
  Set Produkte = Produkt.Products
  Produktauslesen (Produkte)
End sub
Sub Produktauslesen (Produkte As Product)
For i =1 to Produkte.count
      If TypeName(Produkte.Item(i).ReferenceProduct.Parent)  = "PartDocument" Then
            DStrom.Write (....)
        ElseIf TypeName(Produkte.Item(i).ReferenceProduct.Parent)  = "ProductDocument" Then
        If Produkte.Item(i).Products.Count > 0 Then
            Produktauslesen (Produkte.Item(i).Products)
        End if
    End if
next
End Sub
Mein Problem ist, es bringt mir nicht das erwartete Ergebnis. Kann mir jemand den nötigen Schubs geben, was hier noch fehlt. Die Rekursivität, durchläuft nicht den gesamten Baum bzw. läuft auf Fehler. Mit der Bitte um Unterstützung. Danke.

------------------

mfg
Erich

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

Augustiner
Mitglied
Konstrukteur


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

Beiträge: 188
Registriert: 02.12.2005

HP Workstation
Windows XP Professional
Visual Studio 2005 Professional
CATIA V5 R14SP5 & R17SP3

erstellt am: 23. Sep. 2006 20:57    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 Erich 10 Unities + Antwort hilfreich

Servus
sollte funktionieren habs aber nicht getestet

Code:
Sub CATMain ()

Produktauslesen(CATIA.ActiveDocument.Product)

End Sub

Sub Produktauslesen (P As Product)

Dim Pdoc as Document
Set Pdoc = P.ReferenceProduct.Parent

If Typename(PDoc) = "PartDocument" Then
            MsgBox("Part")
        Else
            MsgBox("Product")
        End If

Dim PP As Products
Dim i As Integer

Set PP = P.Products

for i = 1 to PP.Count

Produktauslesen(PP.Item(I))

next

End Sub



Gruß Andi

[Diese Nachricht wurde von Augustiner am 23. Sep. 2006 editiert.]

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

Heini_K
Mitglied



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

Beiträge: 34
Registriert: 26.09.2006

Catia V5R14SP4/R16
HP- Unix- Workstation

erstellt am: 11. Okt. 2006 14: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 Nur für Erich 10 Unities + Antwort hilfreich

Hallo Andi,

Ich möchte gerne ein Array aus geöffneten Dateien, zwecks Schreiben, mitführen, bekomme aber immer die Fehlermeldung "out of range". Weißt Du hier Rat? Vielen Dank im Voraus.
Die entscheidenden Auszüge aus meinem Code:
-----------------------------------------------------
Option Explicit

Sub CATMain ()

Dim Datastreams() As TextStream
Dim Dateien() As CATBSTR
Dim TDatei () As File
Dim Counter As Integer
Counter = 0


Dim Anzahl As Integer
Anzahl = InputBox ("Anzahl der zu messenden Hierachie-Ebenen eingeben")

'Oeffnen

ReDim Datastreams(Anzahl) As TextStream
ReDim Dateien(Anzahl) As CATBSTR
ReDim TDatei (Anzahl) As File
Dim k As Integer

For k = 0 TO Anzahl

Dateien(k)  = CATIA.FileSelectionBox ("Datei auswählen", "*.txt", CATFileSelectionModeSave)

If Dateien(k) <> "" Then

Set TDatei(k) = CATIA.FileSystem.GetFile (Dateien(k))
Set Datastreams(k) = TDatei(k).OpenAsTextStream ("ForAppending")
End If

Next

MsgBox LBound(Datastreams)
MsgBox UBound(Datastreams)


Produktauslesen CATIA.ActiveDocument.Product , Counter , Datastreams()
'!!! Hier kommt die Fehlermeldung: "Datastreams out of range"

End Sub

Sub Produktauslesen (P As Product , OpenedFiles() As TextStream )

.... Definition des Sub
.....und schließlich rekursiver Aufruf

For i = 1 to PP.Count


Produktauslesen PP.Item(I) ,OpenedFiles()

Next

End Sub
-----------------------------------------------------------------
Lasse ich die Klammern hinter "Datastreams" beim Aufruf weg bekomme ich bei "OpenedFiles()" während des rekursiven Aufrufs die gleiche Fehlermeldung.

------------------
Matthias
-----------------
Catia V5R14
Unix- Workstation

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

Timberwolve
Mitglied



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

Beiträge: 233
Registriert: 21.07.2006

erstellt am: 11. Okt. 2006 15: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 Nur für Erich 10 Unities + Antwort hilfreich

Hallo, ein ähnliches Problem hatte ich schon.

Schaut mal im Topic

http://ww3.cad.de/foren/ubb/Forum137/HTML/001796.shtml#000027.

Da sollte alles drinstehen was ihr benötigt.

Gruß Timber

------------------
Wenn alle Stricke reissen, nehm ich ein Drahtseil

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

Timberwolve
Mitglied



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

Beiträge: 233
Registriert: 21.07.2006

erstellt am: 11. Okt. 2006 15:03    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 Erich 10 Unities + Antwort hilfreich

Sorry da hat was mit dem Link nicht geklappt.

MMH

Schaut unter dem Topic

Strukturbaum aus CATIA in VB einlesen.

Da steht alles drin

Gruß Timber

------------------
Wenn alle Stricke reissen, nehm ich ein Drahtseil

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

Heini_K
Mitglied



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

Beiträge: 34
Registriert: 26.09.2006

Catia V5R14SP4/R16
HP- Unix- Workstation

erstellt am: 11. Okt. 2006 21: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 Erich 10 Unities + Antwort hilfreich

Hi Timberwolve,

Danke für den Link bzw. Suchtipp. Großes Lob auch an Danny Reinhold ...hätte ich diesen Thread nur mal eher entdeckt. Mein Problem konnte ich aber nun selber lösen. Und zwar liegt es daran, dass ein Array, was an eine Prozedur übergeben werden soll beim deklarieren mit Klammern, beim aufrufen aber ohne Klammern geschrieben werden muss. Leider stand das in dem VB-Buch was ich mir ausgeliehen habe anders drin (ist vielleicht ne Eigenart von CATScript). Grau ist alle Theorie
-------------------------------------------
'Deklarieren
Sub Produktstruktur (P As Product, Datastreams() As Textstream)
......
End Sub
'Aufrufen
Produktstruktur MeinProdukt , Schreibpfade
'Wobei Schreibpfade ein Array ist

------------------
Matthias
-----------------
Catia V5R14
Unix- Workstation

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