Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Part-Anzahl im Product ermitteln

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:  Part-Anzahl im Product ermitteln (4936 mal gelesen)
jdahm
Mitglied
Konstrukteur


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

Beiträge: 137
Registriert: 01.08.2008

erstellt am: 02. Aug. 2011 13:19    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

Ich habe ein Makro, das die Eigenschaften einzelner Parts eines Products als XLS-Datei ausgibt.

Um die Anzahl der in der Baugruppe incl. Unterbaugruppen enthalten Parts zu bestimmen, kann man z.B. den AssemblyConvertor verwenden.
Das hat aber den Nachteil, daß dessen Werte in einer separaten und vorkonfigurierten Datei ausgegeben werden.
Diese Daten lassen sich daher nicht direkt für ein eigenes Makro verwenden.

Im Forum habe ich eine Variante der rekursiven Suche gefunden, die sehr aufwendig ist und bei mir auch nicht funktioniert:
http://ww3.cad.de/foren/ubb/Forum137/HTML/003224.shtml#000003

Mir wäre eine einfachere Version lieber, die ich verstehe und in mein Makro einbauen kann.

------------------
Gruß
Jürgen

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. Aug. 2011 13: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 jdahm 10 Unities + Antwort hilfreich

 
Zitat:
Original erstellt von jdahm:
Um die Anzahl der in der Baugruppe incl. Unterbaugruppen enthalten Parts zu bestimmen, kann man z.B. den AssemblyConvertor verwenden.
Das hat aber den Nachteil, daß dessen Werte in einer separaten und vorkonfigurierten Datei ausgegeben werden.
Diese Daten lassen sich daher nicht direkt für ein eigenes Makro verwenden.

Wieso nicht? Mache ich auch. Ich selbst habe ein Makro in .Net geschrieben, welches die Stücklisteninformationen im HTML-Dokument zerpflückt und verarbeitet, so dass ich eine Gesamtstückliste aller Parts erstellen kann. Kompliziert bleibt es in jedem Fall, wenn man es richtig macht. Dazu gehören nämlich nicht nur die Funktionen, sondern auch Fehlerbehandlung und narrensichere Eingabe.

Fakt ist, dass man diese Daten mit VB-Mitteln eben auch auslesen und verarbeiten kann.

Was meinst du mit die Anzahl aller in der Baugruppe befindlichen Parts? Möchtest du eine Gesamtstückliste oder nur eine Zahl, die tatsächlich sagt, dass z.B. 128 verschiedene Parts geladen sind?

------------------
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

meisterlumpi
Mitglied



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

Beiträge: 118
Registriert: 15.04.2011

Intel Core2 Quad Q6600 2.40 GHz | 4 GB RAM | Win7x64

erstellt am: 02. Aug. 2011 14: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 jdahm 10 Unities + Antwort hilfreich

wie im anderen beitrag schon erwähnt habe ich mal eine funktion geschrieben um eine produktstruktur zu erfassen. diese kann man ohne weiteres benutzen um die parts in einem produkt zu zählen (grad ausprobiert..). hier die Sub die das ganze macht:

Code:

Sub CATMain()
    ' Document Structure aufrufen
    Call M_Doc_Structure.CATMain
   
    Dim part_counter As Integer
    part_counter = 0
   
    For Each fProduct In pProducts
        If fProduct.DocType = "Part" Then
            part_counter = part_counter + 1
        End If
    Next
   
    MsgBox "Im aktuellen Product befindet/befinden sich " & part_counter & " Part(s)."
End Sub

im selben VBA-Projekt muss sich noch die Klasse C_Doc_Structure_Object und das Modul M_Doc_Structure befinden. Die beiden findest du ganz oben auf http://nj.riotdowntown.com/2011/06/obtain-the-structure-for-a-catproduct/

hoffe es hilft, gruß

[Diese Nachricht wurde von meisterlumpi am 16. Aug. 2011 editiert.]

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

jdahm
Mitglied
Konstrukteur


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

Beiträge: 137
Registriert: 01.08.2008

erstellt am: 02. Aug. 2011 14:56    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 geht um eine Stückliste.
Daher muß ich wissen, wie oft jedes Part insgesamt verbaut wurde.

Falls es keine einfache Lösung gibt, wäre es als schlechte Alternative auch möglich, die Daten des AssemblyConvertors in eine Excel-Tabelle auszugeben und alles bis auf die Zusammenfassung zu löschen.
Anschließend führe ich das vorhandene script (Part-Eigenschaften) aus, übernehme die Anzahlen aus der ersten Tabelle in die neue und lösche die erste wieder.

------------------
Gruß
Jürgen

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

meisterlumpi
Mitglied



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

Beiträge: 118
Registriert: 15.04.2011

Intel Core2 Quad Q6600 2.40 GHz | 4 GB RAM | Win7x64

erstellt am: 03. Aug. 2011 12:18    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 jdahm 10 Unities + Antwort hilfreich


cad_de-screenshot.jpg

 
Hallo nochmal

dann hatte ich das falsch verstanden. Welche Parts und wie oft diese in einer Baugruppe verwendet werden bekommt man aber auch relativ leicht raus.

Beispiel code dazu würde folgendermaßen aussehen:

Code:

Sub CATMain()
    ' Document Structure aufrufen
    Call M_Doc_Structure.CATMain
   
    Dim part_counter As Integer
    part_counter = 0
    Dim PartsFound As Collection
    Set PartsFound = New Collection
    Dim PN As Variant
    Dim PartFound As Boolean
    Dim eachpart_PN() As String
    Dim eachpart_count() As Integer
   
    For i = 1 To pProducts.Count
        Set fProduct = pProducts.Item(i)
        If fProduct.DocType = "Part" Then
            PartFound = False
            For Each PN In PartsFound
                If PN = fProduct.PartNumber Then
                    PartFound = True
                    For j = LBound(eachpart_PN) To UBound(eachpart_PN)
                        If eachpart_PN(j) = fProduct.PartNumber Then _
                            eachpart_count(j) = eachpart_count(j) + 1
                    Next
                End If
            Next
            If PartFound = False Then
                part_counter = part_counter + 1
                PartsFound.Add fProduct.PartNumber
               
                ReDim Preserve eachpart_PN(part_counter)
                eachpart_PN(part_counter) = fProduct.PartNumber
               
                ReDim Preserve eachpart_count(part_counter)
                eachpart_count(part_counter) = 1
            End If
        End If
    Next
   
    ' Ausgabe
    Dim str As String
    For i = 1 To UBound(eachpart_PN)
        str = str & eachpart_PN(i) & " (" & CStr(eachpart_count(i)) & ")" & " ; "
    Next
   
    MsgBox "Im aktuellen Product befindet/befinden sich " & part_counter & " Part(s):" & Chr(10) & str
   
End Sub

gruß

[Diese Nachricht wurde von meisterlumpi am 07. Sep. 2011 editiert.]

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

K.Siebert
Mitglied
Tech Zeichner


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

Beiträge: 415
Registriert: 19.05.2007

Win XP
Catia V5 R19
Catia V5 R24

erstellt am: 03. Aug. 2011 13:09    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 jdahm 10 Unities + Antwort hilfreich


_7_STUECKL.CATScrip.txt

 
Hallo,

hier ist das Ergebnis von dem Link der im ersten beitragt ist

-> Excel öffnen
-> Bauteile auslesen
-> Bauteile unterscheiden (zwischen Kaufteile und Fertigungsteile) Anpassung nötig
-> Partname wird Zerlegt ( je nach dem ob Kaufteil oder Fertigungsteil) Anpassung nötig
-> Exceltabelle wird befüllt   sollte keine Bedingung erfüllt werden wird der Partname nicht Zerlegt und nicht in die Entsprechenden
   Zellen geschrieben sondern der komplette Partname mit Anzahl nach der Zelle (J) geschrieben


------------------
    Sei Schlau bleib Dumm !!?!!    

[Diese Nachricht wurde von K.Siebert am 05. Aug. 2011 editiert.]

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