Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Inventor VBA
  Size Designation aus iProperties auslesen

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:  Size Designation aus iProperties auslesen (2126 mal gelesen)
mranderson
Mitglied
Entwicklungsingenieur Robotik


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

Beiträge: 70
Registriert: 25.04.2006

IV: Autodesk Inventor 9
VB: Visual Basic 6.0
OS: Microsoft Windows 2000 Professional SP 4
CPU: Intel Xeon 1,7 GHz
Arbeitsspeicher: 1 GB

erstellt am: 25. Apr. 2006 10: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

Hallo zusammen!

Bin ziemlich neu im Inventor VBA Geschäft.

Wie lese ich die size designation eines Teils aus der Content Library aus?

Die übrigen Eigenschaften habe ich aus den design tracking properties geholt, wie z.b. die partnumber und description. Allerdings lese ich die Properties aus ohne vorher die part-datei geöffnet zu haben.

Dazu habe ich folgenden Code verwendet:

partnum = oPropsets.Item("{32853F0F-3444-11d1-9E93-0060B03C1CA6}").ItemByPropId(kPartNumberDesignTrackingProperties).Value

Wenn ich allerdings die size designation auslesen will muss ich auf die content library zugreifen, das ich durch einfaches Austauschen der ID wie folgt versucht habe, jedoch bei einem Versuch blieb:

size = oPropsets.Item("{B9600981-DEE8-4547-8D7C-E525B3A1727A}").ItemByPropId(kSizeDesignationContentLibrary).Value

Bin für alle Vorschläge dankbar, wie ich die size designation auslesen kann!

Ciao

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

daywa1k3r
Moderator
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: 25. Apr. 2006 14:36    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 mranderson 10 Unities + Antwort hilfreich

Probier mal über den Index. Normalerweise funktioniert das schon, außer die „kSizeDesignationContentLibrary“ ist nicht vorhanden. Bei mir konnte ich nichts Ähnliches finden. Ich habe es jetzt nur in VBA getestet, aber es soll kein Unterschied zur Apprentice sein.

Probier mal so etwas:

Code:

MsgBox oPart.PropertySets(5)(1).Value


------------------
Grüße daywa1k3r

FX64 Software Solutions

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

mranderson
Mitglied
Entwicklungsingenieur Robotik


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

Beiträge: 70
Registriert: 25.04.2006

IV: Autodesk Inventor 9
VB: Visual Basic 6.0
OS: Microsoft Windows 2000 Professional SP 4
CPU: Intel Xeon 1,7 GHz
Arbeitsspeicher: 1 GB

erstellt am: 25. Apr. 2006 15:09    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

Danke für deine Antwort.

Leider hat das auch nicht funktioniert, als Size gibt er nur eine 0 aus, das jedoch nicht der Realität entspricht

hier nochmal mein vollständiger Code, wie ich die Eigenschaften aus der Datei auslese:

-------------------------------------------------------------------

Dim Datei As String

Datei = x:\xxx.ipt

Dim oApp As Inventor.Application
Set oApp = GetObject(, "Inventor.Application")
   
Dim opartDoc As PartDocument
Set opartDoc = oApp.Documents.Open(Datei, False)

Dim oPropsets As PropertySets
Set oPropsets = opartDoc.PropertySets

Dim partnum As String
Dim description As String
Dim size As String
Dim standard As String
Dim material As String

partnum = oPropsets.Item("{32853F0F-3444-11d1-9E93-0060B03C1CA6}").ItemByPropId(kPartNumberDesignTrackingProperties).Value
description = oPropsets.Item("{32853F0F-3444-11d1-9E93-0060B03C1CA6}").ItemByPropId(kDescriptionDesignTrackingProperties).Value
'size = oPropsets.Item("{B9600981-DEE8-4547-8D7C-E525B3A1727A}").ItemByPropId(kSizeDesignationContentLibrary).Value                                <----------- mein Versuch
size = opartDoc.PropertySets(5)(1).Value                                                                                                                                                          <---------- neuer Versuch
standard = oPropsets.Item("{32853F0F-3444-11d1-9E93-0060B03C1CA6}").ItemByPropId(kStandardDesignTrackingProperties).Value
material = oPropsets.Item("{32853F0F-3444-11d1-9E93-0060B03C1CA6}").ItemByPropId(kMaterialDesignTrackingProperties).Value

Dim sLine As String
sLine = partnum & "---" & description & "---" & size & "---" & standard & "---" & material

opartDoc.Close  ' wichtig wieder schliessen

-------------------------------------------------------------------

Fällt dir oder jemandem noch etwas dazu ein, wie es funktionieren könnten bzw. warum es nicht so klappt?

Wenn ja, bin ich für alle Anregungen dankbar.

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

mranderson
Mitglied
Entwicklungsingenieur Robotik


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

Beiträge: 70
Registriert: 25.04.2006

IV: Autodesk Inventor 9
VB: Visual Basic 6.0
OS: Microsoft Windows 2000 Professional SP 4
CPU: Intel Xeon 1,7 GHz
Arbeitsspeicher: 1 GB

erstellt am: 25. Apr. 2006 15: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

Noch eine Ergänzung:

Wenn ich die Properties des Teils über SAP auslese wird die size designation unter den design tracking properties angezeigt. Im Objektkatalog vom VBA steht die size designation aber unter content library. Kann daher vielleicht der Fehler kommen?

Wenn ja, wie kann ich die size designation trotzdem auslesen?

Generell funktioniert übrigens dein Code, allerdings wird eine andere Eigenschaft ausgelesen.

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

daywa1k3r
Moderator
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: 25. Apr. 2006 15: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 mranderson 10 Unities + Antwort hilfreich

Hallo,

dann ist der Wert von der ersten Property 0. Das ist schon richtig. Wenn du probierst

Code:

size = opartDoc.PropertySets(5)(2).Value  

dann wird ein anderer Wert statt 0 erscheinen. Die Frage ist welche von den  "Content Library Component Properties" du brauchst.

Was ich mit dem Code feststellen wollte ist, ob es mit  ItemByPropId(kSizeDesignationContentLibrary).Value zusammenhängt, warum es nicht funktioniert. Und das scheint so zu sein, denn nur über den Index (5 für Content Center Properties und 1 für die erste Property) funktioniert es ja. Vielleicht hast du je darin keine Property die sich mit dem Alias kSizeDesignationContentLibrary identifizieren kann. Setze einen Breakpoint und überwache mal dein PartDocument Objekt und die dazu gehörigen Properties…

Edit:

Zitat:

Wenn ich die Properties des Teils über SAP auslese wird die size designation unter den design tracking properties angezeigt. Im Objektkatalog vom VBA steht die size designation aber unter content library. Kann daher vielleicht der Fehler kommen?

Klar kann das sein, denn das DesignTracking PropertySet und ContentCenter PropertySet sind 2 verschiedene PropertySets. Und da trifft das was ich oben gesagt habe zu, und die „size designation“ ist in dem PropertySet wo du suchst nicht vorhanden.


------------------
Grüße daywa1k3r

FX64 Software Solutions

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

mranderson
Mitglied
Entwicklungsingenieur Robotik


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

Beiträge: 70
Registriert: 25.04.2006

IV: Autodesk Inventor 9
VB: Visual Basic 6.0
OS: Microsoft Windows 2000 Professional SP 4
CPU: Intel Xeon 1,7 GHz
Arbeitsspeicher: 1 GB

erstellt am: 25. Apr. 2006 16: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

Ja, liegt wohl irgendwie an diesem Widerspruch.

Die Frage ist nur, wie ich herausfinde, welche Nummer die Size Designation in welchem Property Set wirklich hat.

Habe versucht per for next Schleife den Index einfach hochzählen zu lassen und dann in der angelegten Text-Datei nachzuschauen welche die richtige Nummer ist, und das für jedes einzelen Property Set. Hat aber auch nicht funktioniert, da der Index scheinbar eine Abbneigung dazu hat, sich hochzählen zu lassen. Wenn ich manuell eintippe und Programm beende und danach wieder starte mit der nächsten Zahl funktionierts. Ich will aber nicht über 100 verschieden Zahlen manuell durchprobieren.

Also falls jemand einen Vorschlag hat, wie ich an die Size Designation komme, bitte posten!

Danke im voraus!

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

daywa1k3r
Moderator
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: 25. Apr. 2006 18:10    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 mranderson 10 Unities + Antwort hilfreich

Hier:

Code:

Sub Properties()
    Dim oDoc As PartDocument
    Set oDoc = ThisApplication.ActiveDocument
   
    Dim oPropSet As PropertySet
    Dim oProp As Inventor.Property
   
    For Each oPropSet In oDoc.PropertySets
        Debug.Print "~~~~~~~~~~~~~~~~~~~~~ " & oPropSet.Name & " ~~~~~~~~~~~~~~~~~~~~~"
        For Each oProp In oPropSet
            On Error Resume Next
            Debug.Print vbTab & oProp.Name & ": " & oProp.Value
            If Err.Number <> 0 Then
                Debug.Print vbTab & oProp.Name ": " & Err.Description
                Err.Clear
            End If
        Next
        Debug.Print ""
    Next
End Sub

Und BTW ein Benutzer-Profil ist da um ausgefüllt zu werden.

------------------
Grüße daywa1k3r

FX64 Software Solutions

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

mranderson
Mitglied
Entwicklungsingenieur Robotik


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

Beiträge: 70
Registriert: 25.04.2006

IV: Autodesk Inventor 9
VB: Visual Basic 6.0
OS: Microsoft Windows 2000 Professional SP 4
CPU: Intel Xeon 1,7 GHz
Arbeitsspeicher: 1 GB

erstellt am: 26. Apr. 2006 08:47    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

Vielen Dank für den Code!!!

Hat wunderbar funktioniert!

Die Size Designation war tatsächlich unter den Design Tracking Properties, und nicht wie im Objektkatalog steht unter Content Library.

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

lbcad
Ehrenmitglied V.I.P. h.c.
Dipl.-Ing. Maschinenbau und CAD-Trainer



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

Beiträge: 3794
Registriert: 15.02.2001

erstellt am: 27. Apr. 2006 15:39    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 mranderson 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von mranderson:
...
Hat wunderbar funktioniert!
...

na Klasse!

aber dies wohl noch nicht:

Zitat:
Original erstellt von daywa1k3r:
...
Und BTWBy the way (So nebenbei bemerkt) ein Benutzer-Profil ist da um ausgefüllt zu werden.
...


   

------------------
Gruß Lothar

---------------------------------------------------

Während man es aufschiebt, verrinnt das Leben.
—Lucius Annaeus Seneca (ca. 4 v. Chr - 65 n. Chr.)

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

mranderson
Mitglied
Entwicklungsingenieur Robotik


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

Beiträge: 70
Registriert: 25.04.2006

IV: Autodesk Inventor 9
VB: Visual Basic 6.0
OS: Microsoft Windows 2000 Professional SP 4
CPU: Intel Xeon 1,7 GHz
Arbeitsspeicher: 1 GB

erstellt am: 27. Apr. 2006 16:06    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

Häää???

Zitat:

Und BTWBy the way (So nebenbei bemerkt) ein Benutzer-Profil ist da um ausgefüllt zu werden.


Hab doch meine Berufsbezeichnunng und wo ich herkomme reingeschrieben.

Von das System an dem ich arbeite habe ich keine Ahnung, da das ein Firmenrechner ist und ich mich mit dem noch nicht wirklich beschäftigt hab. Hauptsache er macht was er soll.

Also was soll ich denn noch ausfüllen???

Was heißt außerdem BTWBy the way (So nebenbei bemerkt)?

Danke für die Aufklärung.

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

lbcad
Ehrenmitglied V.I.P. h.c.
Dipl.-Ing. Maschinenbau und CAD-Trainer



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

Beiträge: 3794
Registriert: 15.02.2001

erstellt am: 27. Apr. 2006 16: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 mranderson 10 Unities + Antwort hilfreich

Wie das so geht, steht hier .

------------------
Gruß Lothar

---------------------------------------------------

Während man es aufschiebt, verrinnt das Leben.
—Lucius Annaeus Seneca (ca. 4 v. Chr - 65 n. Chr.)

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