Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Inventor VBA
  I-Prppperties anlegen

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 bietet das umfangreichste Ökosystem von B2B als auch B2C-Lösungen für IT-Akteure auf dem Markt, eine Pressemitteilung
Autor Thema:  I-Prppperties anlegen (1415 mal gelesen)
Volker E
Mitglied
Konstrukteur


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

Beiträge: 164
Registriert: 20.08.2012

Win 7 64 bit,
Inventor 2015 Sp2 64 bit
Intel Xeon CPU E5-1607 3,00 GHz 32GB RAM
Nvidia Quadro 4000
Space Explorer

erstellt am: 28. Jan. 2013 12:26    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 IV-Gemeine

Bin in der Makroprogrammierung ein absoluter Anfänger.
Ich will per Makro mehrere Benutzerdef. Propperties anlegen betrifft alt Bauteile u. Baugruppen dazu habe ich auch einen Code gefunden und angepasst das funktioniert. Jetzt mein Problem erwische ich ein Teil welches die Propperties schon hat bekomme ich einen Fehler.
Wie stelle ich es an zuerst zu prüfen ob die Propperties vorhanden sind wenn ja update wenn nein dann sollen sie anlegen werden

Mein Anfangscode:

Public Sub CreateCustomiProperty()
    ' Get the active document.
    Dim doc As Document
    Set doc = ThisApplication.ActiveDocument

    ' Get the custom property set.
    Dim customPropSet As PropertySet
    Set customPropSet = doc.PropertySets.Item( _
    "Inventor User Defined Properties")

    ' Create a new text property.
    Dim textValue As String
    textValue = "-"
    Call customPropSet.Add(textValue, "Bemerkung")
    textValue1 = ""
    Call customPropSet.Add(textValue, "Index")
    textValue1 = ""
    Call customPropSet.Add(textValue, "EuV")
    textValue1 = ""
    Call customPropSet.Add(textValue, "Zulieferer")
End Sub

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

RODER
Mitglied
Maschineningenieur


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

Beiträge: 494
Registriert: 04.01.2003

erstellt am: 28. Jan. 2013 14: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 Volker E 10 Unities + Antwort hilfreich

Hallo Volker

Abfragen ob es das Ding schon gibt...
Hoffe dieser Code hilft dir!

'Masstab 2
  If dSeitenzahl >= 2 Then
    EE_Da = False
    For Each EE_Prop In oDoc.PropertySets(sIPropPfad)
      If EE_Prop.Name = "FirstViewScale:2" Then
        EE_Da = True
        Exit For
      End If
    Next
    If EE_Da Then
      oDoc.PropertySets(sIPropPfad).Item("FirstViewScale:2").Value = sMassstab2
    Else
      oDoc.PropertySets(sIPropPfad).Add EE_Text, "FirstViewScale:2"
      oDoc.PropertySets(sIPropPfad).Item("FirstViewScale:2").Value = sMassstab2
    End If
  End If

------------------
Grüsse, Toni

Rechtschreibefehler gehören dem findigen Finder

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

Volker E
Mitglied
Konstrukteur


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

Beiträge: 164
Registriert: 20.08.2012

Win 7 64 bit,
Inventor 2015 Sp2 64 bit
Intel Xeon CPU E5-1607 3,00 GHz 32GB RAM
Nvidia Quadro 4000
Space Explorer

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

Hallo Toni

Danke für den Ansatz werde es ausprobieren.

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

Volker E
Mitglied
Konstrukteur


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

Beiträge: 164
Registriert: 20.08.2012

Win 7 64 bit,
Inventor 2015 Sp2 64 bit
Intel Xeon CPU E5-1607 3,00 GHz 32GB RAM
Nvidia Quadro 4000
Space Explorer

erstellt am: 29. Jan. 2013 06: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

Hallo Toni

habs mal versucht bin aber gescheitert.

Könntest Du mir den Codeschnippsel erklären verstehe gerade nicht
was ermachen soll.

Danke im voraus

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

RODER
Mitglied
Maschineningenieur


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

Beiträge: 494
Registriert: 04.01.2003

erstellt am: 29. Jan. 2013 07:30    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 Volker E 10 Unities + Antwort hilfreich

Hallo Volker

Mit dem "For Each" wird überprüft ob es das IProp mit diesem Namen schon gibt.
Wenn ja wird mit dem If der neue Inhalt zugewiesen, wenn nicht (Else) wird das IProp erzeugt und anschliessend der Inhalt zugewiesen.
Das Schnipsel stammt aus einem VBA Skript mit welchem ich die jeweiligen Massstäbe der Erstansichten der verschiedenen Blätter einer Zeichnung (idw) herauslese und in die IProps übertrage.

------------------
Grüsse, Toni

Rechtschreibefehler gehören dem findigen Finder

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

Volker E
Mitglied
Konstrukteur


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

Beiträge: 164
Registriert: 20.08.2012

Win 7 64 bit,
Inventor 2015 Sp2 64 bit
Intel Xeon CPU E5-1607 3,00 GHz 32GB RAM
Nvidia Quadro 4000
Space Explorer

erstellt am: 29. Jan. 2013 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

Hallo Toni

Jetzt hab ich es verstanden

Danke

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: 29. Jan. 2013 08:51    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 Volker E 10 Unities + Antwort hilfreich

Das mit der ForEach ist doch überflüssig? Mit „On Error Resume Next“ vor deinem Versuch die Property zu erstellen, würde schon mal dein Makro nicht abstürzen wenn es die Property bereits gibt. Du kannst nach der Anweisung mit „If Err.Number <> 0“ prüfen ob es einen Fehler gab, und wenn ja (weil es die Property schon gibt), musst du eben nur noch den Wert für die Property setzen.

On Error in VBA

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

FX64 Software Solutions - Inventor Tools
FX64 LambdaSpect - Lichtsimulation mit Autodesk Inventor

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

RODER
Mitglied
Maschineningenieur


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

Beiträge: 494
Registriert: 04.01.2003

erstellt am: 29. Jan. 2013 09:20    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 Volker E 10 Unities + Antwort hilfreich

Wie erwartet gibt es auch für dieses Problem eine Lösung vom Profi!
Danke für den Input! Schreibe mir das hiter die Ohren, wenn ich meine Makros das nächste Mal überarbeite!

------------------
Grüsse, Toni

Rechtschreibefehler gehören dem findigen Finder

[Diese Nachricht wurde von RODER am 30. Jan. 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