Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Inventor VBA
  Teilelisten Stil

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:  Teilelisten Stil (2741 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: 10. Jan. 2012 15: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

Wie kann ich den Stil einer bereits auf der Zeichnung eingefügten Zeichnung ändern? Mir fehlt leider noch viel Wissen in VBA um die entsprechende Eigenschaft aus der API referenz zu finden und einzusetzen...

Set oPartsList = oSheet.PartsLists.Add(oDrawingView, oPlacementPoint)
   
Dim oStyle As PartsListStyle
Set oStyle = oSheet.PartsLists.Item(1).Style("Stückliste 1")

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

Inventor 2017, Xeon W3530 4x2.8GHz, 18GB Ram, Quadro FX1800, Win7 64-bit

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

Für Diejenigen die es interessiert hier der funktionierende Code. Er fügt eine Teileliste ein, die oberhalb des Zeichnungskopfes (entsprechende Abmasse muss man anpassen) verankert wird und je nach dem ob es ein Assembly oder ein Part ist wird ein entsprechender Stil gewählt.

Public Sub StuecklisteEinfügen()

    On Error Resume Next
   
    ' Set a reference to the drawing document.
    ' This assumes a drawing document is active.
    Dim oDrawDoc As DrawingDocument
    Set oDrawDoc = ThisApplication.ActiveDocument

    'Set a reference to the active sheet.
    Dim oSheet As Sheet
    Set oSheet = oDrawDoc.ActiveSheet
   
    ' Set a reference to the first drawing view on
    ' the sheet. This assumes the first drawing
    ' view on the sheet is not a draft view.
    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
    ' Set a reference to th sheet's border
    Dim oBorder As Border
    Set oBorder = oSheet.Border
   
    ' Einfügepunkt der Stückliste
    Dim oPlacementPoint As Point2d
   
    ' erste position der Teileliste
    Set oPlacementPoint = ThisApplication.TransientGeometry.CreatePoint2d(0, 0)
   
    Dim oPLDimensionPoint As Point2d

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

    ' Unterer linker Eckpunt der Teileliste auslesen
    Set oPLDimensionPoint = oPartsList.RangeBox.MinPoint

    'Debug.Print "1. oPLDimensionPoint => X= " & oPLDimensionPoint.X & " // Y= " & oPLDimensionPoint.Y
       
    ' Eckpunkte des Rahmens auslesen
    Dim oLeftBottomPoint As Point2d
    Dim oRightUpperPoint As Point2d
   
    If Not oBorder Is Nothing Then
        ' A border exists. The placement point
        ' is the top-right corner of the border.
        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
   
  ' Höhe und breite des Zeichnungskopfes in einen Vektor
    Dim oVec As Vector2d
   
    ' Abmasse des Zeichnungskopfens plus Höhe des Zeichnungskopfes
    Set oVec = ThisApplication.TransientGeometry.CreateVector2d(18.4, 5.7 - oPLDimensionPoint.Y)
   
    ' Positionsvektor erstellen
    Dim oDisplacementVector As Vector2d
    Set oDisplacementVector = ThisApplication.TransientGeometry.CreateVector2d(oRightUpperPoint.X, oLeftBottomPoint.Y + oVec.Y)
       
    ' Mess-Stückliste entfernen
    Call oPartsList.Delete
    ' Einfügepunkt verschieben
    Call oPlacementPoint.TranslateBy(oDisplacementVector)
    ' Stückliste am korrekten Einfügepunkt einfügen
    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)
    ' Zuweisen der Stücklisten-Stile für Baugruppe und Einzelteil
    If oDrawingView.ReferencedDocumentDescriptor.ReferencedDocumentType = kAssemblyDocumentObject Then
      Set oStyle = oDrawDoc.StylesManager.PartsListStyles.Item(1)
    ElseIf oDrawingView.ReferencedDocumentDescriptor.ReferencedDocumentType = kPartDocumentObject Then
      Set oStyle = oDrawDoc.StylesManager.PartsListStyles.Item(2)
    Else
      Set oStyle = oDrawDoc.StylesManager.PartsListStyles.Item(1)
      MsgBox "Konnte Dokumenttyp der Standardansicht nicht erkennen"
    End If
   
    ' Stil zuweisen
    oActualPartsList.Style = oStyle
    ' Teileliste sortieren
    Call PartsListSort
   
AbbruchMarker:
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: 20. Jan. 2012 16:52    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 muelb,

ich habe deinen code ausprobiert aber ein Problem damit.
Im Stileditor unter Teileliste (IV2012) habe ich zwei Listen angelegt. Die eine nennt sich "Teileliste Bauteil" und die andere "Teileliste Baugruppe" und werden entsprechend über IV-Teileliste einfügen plaziert. Dein Code könnte ich zur Vereinfachung also gut brauchen. Leider plaziert er mir sowohl auf einer Bauteil- als auch einer Baugruppenzeichnung immer die "Bauteilliste". Ich habe mit den Item(Zahlen) schon probiert aber es gelingt mir nicht, die Listenform zu ändern. Was mache ich falsch?
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: 22. Jan. 2012 15:08    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

Hi

Dann laß es doch mal im Debugger schrittweise laufen und schau dir den Wert des ReferencedDocumentType in der If-Anweisung fast am Ende an. Wird dort immer PartDocument ermittelt, stimmt mit deinem DrawingView was nicht und du müßtest prüfen, warum.
Oder du stellst mal eine Beispiel-BG samt IDW hier rein. Sonst kann das vermutlich niemand nachstellen. Ich sehe keinen Fehler in muelb's Code.

------------------
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: 23. Jan. 2012 22: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 Nur für muelb 10 Unities + Antwort hilfreich


wieessoll.JPG


wieeskommt.JPG


wieessoll_BT.JPG

 
Hi,

bei einer iam ist der Wert des DocumentType=12291 und bei einer ipt=12290, der Unterschied scheint somit vorhanden. Ich habe diesen Code in Inv2010 und 2012 probiert und bekomme keine unterschiedlichen Listen. Im Anhang ein paar Screenshoots des Problems.

------------------
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: 23. Jan. 2012 22:40    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

Nachtrag:
Da mich das Problem nicht hat ruhen lassen, hatte ich am 21.01. ein neues Thema eröffnet "zwischen Teilelisten wechseln". Da habe ich die Arbeitsabfolge zur Integration einer Liste erleutert.

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