| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für NX |
| |
| Solid Edge Simulation richtig und effektiv anwenden, Webinar am 20.08.2024 |
Autor
|
Thema: Mehrere Oberflächenkennzeichen editieren (167 / mal gelesen)
|
Mahaweilo Mitglied Technischer Zeichner
Beiträge: 32 Registriert: 06.03.2013 NX Version 1919
|
erstellt am: 23. Jul. 2024 10:53 <-- editieren / zitieren --> Unities abgeben:
Hi Zusammen, bei uns ist gerade auch das Thema mit der neuen DIN EN ISO 21920-1:2022 für die Oberflächenkennzeichen in der ein Waagrechter Strich benötigt wird für jedes Oberflächenkennzeichen. Das einfügen dieses Waagrechten Striches ist kein Problem nur würde ich das ganze gerne so gut es geht entweder automatisieren oder einfacher machen. Zurzeit muss ich jedes Oberflächenkennzeichen einzeln anklicken und hier den Strich einfügen in das entsprechende Textfeld. Das mag für kleinere Zeichnungen kein Problem sein aber sobald ich etwas komplexere Zeichnungen habe dauert das schon etwas. Nun ist meine Frage wüsstet ihr vielleicht einen Weg mehrere Oberflächenkennzeichen zur gleichen Zeit zu editieren bzw. wäre es möglich hier ein Script zu schreiben das einfach über alle Oberflächenkennzeichen geht und hier bei dem "unteren Text (a2)" eine bestimmte Zeichenfolge reinschreibt? Ich habe rudimentäre Scripting Kenntnisse aber leider wüsste ich hier nicht auf anhieb wie ich das ganze am besten angehen sollte. Vielleicht habt ihr ja eine bessere Idee bin für jede Hilfe dankbar! Gruß, Maha Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Eonwe Mitglied
Beiträge: 82 Registriert: 10.11.2014 NX 12 mit ECTR
|
erstellt am: 23. Jul. 2024 14:48 <-- editieren / zitieren --> Unities abgeben: Nur für Mahaweilo
Code: Imports System Imports NXOpenModule NXJournal Sub Main (ByVal args() As String) Dim theSession As NXOpen.Session = NXOpen.Session.GetSession() Dim workPart As NXOpen.Part = theSession.Parts.Work Dim SurfaceSymbols() As Annotations.DraftingSurfaceFinish = workPart.Annotations.DraftingSurfaceFinishSymbols.ToArray() For Each draftingSurfaceFinish1 As NXOpen.Annotations.DraftingSurfaceFinish In SurfaceSymbols Dim draftingSurfaceFinishBuilder1 As NXOpen.Annotations.DraftingSurfaceFinishBuilder = workPart.Annotations.DraftingSurfaceFinishSymbols.CreateDraftingSurfaceFinishBuilder(draftingSurfaceFinish1) draftingSurfaceFinishBuilder1.A2 = "blablubb" Dim nXObject1 As NXOpen.NXObject = draftingSurfaceFinishBuilder1.Commit() draftingSurfaceFinishBuilder1.Destroy() Next End Sub End Module
Der obige Code ersetzt A2 bei jedem SurfaceFinishSymbol durch "blablubb". Ist aber nicht getestet. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Mahaweilo Mitglied Technischer Zeichner
Beiträge: 32 Registriert: 06.03.2013 NX Version 1919
|
erstellt am: 24. Jul. 2024 14:05 <-- editieren / zitieren --> Unities abgeben:
|
Eonwe Mitglied
Beiträge: 82 Registriert: 10.11.2014 NX 12 mit ECTR
|
erstellt am: 25. Jul. 2024 17:46 <-- editieren / zitieren --> Unities abgeben: Nur für Mahaweilo
Freut mich wenns hilft. Als kleine Anmerkung: Der Code betrachtet nur die neuen Oberflächensymbole, eingeführt mit NX8??? glaub ich. Alles davor läuft inzwischen unter Legacy Surface Symbol. Die können auch abgerufen werden, sind aber nicht so schön anzusprechen. Das erhöht den Aufwand und verlängert die Laufzeiten, deshalb hab ich die unberücksichtigt gelassen. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Systemingenieur für abwechslungsreiche Projekte (m/w/d) | Menschen und Technologien zu verbinden, den Perfect Match für unsere Kunden zu gestalten, immer die richtigen Expert:innen für die jeweilige Herausforderung zu finden - das ist unser Anspruch bei FERCHAU und dafür suchen wir dich: als ambitionierte:n Kolleg:in, der:die wie wir Technologien auf die nächste Stufe bringen möchte. Wir realisieren spannende Projekte für namhafte Kunden in allen Technologiebereichen und für alle Branchen und übernehmen Verantwortung für komplexe Entwicklungsprojekte.... | Anzeige ansehen | Maschinenbau |
|
Mahaweilo Mitglied Technischer Zeichner
Beiträge: 32 Registriert: 06.03.2013 NX Version 1919
|
erstellt am: 26. Jul. 2024 09:38 <-- editieren / zitieren --> Unities abgeben:
Hi! jo das mit den alten Oberflächensymbolen ist mir auch schon aufgefallen aber da hab ich dann auch einen Cut gemacht normal sollten wir solche alten Zeichnungen / Vorlagen gar nicht mehr verwenden... Ich habe den Code noch etwas überarbeitet um ein paar mehr Fälle abzudecken excuse my spaghetti code aber es funktioniert alles haha Code:
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 SurfaceSymbols() As Annotations.DraftingSurfaceFinish = workPart.Annotations.DraftingSurfaceFinishSymbols.ToArray() For Each draftingSurfaceFinish1 As NXOpen.Annotations.DraftingSurfaceFinish In SurfaceSymbols Dim draftingSurfaceFinishBuilder1 As NXOpen.Annotations.DraftingSurfaceFinishBuilder = workPart.Annotations.DraftingSurfaceFinishSymbols.CreateDraftingSurfaceFinishBuilder(draftingSurfaceFinish1) if draftingSurfaceFinishBuilder1.Finish = NXOpen.Annotations.DraftingSurfaceFinishBuilder.FinishType.ModifierMaterialRemovalProhibited Then draftingSurfaceFinishBuilder1.A2 = "<C0.50><&1><C>" else if draftingSurfaceFinishBuilder1.Finish = NXOpen.Annotations.DraftingSurfaceFinishBuilder.FinishType.ModifierMaterialRemovalRequired Then draftingSurfaceFinishBuilder1.A2 = "<C0.50><&1><C>" draftingSurfaceFinishBuilder1.Finish = NXOpen.Annotations.DraftingSurfaceFinishBuilder.FinishType.ModifierMaterialRemovalRequired else if draftingSurfaceFinishBuilder1.Finish = NXOpen.Annotations.DraftingSurfaceFinishBuilder.FinishType.MaterialRemovalProhibited Then draftingSurfaceFinishBuilder1.Finish = NXOpen.Annotations.DraftingSurfaceFinishBuilder.FinishType.ModifierMaterialRemovalProhibited draftingSurfaceFinishBuilder1.A2 = "<C0.50><&1><C>" else if draftingSurfaceFinishBuilder1.Finish = NXOpen.Annotations.DraftingSurfaceFinishBuilder.FinishType.MaterialRemovalRequired Then Dim A2Text As String = draftingSurfaceFinishBuilder1.A2 draftingSurfaceFinishBuilder1.C = "Rz " + A2Text draftingSurfaceFinishBuilder1.A2 = "<C0.50><&1><C>" draftingSurfaceFinishBuilder1.Finish = NXOpen.Annotations.DraftingSurfaceFinishBuilder.FinishType.ModifierMaterialRemovalRequired end if Dim DText As String = draftingSurfaceFinishBuilder1.D draftingSurfaceFinishBuilder1.D = "" draftingSurfaceFinishBuilder1.B = DText Dim nXObject1 As NXOpen.NXObject = draftingSurfaceFinishBuilder1.Commit() draftingSurfaceFinishBuilder1.Destroy() Next End Sub End Module
Hätte ich aber ohne deine Vorarbeit auch nicht so hinbekommen also echt danke nochmal! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |