Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Inventor VBA
  im Displaynamen sollen Werte anstelle Variablen stehen

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:  im Displaynamen sollen Werte anstelle Variablen stehen (2030 mal gelesen)
Michael Sur
Mitglied
Ingenieur


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

Beiträge: 23
Registriert: 25.06.2014

IV 2015 - bisher kein VAULT

erstellt am: 25. Jun. 2014 08: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


DisplaynamemitFehler.JPG

 
Servus Forum,

viel Wissen von hier habe ich mir angelesen. Tausend Dank!
Es gibt einfach irre viele Kniffe und Möglichkeiten mit IV etwas falsch bzw. richtig zu machen.
Auch wenn es nur kleine Dinge sind wie der Einsatz der Entertaste zur Befehlswiederholung anstelle RMK und dann erste Zeile „Befehl XY“-Wiederholen!  Ja, ich gehöre zu den Liebhabern der Tastatur.

Meine Frage:
Grundlagen
In der Firma werden Flacheisen mit einem nichtssagenden Dateinamen abgespeichert. Zugleich werden sie mit einer Kurzbezeichnung (KB: Fl 120x8) und der Länge (G_L=955) in charakterisiert. Durch die Verwendung von Parametern sind die Zahlenwerte Verknüpfungen und immer aktuell. In den iProperties findest sich im user-defined Feld KB hart hineingeschrieben „ =Fl <G_W>x<G_H> “  d.h. es wird  „Fl 120x8“ angezeigt. Soweit so gut (vorallem für die Sägeliste).
Mittels VBA (und Snippets von hier und woanders) ist es mir gelungen den Displaynamen umzubenennen.

Problem
Der Displayname wird nicht korrekt dargestellt. Parameter werden als Variable dargestellt und nicht als Wert.
z.B.  7211070 =Fl <G_W>x<G_H>  vgl. JPG
anstelle:  72110 Fl 120x8

Grüße aus Landshut
Michael

P.S. hier natürlich mein Makro, leider noch VBA.

Public Sub Rename3()
    Dim oapp As Inventor.Application
    Dim odoc As Inventor.Document
    Set oapp = ThisApplication
    Set odoc = oapp.ActiveDocument
    Dim oTitle As String
    Dim oPartNumber As String
    Dim oKB As String
   
    Dim oProp As PropertySet
    Dim oProp3 As PropertySet
   
    Dim i As Property
    Dim f As Property
   
    Set oProp = odoc.PropertySets.Item("Design Tracking Properties")
    Set oProp3 = odoc.PropertySets.Item("Inventor User Defined Properties")
   
    For Each i In oProp
    If i.DisplayName = "Bauteilnummer" Then
        oPartNumber = i.Expression
    End If
    Next
       
   
    For Each f In oProp3
        If f.DisplayName = "KB" Then  'deutsche Bezeichung!
        oKB = f.Expression
    End If
    Next

   
    odoc.DisplayName = oPartNumber & "." & oKB
End Sub

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: 25. Jun. 2014 08: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 Michael Sur 10 Unities + Antwort hilfreich

Moin

Was passiert wenn du f bzw i.Expression durch f bzw i.Value ersetzt?

------------------
MfG
Ralf

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

Michael Sur
Mitglied
Ingenieur


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

Beiträge: 23
Registriert: 25.06.2014

IV 2015 - bisher kein VAULT

erstellt am: 25. Jun. 2014 09:13    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

Ralf, das war die Lösung!
Super. Tausend Dank!

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

Michael Sur
Mitglied
Ingenieur


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

Beiträge: 23
Registriert: 25.06.2014

IV 2015 - bisher kein VAULT

erstellt am: 25. Jun. 2014 11:42    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 Ralf,
gibt es ein Tool um den Code in iLogic zu übersetzen?

Dann könnte jede Komponente den neuen Displaynamen bekommen (mit Code Injector).
Überraschendes erlebte ich als ich im Browser einer Baugruppe den Namen eines Bauteils löschte um den ursprünglichen Displaynamen zu erhalten.
Ich erwartete den Dateinamen und erhielt stattdessen mein selbst erstellten Displaynamen (... Fl 8x10)!

Danach änderte ich die Abmessungen (von 8 zu 10) und nach dem Makrodurchlauf änderte sich der Displayname automatisch (=ohne zusätzliches aktualisieren oder sowas wie Displayname manuelle löschen!

Grüße
Michael

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: 25. Jun. 2014 18:43    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 Michael Sur 10 Unities + Antwort hilfreich

Hallo

Gibt ein super Tool - befindet sich zwischen deinen Ohren und heißt Gehirn. 
Spaß beseite, mir ist nichts derartiges bekannt. Ich nutze für sowas immer eine AddIn-dll. Mehr kann ich dazu nicht sagen, da ich mit iLogic auf Kriegsfuß stehe. Ich kapiere die Syntax nicht, mit fehlt eine Doku der API (oder gibt's mittlerweile eine?), AutoVervollständigen von Code und ein Debugger wäre auch eine feine Sache.

Die Anzeige könnte so zustande kommen.
- neue Datei erstellen
- DisplayName überschreiben
- Speichern, meines Wissen wird jetzt der überschriebene DisplayName ins iProp Bauteilnummer kopiert
- Löschen der Überschreibung DisplayName
- Inventor benutzt statt Dateinamen das iProp Bauteilnummer im DisplayName
Ich meine mich zu erinnern das es irgendwas in der Art war. Und ich bin der Meinung das es mal einen Button im Inventor gab, mit dem man die Darstellung im Teilebrowser umschalten/zurücksetzen konnte. Find ihn aber nicht mehr.

------------------
MfG
Ralf

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

Michael Sur
Mitglied
Ingenieur


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

Beiträge: 23
Registriert: 25.06.2014

IV 2015 - bisher kein VAULT

erstellt am: 27. Jun. 2014 10: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

Hallo Ralf,

von VBA zu iLogic:
<Gibt ein super Tool - befindet sich zwischen deinen Ohren und heißt Gehirn.
Dann werde ich es mal testen. ;-)

Displayname und seine Funktionalität:
Durch das Umbenennen per Makro habe ich dauerhaft geändert (in meinem Fall inkl. Variabeln, die sich entsprechend ändern, wenn ich die Geometrie des Bauteils ändere (z.B. G_L)).

Hat man bedenken, das sich der Displayname nicht aktualisert wählt man:
Befehl <Browser-Knoten umbenennen> und Auswahl "Standard"  (denn Standard ist inzwischen der per Makro definierte Name.
Den Button habe ich mir in meine Benutzeroberfläche gezogen.

Gruss
Michael

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

Michael Sur
Mitglied
Ingenieur


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

Beiträge: 23
Registriert: 25.06.2014

IV 2015 - bisher kein VAULT

erstellt am: 14. Aug. 2014 16: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

UPDATE

Ich habe inzwischen den Code und die Routine verbessert.

Erst die Routine:
In jedem selbst erstellten Bauteil gibt es per Vorlagedatei (oder bei Altlasten per CodeInjector) die interne iLogic-Regel:
startIPTextRule  (=Kurzform von: start IPT extern rule)    (Ereignisauslöser: vor jedem Speichern)
mit dem Einzeiler-Code:
iLogicVb.RunExternalRule("IPText")
dadurch wird folgende externe iLogic-Regel aufgerufen
Name:
IPText
IPText sorgt für den richtigen Displaynamen auch wenn die Geometrieparameter (G_L ...) geändert werden.
Daneben werden weitere Felder ausgefüllt.
Durch die externe Regel ist es möglich den ausgeführten Code zentral neuen Wünchen anzupassen und es gibt keine alten iLogic-Regeln in irgendwelchen Bauteilen.
Für .iam habe ich bisher den gleichen Code (vgl. unten) auch wenn die interne Regel und externe Regel andere Namen haben (startIAMextRule und IAMext).Somit sind Sonderwünsche bei IAMs möglich!

gruss Michael

CODE:
___________

'RuleName: IPText
'früher RuleName: iLogicProfil3
'A) Datum erstellt wird aktualisiert
'B) Anmeldename wird eingegeben
'C) Revisionstext wird erzeugt
'D) Displayname wird erzeugt

'immer aktuelles Datum
'set the Creation Date iproperty to the current date
iProperties.Value("Project", "Creation Date" ) = Now

'Feld Bestandsnummer wird mit "-" ausgefüllt
'iProperties.Value("Project", "Stock Number") = "-"
'iProperties.Value("Summary", "Title") = "-"

'set Author iproperty to match the system user name
iProperties.Value("Summary", "Author" ) = ThisApplication.GeneralOptions.UserName

'Feld Konstrukteur wird mit username ausgefüllt
iProperties.Value("Design Tracking Properties", "Designer")=ThisApplication.GeneralOptions.UserName

'Feld Rev. wird entsprechen Feld KB und Länge ausgef?llt
iProperties.Value("Summary", "Revision Number")="=<KB>          Länge: <G_L>"


'Feld Material wird mit "St 37-2" ausgef?llt
' nicht anwendbar, da manuelle Änderungen überschrieben werden!
'iProperties.Value("User Defined", "Material")="St 37-2"

doc = ThisDoc.Document
Filename_Description = iProperties.Value("Inventor User Defined Properties", "KB") _
& "    -" & iProperties.Value("Inventor User Defined Properties", "G_L") _
& "  NR " & iProperties.Value("Project", "Part Number")

doc.DisplayName = Filename_Description


'update the file
iLogicVb.UpdateWhenDone = True

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