Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Inventor VBA
  zwischen Teilelisten wechseln

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:  zwischen Teilelisten wechseln (3507 mal gelesen)
Didikalle
Mitglied
Konstrukteur


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

Beiträge: 91
Registriert: 07.10.2011

Ich nutze Inventor 2016 mit dem BS Win 10

erstellt am: 21. Jan. 2012 16: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

Hallo Zusammen

Ich habe mir im Stileditor unter Teileliste 2 Listen erstellt, einmal "Teileliste Bauteil" und einmal "Teileliste Baugruppe". Wie die Namen schon sagen, werden diese Listen den jeweiligen Zeichnungen zugeordnet. Momentan mache ich das händisch (Teileliste einfügen - aussuchen welche - Ableitung anklicken -Teileliste plazieren - fertig). Nun habe ich hier unter Thema "Teileliste Stil" von muelb einen fast-brauchbaren Cote gefunden, bei dem aber der Wechsel zwischen den beiden Listen nicht funktioniert (item(Zahl???)). Wie muss der Cote aussehen damit "Teileliste Bauteil" auf einer IPT-referenzierten Zeichnung erscheint und "Teileliste Baugruppe" auf einer IAM-referenzierten Zeichnung? Ich freue mich auf Eure Hilfe.

Gruß

------------------
Didi

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: 24. Jan. 2012 07: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 Didikalle 10 Unities + Antwort hilfreich

Hi

Wenn ich mir die Screenshots im anderen Thread ansehe, hast du auf der IDW die die Teileliste Bauteil haben soll auch Ansichten einer Baugruppe mit drauf. Vermutlich referenziert deine Teileliste auf eine dieser BG's, statt auf ein Bauteil. Was steht denn in der "falschen" Teileliste im Fenstertitel, wenn du auf "Teileliste bearbeiten" klickst?

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

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

Didikalle
Mitglied
Konstrukteur


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

Beiträge: 91
Registriert: 07.10.2011

Ich nutze Inventor 2016 mit dem BS Win 10

erstellt am: 24. Jan. 2012 08: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

Hi,
das Bild "wieessoll" zeigt eine Baugruppe mit der Liste, wie ich sie dafür vorgesehen habe. Das Bild "wieeskommt" zeigt die gleiche Baugruppe mit der Liste, die nach benutzen des Codes kommt (Teileliste Bauteil) was aber falsch ist. Das Bild "wieesoll_BT" zeigt ein Bauteil (hier ist keine Baugruppe drauf) mit der richtigen Liste nach benutzen des Codes.
Im Fenstertitel steht bei beiden "Teileliste:Bauteilnummer".

------------------
Didi

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

noctis79
Mitglied
Konstrukteur/ CAD-Administrator


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

Beiträge: 164
Registriert: 07.10.2009

Inventor Pro 2017
Cideon Workspace

erstellt am: 27. Jan. 2012 12:50    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 Didikalle 10 Unities + Antwort hilfreich

Hallo Didikalle,

ich würde erstmal nachprüfen, ob item(1) und item(2) überhaupt der Stückliste entsprechen, welche eingefügt werden soll....

Code:
Public Sub StuecklisteEinfügen()

  Dim oapp As Inventor.Application
  Set oapp = ThisApplication
  Dim odoc As Inventor.DrawingDocument
  Set odoc = oapp.ActiveDocument
  Dim oStyle As Inventor.PartsListStylesEnumerator
  Set oStyle = odoc.StylesManager.PartsListStyles
  Dim oitem As Inventor.PartsListStyle
  Dim counter As Integer
  counter = 0
 
  MsgBox "Es sind insgesamt " & oStyle.Count & " Stücklistenstile vorhanden."
 
  For Each oitem In oStyle
  counter = counter + 1
  MsgBox "Item " & counter & _
  " --- Name: " & oitem.Name
  Next
 
End Sub


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

Didikalle
Mitglied
Konstrukteur


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

Beiträge: 91
Registriert: 07.10.2011

Ich nutze Inventor 2016 mit dem BS Win 10

erstellt am: 27. Jan. 2012 13: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

Hi
der Code war sehr hilfreich. Ich konnte so die Items finden. Leider bringt das nicht den Erfolg. Item 18 zeigt Teileliste Baugruppe und Item 19 Teileliste Bauteil. Egal wie ich die Werte in den Klammern () setze, es kommt immer die Bauteil-Liste. Über die manuelle Einfügung der Listen funktioniert das.
Ich bin ratlos
Ich habe auch schon andere Listennamen kreiert, so ist auf Item 7 Teileliste (Baugruppe) und auf Item 8 Teileliste (Bauteil), anlehnend an den Normlisten, es klappt einfach nicht.
Dein Code zeigt mir 20 Listen an. Kann man die nicht benötigten Listen löschen, und wenn ja, wie?

Liebe Grüße

------------------
Didi

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

noctis79
Mitglied
Konstrukteur/ CAD-Administrator


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

Beiträge: 164
Registriert: 07.10.2009

Inventor Pro 2017
Cideon Workspace

erstellt am: 27. Jan. 2012 16:41    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 Didikalle 10 Unities + Antwort hilfreich

K, begeben wir uns also auf Fehlersuche:

Als erstes mal anschauen ob der Unterschied zwischen Baugruppe und Bauteil funktioniert.

Code:
Set oStyle = oDrawDoc.StylesManager.PartsListStyles.Item(1)
    ' Zuweisen der Stücklisten-Stile für Baugruppe und Einzelteil
    If oDrawingView.ReferencedDocumentDescriptor.ReferencedDocumentType = kAssemblyDocumentObject Then
      msgbox "Baugruppe"
      Set oStyle = oDrawDoc.StylesManager.PartsListStyles.Item(1)
    ElseIf oDrawingView.ReferencedDocumentDescriptor.ReferencedDocumentType = kPartDocumentObject Then
     msgbox "Bauteil"
      Set oStyle = oDrawDoc.StylesManager.PartsListStyles.Item(2)
    Else
      Set oStyle = oDrawDoc.StylesManager.PartsListStyles.Item(1)
      MsgBox "Konnte Dokumenttyp der Standardansicht nicht erkennen"
    End If

Desweiteren würde ich nochmal überprüfen ob jedesmal oSheet.PartsLists.Item(1) auch die richtige Stückliste ist,
ob oDrawDoc.StylesManager.PartsListStyles.Item(1) auch das gewünschte item ist...

Code:
Set oPartsList = oSheet.PartsLists.Add(oDrawingView, oPlacementPoint)
  
    'Aktuelle Stüli referenzieren
    Dim oActualPartsList As PartsList
    Set oActualPartsList = oSheet.PartsLists.Item(1)
  
    ' PartsListStyles Objekt erzeugen und belegen mit der Baugruppen-Stückliste Deutsch
    Dim oStyle As PartsListStyle
    
    Set oStyle = oDrawDoc.StylesManager.PartsListStyles.Item(1)

Desweiteren sollte ja oPartsList und oActualPartsList das gleiche sein, oder?!?
Speicher Dir Deinen bisherigen Code mal weg und ersetz oActualPartsList durch oPartsList...
Und natürlich die Zeile mit Dim oActualPartsList komplett löschen.


Und noch ein Fehler der passieren kann:
Hast Du im Stil- Editor deine Stile als lokaler Stil oder in der Stilbibliothek gespeichert?!?
Wenn Sie nur lokal gespeichert sind, würde es das Verhalten auch erklären...

[Diese Nachricht wurde von noctis79 am 27. Jan. 2012 editiert.]

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

Didikalle
Mitglied
Konstrukteur


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

Beiträge: 91
Registriert: 07.10.2011

Ich nutze Inventor 2016 mit dem BS Win 10

erstellt am: 28. Jan. 2012 10: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


alleStile.JPG


Baugruppe.JPG


Baugruppenliste.JPG

 
Hi,

ich habe die Codes eingefügt und verändert wie vorgeschlagen.
Baugruppe=Baugruppe und Bauteil=Bauteil, das ist schon mal ok.
Die Listen sind alle in der Stilbibliothek gespeichert.
Wenn ich die Liste auf der Zeichnung öffne steht im Kopf nur Teileliste:und die Bauteilnummer (siehe JPEG´s).

Zitat:
Desweiteren würde ich nochmal überprüfen ob jedesmal oSheet.PartsLists.Item(1) auch die richtige Stückliste ist,
ob oDrawDoc.StylesManager.PartsListStyles.Item(1) auch das gewünschte item ist...

Wie kann ich das feststellen?

------------------
Didi

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

Didikalle
Mitglied
Konstrukteur


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

Beiträge: 91
Registriert: 07.10.2011

Ich nutze Inventor 2016 mit dem BS Win 10

erstellt am: 28. Jan. 2012 10: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


Bauteil.JPG


Bauteilliste.JPG

 
Nachtrag fehlende Bilder (Bauteil)
Bilder findest Du auch im Tread "Teilelisten Stil"

------------------
Didi

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

noctis79
Mitglied
Konstrukteur/ CAD-Administrator


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

Beiträge: 164
Registriert: 07.10.2009

Inventor Pro 2017
Cideon Workspace

erstellt am: 28. Jan. 2012 10:48    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 Didikalle 10 Unities + Antwort hilfreich

K, mach ma nen Haken bei Titel und vergeb da einen eindeutigen Namen (Baugruppe.jpg).
Die verwendete StüLi- Vorlage bekommst Du heraus, indem Du einen doppelklick auf die Stückliste machst, oben gibt es dann verschiedene Auswahlmöglichkeiten z.B. von A-Z sortieren, Neu nummerieren und Tabellen- Layout. Tabellen Layout anklicken und Du bekommst die Informationen die Du brauchst.

Zitat:

Wie kann ich das feststellen?

Code:
msgbox oSheet.PartsLists.count

Wenn ein größerer Wert als 1 zurückgegeben wird dann sind mehrere Stücklisten auf der Zeichnung vorhanden...

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

Didikalle
Mitglied
Konstrukteur


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

Beiträge: 91
Registriert: 07.10.2011

Ich nutze Inventor 2016 mit dem BS Win 10

erstellt am: 28. Jan. 2012 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

Hi noctis79

wenn Dummheit weh tät, würde ich wahrscheinlich nur schreiend rumlaufen. Weil das Sortieren im Code nicht funktionierte, habe ich es abgeschaltet aber auch die Stilzuweisung. Die habe ich wieder aktiviert und siehe da, es funktioniert. Deine Hilfecodes sind aber auch sehr hilfreich und dafür danke ich Dir. Unities sind unterwegs.

Herzlichen Dank nochmal
und liebe Grüße

------------------
Didi

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

noctis79
Mitglied
Konstrukteur/ CAD-Administrator


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

Beiträge: 164
Registriert: 07.10.2009

Inventor Pro 2017
Cideon Workspace

erstellt am: 29. Jan. 2012 10: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 Didikalle 10 Unities + Antwort hilfreich

Hast aber selber den Fehler gefunden! 
Mich würde noch interessieren, was passiert wenn schon eine Teileliste vorhanden ist?!?
Kannst Du Dir ja nochmal anschauen und evtl. am Code noch was ändern damit dort keine
"Fehler" passieren....

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

Didikalle
Mitglied
Konstrukteur


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

Beiträge: 91
Registriert: 07.10.2011

Ich nutze Inventor 2016 mit dem BS Win 10

erstellt am: 29. Jan. 2012 11:27    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

Hi
das habe ich auch gelöst, wie auch die Sortierung.
Hier der komplette Code:
Code:
Public Sub Teileliste()

    On Error Resume Next
   
    Dim oDrawDoc As DrawingDocument
    Set oDrawDoc = ThisApplication.ActiveDocument

    Dim oSheet As Sheet
    Set oSheet = oDrawDoc.ActiveSheet
   
    If oSheet.DrawingViews.Count > 0 Then
    Dim oDrawingView As DrawingView
      Set oDrawingView = oSheet.DrawingViews(1)
      Debug.Print "Erstansicht = " & oDrawingView.Name
    Else
      MsgBox "Bitte erstellen Sie zuerst eine Erstansicht!"
      GoTo AbbruchMarker
    End If
   
    If oSheet.PartsLists.Count > 0 Then
        MsgBox "Liste schon vorhanden!"
        GoTo AbbruchMarker
    End If
   
    Dim oBorder As Border
    Set oBorder = oSheet.Border
   
    Dim oPlacementPoint As Point2d
   
    Set oPlacementPoint = ThisApplication.TransientGeometry.CreatePoint2d(0, 0)
   
    Dim oPLDimensionPoint As Point2d

    Dim oPartsList As PartsList
    Set oPartsList = oSheet.PartsLists.Add(oDrawingView, oPlacementPoint)

    Set oPLDimensionPoint = oPartsList.RangeBox.MinPoint

    Dim oLeftBottomPoint As Point2d
    Dim oRightUpperPoint As Point2d
   
    If Not oBorder Is Nothing Then
        Set oLeftBottomPoint = oBorder.RangeBox.MinPoint
        Set oRightUpperPoint = oBorder.RangeBox.MaxPoint
    Else
        MsgBox "Kein Rahmen Eingefügt!"
        Dim oNoBorderPoint As Point2d
        Set oNoBorderPoint = ThisApplication.TransientGeometry.CreatePoint2d(0, 0)
        Set oLeftBottomPoint = oNoBorderPoint
        Set oRightUpperPoint = oNoBorderPoint
    End If
   
    Dim oVec As Vector2d
   
    ' Abmasse des Zeichnungskopfens plus Höhe des Zeichnungskopfes
    Set oVec = ThisApplication.TransientGeometry.CreateVector2d(18.4, 5.525 - oPLDimensionPoint.Y)
   
    Dim oDisplacementVector As Vector2d
    Set oDisplacementVector = ThisApplication.TransientGeometry.CreateVector2d(oRightUpperPoint.X, oLeftBottomPoint.Y + oVec.Y)
       
    Call oPartsList.Delete
    Call oPlacementPoint.TranslateBy(oDisplacementVector)
    Set oPartsList = oSheet.PartsLists.Add(oDrawingView, oPlacementPoint)
   
    Set oPartsList = oSheet.PartsLists.Item(2)
 
    Dim oStyle As PartsListStyle
   
    Set oStyle = oDrawDoc.StylesManager.PartsListStyles.Item(2)
    If oDrawingView.ReferencedDocumentDescriptor.ReferencedDocumentType = kAssemblyDocumentObject Then
    ' MsgBox "Baugruppe"
      Set oStyle = oDrawDoc.StylesManager.PartsListStyles.Item(18)
    ElseIf oDrawingView.ReferencedDocumentDescriptor.ReferencedDocumentType = kPartDocumentObject Then
    ' MsgBox "Bauteil"
      Set oStyle = oDrawDoc.StylesManager.PartsListStyles.Item(19)
    Else
      Set oStyle = oDrawDoc.StylesManager.PartsListStyles.Item(2)
      MsgBox "Konnte Dokumenttyp der Standardansicht nicht erkennen"
    End If
   
    ' MsgBox oSheet.PartsLists.Count
   
    ' Stil zuweisen
    oPartsList.Style = oStyle
   
    ' Teileliste sortieren
    Dim sPartsListSortString1 As String
    sPartsListSortString1 = "OBJEKT"
Dim sPartsListSortString2 As String
    sPartsListSortString2 = "ANZAHL"
Dim sPartsListSortString3 As String
    sPartsListSortString3 = "BAUTEILNUMMER"
   
Call oPartsList.Sort(sPartsListSortString1, True, sPartsListSortString2, True, sPartsListSortString3, True)

   
AbbruchMarker:
End Sub


Einen schönen Sonntag noch
Gruß

------------------
Didi

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