Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Inventor VBA
  Sortieren der Stückliste in der IDW

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:  Sortieren der Stückliste in der IDW (2304 mal gelesen)
muelb
Mitglied
Maschineningenieur


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

Beiträge: 79
Registriert: 21.02.2003

erstellt am: 28. Sep. 2010 14: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

Wir sortieren unsere Stücklisten in der IDW immer nach denselben Feldern. Leider hat diese Funktion immer noch kein Hirn und speicher die Einstellung nicht. Kann man da etwas in VBA machen?

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: 28. Sep. 2010 21:32    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 muelb 10 Unities + Antwort hilfreich

Hallo

Ja es gibt in der API eine PartsList.Sort Methode. Probiers mal so:

Code:
Private Sub PartsListTest()

Dim oDoc As DrawingDocument
Set oDoc = ThisApplication.ActiveDocument

Dim oPartsList As PartsList
Set oPartsList = oDoc.ActiveSheet.PartsLists.Item(1)

'die Werte in der Klammer natürlich entsprechend ersetzen.
Call oPartsList.Sort(PrimaryColumnTitle As String, ByRef PrimaryColumnAscending As [defaultvalue(-1)] Boolean, ByRef SecondaryColumnTitle As [defaultvalue("")] String, ByRef SecondaryColumnAscending As [defaultvalue(-1)] Boolean, ByRef TertiaryColumnTitle As [defaultvalue("")] String, ByRef TertiaryColumnAscending As [defaultvalue(-1)] Boolean)

End Sub


------------------
MfG
RK

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

muelb
Mitglied
Maschineningenieur


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

Beiträge: 79
Registriert: 21.02.2003

erstellt am: 04. Okt. 2010 09:54    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

Super! Mit dem Tip konnte ich doch tatsächlich etwas beheben, das uns seit Jahren nervt.

Mein Makro im Moment:
---
Public Sub PartsListSort()

Dim oDoc As DrawingDocument
Set oDoc = ThisApplication.ActiveDocument

Dim oPartsList As PartsList
Set oPartsList = oDoc.ActiveSheet.PartsLists.Item(1)

Dim sPartsListSortString1 As String
    sPartsListSortString1 = "Norm"
Dim sPartsListSortString2 As String
    sPartsListSortString2 = "Artikel"
Dim sPartsListSortString3 As String
    sPartsListSortString3 = "Bem. /Lieferant"
   
Call oPartsList.Sort(sPartsListSortString1, True, sPartsListSortString2, True, sPartsListSortString3, True)

Call oPartsList.Renumber

End Sub
---

Ich habe nun gesehen, dass man per API ahnscheinend auch den Stücklistenstil auswählen kann. Kann ich per PartsList.Style den Stil umschalten? Und wenn ja wie?

Gibts ein gutes Lehrmittel für VBA im allgemeinen, ich habe manchmal wirklich Probleme die API Referenz zu verstehen.

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: 04. Okt. 2010 12:58    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 muelb 10 Unities + Antwort hilfreich

Hallo

Meines Wissens muß die Umstellung in der BOM der Baugruppe erfolgen. Teste mal das hier:

Code:
Private Sub SwitchBOMStructure()

Dim oAssDoc As AssemblyDocument
Dim oDrawDoc As DrawingDocument
Dim oPartsList As PartsList

Set oDrawDoc = ThisApplication.ActiveDocument
Set oPartsList = oDrawDoc.ActiveSheet.PartsLists(1)
If oPartsList.ReferencedDocumentDescriptor.ReferencedDocumentType = DocumentTypeEnum.kAssemblyDocumentObject Then
    Set oAssDoc = oPartsList.ReferencedDocumentDescriptor.ReferencedDocument
    If oAssDoc.ComponentDefinition.BOM.StructuredViewEnabled = False Then
        oAssDoc.ComponentDefinition.BOM.StructuredViewEnabled = True
    End If
    If oAssDoc.ComponentDefinition.BOM.StructuredViewFirstLevelOnly = True Then
        oAssDoc.ComponentDefinition.BOM.StructuredViewFirstLevelOnly = False
        MsgBox ("Die Stücklistenstruktur der Baugruppe wurde auf 'alle Ebenen' umgestellt.")
    Else
        oAssDoc.ComponentDefinition.BOM.StructuredViewFirstLevelOnly = True
        MsgBox ("Die Stücklistenstruktur der Baugruppe wurde auf 'nur Bauteile' umgestellt.")
    End If
End If
End Sub


Lehrmittel im Sinne von Büchern ect. speziell für Inventor gibt es nicht. Für VBA gibt's Tutorials im Internet, die man durcharbeiten kann, um die Basics zu lernen. Frag mal Google.
Immer hilfreich sind Breakpunkte und die Überwachung der Variablen. Notfalls mit F8 schrittweise durch den Code stapfen.
Im SDK-Ordner deiner Inventorinstallation gibt es noch eine Übersicht über das Inventor Objektmodell. Ich hatte das anfangs in A0 an der Wand hängen, da ich so schneller suchen konnte.

------------------
MfG
RK

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