Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  NX Programmierung
  Journal aus Journal starten

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:  Journal aus Journal starten (1720 mal gelesen)
Kaichi
Mitglied



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

Beiträge: 26
Registriert: 07.11.2013

NX 8.5.2.3
Catia V5R19

erstellt am: 02. Dez. 2013 13:35    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

Hi Zusammen,

ich habe ein fertiges Journal dass nach einem Punkt fragt und nach Benutzereingabe (Auswahl eines Punktes im Grafikbereich durch den Benutzer) einen weiteren Punkt assoziativ darauf erstellt.

Außerdem habe ich ein Journal dass eine Windows-Form öffnet. In der Form ist ein Button.
Bei drücken des Buttons soll die Punkterfassung gestartet werden.

Genau das funktioniert aber leider nicht.

Setze ich die beiden Codes folgendermaßen zusammen öffnet sich zwar die Punkterfassung aber ich kann keine Eingabe machen. NX hängt sich einfach auf.


Code:
   
[...]
Private Sub Specify_Point_Click(sender As Object, e As EventArgs) Handles Specify_Point.Click

       
Dim theSession As Session = Session.GetSession()
Dim workPart As Part = theSession.Parts.Work
Dim displayPart As Part = theSession.Parts.Display
Dim ufs As UFSession = UFSession.GetUFSession()
Dim response2 As Selection.Response = Nothing
Dim pnt2() As Double = {0.0, 0.0, 0.0}
Dim selectedObjects() As NXObject

response2 = select_a_Point(selectedObjects)
response2 = Selection.Response.Cancel

Dim sda As Point
For Each sda In selectedObjects
ufs.Curve.AskPointData(sda.Tag, pnt2)

MsgBox("Point specified" & vbNewLine & _
"X=" & pnt2(0) & " Y=" & pnt2(1) & " Z="& pnt2(2))

Dim nullXform As Xform = Nothing
Dim test_point As Point
test_point = workPart.Points.CreatePoint(sda, nullXform, SmartObject.UpdateOption.WithinModeling)
test_point.SetVisibility(SmartObject.VisibilityOption.Visible)
Dim nullFeatures_Feature As Features.Feature = Nothing
Dim pointFeatureBuilder1 As Features.PointFeatureBuilder
pointFeatureBuilder1 = workPart.BaseFeatures.CreatePointFeatureBuilder(nullFeatures_Feature)
pointFeatureBuilder1.Point = test_point
Dim nXObject1 As NXObject
nXObject1 = pointFeatureBuilder1.Commit()
Dim Name_test_point as string = "TEST_POINT"
nxObject1.SetName(Name_test_point)
pointFeatureBuilder1.Destroy()

Next


End Sub

  Function select_a_Point(ByRef selectedObjects As NXObject())

      Dim ui As UI = ui.GetUI()
      Dim mask(0) As Selection.MaskTriple
    With mask(0)
            .Type = UFConstants.UF_point_type
            .Subtype = UFConstants.UF_point_subtype
            .SolidBodySubtype = 0
    End With

      Dim resp As Selection.Response = _
      ui.SelectionManager.SelectObjects("Specify Point", "Specify Point", _
      Selection.SelectionScope.AnyInAssembly, _
      Selection.SelectionAction.ClearAndEnableSpecific, _
      False, False, mask, selectedObjects)

  End Function
[...]


Unabhängig voneinander funktionieren beide Journals wie gewünscht.

Hat jemand eine Idee wie man das geschickt lösen könnte?

Danke und Gruß
Kai

[Diese Nachricht wurde von Kaichi am 02. Dez. 2013 editiert.]

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

Kaichi
Mitglied



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

Beiträge: 26
Registriert: 07.11.2013

NX 8.5.2.3
Catia V5R19

erstellt am: 05. Dez. 2013 15:26    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

Ich versuchs nochmal anders zu beschreiben.

Das ist ein fertiges Journal:

Code:
Option Strict Off
Imports System
Imports NXOpen
Imports NXOpen.UF

Module Create_Associative_Point_on_Point

    Sub Main()

        Dim theSession As Session = Session.GetSession()
Dim workPart As Part = theSession.Parts.Work
Dim displayPart As Part = theSession.Parts.Display
        Dim ufs As UFSession = UFSession.GetUFSession()
        Dim response2 As Selection.Response = Nothing
        Dim pnt2() As Double = {0.0, 0.0, 0.0}
        Dim selectedObjects() As NXObject

        response2 = select_a_Point(selectedObjects)
response2 = Selection.Response.Cancel

        Dim sda As Point
        For Each sda In selectedObjects
ufs.Curve.AskPointData(sda.Tag, pnt2)

        MsgBox("Point specified" & vbNewLine & _
"X=" & pnt2(0) & " Y=" & pnt2(1) & " Z="& pnt2(2))

Dim nullXform As Xform = Nothing
Dim test_point As Point
test_point = workPart.Points.CreatePoint(sda, nullXform, SmartObject.UpdateOption.WithinModeling)
test_point.SetVisibility(SmartObject.VisibilityOption.Visible)
Dim nullFeatures_Feature As Features.Feature = Nothing
Dim pointFeatureBuilder1 As Features.PointFeatureBuilder
pointFeatureBuilder1 = workPart.BaseFeatures.CreatePointFeatureBuilder(nullFeatures_Feature)
pointFeatureBuilder1.Point = test_point
Dim nXObject1 As NXObject
nXObject1 = pointFeatureBuilder1.Commit()
Dim Name_test_point as string = "TEST_POINT"
nxObject1.SetName(Name_test_point)
pointFeatureBuilder1.Destroy()

Next


    End Sub

    Function select_a_Point(ByRef selectedObjects As NXObject())

Dim ui As UI = ui.GetUI()
        Dim mask(0) As Selection.MaskTriple
        With mask(0)
            .Type = UFConstants.UF_point_type
            .Subtype = UFConstants.UF_point_subtype
            .SolidBodySubtype = 0
        End With

        Dim resp As Selection.Response = _
        ui.SelectionManager.SelectObjects("Specify Point", "Specify Point", _
            Selection.SelectionScope.AnyInAssembly, _
    Selection.SelectionAction.ClearAndEnableSpecific, _
            False, False, mask, selectedObjects)

    End Function


End Module


Es fragt den Benutzer nach einem Punkt und erzeugt dann auf diesem Punkt einen neuen Punkt.

Ich möchte dass dieses Journal über einen Button in einer Windows Form gestartet wird. Also zum Beispiel so:

Code:
Option Strict Off
Imports System
Imports System.IO
Imports System.Collections.Generic
Imports System.Math
Imports System.Windows.Forms
Imports NXOpen
Imports NXOpenUI
Imports NXOpen.UF
Imports NXOpen.Selection
Imports NXOpen.Assemblies
Imports NXOpen.Drawings

Module Module1 

    Dim theSession As Session = Session.GetSession()
    Public workPart As Part = theSession.Parts.Work


    Sub Main() 

        Dim myDialog As New Dialog1
        myDialog.ShowDialog()

    End Sub 


    Public Function GetUnloadOption(ByVal dummy As String) As Integer

'Unloads the image when the NX session terminates
        GetUnloadOption = NXOpen.Session.LibraryUnloadOption.AtTermination

    End Function 

End Module

Public Class Dialog1
Private Sub Specify_Point_Click(sender As Object, e As EventArgs) Handles Specify_Point.Click

'Journal zur Punkterzeugung (siehe oben) startet

End Sub
End Class


Füge ich den Code aber einfach ein öffnet sich zwar das Fenster zur Punkterfassung (Journal siehe ganz oben) aber "aktiv" bleibt die Windows Form (Journal weiter unten).
Ich kann die Buttons in der Windows Form drücken allerdings nicht die Buttons in der Punkterfassung.

Ich denke also es fehlt irgendwie der Befehl der das "aktive Fenster" wechselt?

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



Werkstudent (m/w/d) im Bereich Qualität

Knorr-Bremse ist Weltmarktführer für Bremssysteme und ein führender Anbieter sicherheitskritischer Subsysteme für Schienen- und Nutzfahrzeuge. Die Produkte von Knorr-Bremse leisten weltweit einen maßgeblichen Beitrag zu mehr Sicherheit und Energieeffizienz auf Schienen und Straßen.

ARBEITSORT: Berlin / Deutschland | UNTERNEHMEN: Knorr-Bremse Systeme für Schienenfahrzeuge ...

Anzeige ansehenQualitätsmanagement
jo.sch
Mitglied



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

Beiträge: 66
Registriert: 29.01.2013

NX7.5.5.4 MP2
NX8.5.3.3
SAP PLM mit Ectr

erstellt am: 09. Dez. 2013 08:04    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 Kaichi 10 Unities + Antwort hilfreich

Nur als schneller Tipp, wonach du suchen könntest.
Es gibt modale und nicht modale Fenster. Dialoge sind IIRC immer modal.
modal heißt, ich bin immer Vordergrund und muss erst "abgearbeitet" oder geschlossen werden, bis andere Fenster berücksichtigt werden können.
Du müsstest also schauen, ob du dein Fenster "nicht modal" (kein Dialog) hinbekommst.
Ob das mit NX/Open und Journal möglich ist weiß ich leider nicht...

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