| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: Blattgröße auslesen (2170 mal gelesen)
|
Kath878 Mitglied Konstrukteur
Beiträge: 13 Registriert: 31.08.2018 Inventor 2020, Vault 2020
|
erstellt am: 31. Aug. 2018 15:22 <-- editieren / zitieren --> Unities abgeben:
Hallo liebes Forum, ich bräuchte da mal bitte Hilfe. Ich möchte gerne eine I-Logic Regel erstellen, welche mir die Blattgröße ausliest und diese dann in die benutzerdefinierten Eigenschaften reinschreibt. Habe schon viel ausprobiert, aber ich bekomme es einfach nicht hin. Vielen Dank schon mal im Voraus. Gruß Kathrin ------------------ Gruß Kathrin Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
nightsta1k3r Ehrenmitglied V.I.P. h.c. plaudern
Beiträge: 11223 Registriert: 25.02.2004 Hier könnte ihre Werbung stehen!
|
erstellt am: 31. Aug. 2018 18:14 <-- editieren / zitieren --> Unities abgeben: Nur für Kath878
Sheet Size ist doch bei den Eigenschaften des Blattes schon dabei , das kannst du in beliebigen Textfeldern anziehen. Willst du das wohin kopieren? ------------------
------------------ Der Clown ist die wichtigste Mahlzeit am Tag. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ruzy5624 Mitglied Konstruktionsleiter / staatl. gepr. Techniker
Beiträge: 280 Registriert: 01.07.2015 Product Design Suite 2018 Ultimate Visual Studio 2017 Windows 10 Pro Intel Xeon E3-1245 v5 @ 3,5GHz Nvidia Quadro M4000 8GB RAM 32GB 2x 24" Monitore FullHD SpaceMouse Pro
|
erstellt am: 31. Aug. 2018 18:21 <-- editieren / zitieren --> Unities abgeben: Nur für Kath878
Mahlzeit, den Sinn dahinter verstehe ich zwar nicht, denn wie nightsta1k3r bereits gesagt hat gibt es dieses Property bereits und kann in sämtlichen Textfeldern angezogen werden, aber hier ist der VB.NET Code, welcher natürlich auch unter iLogic läuft: Code: Dim oDoc As DrawingDocument oDoc = ThisApplication.ActiveDocument Dim oSheet As Sheet oSheet = oDoc.Sheets.Item(1) Dim SheetSize As String SheetSize = oSheet.Size.ToStringSelect Case SheetSize Case "kA0DrawingSheetSize" SheetSize = "A0" Case "kA1DrawingSheetSize" SheetSize = "A1" Case "kA2DrawingSheetSize" SheetSize = "A2" Case "kA3DrawingSheetSize" SheetSize = "A3" Case "kA4DrawingSheetSize" SheetSize = "A4" End Select Dim oUseProps As PropertySet oUseProps = oDoc.PropertySets.Item("Inventor User Defined Properties") oUseProps.Add(SheetSize,"Blattgroesse")
------------------ Mit Besten Grüßen Marcel Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Kath878 Mitglied Konstrukteur
Beiträge: 13 Registriert: 31.08.2018 Inventor 2020, Vault 2020
|
erstellt am: 03. Sep. 2018 07:38 <-- editieren / zitieren --> Unities abgeben:
Guten Morgen und danke Vielmals. Klappt wunderbar. Der Hintergrund ist folgender: Ich arbeite mit Vault und da wollte ich einfach sehen wie welches Blattformat die Zeichnung hat ohne sie öffnen zu müssen. Gruß Kathrin ------------------ Gruß Kathrin Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Kath878 Mitglied Konstrukteur
Beiträge: 13 Registriert: 31.08.2018 Inventor 2020, Vault 2020
|
erstellt am: 03. Sep. 2018 08:06 <-- editieren / zitieren --> Unities abgeben:
Guten morgen nochmal, einen kleinen Wermutstropfen gibt es leider noch. Meine Zeichnungsvorlage ist aktuell A3. Jetzt habe ich mitbekommen, dass wenn ich dieses ändere z.B. auf A2, dann steht in den IProptertys immer noch A3. Ich habe versucht die Regel nach dem Speichern ausführen zulassen, da kommt aber leider eine Fehlermeldung "Falscher Parameter. (Ausnahme von HRESULT: 0x80070057(E_Invalidarg)". Da diese Codes für mich leider halbe bömische Dörfer sind, meine Frage bekommt man das irgendwie hin? Gruß Kathrin ------------------ Gruß Kathrin Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ruzy5624 Mitglied Konstruktionsleiter / staatl. gepr. Techniker
Beiträge: 280 Registriert: 01.07.2015 Product Design Suite 2018 Ultimate Visual Studio 2017 Windows 10 Pro Intel Xeon E3-1245 v5 @ 3,5GHz Nvidia Quadro M4000 8GB RAM 32GB 2x 24" Monitore FullHD SpaceMouse Pro
|
erstellt am: 03. Sep. 2018 19:47 <-- editieren / zitieren --> Unities abgeben: Nur für Kath878
Beim zweiten Ausführen der Regel meckert er, dass das Property "Blattgroesse" bereits existiert und aus diesem Grund nicht angelegt werden kann. Hier eine einfache Lösung: Code: Dim oDoc As DrawingDocument oDoc = ThisApplication.ActiveDocumentDim oSheet As Sheet oSheet = oDoc.Sheets.Item(1) Dim SheetSize As String SheetSize = oSheet.Size.ToString Select Case SheetSize Case "kA0DrawingSheetSize" SheetSize = "A0" Case "kA1DrawingSheetSize" SheetSize = "A1" Case "kA2DrawingSheetSize" SheetSize = "A2" Case "kA3DrawingSheetSize" SheetSize = "A3" Case "kA4DrawingSheetSize" SheetSize = "A4" End Select Dim oUseProps As PropertySet oUseProps = oDoc.PropertySets.Item("Inventor User Defined Properties") Try oUseProps.Add(SheetSize, "Blattgroesse") Catch ex As Exception oUseProps.Item("Blattgroesse").Value = SheetSize End Try
BTW: Die Regel sollte korrekterweise VOR dem Speichern des Dokumentes ausgelöst werden, niemals danach. Denn speichere ich erst das Dokument und löse dann die Regel aus, dann ändert die Regel nach dem Speichern ein Property, weswegen ich diese Änderung nochmals speichern müsste. Deswegen korrekterweise erst die Regel ausführen lassen und dann speichern, damit die Änderung an dem Property auch mitgespeichert wird. Stichwort: DirtyFlag
------------------ Mit Besten Grüßen Marcel Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
nightsta1k3r Ehrenmitglied V.I.P. h.c. plaudern
Beiträge: 11223 Registriert: 25.02.2004 Hier könnte ihre Werbung stehen!
|
erstellt am: 04. Sep. 2018 06:57 <-- editieren / zitieren --> Unities abgeben: Nur für Kath878
Sollte die Regel nicht besser nach jedem Blatt bearbeiten ausgeführt werden? Dirty Flag sehe ich nicht als Problem, aber ein A1-Blatt auf dem A0 steht ist unangenehmer. ------------------
------------------ Der Clown ist die wichtigste Mahlzeit am Tag. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Kath878 Mitglied Konstrukteur
Beiträge: 13 Registriert: 31.08.2018 Inventor 2020, Vault 2020
|
erstellt am: 04. Sep. 2018 07:09 <-- editieren / zitieren --> Unities abgeben:
|
Invus21 Mitglied
Beiträge: 2 Registriert: 11.03.2021
|
erstellt am: 11. Mrz. 2021 11:34 <-- editieren / zitieren --> Unities abgeben: Nur für Kath878
Hallo Zusammen. Zunächst mal danke für den Beitrag. Hat mir schon gut geholfen bei der Automatisierung von Zeichnungsaufgaben (PDF Drucken) Kann ich die gleiche Funktion in geänderter Form nutzen um eine benutzerdefinierte Bauteilnummer anzulegen? Beispiel: Dateiname = 25DX_6800140.idw Es wird dadurch die Bauteilnummer 25DX_6800140 für das Blatt erstellt Nun möchte ich gerne eine benutzerdedinierte "Benutzer Bauteilnummer", "6800140" daraus ableiten ist so etwas möglich ? Prüfe ob Bauteilnummer = im Format "25DX_6800140", wenn ja, dann Funktion -> Lösche die ersten 5 Zeichen und schreibe eine Benutzerdefinierte Eigenschaft, Benutzer Bauteilnummer "6800140" Falls nicht, dann Schreibe Bauteilnummer in benutzerdefinierte Eigenschaft "Benutzer Bauteilnummer" Möchte dies nutzen um einen Bereich Schriftkopf automatisch ausfüllen zu können Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
rkauskh Moderator Dipl.-Ing. (FH) Versorgungstechnik
Beiträge: 2428 Registriert: 15.11.2006 Windows 10 x64, AIP 2023
|
erstellt am: 11. Mrz. 2021 12:55 <-- editieren / zitieren --> Unities abgeben: Nur für Kath878
Hallo Könnte man z.B. so machen:
Code:
Private Sub Main()Dim oDoc As DrawingDocument oDoc = ThisApplication.ActiveDocument Dim oDesignProps As PropertySet oDesignProps = oDoc.PropertySets.Item("{32853F0F-3444-11D1-9E93-0060B03C1CA6}") 'Design Tracking Properties Dim oProp As Inventor.Property For Each oProp In oDesignProps If oProp.Name = "Part Number" Then If Left(oProp.Value, 5) = "25DX_" Then Call SetUserProp("Benutzer Bauteilnummer", Mid(oProp.Value,6)) Else Call SetUserProp("Benutzer Bauteilnummer", oProp.Value) End If End If Next End Sub Private Function SetUserProp(ByVal sPropName As String, ByVal sPropValue As String) Dim oDoc As DrawingDocument oDoc = ThisApplication.ActiveDocument Dim oUseProps As PropertySet oUseProps = oDoc.PropertySets.Item("{D5CDD505-2E9C-101B-9397-08002B2CF9AE}") 'Inventor User Defined Properties Try oUseProps.Add(sPropValue, sPropName) Catch ex As Exception oUseProps.Item(sPropName).Value = sPropValue End Try End Function
------------------ MfG Ralf RKW Solutions GmbH www.RKW-Solutions.com Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| IT System Engineer CAD/PLM (m/w/d) | thyssenkrupp ist eine international aufgestellte Unternehmensgruppe aus weitgehend selbstständigen Industrie- und Technologiegeschäften mit rund 96.000 Mitarbeitenden. In 48 Ländern erwirtschaftete die Gruppe im Geschäftsjahr 2021/22 einen Umsatz von 41 Mrd. ?. Mit umfassendem Technologie-Know-how entwickeln die Geschäfte und alle Mitarbeitenden wirtschaftliche und ressourcenschonende Lösungen für ... | Anzeige ansehen | Ingenieure und technische Berufe |
|
Invus21 Mitglied
Beiträge: 2 Registriert: 11.03.2021
|
erstellt am: 11. Mrz. 2021 13:33 <-- editieren / zitieren --> Unities abgeben: Nur für Kath878
|