| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| Autodesk Inventor: Effizientes Engineering, ein Seminar am 17.02.2025
|
Autor
|
Thema: Konstruktionsstatus des Modelles mit dem der Zeichnung vergleichen - iLogic (1407 / mal gelesen)
|
Freiherr von Dreist Mitglied
Beiträge: 20 Registriert: 12.04.2011 PTC Creo Parametric 7.0 Inventor Professional 2023
|
erstellt am: 20. Jan. 2023 11:39 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, ich halte es für wichtig, dass zwischen dem Konstruktionsstatus der Zeichnung und es primären Modelles kein Widerspruch besteht. Ein Beispiel: Es darf vorkommen, dass ein Modell freigegen ist, die Zeichnung jedoch noch in Bearbeitung. Wenn es jedoch umgekehrt ist - sprich die Zeichnung einen höheren Status hat, als das Modell provoziert man einen Fehler bei der Fertigung. Frage 1: Seht ihr das auch so? Ich möchte daher einen großen Vermerk quer über der Zeichnung platzieren, der abhängig vom oben genannten Zustand einen Text zeigt wie "Entwurf". Nur wenn primäres Modell und Zeichnung freigegeben sind, soll der Vermerkt weg sein (z. B. indem man ihn auf Leerstelle setzt). Mein Ansatz wäre hier eine iLogic mit IF-Bedingung, sinngemäß etwa so: IF Status(Modell) = "freigegeben" UND Status(Zeichnung) = "freigegeben" THEN Vermerk = " " ELSE Vermerk = "Entwurf" END IF Diese Prüfung müsste ablaufen, ohne dass ein manueller Eingriff nötig ist, d. h: Sobald ich den Status im Modell ändere, muss der Vermerk auf den Zeichnung reagieren - in Echtzeit ;-) Problem: In iLogic kann man offensichtlich nicht auf die iProperties des primären Modells zugreifen, im Schriftfeld einer Zeichnung ist das aber seltsamerweise schon möglich - irgendeine Verbindung muss es also geben. Eine Google-Suche nach "Wasserzeichen" bringt Ergebnisse, die ich damit nicht in Verbindung sehe. Der Autodesk-Support deckt dieses Thema nicht ab. Daher Frage 2: Wonach müsste ich suchen? Wie macht ihr das bei euch in der Firma? Mit freundlichen Grüßen, Bernhard
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Freiherr von Dreist Mitglied
Beiträge: 20 Registriert: 12.04.2011 PTC Creo Parametric 7.0 Inventor Professional 2023
|
erstellt am: 20. Jan. 2023 11:50 <-- editieren / zitieren --> Unities abgeben:
Ergänzung: Vom Support wurde mir die Code angeboten, allerding kann ich damit nichts anfangen. Dim modelDoc As Document = ThisDrawing.ModelDocument Dim oPropSet As PropertySet = modelDoc.PropertySets.Item("Design Tracking Properties") Logger.Info(oPropSet.DisplayName) Dim oProp As Inventor.Property = oPropSet.Item("User Status") ' Status iProperty Logger.Info("{0}='{1}'",oProp.DisplayName, oProp.Value.ToString) oProp = oPropSet.Item("Design Status") ' Konstruktionsstatus iProperty Logger.Info("{0}='{1}'",oProp.DisplayName, oProp.Value.ToString) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
nightsta1k3r Ehrenmitglied V.I.P. h.c. plaudern
Beiträge: 11279 Registriert: 25.02.2004 Hier könnte ihre Werbung stehen!
|
erstellt am: 20. Jan. 2023 11:50 <-- editieren / zitieren --> Unities abgeben: Nur für Freiherr von Dreist
Zitat: Original erstellt von Freiherr von Dreist: Frage 1: Seht ihr das auch so?
Ja, darum unterbindet ein korrekt konfiguriertes PDM die Zeichnungsfreigabe bevor nicht alle Komponenten freigegeben sind. Nennt sich Strukturprüfung. Bei Handbetrieb ist Mißbrauch möglich. ------------------
------------------ Es reicht nicht, sich Blödsinn nur auszudenken, wenn man ihn nicht auch bis zur letzten Konsequenz durchzieht! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Freiherr von Dreist Mitglied
Beiträge: 20 Registriert: 12.04.2011 PTC Creo Parametric 7.0 Inventor Professional 2023
|
erstellt am: 20. Jan. 2023 11:55 <-- editieren / zitieren --> Unities abgeben:
|
rkauskh Moderator Dipl.-Ing. (FH) Versorgungstechnik
Beiträge: 2630 Registriert: 15.11.2006 Windows 10 x64, AIP 2020-2025
|
erstellt am: 20. Jan. 2023 12:34 <-- editieren / zitieren --> Unities abgeben: Nur für Freiherr von Dreist
Hallo Sowas ist ohne Vault und andere PDM's auf verschiedenen Wegen möglich. Letzlich ist die entscheidende Frage wie manipulationssicher das Ganze sein muss. Eine iLogicregel kann jeder User einfach deaktivieren oder umschreiben. Da kann man es auch bei einer Konstruktionsvorschrift belassen. Eine parallel zum Inventor laufende exe (eventuell als Dienst) wäre eine Möglichkeit. Oder auch eine Addin dll, die entweder verborgen geladen wird oder mit UserUnloadable=False läuft. Nur den Stempel reinklatschen ist der kleinste Teil dabei. Man muss zum Beispiel auch verhindern, das der geneigte User ihn einfach vor dem Drucken löscht, den Layer unsichtbar schaltet oder den Stempel einfach neben das Blatt schiebt. Kreative Ansätze sich drum herum zu mogeln gibt es einige. EDIT:
Zitat: Problem: In iLogic kann man offensichtlich nicht auf die iProperties des primären Modells zugreifen, im Schriftfeld einer Zeichnung ist das aber seltsamerweise schon möglich - irgendeine Verbindung muss es also geben.
Die iProps des primären Modells sind auch nur eine wohlklingende Umschreibung. Inventor nimmt schlicht die iProps des in der ersten Ansicht des ersten Zeichnungsblattes referenzierten Modelles. Code:
Dim oRefedDoc As Document = ThisDrawing.Document.Sheets(1).DrawingViews(1).ReferencedDocumentDescriptor.ReferencedDocument Dim oProps As PropertySets = oRefedDoc.PropertySets
------------------ MfG Ralf RKW Solutions GmbH www.RKW-Solutions.com Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
GWS Ehrenmitglied V.I.P. h.c. Konstrukteur Sondermaschinenbau
Beiträge: 2420 Registriert: 23.07.2001
|
erstellt am: 20. Jan. 2023 21:28 <-- editieren / zitieren --> Unities abgeben: Nur für Freiherr von Dreist
Zitat: Original erstellt von Freiherr von Dreist: Es darf vorkommen, dass ein Modell freigegen ist, die Zeichnung jedoch noch in Bearbeitung. Wenn es jedoch umgekehrt ist - sprich die Zeichnung einen höheren Status hat, als das Modell provoziert man einen Fehler bei der Fertigung. Frage 1: Seht ihr das auch so?
Wir geben Spritzgusswerkzeuge in Auftrag. Das Teil wird im Modell beschrieben, in der Zeichnung stehen die Maße und Toleranzen, die bei Werkzeugabnahme zu kontrollieren und einzuhalten sind. OQ / PQ und Cpk-Werte so als Schlagwörter. Wenn der Werkzeugmacher die Toleranzbereiche nicht perfekt trifft, kann er nachfragen, ob wir den Bereich erweitern (oder verschieben) können. Wenn die Funktion des Teiles dadurch nicht beeinflusst wird, geben wir dem Ansinnen nach und schmeißen eine Änderungsmitteilung an. Danach hat die Zeichnung eine höhere Revision, als das zugrunde liegende (unveränderte) Modell. Wenn wir das Modell mit revisionieren würden, müsste der Werkzeugmacher jedes mal einen Datenabgleich mit seinen Werkzeugdaten machen, was zeit- und kostenintensiv ist. Also kann bei uns das Modell und die Zeichnungsableitung verschiedene Revisionsstände haben. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Freiherr von Dreist Mitglied
Beiträge: 20 Registriert: 12.04.2011 PTC Creo Parametric 7.0 Inventor Professional 2023
|
erstellt am: 23. Jan. 2023 08:55 <-- editieren / zitieren --> Unities abgeben:
@Ralf Ja, das ist klar, dass meine geplante Lösung umgangen werden kann. Das ist nicht schlimm und auch nicht gefordert. Mir geht's eher darum, bis zu einer eventuellen Einführung von einem PLM ein versehentliches Übersehen zu vermeiden. Es ist auch mehr als verständlich, dass eine iLogic nur auf das erste Modell zugreifen kann - wie sollte man ihr auch etwas anderes befehlen können. Ich werd mal versuchen, die Code-Zeilen von Dir zu behirnen. @GWS Das ist ein guter Input. Wir haben einige wenige Kunststoffspritzgussteile, die Werkzeuge lassen wir natürlich machen. Wir könnten geänderte Toleranzen also durchaus gleich ins Modell geben (mir wurde halt der Model Based Definition-Ansatz eingeimpft). In meiner Frage gings zunächst erst mal um den Konstruktionsstatus, nicht um die Revision. Ihr würdet dann aber auch den Konstrsutkionsstatus vom Modell auf "Freigegeben" lassen, die Zeichnung auf "wird bearbeitet" setzten, letztere ändern und wieder auf "Freigegeben" setzen, oder? [Diese Nachricht wurde von Freiherr von Dreist am 23. Jan. 2023 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Freiherr von Dreist Mitglied
Beiträge: 20 Registriert: 12.04.2011 PTC Creo Parametric 7.0 Inventor Professional 2023
|
erstellt am: 23. Jan. 2023 11:52 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, mit eurer Hilfe hab ich die Codezeile verstanden und hab jetzt das hier: Code:
'iProperties vom primären Modell abrufen Dim modelDoc As Document = ThisDrawing.ModelDocument Dim oPropSet As PropertySet = modelDoc.PropertySets.Item("Design Tracking Properties") Dim oProp As Inventor.Property = oPropSet.Item("User Status") ' Status iProperty Modell oProp = oPropSet.Item("Design Status") ' Konstruktionsstatus iProperty Modell'iProperties der Zeichnung abrufen Dim idwModDoc As Document = ThisDrawing.Document Dim idwPropSet As PropertySet = idwModDoc.PropertySets.Item("Design Tracking Properties") Dim idwProp As Inventor.Property = idwPropSet.Item("User Status") ' Status iProperty Zeichnung idwProp = idwPropSet.Item("Design Status") ' Konstruktionsstatus iProperty Zeichnung If idwProp.Value > oProp.Value Then MsgBox("Warnung") 'ElseIf idwProp.Value IsNot 3 Or oProp.Expression IsNot 3 Then 'MsgBox("Entwurf") Else MsgBox("OK") End If
Es Funktioniert alles so weit, bis auf das auskommentierte Elseif. Mir ist klar, dass ein Vergleichsoperator nicht funktioniert, wenn man Äpfel mit Birnen - sprich Integer-Variable mit String-Variable vergleicht. Das dürfte auch hier das Problem sein laut Fehlermeldung ("Fehler in Zeile 15 : IsNot erfordert Operanden mit Referenztypen. Dieser Operand hat jedoch den Werttyp "Integer"."). Hat das etwas hiermit zu tun? https://learn.microsoft.com/de-de/dotnet/visual-basic/programming-guide/language-features/data-types/value-types-and-reference-types Ich müsste vermutlich den Typ der Operanden angleich... könnt ihr mich in die richtige Richtung stubsen? MfG. Bernhard Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
RolandD Mitglied
Beiträge: 559 Registriert: 07.01.2005 i7-9700k 32GB DDR4-RAM Nvidia RTX 2060 SSD 970 m.2 Win10-64 (21H2) AIP 2020.3 Dell U3417W
|
erstellt am: 23. Jan. 2023 12:36 <-- editieren / zitieren --> Unities abgeben: Nur für Freiherr von Dreist
Hallo Bernhard, so in Klammern:
Code: If idwProp.Value > oProp.Value Then MsgBox ("Warnung") ElseIf (idwProp.Value <> 3) Or (oProp.Expression <> 3) Then MsgBox ("Entwurf" & vbLf & "IDW-Status: " & idwProp.Value & vbLf & "IPT-Status: " & oProp.Value) Else MsgBox ("OK") End If
------------------ Gruß Roland Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
GWS Ehrenmitglied V.I.P. h.c. Konstrukteur Sondermaschinenbau
Beiträge: 2420 Registriert: 23.07.2001
|
erstellt am: 23. Jan. 2023 20:42 <-- editieren / zitieren --> Unities abgeben: Nur für Freiherr von Dreist
Zitat: Wir haben einige wenige Kunststoffspritzgussteile, die Werkzeuge lassen wir natürlich machen. Wir könnten geänderte Toleranzen also durchaus gleich ins Modell geben (mir wurde halt der Model Based Definition-Ansatz eingeimpft).
Hinter dem Ursprungsmodell verbarg sich ja eine Konstruktionsidee. Die möchte ich schon erhalten, darum fasse ich das Modell nicht an. Wenn ich das Modell verändere und der nächste Werkzeugmacher trifft dann die (vorher schon mal geänderten) Vorgaben wieder nicht, driftet mein Modell immer weiter vom Ursprung weg. Bei hohen Stückzahlen kann das schon passieren, dass wir in kurzer Zeit mehrere Werkzeuge beauftragen. Möglicherweise auch bei verschiedenen Werkzeugmachern. Zitat: In meiner Frage gings zunächst erst mal um den Konstruktionsstatus, nicht um die Revision. Ihr würdet dann aber auch den Konstruktionsstatus vom Modell auf "Freigegeben" lassen, die Zeichnung auf "wird bearbeitet" setzten, letztere ändern und wieder auf "Freigegeben" setzen, oder?
Yepp - Das Modell bleibt weiterhin freigegeben, auch wenn sich die Zeichnung dazu in Revision befindet. Würde ich die Freigabe zurück ziehen, müsste ich danach das Modell revisionieren, um es wieder frei zu bekommen. Das war ja gerade der Punkt, der nicht passieren soll. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
rkauskh Moderator Dipl.-Ing. (FH) Versorgungstechnik
Beiträge: 2630 Registriert: 15.11.2006 Windows 10 x64, AIP 2020-2025
|
erstellt am: 23. Jan. 2023 21:06 <-- editieren / zitieren --> Unities abgeben: Nur für Freiherr von Dreist
Nabend Die Klammern kann man sich mM schenken. Aber der zweite Ausdruck vergleicht einen String mit einer Integer. Warum nimmst du da .Expression, statt .Value? Das wäre alles was man ändern müsste. Dann vergleichst du Long mit Integer und da das einschränkende Konvertierung ist, sollte es keine Probleme geben. Wenn dein primäres Modell eine Baugruppe ist, kann es auch Unterbaugruppen und Bauteile mit eigenen Konstruktionsstatus geben. Theoretisch kann ja jemand hergehen und eines dieser Modelle in Bearbeitung nehmen. Bisher deckt die Prüfung den Fall nicht ab.
------------------ MfG Ralf RKW Solutions GmbH www.RKW-Solutions.com Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Freiherr von Dreist Mitglied
Beiträge: 20 Registriert: 12.04.2011 PTC Creo Parametric 7.0 Inventor Professional 2023
|
erstellt am: 24. Jan. 2023 11:06 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von rkauskh: NabendWarum nimmst du da .Expression, statt .Value?
War nur zum Testen. Mir ist gestern noch eingefallen Code:
Dim x As Integer X = idwProp.Value + oProp.Value If X < 6 Then MsgBox("Warnung") End If
aber der Vorschlag von euch erscheint mit eleganter. Insgesamt hat mir das sehr geholfen, auch für's Verständnis. Vielen Dank für eure Hilfe. Einen Schönheitsfehler gibt es noch: Wenn ich die Regel in einer IDW-Vorlage ausführe, sprich einer Zeichnung ohne Modell gibt es erwartungsgemäß eine Fehlermeldung. Vielleicht setze ich den ganzen Code in eine If-Bedingung, die nur ausgeführt wird, wenn ein Modell hinterlegt ist. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
rkauskh Moderator Dipl.-Ing. (FH) Versorgungstechnik
Beiträge: 2630 Registriert: 15.11.2006 Windows 10 x64, AIP 2020-2025
|
erstellt am: 24. Jan. 2023 11:21 <-- editieren / zitieren --> Unities abgeben: Nur für Freiherr von Dreist
|
Freiherr von Dreist Mitglied
Beiträge: 20 Registriert: 12.04.2011 PTC Creo Parametric 7.0 Inventor Professional 2023
|
erstellt am: 25. Jan. 2023 08:40 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von rkauskh: MoinNach meiner Erfahrung begünstigen gut funktionierende Provisorien den Aufschub.
Die eine Glühbirne, die seit 20 Jahren nur in der Fassung hängt... vollkommen klar. Es gibt hier gewisse... wie soll ich sagen... Vorbehalte bzgl. PDM. Bei einem 5-Achs-Fräszentrum ist es klar, dass es vom LKW gehoben, ausgepackt, aufgestellt, angeschlossen und eingerichtet werden muss. Beim CAD erwartet man sich dagegen sofort perfekte Ergebnisse - wir dagegen wissen, dass man das auch vorbereiten muss. So ein Sache ist das.
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |