| | | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für NX |
Autor
|
Thema: Journal - Abfrage, ob Ausdruck/Gruppe vorhanden ist (776 / mal gelesen)
|
Ace Shim Mitglied Konstruktionsingenieur
Beiträge: 45 Registriert: 22.02.2005 Siemens NX2312, TeamCenter 14, Dynamics 365, Win11
|
erstellt am: 12. Mrz. 2023 17:31 <-- editieren / zitieren --> Unities abgeben:
Hallo liebe Leute, nach einer längeren Pause kämpfe ich mal wieder mit einem NX-Journal... Ziel: In alten Parts möchte ich per Journal die Blechparameter so erzeugen/einstellen, dass korrekte Abwicklungen erzeugt werden. Dazu brauche ich: 1. eine Abfrage, ob die Gruppe "Anwender" in den Ausdrücken vorhanden ist Ja: prüfen, ob die beiden Ausdrücke "Blechdicke" und "Biegeradius" schon vorhanden sind Ja: 1. Zuweisung Sheet_Metal_Material_Thickness = Blechdicke & 2. Zuweisung Sheet_Metal_Bend_Radius = Biegeradius Nein: Beide Ausdrücke mit Wert 3mm erzeugen und Zuweisungen (s.o) durchführen Nein: Gruppe erstellen und aktivieren / o.g. Ausdrücke mit Wert 3mm erzeugen und zuweisen 2. in Anwendung Blech wechseln und unter "Datei" die Voreinstellung für Materialstärke und Biegeradius entspr. anpassen; Biegen mit Formel nach DIN 6935 (kriege ich hin) Damit sollte, sofern der Anwender die beiden Parameter für die Blechdicke und den Biegeradius richtig vergibt, eine Abwicklung mit korrekter gestreckter Länge zu erzeugen sein!? So der Plan... Ich bekomme die if-else Abfrage im Journal aber nicht hin! Mir fehlt einfach die Regelmäßigkeit beim Programmieren! Deshalb hoffe ich wieder einmal auf Eure Gnade Einen Dank in die Runde Bis denne Marc
------------------ "Das kann man so machen, aber dann ist es halt Sch...!" Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mseufert Moderator Freiberuflicher CAD/CAM Ingenieur
Beiträge: 2704 Registriert: 18.10.2005 HP Z420 WIN7 64 Win 10 UG NX6-2306 3D Printer Prusa MK2 S
|
erstellt am: 14. Mrz. 2023 17:26 <-- editieren / zitieren --> Unities abgeben: Nur für Ace Shim
Hallo Marc, Fragen zur Syntax von Sprachelementen wie if-then-else beantworted i.d.R. die Entwicklerumgebung. Hast du keine, hol' dir eine, das ist unbedingt zu empfehlen. Zu NXOpen ist die erste Empfehlung, ein Journal aufzuzeichnen, das beantwortet ebenfalls viele Fragen zu den verwendeten Methoden und deren Verwendung. Gruß, Michael ------------------ Ein Mensch wird laut, wenn er was will; wenn er's erst hat, dann wird er still; Das "Danke" ist, nach alter Sitte, Weit selt'ner als das "Bitte, Bitte". Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ace Shim Mitglied Konstruktionsingenieur
Beiträge: 45 Registriert: 22.02.2005
|
erstellt am: 25. Apr. 2023 17:01 <-- editieren / zitieren --> Unities abgeben:
Danke Michael, so richtig hilfreich war Deine Antwort allerdings nicht! Eine Entwicklerumgebung habe ich natürlich (Visual Studio). Die Syntax von einfachen Schleifen (if-else, while-do, for, etc.) ist auch nicht das Problem! Und ich starte eigtl. jedes neue Journal mittels Rekorder. Bei mir hakt es eher an der Kenntnis der "Ansprache" bzw. Abfrage einzelner Komponenten oder Features. Eine Frage im Forum mit "sieh' zu dass Du Dir Hilfe besorgst" zu beantworten macht für mich das Forum unnütz!? Wenn mich jemand fragt, ob ich ihm beim Fahrradfahrenlernen behilflich sein kann, sage ich ihm doch nicht, dass er sich am besten ein erstmal ein Fahrrad kauft und dann auf Youtube nach Lernvideos sucht!? Sry, wenn ich da etwas ungehalten reagiere, aber die letzten beiden Antworten hier im Forum zeugten nicht wirklich von Hilfsbereitschaft. Manchmal ist das Triviale nicht der Rede wert! Nichts für ungut Gruß Marc
------------------ "Das kann man so machen, aber dann ist es halt Sch...!" Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mseufert Moderator Freiberuflicher CAD/CAM Ingenieur
Beiträge: 2704 Registriert: 18.10.2005 HP Z420 WIN7 64 Win 10 UG NX6-2306 3D Printer Prusa MK2 S
|
erstellt am: 27. Apr. 2023 15:21 <-- editieren / zitieren --> Unities abgeben: Nur für Ace Shim
Hallo Marc, wenn du schreibst: Zitat: Original erstellt von Ace Shim: Ich bekomme die if-else Abfrage im Journal aber nicht hin!
dann denk' ich: Au Backe, da braucht's erst mal ein paar Grundlagen ! Das führt zu den genannten Empfehlungen. Woher soll ich wissen, daß du Beides schon kennst ? Gruß, Michael ------------------ Ein Mensch wird laut, wenn er was will; wenn er's erst hat, dann wird er still; Das "Danke" ist, nach alter Sitte, Weit selt'ner als das "Bitte, Bitte". Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ace Shim Mitglied Konstruktionsingenieur
Beiträge: 45 Registriert: 22.02.2005
|
erstellt am: 27. Apr. 2023 16:12 <-- editieren / zitieren --> Unities abgeben:
Hallo Michael, entschuldige bitte, dann habe ich mich zu unpräzise ausgedrückt. Die Schleifen sind mir auch von anderen Programmiersprachen her geläufig und bereiten mir soweit auch keine Probleme. In einem aufgezeichneten NX-Journal finde ich aber häufig die korrekte Ansprache für diese Schleifen nicht. Also z.B.: 'wenn in den Ausdrücken des aktiven Parts noch keine Gruppe namens "Anwender" vorhanden ist, dann lege eine an'. So in etwa. Das wenn-dann ist klar, der Rest nicht! Ich denke, mir fehlt es schlussendlich an Literatur, um mich neben Job, Familie und Hobbies abends - auch ohne ganz bei Null starten zu müssen - in das Journaling einarbeiten zu können. Ich bin ja auch kein Werkzeugmacher, will aber Werkzeuge sinnvoll nutzen können! Für Excel und VBA z.B. habe ich ausreichend Literatur und Übungen hier, um in meinem Job als Konstrukteur im Ofenbau zielführende Berechnungen durchführen lassen zu können. Ich würde mich aber nie als VBA-Programmierer oder Excel-Spezi bezeichnen. Das sind, neben vielen anderen, bloß tools, die mich bei meiner eigentlichen Tätigkeit unterstützen sollen. So auch die NX-Journale. Da unsere Firma solche Hilfen (Journale) niemals einkaufen würde, bleibt mir eigtl. nur, die nächsten 20+ Jahre auf z.B. geklonten Zeichnungen die Texte und Symbole händisch anzupassen (immer und immer wieder), oder mir eben selbst ein Journal zu erstellen, welches mir diese Arbeit abnimmt. Nur ein Beispiel von vielen. Dabei ist definitiv das Ziel das Ziel und nicht der Weg. Soll heißen: Ich muss es irgendwie schaffen, mir mit vertretbarem Zeitaufwand, etwas zurechtzubasteln. Jedesmal, wenn mir NX dann sowas sagt wie: "LineWeld ist kein Member von NXOpen.Annotations.AnnotationManager" oder so, weiß ich, dass ich wieder viel zu viel Freizeit werde investieren müssen, nur weil NX und ich nicht die gleiche Sprache sprechen und Computer eben doch dumm sind! (50 Jahre zu früh geboren - oder doch zu spät?) Und dann muss ich immer an den Spruch denken: "Computer sparen Zeit", und bemerke, wie viel Zeit ich in meinen Computer investiere, und mich fragen, wann ich die denn wohl zurückbekommen werde und, ob sie da wirklich gut angelegt ist!? An dem Punkt angekommen hoffe ich dann wohl immer, dass mir das Forum einfach die Lösung präsentiert und ich sie nur noch abtippen muss! Der Alltag zerlegt meine Lernphasen leider in für mein Alter ungünstige Etappen! Journal, 10 Wochen Pause, Journal. Ich stell' mich dann auch immer brav neu vor, weil ich ja wieder vergessen habe, dass wir uns schon kennen! Ich bleibe Euch trotzdem für jede Hilfe dankbar!!! Gruß Marc
------------------ "Das kann man so machen, aber dann ist es halt Sch...!" Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mseufert Moderator Freiberuflicher CAD/CAM Ingenieur
Beiträge: 2704 Registriert: 18.10.2005 HP Z420 WIN7 64 Win 10 UG NX6-2306 3D Printer Prusa MK2 S
|
erstellt am: 02. Mai. 2023 09:37 <-- editieren / zitieren --> Unities abgeben: Nur für Ace Shim
Hallo Marc, wenn's nach wie vor nicht klappt, fällt mir nur noch die Frage nach den Referenzen auf die NXOpen-Libraries ein, hast du die in VS angegeben ? Falls ja sollte nach z.B. der Partvariablen und der Eingabe eines Punkts (workpart. ) alles erscheinen, was man mit einem Part anstellen kann. Da sind dann auch die Expressions und die ExpressionGroups dabei. Der nächste Punkt und man sieht, was mit Expressions bzw. den Gruppen möglich ist. Gruß, Michael ------------------ Ein Mensch wird laut, wenn er was will; wenn er's erst hat, dann wird er still; Das "Danke" ist, nach alter Sitte, Weit selt'ner als das "Bitte, Bitte". Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ace Shim Mitglied Konstruktionsingenieur
Beiträge: 45 Registriert: 22.02.2005
|
erstellt am: 02. Mai. 2023 20:31 <-- editieren / zitieren --> Unities abgeben:
Hallo Michael, ich habe in VS unter Projekt folgende Verweise hinzugefügt: NXOpen.dll NXOpenUI.dll NXOpenUF.dll NXOpen.Guide.dll NXOpen.Utilities.dll NXOpen.Drawing.dll Leider gibt mir VS so gut wie keine Vorschläge!? Ich habe mal einen Teil des Journals (nur die Schriftart bei Schweißsymbolen) als eigenständiges Journal aufgezeichnet und angepasst: Tatsächlich möchte ich alle Texte auf der Zeichnung anpassen (Labels, Notes, Tabellen, Positionsnummern, Referenzen, Form-Lage-Toleranzen etc. pp.). Imports System Imports NXOpen Module NXJournal Sub Main(ByVal args() As String) Dim theSession As NXOpen.Session = NXOpen.Session.GetSession() Dim workPart As NXOpen.Part = theSession.Parts.Work Dim displayPart As NXOpen.Part = theSession.Parts.Display Dim objects1(0) As NXOpen.DisplayableObject Dim theUI As UI = UI.GetUI() For Each myWeld As NXOpen.Annotations.LineWeld In displayPart.Annotations.LineWeld '(!!!???) Dim objects1(0) As NXOpen.DisplayableObject objects1(0) = CType(myWeld, NXOpen.Annotations.LineWeld) Dim editSettingsBuilder1 As NXOpen.Annotations.EditSettingsBuilder = Nothing editSettingsBuilder1 = workPart.SettingsManager.CreateAnnotationEditSettingsBuilder(objects1) Dim editsettingsbuilders1(0) As NXOpen.Drafting.BaseEditSettingsBuilder editsettingsbuilders1(0) = editSettingsBuilder1 workPart.SettingsManager.ProcessForMultipleObjectsSettings(editsettingsbuilders1) Dim fontIndex1 As Integer = Nothing fontIndex1 = workPart.Fonts.AddFont("iso-1", NXOpen.FontCollection.Type.Nx) editSettingsBuilder1.AnnotationStyle.LetteringStyle.GeneralTextFont = 4 editSettingsBuilder1.AnnotationStyle.LetteringStyle.GeneralTextCharSpaceFactor = 1.0 editSettingsBuilder1.AnnotationStyle.LetteringStyle.GeneralTextAspectRatio = 1.0 editSettingsBuilder1.AnnotationStyle.LetteringStyle.GeneralTextLineSpaceFactor = 1.0 Dim nXObject1 As NXOpen.NXObject = Nothing nXObject1 = editSettingsBuilder1.Commit() editSettingsBuilder1.Destroy() Next End Sub End Module Nach NXOpen. kommt kein Vorschlag bzw. NXOpen wird schon nicht angeboten - nur NXJournal. Hier scheint mir schon das Problem zu liegen!?
Führe ich das Journal in NX aus, kommt die Meldung (For Each -Zeile): "LineWeld" ist kein Member von "NXOpen.Annotations.AnnotationManager". Da ich keine Vorschläge erhalte, ist es mir fast unmöglich, herauszufinden, wie ich die Schweißsymbole (oder sonst was) korrekt anspreche.
Fehlt mir eine Referenz in VS? Sind meine Verweise überhaupt "Deine" Referenzen? VS färbt ja auch den halben Code schön brav ein... Siehst/ahnst Du evtl. woran es liegen könnte? Danke Gruß Marc ------------------ "Das kann man so machen, aber dann ist es halt Sch...!" Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mseufert Moderator Freiberuflicher CAD/CAM Ingenieur
Beiträge: 2704 Registriert: 18.10.2005 HP Z420 WIN7 64 Win 10 UG NX6-2306 3D Printer Prusa MK2 S
|
erstellt am: 03. Mai. 2023 08:05 <-- editieren / zitieren --> Unities abgeben: Nur für Ace Shim
Schau' mal, ob das bei dir zumindest ähnlich aussieht wie im Anhang. Bild 1: workpart.e -> Expressiongroups, Expressions ... Bild 2: Hier sind die Referenzen zu sehen. ------------------ Ein Mensch wird laut, wenn er was will; wenn er's erst hat, dann wird er still; Das "Danke" ist, nach alter Sitte, Weit selt'ner als das "Bitte, Bitte". Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ace Shim Mitglied Konstruktionsingenieur
Beiträge: 45 Registriert: 22.02.2005
|
erstellt am: 03. Mai. 2023 20:20 <-- editieren / zitieren --> Unities abgeben:
Hallo Michael, die Referenzen sind bei mir ebenfalls vorhanden. Das "workPart" selbst kann ich aus der Liste auswählen, bei workPart.e liefert VS allerdings keinerlei Vorschläge!? Ich weiß, dass ich früher (schätze vor dem VS-Update) Vorschläge bekommen habe. Eine ellenlange Liste. Bin wirklich ratlos! Gruß Marc ------------------ "Das kann man so machen, aber dann ist es halt Sch...!" Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mseufert Moderator Freiberuflicher CAD/CAM Ingenieur
Beiträge: 2704 Registriert: 18.10.2005 HP Z420 WIN7 64 Win 10 UG NX6-2306 3D Printer Prusa MK2 S
|
erstellt am: 04. Mai. 2023 08:40 <-- editieren / zitieren --> Unities abgeben: Nur für Ace Shim
Hallo Marc, versuch's mal mit Ctrl +J oder such' im Menü nach dem Begriff Intellisense. Evtl. ist auch in den Settings was verkehrt. Im Zweifelsfall musst du dich eben mal durch's Menü kämpfen um wieder die Funktionalität wie vor dem Update zu bekommen. B.t.w.: Ein Update ohne Fallback gehört zu den Todsünden der IT Oft hilft auch ein Blick in die Doku Gruß, Michael ------------------ Ein Mensch wird laut, wenn er was will; wenn er's erst hat, dann wird er still; Das "Danke" ist, nach alter Sitte, Weit selt'ner als das "Bitte, Bitte". Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ace Shim Mitglied Konstruktionsingenieur
Beiträge: 45 Registriert: 22.02.2005
|
erstellt am: 07. Mai. 2023 20:44 <-- editieren / zitieren --> Unities abgeben:
Hallo Michael, wohl wahr, wohl wahr! Mein anderer Rechner (ohne VS-Update) hat mir auf die Sprünge geholfen... Die LimeWelds spreche ich einfach mit "Welds" an! Die Schweißsymbole sind somit erledigt. Jetzt hänge ich noch an der Textlücke bei Durchmesserbemaßungen... Ich würde gerne abfragen, ob das Präfix-Symbol einer HoleDimension auf Standard steht (also Durchmessersymbol) und ihm, falls dem so ist, eine Textlücke von 0.0 zuweisen. Momentan findet mein Journal diese Bemaßungen aber noch nicht. Es funktioniert nicht: If editSettingsBuilder.AnnotationStyle.RadialStyle.RadiusSymbolType = NXOpen.Annotations.DiameterSymbol.Standard Then editSettingsBuilder.AnnotationStyle.RadialStyle.SymbolToDimensionTextDistance = 0.0 ? Wie kann ich das realisieren? Danke Gruß Marc
------------------ "Das kann man so machen, aber dann ist es halt Sch...!" Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mseufert Moderator Freiberuflicher CAD/CAM Ingenieur
Beiträge: 2704 Registriert: 18.10.2005 HP Z420 WIN7 64 Win 10 UG NX6-2306 3D Printer Prusa MK2 S
|
erstellt am: 08. Mai. 2023 14:16 <-- editieren / zitieren --> Unities abgeben: Nur für Ace Shim
Zitat: Original erstellt von Ace Shim:
Mein anderer Rechner (ohne VS-Update) hat mir auf die Sprünge geholfen...
Schön, daß dein Rechner das kann Dann sind ja die Fragen zu Expressions bzw. Gruppen geklärt. ------------------ Ein Mensch wird laut, wenn er was will; wenn er's erst hat, dann wird er still; Das "Danke" ist, nach alter Sitte, Weit selt'ner als das "Bitte, Bitte". Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Konstrukteur / Techniker Stahlbau und Massivbau (m/w/d) | Wir sind planting. Premium-Partner der Prozessindustrie. Wir unterstützen unsere Kunden sowohl in Projekten, in der betriebsnahen Planung als auch im technischen Consulting. Unsere Aufgaben sind anspruchsvoll, unser Leistungs- und Branchenspektrum breit: von der Idee bis zur Inbetriebnahme und darüber hinaus. Dafür suchen wir Verstärkung - kompetent und motiviert. In der rheinischen Domstadt schlägt das Herz der planting.... | Anzeige ansehen | Konstruktion, Visualisierung |
|
Ace Shim Mitglied Konstruktionsingenieur
Beiträge: 45 Registriert: 22.02.2005
|
erstellt am: 08. Mai. 2023 17:37 <-- editieren / zitieren --> Unities abgeben:
Tja, nur ob er das nach einem evtl. mal erforderlichen Update auch noch kann!? Jedenfalls muss ich VS am Laptop auch wieder so zum Laufen bringen, dass es mich unterstützt. By the way: die Abfrage, ob die Ausdruck-Gruppe vorhanden ist, ist noch offen! Ich bin aber gerade eher damit beschäftigt, die Schriften auf den Zeichnungen anzupassen! Kann ich denn die Schnitt-Buchstaben überhaupt separat ansprechen? Der Filter in NX erkennt sie jedenfalls als "normalen" Hinweis, somit werden sie im Journal auch entspr. behandelt und "falsch" eingestellt. Ich probiere mal weiter... Vielen Dank für die Tipps! Frohes Schaffen weiterhin ------------------ "Das kann man so machen, aber dann ist es halt Sch...!" Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|