Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Inventor VBA
  Anzahl an Teilen

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
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte
Autor Thema:  Anzahl an Teilen (1544 mal gelesen)
Chris 31
Mitglied
Konstrukteur und Mädchen für alles


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

Beiträge: 575
Registriert: 23.04.2013

Inventor 2013/2015
Windows 7 64 bit
16GB RAM
nVidia Quadro 600

erstellt am: 18. Jun. 2014 16: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

Hallo,

ich stehe gerade etwas auf dem Schlauch.
Ich möchte die Anzahl aller Bauteile aus einer Baugruppe direkt auslesen, da die Stückliste leider aus irgendeinem Grund nur Unsinn auswirft.

Jetzt habe ich aber das Problem, dass wenn ich alle Teile in der Baugruppe rekursiv durchlaufe, dann gibt der mir jeweils nur ein Exemplar der verbauten Teile.

Wie kann ich denn jetzt abfragen, wieviele Kopien des Teils in der Baugruppe verbaut sind?

mein Code bis jetzt:

Code:

Option Explicit

Public Sub Stüli()

Dim InvApp As Inventor.Application
Dim oDoc As Inventor.AssemblyDocument
Set InvApp = ThisApplication
Set oDoc = InvApp.ActiveDocument

Dim Exapp As Excel.Application
Set Exapp = CreateObject("Excel.Application")
Exapp.Visible = True
Dim workbook As Excel.workbook
Set workbook = Exapp.Workbooks.Add

Dim displayname As String
Dim Name As String
Dim a As Integer
a = 3

Dim subdoc As Document
Dim Part As PartDocument
Dim paramlänge As Parameter
Dim Propertyset As Propertyset
Dim Property As Property


For Each subdoc In oDoc.AllReferencedDocuments
    If subdoc.DocumentType <> kAssemblyDocumentObject Then
        displayname = subdoc.displayname
            Set Propertyset = subdoc.PropertySets.Item("Design Tracking Properties")
                For Each Property In Propertyset
                    If Property.displayname = "Bauteilnummer" Then
                    Name = Property.Expression
                    End If
                Next
    ElseIf subdoc.DocumentType = kAssemblyDocumentObject Then
        For Each Part In subdoc.AllReferencedDocuments
            displayname = Part.displayname
            Set Propertyset = Part.PropertySets.Item("Design Tracking Properties")
                For Each Property In Propertyset
                    If Property.displayname = "Bauteilnummer" Then
                        Name = Property.Expression
                    End If
                Next
        Next
    End If
   
    With workbook
    .Sheets("Tabelle1").Cells(a, 1) = Name
    .Sheets("Tabelle1").Cells(a, 3) = displayname
    End With

    a = a + 1
Next


End Sub



Ist wahrscheinlich absolut einfach, aber ich komme im Moment einfach nicht drauf.

Gruß Chris

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

RolandD
Mitglied



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

Beiträge: 533
Registriert: 07.01.2005

i7-9700k
32GB DDR4-RAM
Nvidia RTX 2060
SSD 970 m.2
Win10-64 (21H2)
AIP 2020.3
Dell U3417W

erstellt am: 18. Jun. 2014 21: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 Chris 31 10 Unities + Antwort hilfreich

Hallo Chris,

das kann si nicht gehen. Du erhältst natürlich jedes subdoc In oDoc.AllReferencedDocuments nur 1 Mal gelistet, unabhängig von der tatsächlichen Anzahl.

Probiere mal über die Stückliste "Nur Bauteile"

Code:
' Ansicht einstellen
    Dim oBOMView As BOMView
    Set oBOMView = oBOM.BOMViews.Item(3) '1-Modelldaten  2-Strukturiert  3-Nur Bauteile)
    Dim Anzahl As Integer

    Dim Lieferant As String
    Dim Nr As Integer
    For Nr = 1 To oBOMView.BOMRows.Count

      'hier die Quantity von oBOMView.BOMRows.Item(Nr) auswerten:
      Anzahl = oBOMView.BOMRows.Item(Nr).ItemQuantity

      Lieferant = oBOMView.BOMRows.Item(Nr).ComponentDefinitions.Item(1).Document.PropertySets.Item(3).Item(15).Expression
      If Lieferant = "" Then
          MsgBox "Dateien: " & oBOMView.BOMRows.Item(Nr).ComponentDefinitions.Item(1).Document.FullFileName
      End If
    Next



Ich lese in dem Beispiel alle Teile aus, die keinen Lieferant haben (das sind unsere Fertigungsteile)
Da ich eine Liste für die Doku erstelle, brauche ich keine Anzahl.
Hinweis: unteilbare BGs werden in der Stückliste "Nur Bauteile" als IPTs aufgelistet

------------------
Gruß Roland

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

Chris 31
Mitglied
Konstrukteur und Mädchen für alles


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

Beiträge: 575
Registriert: 23.04.2013

Inventor 2013/2015
Windows 7 64 bit
16GB RAM
nVidia Quadro 600

erstellt am: 20. Jun. 2014 06: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

Guten Morgen Roland,

ich habe gerade versucht deinen Code laufen zu lassen.

in der Zeile

Code:
Set oBOMView = oBOM.BOMViews.Item(3) '1-Modelldaten  2-Strukturiert  3-Nur Bauteile)

gibt er mir allerdings eine Fehlermeldung:
Run-time error '5':
Invalid procedure call or Argument

Woran kann das liegen?

Gruß Chris

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

rkauskh
Moderator
Dipl.-Ing. (FH) Versorgungstechnik




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

Beiträge: 2166
Registriert: 15.11.2006

Windows 10 x64, AIP 2022

erstellt am: 20. Jun. 2014 09:59    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 Chris 31 10 Unities + Antwort hilfreich

Moin

Die Ansicht "nur Bauteile" ist in deiner Baugruppe nicht aktiviert.
Setze vorher eine Prüfung ein.

Code:
If oBOM.PartsOnlyViewEnabled = False Then
    oBOM.PartsOnlyViewEnabled = True
End If

------------------
MfG
Ralf

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

Chris 31
Mitglied
Konstrukteur und Mädchen für alles


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

Beiträge: 575
Registriert: 23.04.2013

Inventor 2013/2015
Windows 7 64 bit
16GB RAM
nVidia Quadro 600

erstellt am: 20. Jun. 2014 11: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

Zitat:
Original erstellt von rkauskh:
Moin

Die Ansicht "nur Bauteile" ist in deiner Baugruppe nicht aktiviert.
Setze vorher eine Prüfung ein.

Code:
If oBOM.PartsOnlyViewEnabled = False Then
    oBOM.PartsOnlyViewEnabled = True
End If



Hallo Ralf,

doch, sie ist aktiviert.
Deswegen verstehe ich ja die Fehlermeldung auch nicht.
Auch nach der Prüfung, die du empfohlen hast, bekomme ich die gleiche Fehlermeldung.

Gruß Chris

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

rkauskh
Moderator
Dipl.-Ing. (FH) Versorgungstechnik




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

Beiträge: 2166
Registriert: 15.11.2006

Windows 10 x64, AIP 2022

erstellt am: 20. Jun. 2014 11:31    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 Chris 31 10 Unities + Antwort hilfreich

Hallo

Ist die strukturierte Ansichte deaktiviert? Deaktivierte Ansichten tauchen in der API nicht auf, weswegen Item(3) nur im Falle der Aktivierung aller Ansichten möglich ist. Du solltest meiner Meinung eh von Item(3) weggehen und die Stücklistenansicht mit ihrem Namen Item("Nur Bauteile") ansprechen. Das ist zuverlässiger.
Wenn's das auch nicht ist, weiß ich auch nicht mehr.

------------------
MfG
Ralf

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

Chris 31
Mitglied
Konstrukteur und Mädchen für alles


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

Beiträge: 575
Registriert: 23.04.2013

Inventor 2013/2015
Windows 7 64 bit
16GB RAM
nVidia Quadro 600

erstellt am: 20. Jun. 2014 11: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

Ah, wenn ich es über Item("Nur Bauteile") anspreche, dann geht es.

Danke dir Ralf

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

Chris 31
Mitglied
Konstrukteur und Mädchen für alles


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

Beiträge: 575
Registriert: 23.04.2013

Inventor 2013/2015
Windows 7 64 bit
16GB RAM
nVidia Quadro 600

erstellt am: 23. Jun. 2014 07:10    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,

jetzt habe ich damit aber doch nochmal ein Problem.

In neun von zehn Fällen funktioniert die Extraktion. Im zehnten Fall allerdings haut er mir jedes Mal die bekannte Fehlermeldung raus und beim debuggen zeigt er mir wieder die Zuweisung zur Ansicht Item("Nur Bauteile").
Es sind aber identische Baugruppen, bei der einen läuft es fehlerlos durch, bei der anderen kommt der Fehler.

Kann mir irgendeiner sagen, woran das liegen könnte?

Gruß Chris

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

Chris 31
Mitglied
Konstrukteur und Mädchen für alles


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

Beiträge: 575
Registriert: 23.04.2013

Inventor 2013/2015
Windows 7 64 bit
16GB RAM
nVidia Quadro 600

erstellt am: 23. Jun. 2014 07:35    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 glaube ich habe das Problem gefunden.

Die eine Baugruppe steht auf Detailgenauigkeit "Hauptansicht", die andere Baugruppe(in der es nicht läuft) auf einer Benutzerdetailgenauigkeit.

Es scheint, dass man die Stücklistenansicht nicht zuweisen kann, sobald man nicht auf "Hauptansicht" ist.

Weiß vielleicht jemand, wie man dieses Problem beheben kann, da ich ja eine Benutzerdetailgenauigkeit brauche, sonst kann ich ja keine Teile unterdrücken?

[Diese Nachricht wurde von Chris 31 am 23. Jun. 2014 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