| |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
 | Schindler GmbH hat in Phoenix/PDM von ORCON flexible Lösung gefunden , ein Anwenderbericht
|
Autor
|
Thema: Dateiname in Skizze (2188 / mal gelesen)
|
Torsten B. Mitglied Ingenieur
 
 Beiträge: 249 Registriert: 10.11.2008
|
erstellt am: 29. Jan. 2020 07:30 <-- editieren / zitieren --> Unities abgeben:         
Hallo Beieinander, ist es möglich in einer Skizze im Bauteil den Dateinamen abzurufen? Ich möchte den Dateinamen auf das Bauteil gravieren, also möchte ich einen Text erstellen und dort soll automatisch der Dateiname eingefügt werden, nun kann ich diesen aber nicht abrufen. Geht das irgendwie? Viele Grüße Torsten ------------------ TB Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
W. Holzwarth Ehrenmitglied V.I.P. h.c. Dipl.-Ing. Maschinenbau

 Beiträge: 9344 Registriert: 13.10.2000 Inventor bis 2025, Rhino 8, Mainboard ASUS ROG STRIX X570F-Gaming, CPU Ryzen 9 5900X, 64 GB RAM, 4 TB SSD, Radeon RX 6900 XT, Dual Monitor 24", Spacemouse Enterprise, Win 10 22H2
|
erstellt am: 29. Jan. 2020 08:22 <-- editieren / zitieren --> Unities abgeben:          Nur für Torsten B.
|
Leo Laimer Moderator CAD-Dienstleister
       

 Beiträge: 26137 Registriert: 24.11.2002 IV bis 2019
|
erstellt am: 29. Jan. 2020 09:49 <-- editieren / zitieren --> Unities abgeben:          Nur für Torsten B.
|
Torsten B. Mitglied Ingenieur
 
 Beiträge: 249 Registriert: 10.11.2008
|
erstellt am: 30. Jan. 2020 07:35 <-- editieren / zitieren --> Unities abgeben:         
|
KraBBy Mitglied Maschinenbau-Ingenieur
  
 Beiträge: 743 Registriert: 19.09.2007 Inventor Professional 2020 WinX
|
erstellt am: 30. Jan. 2020 17:16 <-- editieren / zitieren --> Unities abgeben:          Nur für Torsten B.
Jetzt habe ich mich etwas mit dem Thema befassen können und bin nun bei zwei Vorschlägen/Varianten gelandet. Um die Programmierung komme ich auch nicht herum, aber gebt der Sache einen Versuch! Es ist ja möglich einen (Benutzer-)Parameter in einen Skizzentext einzubinden. Deshalb ist es nur nötig eine Verbindung zwischen dem Parameter und einem iProperty herzustellen. Das mache ich mit iLogic. Die Regel wird dem Ereignisauslöser bei iProperty-Änderung angestoßen. Nun zu den beiden Varianten: iLogic-Regel im Einzelteil
Code: 'dem Benutzerparameter "Nr" wird der Wert eines iProperty zugewiesen ' der Parameter muss bereits existieren Parameter("Nr") = iProperties.Value("Project", "Part Number") InventorVb.DocumentUpdate()
Simpler Code. Der Parameter (im Bsp. „Nr“) muss aber vorher von Hand erstellt werden, sonst tritt ein Fehler auf. externe Regel Hier wird der Parameter durch die Regel erstellt (deshalb ein paar Zeilen mehr). Im Bauteil muss nur die externe Regel beim Ereignisauslöser gesetzt werden. Ggf. muss man die Ausführung einmal antriggern, z.B. indem man ein iProperty ändert. Dann steht der Parameter zur Verfügung. Die ‚zentrale Ablage‘ des Codes als externe Regel sehe ich hier auch als Vorteil. Aber Vorsicht: den Namen des Parameters darf man später in der Regel nicht mehr ändern, sonst existieren später in den Bauteilen verschiedene Parameter und nur einer davon wird mit dem iProperty synchron gehalten! Code: 'From https://www.cadlinecommunity.co.uk/hc/en-us/articles/203139401 ' reworked, KraBBy 2020-01-30Const oHoldingPositionName As String = "Prt_No" 'KraBBy: Name of the Parameter Dim oValue As String = iProperties.Value("Project", "Part Number") 'Value: iProperty Dim oDoc as Object = ThisApplication.ActiveDocument 'Check to see if this is a part file If oDoc.DocumentType <> kPartDocumentObject Then ' MessageBox.Show("This rule can only be run in a " & DocType & " file - exiting rule...", "Cadline Community") ' KraBBy: i don't want a message Return End If Dim oPartCompDef As PartComponentDefinition = oDoc.ComponentDefinition Dim oNewParameter As Parameters = oPartCompDef.Parameters Dim oUParameter As UserParameters = oNewParameter.UserParameters Dim oParam As Parameter If ""=oValue Then MsgBox("iProperty 'part No.' is empty!") Try oParam = oUParameter.Item(oHoldingPositionName) 'get the existing Param. oParam.Value = oValue 'change/update its value 'MsgBox("Param. changed") 'for debugging Catch 'Parameter doesn't exist, create it! oParam = oUParameter.AddByValue(oHoldingPositionName, (oValue), "text") 'MsgBox("Param. created") 'for debugging End Try oDoc.Update() 'Updates the document
anbei habe ich beide Varianten in ein Beispiel gepackt (edit: ext. Regel: iProp_As_Param.iLogicVb.txt .txt an der Dateiendung entfernen... ) ------------------ Gruß KraBBy [Diese Nachricht wurde von KraBBy am 30. Jan. 2020 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |

| |
KraBBy Mitglied Maschinenbau-Ingenieur
  
 Beiträge: 743 Registriert: 19.09.2007 Inventor Professional 2020 WinX
|
erstellt am: 31. Jan. 2020 12:37 <-- editieren / zitieren --> Unities abgeben:          Nur für Torsten B.
jetzt habe ich bemerkt, dass es ja hier um den Dateinamen ging Oben habe ich die "Part Number"/"Bauteilnummer" der iProperties verwendet. Deshalb diese Korrektur/Ergänzung. iLogic Regel im Einzelteil: Parameter("Nr") = iProperties.Value("Project", "Part Number") ersetzen durch Parameter("Nr") = ThisDoc.FileName(False) 'without extension externe Regel: siehe Anhang (dieser Upload wird wohl die im vorigen Post verlinkte Datei überschreiben) ------------------ Gruß KraBBy Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |