Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Inventor
  iAssembly in Strukturierter Stückliste - Alle Ebenen

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:  iAssembly in Strukturierter Stückliste - Alle Ebenen (5485 mal gelesen)
MichlB1003
Mitglied
Konstrukteur


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

Beiträge: 42
Registriert: 07.03.2013

erstellt am: 10. Apr. 2013 07:42    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
Habe mich durch einige Foren druchgeklickt, leider hab ich nichts entsprechendes bzw. befriedigende Antworten gefunden, deshalb hier mal der Eintrag.

gibt es eine möglichkeit, eine strukturierte Stückliste mit allen Ebenen zu erstellen, in der auch die iAssemblys angezeigt bzw. aufgelöst werden?
Wenn nicht, gibts alternativen? Vorschläge wären toll!

danke!

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

MichlB1003
Mitglied
Konstrukteur


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

Beiträge: 42
Registriert: 07.03.2013

IV Product Design Suite Ultimate 2014
ProductStream 2011 Professional
Office 2010 Home & Business
2x Nvidia Quadro 4000 2.0GB - SLI-Verband - Nvidia Treiber 332.50
HP Z400
Intel(R) Xeon(R) Cpu W3565 @3,2 GHz
16GB
64-Bit Windows 7 Professional

erstellt am: 10. Apr. 2013 07: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


ENG-025388.zip

 
hier ein beispiel - Assembly

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

MichlB1003
Mitglied
Konstrukteur


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

Beiträge: 42
Registriert: 07.03.2013

erstellt am: 10. Apr. 2013 09: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


ENG-024560.zip

 
nachtrag:
ich habe jetzt in der vorlage für Baugruppen die Darstellung der Stückliste auf Stukturiert - Alle ebenen geändert, eine neue iAssembly erstellt, diese in eine neue Baugruppe eingefügt (siehe anhang). Hier funktioniert die Stückliste nun mit allen Unterebenen aus dem IAssembly, aber wenn ich nun ein iAssembly aus der baugruppe erstelle, dann kommt die meldung: "Die Stückliste enthält Ansichten oder Eigenschaften, die von der Konfiguration nicht unterstützt werden. Nur strukturierte Stücklistenansichten der ersten Ebene werden unterstützt. Die Stückliste wird während der Konvertierung geändert."

ich möchte nicht dass die Stückliste geändert wird, ich möchte wenn ich iAssemblys erstelle, dass diese eine Strukturierte Stückliste mit allen Ebenen hat. auch wenn ich iAssemblys in iAss. einfüge, dann soll auch hier die Strukturierte liste mit allen ebenen verfügbar sein.

die Quint-Essenz dieser Thematik ist jene, dass ich einen Bauteil habe, für den ich vorgegebene grössen habe, die ich dann mittels iAssembly-tabelle steuern möchte und die entsprechenden Stücklisten dann ins Word mittels Thumbnailpartlist exportiere. Wichtig: ich brauche alle teile inkl. Unterbauteile einzeln aufgelistet.

hat wer eine idee?

danke schon mal

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

mafr
Mitglied
Techniker


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

Beiträge: 73
Registriert: 06.12.2010

HP xw 4600
Intel(R) Core(TM)2 Duo CPU E8500 3.16GHz
Windows XP
Windows 7 Professionel( 32 Bit / 64 Bit )
AutoCad 2014 / 2017
Inventor 2010 / 2018

erstellt am: 10. Apr. 2013 13:34    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 MichlB1003 10 Unities + Antwort hilfreich

Kann deinen Anhang nicht öffnen, weil vermutlich in neuerer Version erstellt.
Wäre es möglich die gewünschte Stücklisten struktur kurz zu skizzieren ?
Was ist mit der Stücklistenstruktur - nur Bauteile ?

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

MichlB1003
Mitglied
Konstrukteur


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

Beiträge: 42
Registriert: 07.03.2013

erstellt am: 10. Apr. 2013 15: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


Stuckliste-baugruppe.jpg


Stuckliste-iAssembly.jpg


stuli-iassembly-config.jpg

 
hallo mafr

also das eine bild ist die stücklste (strukturiert mit allen ebenen) der Baugruppe , das 2. Bild ist die selbe baugruppe nur als iAssembly, beim 3. bild siehst du, dass ich hier nicht mal mehr auf "alle ebenen" umschalten kann.

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

MichlB1003
Mitglied
Konstrukteur


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

Beiträge: 42
Registriert: 07.03.2013

IV Product Design Suite Ultimate 2014
ProductStream 2011 Professional
Office 2010 Home & Business
2x Nvidia Quadro 4000 2.0GB - SLI-Verband - Nvidia Treiber 332.50
HP Z400
Intel(R) Xeon(R) Cpu W3565 @3,2 GHz
16GB
64-Bit Windows 7 Professional

erstellt am: 10. Apr. 2013 15:43    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

grundsätzlich würde die Stückliste nach bauteilen auch passen. es geht mir nur darum, dass ich dann die stückliste irgendwie mit den thumbnails ins word bekomme, inkl. aller unterbaugruppen und einzelteile. und da nun mal dieses thumbnailpartlist eine Stückliste aus der idw verwendet....
vielleicht kann man das ja irgendwie umschreiben oder so, aber so weit bin ich mit meinen vba kenntnissen noch lange nicht... LEIDER :-(

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

MichlB1003
Mitglied
Konstrukteur


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

Beiträge: 42
Registriert: 07.03.2013

erstellt am: 11. Apr. 2013 07:01    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 mafr

hab mir jetzt mal die stückliste nach bauteilen angesehen, das wäre im prinzip genau so wie ich es brauche. hätte nun auch einen code gefunden (vom Thumbnailpartlist)den ich jetzt so umbauen möchte, dass es die Bauteil-Stückliste direkt aus dem Assembly (nicht aus der idw) exportiert, inkl. der Thumbnails.leider bin ich vba-mässig nur sehr sehr schwach ausgestattet mit kenntnissen, d.h. ich weiß nicht was genau ich umschreiben muss, damit er diese BOM verwendet und exportiert.
vielleicht könntest du mir da ev. ein wenig helfen?
ich habe bereits etwas umgeschrieben, bekomme aber immer nur einen fehler und es bricht ab, beim debuggen wird mir aber nix angezeigt...
hier der code:
Public Sub CreatePartsListWithThumbnail()
    ' Make sure a drawing document is active.
    On Error Resume Next
    Dim drawDoc As AssemblyDocument 'DrawingDocument'
    Set drawDoc = ThisApplication.ActiveDocument
    If Err Then
        MsgBox "eine Baugruppe muss aktiv sein"
        Exit Sub
    End If
   
    ' Make sure a parts list is selected.
    Dim partList As BOM
    Set partList = drawDoc.ComponentDefinition.BOM 'drawDoc.SelectSet.Item(1)'
    'If Err Then
    '    MsgBox "A parts list must be selected."
    '    Exit Sub
    'End If
    'On Error GoTo 0
    partList.StructuredViewFirstLevelOnly = False
    partList.StructuredViewEnabled = True
    Dim oStructuredBOMView As BOMView
    Set oStructuredBOMView = partList.BOMViews.Item("Strukturiert")
    oStructuredBOMView.Export "D:\BOM-Strukturiert.xls", kMicrosoftExcelFormat
 
  'Ab Hier bin ich mir unsicher, hier kommt immer eine fehlermeldung!'     
    Dim wordApp As Word.Application
    On Error Resume Next
    ' Try connecting to a running instance of Word.
    Set wordApp = GetObject(, "Word.Application")
    If Err Then
        Err.Clear
       
        ' Start Word.
        Set wordApp = CreateObject("Word.Application")
        If Err Then
            MsgBox "Kann word nicht starten."
            Exit Sub
        End If
    End If
    On Error GoTo 0
   
    On Error GoTo ErrorFound
    wordApp.Visible = True
   
    ' Create a new Word document.
    Dim wordDoc As Word.Document
    Set wordDoc = wordApp.Application.Documents.Add
   
    ' Create a table with the same number of columns as the parts list.
    Dim partListTable As Table
    Set partListTable = wordDoc.Tables.Add(wordApp.Selection.Range, partList.BOMRowsEnumerator.Count + 1, partList.DrawingBOMColumns.Count + 1, wdWord9TableBehavior, wdAutoFitFixed)
   
    ' Copy the part list headings into the table.
    Dim i As Integer
    For i = 0 To partList.BOMRowsEnumerator.Count
        Dim myrange As Range
        Set myrange = partListTable.Cell(1, i + 1).Range
        myrange.End = partListTable.Cell(1, i + 1).Range.End
        myrange.Select

        If i = 0 Then
            Call wordApp.Selection.TypeText("Vorschau")
        Else
            Call wordApp.Selection.TypeText(partList.BOMRowsEnumerator.Item(i).Title)
        End If
    Next

    ' Iterate through the rows of the parts list.
    Dim rowIndex As Integer
    rowIndex = 1
    Dim partListRow As PartsListRow
    For Each partListRow In partList.PartsListRows
        ThisApplication.StatusBarText = "Processing part list row " & rowIndex & " of " & partList.BOMRowsEnumerator.Count & "..."
        rowIndex = rowIndex + 1
       
        If partListRow.Visible Then
            ' Select the first cell of the current row in the table.
            Set myrange = partListTable.Cell(rowIndex, 1).Range
            myrange.End = partListTable.Cell(rowIndex, 1).Range.End
            myrange.Select
       
            ' Get the thumbnail from the document associated with the current row.
            Dim drawBomRow As DrawingBOMRow
            Set drawBomRow = partListRow.ReferencedRows.Item(1)
            Dim refDoc As Document
            Set refDoc = drawBomRow.BOMRow.ComponentDefinitions.Item(1).Document
           
            On Error Resume Next
            Dim thumbNail As IPictureDisp
            Set thumbNail = refDoc.thumbNail
            If Err.Number = 0 Then
                ' Save the thumbnail to a file.
                Call SavePicture(thumbNail, "C:\Temp\TempThumb.bmp")
               
                Dim shape As Word.InlineShape
                Set shape = wordApp.Selection.InlineShapes.AddPicture("C:\Temp\TempThumb.bmp", False, True)
                shape.LockAspectRatio = True
                shape.Height = 100
            Else
                Call wordApp.Selection.TypeText("Vorschau nicht verfügbar.")
            End If
            On Error GoTo ErrorFound
   
            ' Copy the rest of the part list info into the table for this row.
            For i = 1 To partList.PartsListColumns.Count
                Set myrange = partListTable.Cell(rowIndex, i + 1).Range
                myrange.End = partListTable.Cell(rowIndex, i + 1).Range.End
                myrange.Select
       
                Call wordApp.Selection.TypeText(partListRow.Item(i).Value)
            Next
        End If
    Next
   
    ThisApplication.StatusBarText = "Export abgeschlossen."
    wordApp.Visible = True
    Exit Sub

ErrorFound:
    MsgBox "Unerwarteter Fehler ist aufgetreten." & vbCrLf & "Fehlernummer: " & Err.Number & vbCrLf & "Fehlerbeschreibung: " & Err.Description _
        & vbCrLf & "Fehlerquelle: " & Err.Source & vbCrLf & "Hilfe: " & Err.HelpContext
    wordApp.Visible = False
End Sub

als fehler wird mir Fehlernummer 438
beschreibung: Object doesn's support this property or method

leider fang ich damit nicht viel an... :-(

hast eine Idee wo das problem begraben liegt?

danke

[Diese Nachricht wurde von MichlB1003 am 11. Apr. 2013 editiert.]

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

mafr
Mitglied
Techniker


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

Beiträge: 73
Registriert: 06.12.2010

HP xw 4600
Intel(R) Core(TM)2 Duo CPU E8500 3.16GHz
Windows XP
Windows 7 Professionel( 32 Bit / 64 Bit )
AutoCad 2014 / 2017
Inventor 2010 / 2018

erstellt am: 11. Apr. 2013 10: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 MichlB1003 10 Unities + Antwort hilfreich

Hallo Michl

leider muss ich passen. Was VBA anbelangt bin ich vermutlich ein noch grösserer Anfänger. Von Thumbnailpartlist und BOM habe ich bisher auch noch nichts gehört.
Ich habe erst gestern festgestellt das bei iAssembly die Teillisten-Struktur - nur Bauteile nicht zur Verfügung steht. Somit stehe ich jetzt vor dem gleichen Problem. Habe die Problematik mal an den Support weiter gegeben.

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

WilliamSpiderWeb
Mitglied
Dipl.-Ing. (FH) Physikalische Technik


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

Beiträge: 106
Registriert: 09.01.2012

DELL Precision 3620
Core i7-6900K @ 4,00 GHz
16,00GB RAM
Grafik: AMD FirePro W5100
---
Win7 Pro 64bit SP1
---
Inventor Professional 2023
Vault Workgroup 2023
Visual Basic .NET 2010 Express
... dabei seit Inventor 5

erstellt am: 11. Apr. 2013 14: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 MichlB1003 10 Unities + Antwort hilfreich


2013-04-11_14-43-21.png

 
Hallo Michl,

lass uns, bevor wir hier langen VBA-Code generieren  , doch noch einmal von vorne anfangen, damit wir auch definitiv von der selben Sache reden...

Dein eigentliches Problem ist, dass Du normalerweise in der "strukturierten Stückliste" einer Baugruppe (Assembly) wählen kannst zwischen "Erste Ebene" und "Alle Ebenen". Sobald Du aber eine Variantenbaugruppe (iAssembly) erstellst, ist der Eintrag "Alle Ebenen" nicht mehr wählbar, richtig?

Ich weiß nicht warum, aber das ist nicht nur bei Dir so. Der Inventor kann bei iAssemblys nicht auf "Alle Ebenen" umstellen.

ABER:
Ich bin da auf einen Bug im Inventor gestoßen, den man ausnutzen kann. Wenn Dir egal ist, dass der Eintrag "Alle Ebenen" weiterhin gesperrt bleibt, Du aber trotzdem die Unterebenen öffnen kannst (siehe Anhang), kann ich Dir helfen.

LÖSUNG:
Schreibe eine kleine VBA-Routine, die "Alle Ebenen" einschaltet und lege sie auf einen kleinen Button in die Ribbon-Leiste. (Diese Routine demonstriert nur, wie's geht. Hier wird nicht geprüft, ob wirklich eine Baugruppe geöffnet ist, etc.)

Code:

Public Sub IAssemblyWithAllLevelBom()
Dim oDoc As AssemblyDocument
Dim oBom As BOM

Set oDoc = ThisApplication.ActiveDocument
Set oBom = oDoc.ComponentDefinition.BOM

oBom.StructuredViewFirstLevelOnly = False
End Sub


Wenn Du nun eine iAssembly geöffnet hast, führst Du diesen Code aus und schwupps kannst Du die Unterbaugruppen in der Stückliste aufklappen. Wenn ich mich richtig erinnere, reicht der Inventor diese Option dann auch durch bis auf die Zeichnung.

Viele Grüße und viel Spaß damit.
Alex

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

MichlB1003
Mitglied
Konstrukteur


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

Beiträge: 42
Registriert: 07.03.2013

erstellt am: 11. Apr. 2013 15:29    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 und danke dass du dir zeit nimmst...

auf den bug bin ich auch schon gestossen... und hab ihn gleich ausgenützt ;-)

Public Sub Strukturliste()
On Error Resume Next
Dim BauteilDoc As AssemblyDocument
Dim partList As BOM
Dim ListView As BOMView


'Festlegen der aktiven anwendung
Set BauteilDoc = ThisApplication.ActiveDocument

'Export in Excel ohne bilder
Set partList = BauteilDoc.ComponentDefinition.BOM
partList.StructuredViewEnabled = True
Set ListView = partList.BOMViews.Item("Strukturiert")
partList.StructuredViewFirstLevelOnly = False

end sub

der funkt grundsätzlich ganz gut, nur ist es etwas mühsam, immer das makro laufen zu lassen, dann die idw. öffnen, die stückliste öffnen und die Childrows zu erweitern, damit ich dann im anschluss die Thumbnailpartlist drüberlaufen lassen kann.

mein Ziel bei dem ganzen spiel ist es, ein Plugin zu generieren (mit Visual studio express 2010) wo man die assembly geöffnet hat und auf einen button klickt und man eine fertige stückliste inkl. bildchen im word bzw. noch besser im excel hat.... benutzerfreundlichkeit ist das zauberwort.... ;-)

deshalb hab ich auch schon angefangen, den thumbnailpartlistcode zu adaptieren, aber ich stecke bei der erstellung der tabelle im word (auslesen der BOM aus dem assembly)...
tja das ist der derzeitige stand....

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

WilliamSpiderWeb
Mitglied
Dipl.-Ing. (FH) Physikalische Technik


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

Beiträge: 106
Registriert: 09.01.2012

DELL Precision 3620
Core i7-6900K @ 4,00 GHz
16,00GB RAM
Grafik: AMD FirePro W5100
---
Win7 Pro 64bit SP1
---
Inventor Professional 2023
Vault Workgroup 2023
Visual Basic .NET 2010 Express
... dabei seit Inventor 5

erstellt am: 11. Apr. 2013 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 Nur für MichlB1003 10 Unities + Antwort hilfreich

Ahh, okay, ich glaub, ich hab's verstanden.
Du möchtest also gar nicht mal ab und zu eine Stückliste exportieren,
sondern ein Makro bzw. ein PlugIn schreiben, das Dir quasi immer eine optisch ansprechende und übersichtliche Stückliste, auch für den Nicht-Konstrukteur, erzeugt.

Ich würde Dir dann dazu raten, von vorn herein in VB.NET zu programmieren, da...
1. ...sich VBA und .NET Code voneinander unterscheiden
2. ...das Debuggen in Visual Studio viel besser geht als im Inventor

noch ein allgemeiner Hinweis: Wenn Du Quellcode zitierst, wäre Dieser viel besser zu lesen, wenn Du die Code-Tags verwendest.

Zitat:
[CODE][/CODE]

Nun zu Deinem Problem:
BOM aus einer Assembly auslesen hast Du schon?
Und Dein Problem ist das Auslesen aller BOMs aus einer iAssembly?
Das hab ich bisher nur geschafft, indem ich VBA-gesteuert alle Varianten der Baugruppe durchklicken lassen und dann immer die jeweils aktuelle BOM ausgelesen habe. Würde Dir das helfen, oder ist das zu umständlich? Performanceoptimiert kann man diese Methode nämlich nicht nennen.
Das war Thema in dem Beitrag, in dem Du um Hilfe gebeten hast.  
Wenn Dir das helfen würde, kram ich den Code noch einmal aus.

Viele Grüße,
Alex

[Diese Nachricht wurde von WilliamSpiderWeb am 11. Apr. 2013 editiert.]

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

MichlB1003
Mitglied
Konstrukteur


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

Beiträge: 42
Registriert: 07.03.2013

erstellt am: 12. Apr. 2013 07: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

hallo

absolut richtig, ich möchte auf knopfdruck eine Stückliste direkt aus dem Assembly exportieren, mit der jemand, der nicht an der konstruktion beteiligt war, was anfangen kann.

generell hätt ich das ja gerne im VB Studio 2010 programmiert, aber alles was ich damit bis dato zu tun gehabt hab ist, dass ich es mir geladen habe und von autodesk den inventorplugin installiert hab. das wars dann auch schon wieder..

ABER ich bin ja lernfähig ;-)

also wenn du dich damit auskennst und mir helfen würdest, das zu erstellen, dann wär ich dir wirklich sehr dankbar.

lg und Danke schon mal

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

WilliamSpiderWeb
Mitglied
Dipl.-Ing. (FH) Physikalische Technik


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

Beiträge: 106
Registriert: 09.01.2012

DELL Precision 3620
Core i7-6900K @ 4,00 GHz
16,00GB RAM
Grafik: AMD FirePro W5100
---
Win7 Pro 64bit SP1
---
Inventor Professional 2023
Vault Workgroup 2023
Visual Basic .NET 2010 Express
... dabei seit Inventor 5

erstellt am: 12. Apr. 2013 09: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 MichlB1003 10 Unities + Antwort hilfreich

Ich hab die Stücklisten gebraucht, weil ich eine Schnittstelle zu unserem ERP-System bauen wollte.

Aber wie gesagt, bei mir läuft das so, dass Du im Inventor eine Baugruppe (egal ob iAssembly oder nicht) geöffnet haben musst, klickst dann auf den Export-Button, und mein VBA-Code erzeugt eine Textdatei mit der Stückliste bzw. eine Textdatei pro Variante.

Bei der iAssembly gehe ich allerdings den Weg, dass der Code nacheinander jede einzelne iAssembly-Tabellenzeile aktiviert und dann die BOM ausliest, die dann immer der Stückliste der aktivierten Variante entspricht.

Wenn Du möchtest, kann ich Dir den Code raus suchen.

Viele Grüße,
Alex

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

MichlB1003
Mitglied
Konstrukteur


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

Beiträge: 42
Registriert: 07.03.2013

erstellt am: 12. Apr. 2013 11: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

genau so soll es sein, inventor offen, Assembly oder iAssembly offen und dann button-click und export einer Stückliste mit bilder in Word bzw. wenn funkt besser noch in Excel...

ich brauch das nämlich auch für unser ERP system aber die eingabe erfolgt via eines kollegen.. also quasi halbautomatisch ;-)

ja wenn dein code funkt, dann nehm ich den gerne, mach der auch schöne bildchen dazu?

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

WilliamSpiderWeb
Mitglied
Dipl.-Ing. (FH) Physikalische Technik


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

Beiträge: 106
Registriert: 09.01.2012

DELL Precision 3620
Core i7-6900K @ 4,00 GHz
16,00GB RAM
Grafik: AMD FirePro W5100
---
Win7 Pro 64bit SP1
---
Inventor Professional 2023
Vault Workgroup 2023
Visual Basic .NET 2010 Express
... dabei seit Inventor 5

erstellt am: 12. Apr. 2013 19: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 MichlB1003 10 Unities + Antwort hilfreich

Hallo nochmal,

einen Export direkt in die Anwendungen Word oder Excel hab ich nicht gemacht. Bei mir wird im Verzeichnis der Assembly ein Unterverzeichnis "Export" erzeugt und in dieses Verzeichnis wird eine csv-Datei für jede Baugruppe bzw. Baugruppenvariante erstellt. Der Dateiname entspricht dem Assembly-Dateinamen. Um die kleinen Vorschaubildchen habe ich mich auch noch nicht gekümmert, aber wenn Du die schon hast, könntest Du mir den Code dafür auch einmal zeigen.

Hier ist mein Code. Komplett unkommentiert, da ich das Projekt zwecks wichtiger Projekte unterbrechen musste. Wie es nunmal immer so ist.  
Einfach in ein neues VBA-Modul im Inventor kopieren und die "ErzeugeBOM()" ausführen.

Code:

Public Sub ErzeugeBOM()
    Dim odoc As AssemblyDocument
    Dim RowNum As Integer
    RowNum = 0
    Set odoc = ThisApplication.ActiveDocument
    If odoc.DocumentType <> kAssemblyDocumentObject Then Exit Sub
    If odoc.ComponentDefinition.IsiAssemblyFactory Then
        For Each row In odoc.ComponentDefinition.iAssemblyFactory.TableRows
            odoc.ComponentDefinition.iAssemblyFactory.DefaultRow = row
            odoc.Update
            RowNum = RowNum + 1
            Call QueryBOM(odoc, BuildBomFilename(odoc, RowNum))
        Next
    Else
        Call QueryBOM(odoc, BuildBomFilename(odoc, RowNum))
    End If
End Sub

Private Sub QueryBOM(odoc As AssemblyDocument, DestinationFile As String)
        Dim oBOM As BOM
        Set oBOM = odoc.ComponentDefinition.BOM

        oBOM.StructuredViewFirstLevelOnly = False
        oBOM.StructuredViewEnabled = True

        Dim oBOMView As BOMView
        Set oBOMView = oBOM.BOMViews.Item("Strukturiert")
               
        If FileExists(DestinationFile) Then Kill (DestinationFile)
        If Not DirExists(ExtractDirectory(DestinationFile)) Then MkDir (ExtractDirectory(DestinationFile))
        Dim fs As Object
        Dim a As Object
        Set fs = CreateObject("Scripting.FileSystemObject")
        Set a = fs.OpenTextFile(DestinationFile, 8, -2)
               
        Debug.Print
        Debug.Print
        Debug.Print "Zeichn.-Nr."; Tab(15); "Rev"; Tab(30); "Art.-Nr."; Tab(45); "Menge"; Tab(60); "Zeichn.-Nr."; Tab(75); "Rev"; Tab(90); "Art.-Nr."
        Debug.Print "--------------------------------------------------------------------------------------------------------------------"
        a.writeline ("Zeichn.-Nr.; Rev; Art.-Nr.; Menge; Zeichn.-Nr.; Rev; Art.-Nr.")

        Dim ItemTab As Long
        ItemTab = -3
        Call QueryBOMRowProperties(odoc.ComponentDefinition, oBOMView.BOMRows, ItemTab, a)
        a.Close
End Sub

Private Sub QueryBOMRowProperties(oCompDef As ComponentDefinition, oBOMRows As BOMRowsEnumerator, ItemTab As Long, oFileStream As Object)
    ItemTab = ItemTab + 3

    Dim sPropSet As String
    sPropSet = "Inventor User Defined Properties"
  
   Dim ZNr1 As String
   Dim Rev1 As String
   Dim Artnr1 As String
   ZNr1 = readProperty(oCompDef, sPropSet, "Zeichnungsnummer")
   Rev1 = readProperty(oCompDef, sPropSet, "Revision")
   Artnr1 = readProperty(oCompDef, sPropSet, "Artikelnummer")
  
    Dim i As Long
    For i = 1 To oBOMRows.Count
        Dim oRow As BOMRow
        Set oRow = oBOMRows.Item(i)

        On Error Resume Next
        Set oCompDef = oRow.ComponentDefinitions.Item(1)
       
        Dim Menge As String
        Dim ZNr2 As String
        Dim Rev2 As String
        Dim ArtNr2 As String
        Menge = oRow.ItemQuantity
        ZNr2 = readProperty(oCompDef, sPropSet, "Zeichnungsnummer")
        Rev2 = readProperty(oCompDef, sPropSet, "Revision")
        ArtNr2 = readProperty(oCompDef, sPropSet, "Artikelnummer")

        If Int(Menge) > 0 Then
            Debug.Print ZNr1; Tab(15); Rev1; Tab(30); Artnr1; Tab(45); Menge; Tab(60); ZNr2; Tab(75); Rev2; Tab(90); ArtNr2
            oFileStream.writeline (ZNr1 & ";" & Rev1 & ";" & Artnr1 & ";" & Menge & ";" & ZNr2 & ";" & Rev2 & ";" & ArtNr2)

            If Not TypeOf oCompDef Is VirtualComponentDefinition Then
                If Not oRow.ChildRows Is Nothing Then
                    Call QueryBOMRowProperties(oCompDef, oRow.ChildRows, ItemTab, oFileStream)
                End If
            End If
        End If
    Next
    ItemTab = ItemTab - 3
End Sub

Public Function readProperty(oCompDef As ComponentDefinition, sPropSet As String, sPropName As String) As Variant
    readProperty = ""

    Dim oPropSets As PropertySets
    If TypeOf oCompDef Is VirtualComponentDefinition Then
        Set oPropSets = oCompDef.PropertySets
    Else
        Set oPropSets = oCompDef.Document.PropertySets
    End If

    Dim oProp As Property
    On Error GoTo ErrHandler
        Set oProp = oPropSets.Item(sPropSet).Item(sPropName)
        readProperty = oProp.Value
ErrHandler:
End Function

Public Function BuildBomFilename(odoc As AssemblyDocument, row As Integer) As String
        Dim oIAssFactory As iAssemblyFactory
        Dim oRow As iAssemblyTableRow
        Dim oCol As iAssemblyTableColumn
        Dim oCell As iAssemblyTableCell
        Dim Filename As String
        Dim Rev As String
       
        If odoc.ComponentDefinition.IsiAssemblyFactory Then
            Set oIAssFactory = odoc.ComponentDefinition.iAssemblyFactory
            Set oRow = oIAssFactory.TableRows.Item(row)
            Set oCol = oIAssFactory.FileNameColumn
            Set oCell = oRow.Item(oCol.Heading)
            Filename = oCell.Value
        Else
            Filename = ExtractFilenameWithoutExt(odoc.FullFileName)
        End If
       
        Rev = readProperty(odoc.ComponentDefinition, "Inventor User Defined Properties", "Revision")
        Filename = ExtractDirectory(odoc.FullFileName) & "\Export\" & Filename & " R" & Rev & " BOM.csv"
        BuildBomFilename = Filename
End Function


Du musst natürlich noch ein paar Dinge ändern. Ich lese die "Benutzerdefinierten IProperties" "Zeichnungsnummer", "Artikelnummer", "Revision" aus. Die werden bei Dir natürlich nicht vorhanden sein. Zu Debugzwecken schreibe ich die Tabellen neben der csv-Datei auch in den Debug-Print.

Viel Erfolg,
Wenn Du nocoh Fragen dazu hast, sag Bescheid.

Alex

[Diese Nachricht wurde von WilliamSpiderWeb am 12. Apr. 2013 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)2024 CAD.de | Impressum | Datenschutz