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!
erstellt am: 23. Jul. 2024 14:48 <-- editieren / zitieren --> Unities abgeben: Nur für Mahaweilo
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) 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.
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.
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