Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de
  Inventor VBA
  Zeichnungsnummer in iProperties

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
  
PNY wird von NVIDIA zum Händler des Jahres gewählt - zum dritten Mal in Folge, eine Pressemitteilung
Autor Thema:  Zeichnungsnummer in iProperties (1887 mal gelesen)
Skeater
Mitglied



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

Beiträge: 42
Registriert: 25.05.2002

erstellt am: 24. Jan. 2010 11:49    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 möchte ein Makro erstellen, welches
in jedem Einzelteil der Braugruppe die Zeichnungsnummer der Baugruppe einträgt.
Diese Zeichnungsnummer soll in iProperties  Feld „Kommentare“. Vorhandene Einträge dürfen nicht überschrieben werden. Teile aus dem Inhaltscenter sind nicht zu berücksichtigen.
Ich bin VBA Neuling, und deshalb für jeden Tipp dankbar.

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: 2788
Registriert: 15.11.2006

Windows 10 x64, AIP 2020-2025

erstellt am: 24. Jan. 2010 12: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 Skeater 10 Unities + Antwort hilfreich

Hallo

Und was machst du, wenn das Bauteil in zwei oder mehr Baugruppen verbaut ist? 

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

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

Skeater
Mitglied



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

Beiträge: 42
Registriert: 25.05.2002

erstellt am: 24. Jan. 2010 16:33    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

Dann stehen mehrere Zeichnungsnummern dort.
Darum dürfen die vorhandenen Einträge nicht gelöscht werden.
Wir machen das zurzeit immer von Hand. So kann man sofort ablesen wo das Teil überall verbaut ist.

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

daywa1k3r
Ehrenmitglied V.I.P. h.c.
Softwareentwickler



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

Beiträge: 3497
Registriert: 01.08.2002

Alienware m17x, Win7, Inventor2012

erstellt am: 24. Jan. 2010 17:14    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 Skeater 10 Unities + Antwort hilfreich

Wie weit bist du eigentlich mit dem Makro? Hast du konkrete Fragen diesbezüglich?

------------------
Grüße Igor

FX64 Software Solutions - Inventor Tools

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: 2788
Registriert: 15.11.2006

Windows 10 x64, AIP 2020-2025

erstellt am: 24. Jan. 2010 21:17    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 Skeater 10 Unities + Antwort hilfreich

Hallo

Vermutlich steht er noch ganz am Anfang, deswegen auch keine konkrete Frage. Weil man einfach nicht weiß, wo und wie man anfangen soll. Kenn ich.  

Ich würd's nicht durchziehen. Warum?
Das Makro schreibt nur dazu, doppelte Einträge kriegt man noch über Stringoperationen/-vergleiche verhindert. Aber wie kriegt ihr entfernte Bauteile dazu auch ihren Zugehörigkeitseintrag zur BG aus der es eben entfernt wurde, zu entfernen? Vermutlich händisch. Also ist das Makro eigentlich nur die halbe Miete bzw. der kleinste Teil.
Wär's nicht einfacher auf eine Datenverwaltungssoftware umzusteigen bzw. diese einzuführen? Verwendungsnachweise können die in der Regel alle darstellen. Man muß ja nicht alle Feature nutzen, die angeboten werden.

Wenn du's durchziehen willst, fang vielleicht damit an:

Code:
Private Sub iPropDingens()

Dim oAssDoc As AssemblyDocument
If ThisApplication.ActiveDocumentType = kAssemblyDocumentObject Then
    Set oAssDoc = ThisApplication.ActiveDocument
Else
    MsgBox "Kein Baugruppendokument - Exit"
    Exit Sub
End If

Dim oCompOcc As ComponentOccurrence
Dim oProp As Property
Dim sValue As String

On Error Resume Next

For Each oCompOcc In oAssDoc.ComponentDefinition.Occurrences
   
    If oCompOcc.SubOccurrences.Count = 0 Then
        If oCompOcc.DefinitionDocumentType = kPartDocumentObject Then
   
            Set oProp = oCompOcc.Definition.Document.PropertySets.Item(1).Item(5)
            sValue = oProp.Value
   
            If Not sValue = "" Then
                oProp.Value = sValue & vbNewLine & oAssDoc.FullDocumentName  'Setzt einen neuen Inhalt
            Else
                oProp.Value = oAssDoc.FullDocumentName
            End If
        End If
    Else
        Call AllSubOccs(oCompOcc)
    End If

Next

MsgBox "Fertsch"
End Sub

Private Sub AllSubOccs(ByVal oCompOcc As ComponentOccurrence)
    Dim oSubCompOcc As ComponentOccurrence
    Dim oProp As Property
    Dim sValue As String
   
    On Error Resume Next
   
    For Each oSubCompOcc In oCompOcc.SubOccurrences
        If oSubCompOcc.SubOccurrences.Count = 0 Then
            If oSubCompOcc.DefinitionDocumentType = kPartDocumentObject Then
   
                Set oProp = oSubCompOcc.Definition.Document.PropertySets.Item(1).Item(5)
                sValue = oProp.Value
   
                If Not sValue = "" Then
                    oProp.Value = sValue & vbNewLine & oCompOcc.Definition.Document.FullDocumentName  'Setzt einen neuen Inhalt
                Else
                    oProp.Value = oCompOcc.Definition.Document.FullDocumentName
                End If
            Else
                Call AllSubOccs(oSubCompOcc)
            End If
        End If
    Next
End Sub


Es fehlt:
- Einlesen des vorhandenen Propertyinhaltes
- Zerlegen des Inhaltes in einzelne Strings (je ein BG die das BT enthält)
- Vergleichen jedes Strings mit dem neu dazuzuschreibenden
- Entweder neuen String verwerfen, weil schon vorhanden
- oder hinzufügen
- und irgendwas, das ich auch vergessen hab

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

[Diese Nachricht wurde von rkauskh am 24. Jan. 2010 editiert.]

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

Skeater
Mitglied



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

Beiträge: 42
Registriert: 25.05.2002

erstellt am: 24. Jan. 2010 23: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

Hallo rkauskh.
Das ist schon super.
Es ist zwar noch nicht ganz so wie ich es wollte, aber der Ansatz ist toll. Jetzt kann ich schon mal etwas arbeiten. Hat jemand eine Idee wie ich prüfen kann ob es diesen Eintrag schon gibt?

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: 2788
Registriert: 15.11.2006

Windows 10 x64, AIP 2020-2025

erstellt am: 24. Jan. 2010 23: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 Skeater 10 Unities + Antwort hilfreich

Hallo

Nur um mal mit einem weit verbreiteten Mißverständnis aufzuräumen, das hier ist keine Makrobestellecke. 

Zum Vergleichen mußt du, wie oben schon erwähnt den String der im iProperty steht anhand eines Trennzeichens zerlegen. Das Trennzeichen könnte hier Carriage-Return Chr(13) sein. Zum Trennen schau dir die Funktion Split an. Die liefert ein Array zurück, das einzeln durchlaufen und mit dem neuen Wert verglichen werden muß.
Die Split-Funktion kannst du auch hernehmen, um statt des FullDocumentName nur den Dateinamen "herauszuschneiden", falls du den Pfad nicht dabei haben willst. Hier ist ein Beispiel dafür.

------------------
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)2025 CAD.de | Impressum | Datenschutz