Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  NX Programmierung
  NXOPEN.NET Bemassung vorgestellter Text auswerten

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für NX
Autor Thema:  NXOPEN.NET Bemassung vorgestellter Text auswerten (1302 mal gelesen)
Jürgen.H
Mitglied
Maschb.Techniker


Sehen Sie sich das Profil von Jürgen.H an!   Senden Sie eine Private Message an Jürgen.H  Schreiben Sie einen Gästebucheintrag für Jürgen.H

Beiträge: 50
Registriert: 20.12.2002

erstellt am: 09. Jun. 2009 12:20    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo zusammen,

bin noch etwas frisch im VB.NET, habe es aber hinbekommen den vorgestellten Text einer Bemmasung neu zu setzten ( mit setbefore text ) ich kann auch mit getbefore text einen vorhanden Text erkennen, nun mein Problem, wie gehe ich mit einer Bemassugn um die gar kein vorgestellten Text hat ?? hier bekomme ich eine Fehlermeldung das die Variable nicht gefüllt werden kann, da kein Text vorhanden ist, was ja auch richtig ist, aber wie fange ich einen leeren vorgestellten Text im Vorfeld ab sodaß ich nur in eine Variable schreibe wenn auch wirklich einer vorhanden ist?? Kann mir jemand auf die Sprünge helfen ??

mfg

Jürgen

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

mseufert
Moderator
Freiberuflicher CAD/CAM Ingenieur


Sehen Sie sich das Profil von mseufert an!   Senden Sie eine Private Message an mseufert  Schreiben Sie einen Gästebucheintrag für mseufert

Beiträge: 2624
Registriert: 18.10.2005

HP Z420
WIN7 64 Win 10
UG NX6-1980
3D Printer Prusa MK2 S

erstellt am: 09. Jun. 2009 16:46    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Jürgen.H 10 Unities + Antwort hilfreich

Hallo Jürgen,

Du kannst, wie schon von Dir angedeutet, im Vorfeld prüfen und nur dann ändern, wenn ein Objekt vorhanden ist oder eventuelle Fehler mit Try/Catch abfangen. Der erste Weg ist eleganter, der zweite eher die Notlösung.

Beim Prüfen ist nun die Frage, ob ein leerer Text existiert, also ein String der Länge null (if my_str.Length = 0 then ...) oder ob gar kein Objekt existiert (if my_str is nothing then ...).

Manchmal gibt's auch Methoden in der betreffenden Klasse, die solche Bedingungen prüfen und dann i.d.R. einen Boolean zurückgeben, der sagt, ob was vorhanden ist oder nicht. Dazu wäre hilfreich zu wissen, welche Klasse(n) Du verwendest.

Gruß, Michael

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

little_ug
Mitglied
CAX/PDM Admin / PM


Sehen Sie sich das Profil von little_ug an!   Senden Sie eine Private Message an little_ug  Schreiben Sie einen Gästebucheintrag für little_ug

Beiträge: 389
Registriert: 20.03.2003

erstellt am: 09. Jun. 2009 16:47    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Jürgen.H 10 Unities + Antwort hilfreich

Hallo Jürgen,
auf der Siemens Support seite findest du folgendes:
Date:  7-APR-2008
Subject:  Sample NX Open .NET Visual Basic program : get and set appended text for selected dimension

Note:  GTAC provides programming examples for illustration only, and
assumes that you are familiar with the programming language being
demonstrated and the tools used to create and debug procedures.  GTAC
support professionals can help explain the functionality of a particular
procedure, but we will not modify these examples to provide added
functionality or construct procedures to meet your specific needs.

'
' GetAppendedText() and SetAppendedText() are new in NX5
'

Option Strict Off

Imports System
Imports NXOpen
Imports NXOpen.UI
Imports NXOpen.Utilities
Imports NXOpen.UF

Module get_and_set_appended_text_for_selected_dimension

  Dim s As Session = Session.GetSession()
  Dim ufs As UFSession = UFSession.GetUFSession()

  Sub Main()
 
      Dim dimension As NXOpen.Tag

      While select_a_dimension(dimension) = Selection.Response.Ok

        Dim dimObj As Annotations.Dimension = NXObjectManager.Get(dimension)

        Dim appendedText As NXOpen.Annotations.AppendedText = _
                                        dimObj.GetAppendedText()

        Dim lines(0) As String

        lines(0) = "This is the ABOVE text"
        appendedText.SetAboveText(lines)

        lines(0) = "This is the BEFORE text"
        appendedText.SetBeforeText(lines)

        lines(0) = "This is the BELOW text"
        appendedText.SetBelowText(lines)

        lines(0) = "This is the AFTER text"
        appendedText.SetAfterText(lines)

        dimObj.SetAppendedText(appendedText)

        ufs.Modl.Update()

        ufs.Disp.SetHighlight(dimension, 0)

      End While

  End Sub

  Function select_a_dimension(ByRef dimension As NXOpen.Tag) _
                                          As Selection.Response

      Dim message As String = "Dimension:"
      Dim title As String = "Select a dimension"
      Dim scope As Integer = UFConstants.UF_UI_SEL_SCOPE_ANY_IN_ASSEMBLY
      Dim response As Integer

      Dim view As NXOpen.Tag
      Dim cursor(2) As Double
      Dim ip As UFUi.SelInitFnT = AddressOf init_proc
      ufs.Ui.LockUgAccess(UFConstants.UF_UI_FROM_CUSTOM)

      Try
        ufs.Ui.SelectWithSingleDialog(message, title, scope, ip, _
                      Nothing, response, dimension, cursor, view)
      Finally
        ufs.Ui.UnlockUgAccess(UFConstants.UF_UI_FROM_CUSTOM)
      End Try

      If response <> UFConstants.UF_UI_OBJECT_SELECTED And _
        response <> UFConstants.UF_UI_OBJECT_SELECTED_BY_NAME Then
        Return Selection.Response.Cancel
      Else
        Return Selection.Response.Ok
      End If

  End Function

  Function init_proc(ByVal select_ As IntPtr, _
                          ByVal userdata As IntPtr) As Integer

      Dim num_triples As Integer = 1
      Dim mask_triples(0) As UFUi.Mask
      mask_triples(0).object_type = UFConstants.UF_dimension_type
      mask_triples(0).object_subtype = -1
      mask_triples(0).solid_type = 0

      ufs.Ui.SetSelMask(select_, _
                        UFUi.SelMaskAction.SelMaskClearAndEnableSpecific, _
                        num_triples, mask_triples)
      Return UFConstants.UF_UI_SEL_SUCCESS

  End Function

  Public Function GetUnloadOption(ByVal dummy As String) As Integer

      GetUnloadOption = UFConstants.UF_UNLOAD_IMMEDIATELY

  End Function

End Module

Ich hoffe das hilft...

------------------
Gruß

Michael

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

mseufert
Moderator
Freiberuflicher CAD/CAM Ingenieur


Sehen Sie sich das Profil von mseufert an!   Senden Sie eine Private Message an mseufert  Schreiben Sie einen Gästebucheintrag für mseufert

Beiträge: 2624
Registriert: 18.10.2005

HP Z420
WIN7 64 Win 10
UG NX6-1980
3D Printer Prusa MK2 S

erstellt am: 09. Jun. 2009 17:01    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Jürgen.H 10 Unities + Antwort hilfreich

O.K., damit wäre die Frage nach der verwendeten Klasse auch geklärt.   

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

mseufert
Moderator
Freiberuflicher CAD/CAM Ingenieur


Sehen Sie sich das Profil von mseufert an!   Senden Sie eine Private Message an mseufert  Schreiben Sie einen Gästebucheintrag für mseufert

Beiträge: 2624
Registriert: 18.10.2005

HP Z420
WIN7 64 Win 10
UG NX6-1980
3D Printer Prusa MK2 S

erstellt am: 10. Jun. 2009 09:18    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Jürgen.H 10 Unities + Antwort hilfreich

Hallo Jürgen,

GetAppendedText() gibt entgegen meiner ersten Annahme keinen String, sondern ein eigenes Objekt vom Typ NXOpen.Annotations.AppendedText zurück. Das wiederum enthält vier String-Arrays. Der AppendedText ist auch bei Dimensions ohne Zusatztexte vorhanden, da sind die Arrays einfach leer.
Zum Einsetzen oder Ändern von Zusatztexten muß der gewünschte Inhalt zuerst in das entsprechende Array rein, über set(above/below/before/after)Text dem AppendedText- Objekt bekannt gemacht und anschließend mit SetAppendedText an die Dimension drangehängt werden, so wie's auch im Beispiel zu sehen ist.

Gruß, Michael

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP



Produktdesigner*in

BIOTRONIK ist einer der weltweit führenden Hersteller kardio- und endovaskulärer Implantate und Katheter für Herzrhythmusmanagement, Elektrophysiologie und Vaskuläre Intervention. Als global tätiges Unternehmen mit Hauptsitz in Berlin bieten wir Spitzenlösungen auf dem neuesten Stand von Technologie und Forschung. Unser Erfolg basiert auf der Kompetenz und der ergebnisorientierten Zusammenarbeit unserer Mitarbeiter:innen....

Anzeige ansehenProduktdesign, Industriedesign
Jürgen.H
Mitglied
Maschb.Techniker


Sehen Sie sich das Profil von Jürgen.H an!   Senden Sie eine Private Message an Jürgen.H  Schreiben Sie einen Gästebucheintrag für Jürgen.H

Beiträge: 50
Registriert: 20.12.2002

erstellt am: 16. Jun. 2009 12:14    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Michael,

danke für die Infos, ich glaube mein Problem ist das es ist um ein Objekt handelt und keine "einfache" Variabel ist, werde versuchen das Objekt auszulesen und dannach die Abfrage nach gefüllt oder leer machen, dann  solte es klappen.
Das Beispiel unter GTAC hatte ich gefunden, hat mir jeoch nicht wirklich geholfen.
mfg

Jürgen

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz