| | | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für NX |
Autor
|
Thema: layer Steuern über Journal file (3693 mal gelesen)
|
Ex-Mitglied
|
erstellt am: 20. Feb. 2007 10:17 <-- editieren / zitieren -->
Hallo Ich versuche gerade mehrere Sprachen auf einer Zeichnung unterzubringen. Das heist ich habe 4 Textblöcke an einer Stelle, D,E,F,I. Ich schaffe es mit einem Macro auch diese ein zu blenden wie ich es brauche, da sie auf 4 verschiednen Layern liegen. Soweit klappt das ja auch. Nun wollte ich das ganze als Journal File machen, um ein wenig mehr Praxis im programmieren zu bekommen. Geht aber leider irgendwie nicht? Ich würde eben gerne haben das ich das wie bei meinem Macro steuern kann drück ich auf E kommt english usw. Und am liebsten wenn nix im layer drinne steht das ne Fehlermeldung kommt. Weis jemand einen Rat? War die Erklärung verständlich? ------------------ Rundballvergewaltiger ( Fußballer) sollten für den Oskar nominiert werden. Am besten in der Gruppe Stunt. Den kein Stuntmann der Welt kann so durch die Luft fliegen, dabei schreien wie eine Sau beim Metzger, dazu Kilometer weit über den Rasen Rollen, sich dabei das Gesicht halten, obwohl er am Bein getroffen wurde, meist noch die anscheinend schmerzhaften, fast zum Tode führenden, Stellen wechseln von links nach rechts und oben nach unten, um dann gleich wieder Aufzustehen und weiter zu rennen. ICH BIN DER CADMINISCHDRÄDÖR |
SMario Mitglied Konstrukteur/Designer
Beiträge: 114 Registriert: 31.03.2005 FSC Celsius Workstation CPU: Pentium 4 3.20GHz Speicher: 2.00GB RAM Grafik: Quadro FX 1400 Monitor: FSC P20-2 OS: Windows XP SP2 UG: NX4.0.2.2
|
erstellt am: 21. Feb. 2007 10:21 <-- editieren / zitieren --> Unities abgeben:
Moin isegal, Zitat: Original erstellt von isegal: [...] Das heist ich habe 4 Textblöcke an einer Stelle, D,E,F,I. [...] Ich würde eben gerne haben das ich das wie bei meinem Macro steuern kann drück ich auf E kommt english usw.
Ich nehme mal an, es wird eine Textbox eingeblendet in der man das "E" eingeben kann, richtig? Hier mal schnell zusammengekloppt (für NX4): Code: Option Strict On Option Explicit On Imports System Imports NXOpen Imports NXOpen.UI Imports NXOpen.UFModule ChangeLanguageLayer Sub Main() Dim theSession As Session = Session.GetSession() 'Test ob Part geladen if theSession.Parts.Work is Nothing Then Windows.Forms.MessageBox.Show("Kein Part geladen!") Exit Sub End If Dim ufsSession As UFSession = UFSession.GetUFSession() Dim workPart As Part = theSession.Parts.Work 'Strings fuer NXInputBox Dim prompt As String = "Bitte Anfangsbuchstabe eingeben" Dim caption As String = "Welche Sprache?" Dim initialText As String = "D" 'Anzahl der umzuschaltenden Layer Dim stateArray(3) As Layer.StateInfo 'deutscher Layer Dim dLayer As Integer = 11 'englischer Layer Dim eLayer As Integer = 12 'franzoesischer Layer Dim fLayer As Integer = 13 'italienischer Layer Dim iLayer As Integer = 14 Dim lm As Layer.LayerManager Dim nxi As NXOpenUI.NxInputBox = New NXOpenUI.NXInputBox() ufsSession.Ui.LockUgAccess(UFConstants.UF_UI_FROM_CUSTOM) Try Select Case nxi.GetInputString(prompt, caption, initialText) Case = "D" stateArray(0).Layer = dLayer stateArray(0).State = Layer.State.Selectable stateArray(1).Layer = eLayer stateArray(1).State = Layer.State.Hidden stateArray(2).Layer = fLayer stateArray(2).State = Layer.State.Hidden stateArray(3).Layer = iLayer stateArray(3).State = Layer.State.Hidden workPart.Layers.ChangeStates(stateArray, True) Case = "E" stateArray(0).Layer = dLayer stateArray(0).State = Layer.State.Hidden stateArray(1).Layer = eLayer stateArray(1).State = Layer.State.Selectable stateArray(2).Layer = fLayer stateArray(2).State = Layer.State.Hidden stateArray(3).Layer = iLayer stateArray(3).State = Layer.State.Hidden workPart.Layers.ChangeStates(stateArray, True) Case = "F" stateArray(0).Layer = dLayer stateArray(0).State = Layer.State.Hidden stateArray(1).Layer = eLayer stateArray(1).State = Layer.State.Hidden stateArray(2).Layer = fLayer stateArray(2).State = Layer.State.Selectable stateArray(3).Layer = iLayer stateArray(3).State = Layer.State.Hidden workPart.Layers.ChangeStates(stateArray, True) Case = "I" stateArray(0).Layer = dLayer stateArray(0).State = Layer.State.Hidden stateArray(1).Layer = eLayer stateArray(1).State = Layer.State.Hidden stateArray(2).Layer = fLayer stateArray(2).State = Layer.State.Hidden stateArray(3).Layer = iLayer stateArray(3).State = Layer.State.Selectable workPart.Layers.ChangeStates(stateArray, True) Case Else Windows.Forms.MessageBox.Show("Keine unterstützte Sprache!") End Select ufsSession.Abort.DisableAbort() Finally ufsSession.Ui.UnlockUgAccess(UFConstants.UF_UI_FROM_CUSTOM) End Try End Sub Public Function GetUnloadOption(ByVal dummy As String) As Integer GetUnloadOption = UFConstants.UF_UNLOAD_IMMEDIATELY End Function End Module
Zitat:
Und am liebsten wenn nix im layer drinne steht das ne Fehlermeldung kommt.
So spontan wüsste ich (noch) keinen wirklich guten Ansatz . Ciao Mario
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
SMario Mitglied Konstrukteur/Designer
Beiträge: 114 Registriert: 31.03.2005 FSC Celsius Workstation CPU: Pentium 4 3.20GHz Speicher: 2.00GB RAM Grafik: Quadro FX 1400 Monitor: FSC P20-2 OS: Windows XP SP2 UG: NX4.0.2.2
|
erstellt am: 21. Feb. 2007 10:26 <-- editieren / zitieren --> Unities abgeben:
|
Ex-Mitglied
|
erstellt am: 21. Feb. 2007 10:51 <-- editieren / zitieren -->
Hi mario, J ganz genau, das doofe ist das die module bei mir nicht so greifen wie ich das wollte *grübel* Diese textboxen sind eine Idee die ich so mal in den Raum gestellt hatte, das kuriose ist nur das es mit Macros ohne texte super funktioniert sobald du aber den code startest spinnt die NXhuman an??? keine ahnung was das sein soll ------------------ Rundballvergewaltiger ( Fußballer) sollten für den Oskar nominiert werden. Am besten in der Gruppe Stunt. Den kein Stuntmann der Welt kann so durch die Luft fliegen, dabei schreien wie eine Sau beim Metzger, dazu Kilometer weit über den Rasen Rollen, sich dabei das Gesicht halten, obwohl er am Bein getroffen wurde, meist noch die anscheinend schmerzhaften, fast zum Tode führenden, Stellen wechseln von links nach rechts und oben nach unten, um dann gleich wieder Aufzustehen und weiter zu rennen. ICH BIN DER CADMINISCHDRÄDÖR |
SMario Mitglied Konstrukteur/Designer
Beiträge: 114 Registriert: 31.03.2005 FSC Celsius Workstation CPU: Pentium 4 3.20GHz Speicher: 2.00GB RAM Grafik: Quadro FX 1400 Monitor: FSC P20-2 OS: Windows XP SP2 UG: NX4.0.2.2
|
erstellt am: 21. Feb. 2007 11:30 <-- editieren / zitieren --> Unities abgeben:
Hallo isegal, Zitat: Original erstellt von isegal: Hi mario,J ganz genau, das doofe ist das die module bei mir nicht so greifen wie ich das wollte *grübel*
Wie meinst du das? Zitat: Diese textboxen sind eine Idee die ich so mal in den Raum gestellt hatte, das kuriose ist nur das es mit Macros ohne texte super funktioniert sobald du aber den code startest spinnt die NXhuman an??? keine ahnung was das sein soll
Sorry, ich versteh' das auch nicht. Kannst du es mal anders umschreiben, was passiert. Ich schrieb ja, dass das Journal für NX4 ist, also Probleme nicht ausgeschlossen sind... Ciao Mario
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 21. Feb. 2007 11:38 <-- editieren / zitieren -->
Ok vergiss was ich gerade geschrieben habe, das war bullshit hatte etwas anders noch am laufen im hintergrund viel mir gerade auf. Ich habe das ganze nun mal auf meine Versuchszeichnung angewandt.
Die Eingabaufforderung ist super so habe ich mir das vorgestellt gehabt. Nun ist es aber so das danach nix passiert. *grübel* Meine Schrift taucht nicht auf . Die layer habe ich dahingehend geändert gehabt. Ich denke es fehlt der zusatz das der layer der mit "D" als beispiel ausgewählt wird auch auf der zeichnung erscheint, kann das sein ------------------ Rundballvergewaltiger ( Fußballer) sollten für den Oskar nominiert werden. Am besten in der Gruppe Stunt. Den kein Stuntmann der Welt kann so durch die Luft fliegen, dabei schreien wie eine Sau beim Metzger, dazu Kilometer weit über den Rasen Rollen, sich dabei das Gesicht halten, obwohl er am Bein getroffen wurde, meist noch die anscheinend schmerzhaften, fast zum Tode führenden, Stellen wechseln von links nach rechts und oben nach unten, um dann gleich wieder Aufzustehen und weiter zu rennen.
ICH BIN DER CADMINISCHDRÄDÖR [Diese Nachricht wurde von isegal am 21. Feb. 2007 editiert.] |
SMario Mitglied Konstrukteur/Designer
Beiträge: 114 Registriert: 31.03.2005 FSC Celsius Workstation CPU: Pentium 4 3.20GHz Speicher: 2.00GB RAM Grafik: Quadro FX 1400 Monitor: FSC P20-2 OS: Windows XP SP2 UG: NX4.0.2.2
|
erstellt am: 21. Feb. 2007 12:35 <-- editieren / zitieren --> Unities abgeben:
Hallo isegal, Zitat: [...] Nun ist es aber so das danach nix passiert. *grübel*Meine Schrift taucht nicht auf . Die layer habe ich dahingehend geändert gehabt. Ich denke es fehlt der zusatz das der layer der mit "D" als beispiel ausgewählt wird auch auf der zeichnung erscheint, kann das sein
Also im Code (Select Case...) wird abgefragt, was in der Textbox eingegeben wird. Alles was nicht D,E,F oder I ist, wird als Fehler betrachtet und es müsste eine Messagebox auftauchen. Passiert das nicht? Ich hatte zum Testen einfach im Drafting eine Zeichnung angelegt mit vier Layern 11,12,13 und 14 und jeweils eine Text Deutsch, Englisch etc angelegt in den entsprechenden Layern und es hat wunderbar funktioniert... Ciao Mario
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 21. Feb. 2007 12:50 <-- editieren / zitieren -->
dann mache ich was falsch. ich erstelle mal einen und poste es hier. vieleicht liegt es am nx3 ------------------ Rundballvergewaltiger ( Fußballer) sollten für den Oskar nominiert werden. Am besten in der Gruppe Stunt. Den kein Stuntmann der Welt kann so durch die Luft fliegen, dabei schreien wie eine Sau beim Metzger, dazu Kilometer weit über den Rasen Rollen, sich dabei das Gesicht halten, obwohl er am Bein getroffen wurde, meist noch die anscheinend schmerzhaften, fast zum Tode führenden, Stellen wechseln von links nach rechts und oben nach unten, um dann gleich wieder Aufzustehen und weiter zu rennen. ICH BIN DER CADMINISCHDRÄDÖR |
SMario Mitglied Konstrukteur/Designer
Beiträge: 114 Registriert: 31.03.2005 FSC Celsius Workstation CPU: Pentium 4 3.20GHz Speicher: 2.00GB RAM Grafik: Quadro FX 1400 Monitor: FSC P20-2 OS: Windows XP SP2 UG: NX4.0.2.2
|
erstellt am: 21. Feb. 2007 13:03 <-- editieren / zitieren --> Unities abgeben:
Hallo isegal, ich habe den Teil für die Layerumschaltung aus UG direkt mit der Record-Funktion erhalten. Vielleicht mal damit anfangen und schauen, was evtl. für Unterschiede auftauchen. Ich habe halt nur die Textbox (NXInputBox) und die Abfrage (Select Case...) selbst hinzugefügt. Ciao Mario
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 21. Feb. 2007 13:09 <-- editieren / zitieren -->
Hi das ist das was ich versucht habe. die record box gab mir gar keine Ausgabe in dem Fall irgendwas war/ist da verbogen. So hab den Fehler gefunden. Und zwar war bei meinem ersten test Part der Work layer verbogen und daurch kam es zum abbruch nun geht es soweit. Ich dank dir dafür, jetzt werde ich mich um die lösung bemühen die mir das ganze noch schmakhafter macht. Nämlich Text eingeben können und absetzen wo man braucht und das es aufm Layer gleich ist. Muss nur meine record funktion zum laufen bringen
------------------ Rundballvergewaltiger ( Fußballer) sollten für den Oskar nominiert werden. Am besten in der Gruppe Stunt. Den kein Stuntmann der Welt kann so durch die Luft fliegen, dabei schreien wie eine Sau beim Metzger, dazu Kilometer weit über den Rasen Rollen, sich dabei das Gesicht halten, obwohl er am Bein getroffen wurde, meist noch die anscheinend schmerzhaften, fast zum Tode führenden, Stellen wechseln von links nach rechts und oben nach unten, um dann gleich wieder Aufzustehen und weiter zu rennen. ICH BIN DER CADMINISCHDRÄDÖR [Diese Nachricht wurde von isegal am 21. Feb. 2007 editiert.] |
SMario Mitglied Konstrukteur/Designer
Beiträge: 114 Registriert: 31.03.2005 FSC Celsius Workstation CPU: Pentium 4 3.20GHz Speicher: 2.00GB RAM Grafik: Quadro FX 1400 Monitor: FSC P20-2 OS: Windows XP SP2 UG: NX4.0.2.2
|
erstellt am: 21. Feb. 2007 14:04 <-- editieren / zitieren --> Unities abgeben:
Hallo isegal, also viel Hoffnung würde ich mir da nicht machen, die Record-Fuktion unterstützt nicht wirklich viele Funktionen. Besonders Export und Drucken war ein Krampf bis das mal einigermaßen lief. Jetzt habe ich eine "Make Fake Metric Thread Dimension" Funktion geschrieben, die aus einem Zylinder-Maß ein Gewindebemaßung macht, und zwar für das gerade selektierte Maß bzw. Maße also geht auch gleich zehn Maße auf einmal umzuwandeln. Naja, das nur mal so am Rande. Ansonsten noch viel Spass mit den Journals Mario
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 21. Feb. 2007 14:59 <-- editieren / zitieren -->
Hi Mrio, joah das habe ich schon bemerkt aber es hilft mir teile zusammen zusuchen. Ich habe nun auch den code zusammen wie ich text auf eine zeichnung bekomme. -Leider aber immer im Nullpunkt, ohne die möglichkeit ihn abzusetzen -und ich krieg keine textbox rein das ich text einfügen kann aber ich schaffe es ihn gleich auf den layer zu schieben ' NX 3.0.5.3 ' Journal created by weim1131 on Wed Feb 21 14:53:50 2007 W. Europe Standard Time Option Strict Off Imports System Imports NXOpen Module NXJournal Sub Main Dim theSession As Session = Session.GetSession() ' ---------------------------------------------- ' Menu: Insert->Annotation... ' ---------------------------------------------- Dim session_UndoMarkId1 As Session.UndoMarkId session_UndoMarkId1 = theSession.SetUndoMark(Session.MarkVisibility.Invisible, "Create Annotation") Dim annotations_LetteringPreferences1 As Annotations.LetteringPreferences annotations_LetteringPreferences1 = theSession.Parts.Work.Annotations.Preferences.GetLetteringPreferences() Dim annotations_UserSymbolPreferences1 As Annotations.UserSymbolPreferences annotations_UserSymbolPreferences1 = theSession.Parts.Work.Annotations.NewUserSymbolPreferences(Annotations.UserSymbolPreferences.SizeType.ScaleAspectRatio, 1.0, 1.0) Dim stringArray1(0) As String stringArray1(0) = "test" Dim point3d1 As Point3d = New Point3d(0.0, 0.0, 0.0) Dim annotations_Note1 As Annotations.Note annotations_Note1 = theSession.Parts.Work.Annotations.CreateNote(stringArray1, point3d1, AxisOrientation.Horizontal, annotations_LetteringPreferences1, annotations_UserSymbolPreferences1) theSession.SetUndoMarkVisibility(session_UndoMarkId1, "Create Annotation", Session.MarkVisibility.Visible) Dim point3d2 As Point3d = New Point3d() annotations_Note1.AnnotationOrigin = point3d2 Dim integer1 As Integer integer1 = theSession.UpdateManager.DoUpdate(session_UndoMarkId1) Dim session_UndoMarkId2 As Session.UndoMarkId session_UndoMarkId2 = theSession.SetUndoMark(Session.MarkVisibility.Invisible, "Create Annotation") Dim stringArray2(0) As String stringArray2(0) = "test" Dim point3d3 As Point3d = New Point3d(0.0, 0.0, 0.0) Dim annotations_Note2 As Annotations.Note annotations_Note2 = theSession.Parts.Work.Annotations.CreateNote(stringArray2, point3d3, AxisOrientation.Horizontal, annotations_LetteringPreferences1, annotations_UserSymbolPreferences1) annotations_LetteringPreferences1.Dispose() annotations_UserSymbolPreferences1.Dispose() Dim integer2 As Integer integer2 = theSession.UpdateManager.AddToDeleteList(annotations_Note2) Dim integer3 As Integer integer3 = theSession.UpdateManager.DoUpdate(session_UndoMarkId2) theSession.DeleteUndoMark(session_UndoMarkId2, "Create Annotation") ' ---------------------------------------------- ' Menu: Tools->Journal->Stop ' ---------------------------------------------- End Sub End Module ------------------ Rundballvergewaltiger ( Fußballer) sollten für den Oskar nominiert werden. Am besten in der Gruppe Stunt. Den kein Stuntmann der Welt kann so durch die Luft fliegen, dabei schreien wie eine Sau beim Metzger, dazu Kilometer weit über den Rasen Rollen, sich dabei das Gesicht halten, obwohl er am Bein getroffen wurde, meist noch die anscheinend schmerzhaften, fast zum Tode führenden, Stellen wechseln von links nach rechts und oben nach unten, um dann gleich wieder Aufzustehen und weiter zu rennen. ICH BIN DER CADMINISCHDRÄDÖR |
SMario Mitglied Konstrukteur/Designer
Beiträge: 114 Registriert: 31.03.2005 FSC Celsius Workstation CPU: Pentium 4 3.20GHz Speicher: 2.00GB RAM Grafik: Quadro FX 1400 Monitor: FSC P20-2 OS: Windows XP SP2 UG: NX4.0.2.2
|
erstellt am: 22. Feb. 2007 11:34 <-- editieren / zitieren --> Unities abgeben:
Hallo isegal, Zitat: Original erstellt von isegal: Hi Mrio,joah das habe ich schon bemerkt aber es hilft mir teile zusammen zusuchen. Ich habe nun auch den code zusammen wie ich text auf eine zeichnung bekomme.
Das klappt soweit auch bei mir... Zitat: -Leider aber immer im Nullpunkt, ohne die möglichkeit ihn abzusetzen
Ist klar, weil du keine Möglichkeit zur Punktabfrage eingebaut hast (bsplw. Pointconstructor...) Zitat: -und ich krieg keine textbox rein das ich text einfügen kann
Einfach die paar Zeilen Code von gestern für die NXInputBox müssten genügen. bsplw. so: Code: 'Strings fuer NXInputBox Dim prompt As String = "Bitte Anfangsbuchstabe eingeben" Dim caption As String = "Welche Sprache?" Dim initialText As String = "D"Dim nxi As NXOpenUI.NxInputBox = New NXOpenUI.NXInputBox() ufsSession.Ui.LockUgAccess(UFConstants.UF_UI_FROM_CUSTOM) Try nxi.GetInputString(prompt, caption, initialText) ufsSession.Abort.DisableAbort() Finally ufsSession.Ui.UnlockUgAccess(UFConstants.UF_UI_FROM_CUSTOM) End Try
Damit du auf den eingegeben Text zugreifen kannst, musst du die Zeile "nxi.Get..." benutzen, behandel es so. als ob es ein String wäre, also bsplw. Windows.Forms.MessageBox.Show(nxi.GetInputString(prompt, caption, initialText) das zeigt dir dann den eingegeben Text in einer MessageBox an. ABer du musst innerhalb des Try-Abschnitts bleiben, da der UG-Zugriff gesperrt ist. Ansonsten musst du eben eine String-Variable anlegen, in der du den Text zwischenspeicherst...
Zitat: aber ich schaffe es ihn gleich auf den layer zu schieben
Da habe ich irgendwie keinen ABschnitt dazu in deinem Code gefunden . Deswegen habe ich mal ein Beispiel gemacht, das folgendermaßen abläuft. 1. Textbox zur Eingabe des Textes erscheint 2. Es erscheint der Pointconstruktor um einen Punkt auszuwählen 3. Das Note wird erzeugt 4. Das erzeugte Note wird auf den Layer "dLayer" (siehe Code) verschoben 5. Der Layer dLayer wird auf Selectable gestellt. Ich habe auch nichts gefunden, das Note direkt auf einem speziellen Layer zu erzeugen. Vielleicht wenn man schon den gewünschten Layer als Work-Layer hat. Naja, vielleicht kannst du es brauchen, oder ist zumindest ein Ansatz auch im Bezug wegen der Punktabfrage:
Code:
Option Strict Off Imports System Imports NXOpenModule NXJournal Sub Main 'Auf welchen Layer soll der Text verschoben werden? Dim dLayer As Integer = 11 'Einstellungen für Textbox Dim prompt As String = "Bitte Text für Note eingeben" Dim caption As String = "Text eingeben" Dim initialText As String = "test" 'Einstellungen für Pointconstructor Dim cue As String = "Bitte Punkt für Note wählen" Dim theSession As Session = Session.GetSession() Dim workPart As Part = theSession.Parts.Work 'setze Annotation Preferences Dim annotations_LetteringPreferences1 As Annotations.LetteringPreferences annotations_LetteringPreferences1 = theSession.Parts.Work.Annotations.Preferences.GetLetteringPreferences() Dim annotations_UserSymbolPreferences1 As Annotations.UserSymbolPreferences annotations_UserSymbolPreferences1 = theSession.Parts.Work.Annotations.NewUserSymbolPreferences(Annotations.UserSymbolPreferences.SizeType.ScaleAspectRatio, 1.0, 1.0) 'Textbox für Texteingabe Dim ufsSession As NXOpen.UF.UFSession = NXOpen.UF.UFSession.GetUFSession() Dim nxi As NXOpenUI.NxInputBox = New NXOpenUI.NXInputBox() Dim stringArray1(0) As String ufsSession.Ui.LockUgAccess(NXOpen.UF.UFConstants.UF_UI_FROM_CUSTOM) Try stringArray1(0) = nxi.GetInputString(prompt, caption, initialText) ufsSession.Abort.DisableAbort() Finally ufsSession.Ui.UnlockUgAccess(NXOpen.UF.UFConstants.UF_UI_FROM_CUSTOM) End Try 'Punktauswahl über Pointconstructor Dim point_tag As NXOpen.Tag Dim base_pt(2) As Double Dim response As Integer ufsSession.Ui.LockUgAccess(NXOpen.UF.UFConstants.UF_UI_FROM_CUSTOM) Try ufsSession.Ui.PointConstruct(cue, ufsSession.Ui.PointBaseMethod.PointCursorPos, point_tag, base_pt, response) ufsSession.Abort.DisableAbort() Finally ufsSession.Ui.UnlockUgAccess(NXOpen.UF.UFConstants.UF_UI_FROM_CUSTOM) End Try Dim point3d1 As Point3d = New Point3d(base_pt(0), base_pt(1), base_pt(2)) 'Note erzeugen an selektierten Punkt erzeugen Dim annotations_Note1 As Annotations.Note annotations_Note1 = theSession.Parts.Work.Annotations.CreateNote(stringArray1, point3d1, AxisOrientation.Horizontal, annotations_LetteringPreferences1, annotations_UserSymbolPreferences1) annotations_LetteringPreferences1.Dispose() annotations_UserSymbolPreferences1.Dispose() 'Note auf dLayer verschieben Dim displayModification1 As DisplayModification displayModification1 = theSession.DisplayManager.NewDisplayModification() displayModification1.NewLayer = dLayer Dim objects1(0) As DisplayableObject Dim note1 As Annotations.Note = annotations_Note1 objects1(0) = note1 displayModification1.Apply(objects1) displayModification1.Dispose() 'Layer mit erzeugtem Note aktivieren Dim stateArray(0) As Layer.StateInfo stateArray(0).Layer = dLayer stateArray(0).State = Layer.State.Selectable workPart.Layers.ChangeStates(stateArray, True) End Sub End Module
Ansonsten noch viel Spass beim Probieren Mario
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 23. Feb. 2007 08:30 <-- editieren / zitieren -->
Hi Mario, das mit dem Layer schiebn war ne ausgabe vom record. habs nur aufgezeichnet das problem ist dabei die identifikation des textes den das proggi packen soll, was ich aber noch gelöst bekommen sollte. dein ansatz ist spitze, das mit der message box hatte ich versucht zum was Eintragen, klappte nicht, habe aber in deinem script nun den fehler bei mir gefunden.
------------------ Rundballvergewaltiger ( Fußballer) sollten für den Oskar nominiert werden. Am besten in der Gruppe Stunt. Den kein Stuntmann der Welt kann so durch die Luft fliegen, dabei schreien wie eine Sau beim Metzger, dazu Kilometer weit über den Rasen Rollen, sich dabei das Gesicht halten, obwohl er am Bein getroffen wurde, meist noch die anscheinend schmerzhaften, fast zum Tode führenden, Stellen wechseln von links nach rechts und oben nach unten, um dann gleich wieder Aufzustehen und weiter zu rennen. ICH BIN DER CADMINISCHDRÄDÖR |
Ex-Mitglied
|
erstellt am: 23. Feb. 2007 14:20 <-- editieren / zitieren -->
Hi Mario, also das script klappt super habe alles von meinem zeugs eingebunden. aber leider krieg ich die Schriftart nicht modifiziert??? hier mein text siehst du den Fehler? 'setze Annotation Preferences Dim annotations_LetteringPreferences1 As Annotations.LetteringPreferences annotations_LetteringPreferences1 = theSession.Parts.Work.Annotations.Preferences.GetLetteringPreferences() Dim annotations_UserSymbolPreferences1 As Annotations.UserSymbolPreferences annotations_UserSymbolPreferences1 = theSession.Parts.Work.Annotations.NewUserSymbolPreferences(Annotations.UserSymbolPreferences.SizeType.ScaleAspectRatio, 1.0, 1.0) Dim annotations_Lettering1 As Annotations.Lettering annotations_Lettering1.Size = 5.0 annotations_Lettering1.CharacterSpaceFactor = 1.0 annotations_Lettering1.AspectRatio = 1.0 annotations_Lettering1.LineSpaceFactor = 1.0 annotations_Lettering1.Cfw.Color = 2 annotations_Lettering1.Cfw.Font = 1 annotations_Lettering1.Cfw.Width = Annotations.LineWidth.Thick ------------------ Rundballvergewaltiger ( Fußballer) sollten für den Oskar nominiert werden. Am besten in der Gruppe Stunt. Den kein Stuntmann der Welt kann so durch die Luft fliegen, dabei schreien wie eine Sau beim Metzger, dazu Kilometer weit über den Rasen Rollen, sich dabei das Gesicht halten, obwohl er am Bein getroffen wurde, meist noch die anscheinend schmerzhaften, fast zum Tode führenden, Stellen wechseln von links nach rechts und oben nach unten, um dann gleich wieder Aufzustehen und weiter zu rennen. ICH BIN DER CADMINISCHDRÄDÖR |
SMario Mitglied Konstrukteur/Designer
Beiträge: 114 Registriert: 31.03.2005 FSC Celsius Workstation CPU: Pentium 4 3.20GHz Speicher: 2.00GB RAM Grafik: Quadro FX 1400 Monitor: FSC P20-2 OS: Windows XP SP2 UG: NX4.0.2.2
|
erstellt am: 24. Feb. 2007 15:01 <-- editieren / zitieren --> Unities abgeben:
Hallo isegal, Zitat: Original erstellt von isegal: Hi Mario,also das script klappt super habe alles von meinem zeugs eingebunden. aber leider krieg ich die Schriftart nicht modifiziert??? hier mein text siehst du den Fehler? 'setze Annotation Preferences Dim annotations_LetteringPreferences1 As Annotations.LetteringPreferences annotations_LetteringPreferences1 = theSession.Parts.Work.Annotations.Preferences.GetLetteringPreferences() Dim annotations_UserSymbolPreferences1 As Annotations.UserSymbolPreferences annotations_UserSymbolPreferences1 = theSession.Parts.Work.Annotations.NewUserSymbolPreferences(Annotations.UserSymbolPreferences.SizeType.ScaleAspectRatio, 1.0, 1.0) Dim annotations_Lettering1 As Annotations.Lettering annotations_Lettering1.Size = 5.0 annotations_Lettering1.CharacterSpaceFactor = 1.0 annotations_Lettering1.AspectRatio = 1.0 annotations_Lettering1.LineSpaceFactor = 1.0 annotations_Lettering1.Cfw.Color = 2 annotations_Lettering1.Cfw.Font = 1 annotations_Lettering1.Cfw.Width = Annotations.LineWidth.Thick
freut mich, dass es schonmal soweit funktioniert . Du hast eigentlich keinen Fehler gemacht. Du fragst ja mit "GetLetteringPreferences" die Einstellungen für den Text ab und hast auch die Einstellungen entsprechend deinen Bedürfnissen angepasst, aber wo übergibst du die Einstellungen wieder zurück an NX . Du kannst mit "SetDimensionText", "SetToleranceText", "SetAppendedText" und "SetGeneralText" jeweils für die versch. Textarten (Dimension, Appended, Tolerance und General) von NX die Einstellungen übergeben. Wenn du an deinen geposteten Code folgende Zeile einfügst kannst du besplw. die Einstellungen für General-Text übergeben:
Code: annotations_LetteringPreferences1.SetGeneralText(annotations_Lettering1)
Hier noch ein paar Ergänzungen um bsplw. den Winkel und Ausrichtung zu ändern:
Code: annotations_LetteringPreferences1.AlignmentPosition = Annotations.AlignmentPosition.MidLeft annotations_LetteringPreferences1.HorizTextJust = Annotations.TextJustification.Center annotations_LetteringPreferences1.Angle = 0.0
Ich hoffe das war verständlich und jetzt funktioniert alles. Ciao und viel Spass beim Probieren. Mario
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
SMario Mitglied Konstrukteur/Designer
Beiträge: 114 Registriert: 31.03.2005 FSC Celsius Workstation CPU: Pentium 4 3.20GHz Speicher: 2.00GB RAM Grafik: Quadro FX 1400 Monitor: FSC P20-2 OS: Windows XP SP2 UG: NX4.0.2.2
|
erstellt am: 24. Feb. 2007 15:15 <-- editieren / zitieren --> Unities abgeben:
|
Ex-Mitglied
|
erstellt am: 26. Feb. 2007 07:03 <-- editieren / zitieren -->
Hi Mario, dás mit dem text habe ich auf diese Weise gelöst, Dim annotations_LetteringPreferences1 As Annotations.LetteringPreferences annotations_LetteringPreferences1 = theSession.Parts.Work.Annotations.Preferences.GetLetteringPreferences() Dim annotations_UserSymbolPreferences1 As Annotations.UserSymbolPreferences annotations_UserSymbolPreferences1 = theSession.Parts.Work.Annotations.NewUserSymbolPreferences(Annotations.UserSymbolPreferences.SizeType.ScaleAspectRatio, 1.0, 1.0) Dim annotations_Lettering1 As Annotations.Lettering annotations_LetteringPreferences1 = theSession.Parts.Work.Annotations.Preferences.GetLetteringPreferences() annotations_Lettering1.Size = 5.0 annotations_Lettering1.CharacterSpaceFactor = 1.0 annotations_Lettering1.AspectRatio = 1.0 annotations_Lettering1.LineSpaceFactor = 1.0 annotations_Lettering1.Cfw.Color = 2 annotations_Lettering1.Cfw.Font = 1 annotations_Lettering1.Cfw.Width = Annotations.LineWidth.Thin annotations_LetteringPreferences1.SetGeneralText(annotations_Lettering1) kam ich gestern nach ein wenig tüfteln drauf *g* danke du warst nur schneller in der antwort. Sag mal zeilenumbruch amche ich doch normalerweise mit true oder false get das in NX nicht? ------------------ Rundballvergewaltiger ( Fußballer) sollten für den Oskar nominiert werden. Am besten in der Gruppe Stunt. Den kein Stuntmann der Welt kann so durch die Luft fliegen, dabei schreien wie eine Sau beim Metzger, dazu Kilometer weit über den Rasen Rollen, sich dabei das Gesicht halten, obwohl er am Bein getroffen wurde, meist noch die anscheinend schmerzhaften, fast zum Tode führenden, Stellen wechseln von links nach rechts und oben nach unten, um dann gleich wieder Aufzustehen und weiter zu rennen. ICH BIN DER CADMINISCHDRÄDÖR [Diese Nachricht wurde von isegal am 26. Feb. 2007 editiert.] |
SMario Mitglied Konstrukteur/Designer
Beiträge: 114 Registriert: 31.03.2005 FSC Celsius Workstation CPU: Pentium 4 3.20GHz Speicher: 2.00GB RAM Grafik: Quadro FX 1400 Monitor: FSC P20-2 OS: Windows XP SP2 UG: NX4.0.2.2
|
erstellt am: 26. Feb. 2007 07:40 <-- editieren / zitieren --> Unities abgeben:
Hallo isegal, Zitat: Original erstellt von isegal: Hi Mario,dás mit dem text habe ich auf diese Weise gelöst,
freut mich, dass du selbst drauf gekommen bist. Zitat: Sag mal zeilenumbruch amche ich doch normalerweise mit true oder false get das in NX nicht?
Ich versteh' nicht ganz wo du einen Zeilenumbruch einfügen willst. Meinst du mehrzeiligen Text erstellen? Porbier es mal mit "Environment.NewLine" also bsplw.: System.Windows.Forms.MessageBox.Show("Meine erste Zeile" & Environment.NewLine & "Meine zweite Zeile") "Environment.NewLine" hat aber nichts mit NX zu tun, das kommt vom .NET Framework und funktioniert so bei allen Visual Basic.NET Programmen. Ich denke aber nicht, dass es einfach wird, wenn man mehrzeiligen Text in eine NXInputBox eingeben will. Ist meiner Meinung nach eher für kurzen Text gedacht. Für sowas benutze mache ich mir immer eine neue Klasse mit einem Dialog aus .NET-Controls (mit SharpDevelop Forms Designer). Das ist aber ein bischen Arbeit. Ciao Mario
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 26. Feb. 2007 08:22 <-- editieren / zitieren -->
Hi Mario du hohlst ja mit diesen befehlen die textbox für die Texteingabe, 'Einstellungen für Textbox Dim prompt As String = "Bitte Text für Note eingeben" Dim caption As String = "Text eingeben" Dim initialText As String = "test" und definierst Sie ja hiermit Dim ufsSession As NXOpen.UF.UFSession = NXOpen.UF.UFSession.GetUFSession() Dim nxi As NXOpenUI.NxInputBox = New NXOpenUI.NXInputBox() Dim stringArray1(1) As String 'stringArray1 (1) = "test" ufsSession.Ui.LockUgAccess(NXOpen.UF.UFConstants.UF_UI_FROM_CUSTOM) Try stringArray1(0) = nxi.GetInputString(prompt, caption, initialText) ufsSession.Abort.DisableAbort() Finally ufsSession.Ui.UnlockUgAccess(NXOpen.UF.UFConstants.UF_UI_FROM_CUSTOM) End Try
Diese textbox kann aber nur eine Zeile einfügen. Ich habe nun versucht mit Multiline = true das ganze zu brechen was mir bisher aber nicht gelungen ist da ich irgendwie egal wie ich es setzte nen rootscript error become. vieleicht muss es ja nach dem befehl Dim nxi As NXOpenUI.NxInputBox = New NXOpenUI.NXInputBox() eingefügt werden
------------------ Rundballvergewaltiger ( Fußballer) sollten für den Oskar nominiert werden. Am besten in der Gruppe Stunt. Den kein Stuntmann der Welt kann so durch die Luft fliegen, dabei schreien wie eine Sau beim Metzger, dazu Kilometer weit über den Rasen Rollen, sich dabei das Gesicht halten, obwohl er am Bein getroffen wurde, meist noch die anscheinend schmerzhaften, fast zum Tode führenden, Stellen wechseln von links nach rechts und oben nach unten, um dann gleich wieder Aufzustehen und weiter zu rennen. ICH BIN DER CADMINISCHDRÄDÖR |
SMario Mitglied Konstrukteur/Designer
Beiträge: 114 Registriert: 31.03.2005 FSC Celsius Workstation CPU: Pentium 4 3.20GHz Speicher: 2.00GB RAM Grafik: Quadro FX 1400 Monitor: FSC P20-2 OS: Windows XP SP2 UG: NX4.0.2.2
|
erstellt am: 05. Mrz. 2007 10:04 <-- editieren / zitieren --> Unities abgeben:
Moin isegal, Zitat: Original erstellt von isegal: [...] Ich habe nun versucht mit Multiline = true das ganze zu brechen was mir bisher aber nicht gelungen ist da ich irgendwie egal wie ich es setzte nen rootscript error become.
Ich habe in der NX .NET-Reference nichts über eine die Möglichkeit gefunden mehr als eine Zeile in eine NXInputBox einzufügen. Ich habe mal "versucht" eine selbst zu basteln: Code: Option Strict OnImports System Imports System.Windows.Forms Imports System.IO Imports System.IO.Path Imports NXOpen Imports NXOpen.UF Imports NXOpenUI Module MultiLineTextBox Dim ufsSession As UFSession = NXOpen.UF.UFSession.GetUFSession() Dim theSession As Session = Session.GetSession() Dim workPart As Part = theSession.Parts.Work
'Einstellungen fuer NXTextBox Dim strNXTextBox() As String Dim prompt As String = "Bitte Text fuer Note eingeben" Dim caption As String = "Text eingeben" Dim initialText As String = "test" Dim stringArray1(0) As String 'Auf welchen Layer soll der Text verschoben werden? Dim dLayer As Integer = 14 'Einstellungen fuer Pointconstructor Dim cue As String = "Bitte Punkt fuer Note waehlen" Dim point_tag As NXOpen.Tag Dim base_pt(2) As Double Dim response As Integer Sub Main 'Setze Session-Variablen Dim theUI As UI = UI.GetUI() Dim response As Integer 'Pruefe ob Teil geladen If theSession.Parts.Work is Nothing Then System.Windows.Forms.MessageBox.Show("No active Part loaded.", "Result") Exit Sub End If 'Work-in-Progress Dialog deaktivieren ufsSession.Abort.DisableAbort() Try If ShowNXTextBox() = NXOpen.UF.UFConstants.UF_UI_OK Then ufsSession.Ui.LockUgAccess(NXOpen.UF.UFConstants.UF_UI_FROM_CUSTOM) Try ufsSession.Ui.PointConstruct(cue, ufsSession.Ui.PointBaseMethod.PointCursorPos, point_tag, base_pt, response) ufsSession.Abort.DisableAbort() Finally ufsSession.Ui.UnlockUgAccess(NXOpen.UF.UFConstants.UF_UI_FROM_CUSTOM) End Try If response = NXOpen.UF.UFConstants.UF_UI_OK Then Dim point3d1 As Point3d = New Point3d(base_pt(0), base_pt(1), base_pt(2)) 'Note erzeugen an selektierten Punkt erzeugen Dim annotations_Note1 As Annotations.Note Dim annotations_LetteringPreferences1 As Annotations.LetteringPreferences annotations_LetteringPreferences1 = theSession.Parts.Work.Annotations.Preferences.GetLetteringPreferences() Dim annotations_UserSymbolPreferences1 As Annotations.UserSymbolPreferences annotations_UserSymbolPreferences1 = theSession.Parts.Work.Annotations.NewUserSymbolPreferences(Annotations.UserSymbolPreferences.SizeType.ScaleAspectRatio, 1.0, 1.0) 'setze Annotation Lettering Preferences annotations_LetteringPreferences1.AlignmentPosition = Annotations.AlignmentPosition.MidLeft annotations_LetteringPreferences1.HorizTextJust = Annotations.TextJustification.Left annotations_LetteringPreferences1.Angle = 75.0 'setze Annotation Lettering Dim annotations_Lettering1 As Annotations.Lettering annotations_Lettering1.Size = 15.0 annotations_Lettering1.CharacterSpaceFactor = 0.75 annotations_Lettering1.AspectRatio = 0.75 annotations_Lettering1.LineSpaceFactor = 1.0 annotations_Lettering1.Cfw.Color = 17 annotations_Lettering1.Cfw.Font = 1 annotations_Lettering1.Cfw.Width = Annotations.LineWidth.Thick annotations_LetteringPreferences1.SetGeneralText(annotations_Lettering1) stringArray1 = strNXTextBox annotations_Note1 = theSession.Parts.Work.Annotations.CreateNote(stringArray1, point3d1, AxisOrientation.Horizontal, annotations_LetteringPreferences1, annotations_UserSymbolPreferences1) annotations_LetteringPreferences1.Dispose() annotations_UserSymbolPreferences1.Dispose() ''Note auf dLayer verschieben 'Dim displayModification1 As DisplayModification 'displayModification1 = theSession.DisplayManager.NewDisplayModification() 'displayModification1.NewLayer = dLayer ' 'Dim objects1(0) As DisplayableObject 'objects1(0) = annotations_Note1 'displayModification1.Apply(objects1) 'displayModification1.Dispose() ' ''Layer mit erzeugtem Note aktivieren 'Dim stateArray(0) As Layer.StateInfo 'stateArray(0).Layer = dLayer 'stateArray(0).State = Layer.State.Selectable 'workPart.Layers.ChangeStates(stateArray, True) Else Exit Sub End If Else Exit Sub End If Finally End Try End Sub Private Function ShowNXTextBox() As Integer 'Eingabe Dialog erstellen Dim NXTextBox As MainForm = New MainForm() Try NXTextBox.SetString() Catch End Try ufsSession.Ui.LockUgAccess(NXOpen.UF.UFConstants.UF_UI_FROM_CUSTOM) Try 'Eingabe Dialog erstellen und pruefen ob OK gedrueckt wurde... If NXTextBox.ShowDialog() = System.Windows.Forms.DialogResult.OK Then strNXTextBox = NXTextBox.GetString Return NXOpen.UF.UFConstants.UF_UI_OK Else stringArray1 = Nothing Return NXOpen.UF.UFConstants.UF_UI_CANCEL End If Finally ufsSession.Ui.UnlockUgAccess(NXOpen.UF.UFConstants.UF_UI_FROM_CUSTOM) End Try NXTextBox.Dispose() End Function Public Class MainForm Inherits System.Windows.Forms.Form
#Region " Windows Form Designer generated code " Public Sub New() MyBase.New() 'This call is required by the Windows Form Designer. InitializeComponent() 'Add any initialization after the InitializeComponent() call End Sub 'Form overrides dispose to clean up the component list. Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean) If disposing Then If Not (components Is Nothing) Then components.Dispose() End If End If MyBase.Dispose(disposing) End Sub 'Required by the Windows Form Designer Private components As System.ComponentModel.IContainer Private NXTextBox As System.Windows.Forms.TextBox Private btnOK As System.Windows.Forms.Button Private lblNXTextBox As System.Windows.Forms.Label Private btnCancel As System.Windows.Forms.Button <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent() Me.btnOK = New System.Windows.Forms.Button Me.lblNXTextBox = New System.Windows.Forms.Label Me.btnCancel = New System.Windows.Forms.Button Me.NXTextBox = New System.Windows.Forms.TextBox Me.SuspendLayout ' 'btnOK ' Me.btnOK.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right),System.Windows.Forms.AnchorStyles) Me.btnOK.FlatStyle = System.Windows.Forms.FlatStyle.System Me.btnOK.Font = New System.Drawing.Font("Tahoma", 9!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0,Byte)) Me.btnOK.Location = New System.Drawing.Point(93, 99) Me.btnOK.Name = "btnOK" Me.btnOK.Size = New System.Drawing.Size(93, 24) Me.btnOK.TabIndex = 3 Me.btnOK.Text = "OK" Me.btnOK.DialogResult = DialogResult.OK ' 'lblNXTextBox ' Me.lblNXTextBox.FlatStyle = System.Windows.Forms.FlatStyle.System Me.lblNXTextBox.Font = New System.Drawing.Font("Tahoma", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0,Byte)) Me.lblNXTextBox.Location = New System.Drawing.Point(17, 14) Me.lblNXTextBox.Name = "lblNXTextBox" Me.lblNXTextBox.Size = New System.Drawing.Size(203, 13) Me.lblNXTextBox.TabIndex = 10 Me.lblNXTextBox.Text = prompt ' 'btnCancel ' Me.btnCancel.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right),System.Windows.Forms.AnchorStyles) Me.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel Me.btnCancel.FlatStyle = System.Windows.Forms.FlatStyle.System Me.btnCancel.Font = New System.Drawing.Font("Tahoma", 9!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0,Byte)) Me.btnCancel.Location = New System.Drawing.Point(193, 99) Me.btnCancel.Name = "btnCancel" Me.btnCancel.Size = New System.Drawing.Size(93, 24) Me.btnCancel.TabIndex = 4 Me.btnCancel.Text = "Cancel" 'Me.btnCancel.DialogResult = DialogResult.Cancel ' 'NXTextBox ' Me.NXTextBox.BackColor = System.Drawing.SystemColors.Window Me.NXTextBox.Enabled = true Me.NXTextBox.Font = New System.Drawing.Font("Tahoma", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0,Byte)) Me.NXTextBox.Location = New System.Drawing.Point(17, 34) Me.NXTextBox.Name = "NXTextBox" Me.NXTextBox.ReadOnly = false Me.NXTextBox.Size = New System.Drawing.Size(272, 50) Me.NXTextBox.Multiline = true Me.NXTextBox.TabIndex = 0 ' 'MainForm ' Me.BackColor = System.Drawing.SystemColors.Control Me.ClientSize = New System.Drawing.Size(310, 132) Me.Controls.Add(Me.NXTextBox) Me.Controls.Add(Me.btnCancel) Me.Controls.Add(Me.btnOK) Me.Controls.Add(Me.lblNXTextBox) Me.Name = "MainForm" Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen Me.Text = caption Me.ResumeLayout(false) Me.PerformLayout End Sub #End Region Public Function GetString() As String() 'Return Me.NXTextBox.Text Return Me.NXTextBox.Lines End Function Public Function SetString() As String Me.NXTextBox.Text = initialText Me.NXTextBox.SelectionStart = 0 Me.NXTextBox.SelectionLength = Len(Me.NXTextBox.Text) End Function End Class Public Function GetUnloadOption(ByVal dummy As String) As Integer GetUnloadOption = UFConstants.UF_UNLOAD_IMMEDIATELY End Function End Module
Die Funktion ist ähnlich, wie die Original NXInputBox, ich habe sie einfach mal NXTextBox genannt. Komischerweise läuft das Ding total schlecht, irgendwo steckt noch ein Bug, der mir den Dialog scheinbar in manchen Situationen nicht richtig schliesst, es erscheint dann eine "Win32Exception: Klasse bereits vorhanden" , für mein Screenshot-Funktion funktionierte das bestens. Damit die Fehlermeldung nicht mehr erscheint musst du NX komplett beenden . Ein anderer Bug ist in dem kommentierten Bereich ziemlich am Ende des Codes, dort wird wie oben schon beschrieben, das erzeugte Note auf einen Layer verschoben, aber in dem neuen Code verschwinden Sie ins Nirvana . Vielleicht findest Du oder jemand Anderes meinen Denk/Codefehler. Ciao Mario
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 06. Mrz. 2007 10:49 <-- editieren / zitieren -->
Hi Mario, also bei mir passt alles in NX3 bekomme weder Fehlermeldung noch verschindet etwas im Nirvana? hab nur die texteinstellungen verändert und die Layersettings ------------------ Big Brother is watching you *grins* Der insider wird schon wissen das ER gemeint ist Grüezi |
SMario Mitglied Konstrukteur/Designer
Beiträge: 114 Registriert: 31.03.2005 FSC Celsius Workstation CPU: Pentium 4 3.20GHz Speicher: 2.00GB RAM Grafik: Quadro FX 1400 Monitor: FSC P20-2 OS: Windows XP SP2 UG: NX4.0.2.2
|
erstellt am: 06. Mrz. 2007 11:37 <-- editieren / zitieren --> Unities abgeben:
Moin isegal, Zitat: Original erstellt von isegal: Hi Mario,also bei mir passt alles in NX3 bekomme weder Fehlermeldung noch verschindet etwas im Nirvana? hab nur die texteinstellungen verändert und die Layersettings
na umso besser, bei mir kam der Fehler auch nicht jedesmal, sondern auch nur manchmal, ich weiss jedoch nicht warum . Naja, vielleicht liegt es an NX4... Ciao Mario
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 06. Mrz. 2007 13:43 <-- editieren / zitieren -->
Ich hatte eine runtime error aber der kam wohl vom nx und hatte nix mit dem tool zu tun ------------------ Big Brother is watching you *grins* Der insider wird schon wissen das ER gemeint ist Grüezi |
| Projektleiter Sonderanlagenbau / zukunftsweisende Systeme (m/w/d) | Unser Mandant ist ein Familienunternehmen, das sich auf die Herstellung, den Vertrieb, die Wartung und die Reparatur von Hebezeugen und Fördermitteln spezialisiert hat. „Beam me up! Der Weltraum – unendliche Weiten. Wir schreiben das Jahr 2024…“ und diese Weiten werden endlich, die Verkehrsdichte nimmt zu und so vertrauen die Kunden rund um den Globus auf diese hochqualitativen automatisierten Systeme im urbanen Raum.... | Anzeige ansehen | Projektmanagement |
|
MarckyMON Mitglied Programmierer
Beiträge: 35 Registriert: 07.07.2008
|
erstellt am: 23. Apr. 2009 15:34 <-- editieren / zitieren --> Unities abgeben:
|
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|