Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  NX Programmierung
  Punkt mit Namen erstellen NX Journal

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:  Punkt mit Namen erstellen NX Journal (5834 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: 19. Nov. 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

Hi Zusammen,

ich habe folgendes NX Journal erstellt:

______________________________________________________________
Option Strict Off 
Imports System 
Imports NXOpen 
Imports System.Windows.Forms 

Module Module1 

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

    Sub Main() 

'Punkt erstellen

Dim unit1 As Unit = CType(workPart.UnitCollection.FindObject("MilliMeter"), Unit)
Dim expression1 As Expression
expression1 = workPart.Expressions.CreateSystemExpressionWithUnits("p1_x=10", unit1)
Dim scalar1 As Scalar
scalar1 = workPart.Scalars.CreateScalarExpression(expression1, Scalar.DimensionalityType.None, SmartObject.UpdateOption.WithinModeling)
Dim expression2 As Expression
expression2 = workPart.Expressions.CreateSystemExpressionWithUnits("p1_y=20", unit1)
Dim scalar2 As Scalar
scalar2 = workPart.Scalars.CreateScalarExpression(expression2, Scalar.DimensionalityType.None, SmartObject.UpdateOption.WithinModeling)
Dim expression3 As Expression
expression3 = workPart.Expressions.CreateSystemExpressionWithUnits("p1_z=30", unit1)
Dim scalar3 As Scalar
scalar3 = workPart.Scalars.CreateScalarExpression(expression3, Scalar.DimensionalityType.None, SmartObject.UpdateOption.WithinModeling)
Dim point1 As Point
point1 = workPart.Points.CreatePoint(scalar1, scalar2, scalar3, SmartObject.UpdateOption.WithinModeling)
point1.SetVisibility(SmartObject.VisibilityOption.Visible)

'Punkt im Strukturbaum anzeigen

Dim nullFeatures_Feature As Features.Feature = Nothing
Dim pointFeatureBuilder1 As Features.PointFeatureBuilder
pointFeatureBuilder1 = workPart.BaseFeatures.CreatePointFeatureBuilder(nullFeatures_Feature)
pointFeatureBuilder1.Point = point1
Dim nXObject1 As NXObject
nXObject1 = pointFeatureBuilder1.Commit()
pointFeatureBuilder1.Destroy()

    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
______________________________________________________________

Es erstellt einen Punkt bei X=10 Y=20 Z=30 und zeigt diesen im Strukturbaum an.

Ich möchte diesen Punkt aber umbenennen.

Allerdings wird im Strukturbaum standardmäßig POINT(103) angezeigt.
Da dieser Punkt je nach Startmodell oder auch wenn ein Punkt vor starten des Journals vom Benutzer erstellt wird einen anderen Namen (zum Beispiel POINT(104) oder POINT(001)) bekommt, funktioniert folgender Code zum umbenennen nicht:

Dim pointFeature1 As Features.PointFeature = CType(workPart.Features.FindObject("POINT(103)"), Features.PointFeature)
pointFeature1.SetName("beispiel")

Gibt es eine Möglichkeit den Punkt umzubenennen ohne diesen vorher direkt auszuwählen? Also ohne das FindObject("POINT(103)")

PS: Habe es auch schon mit
Dim point1 As Point
point1 = workPart.Points.CreatePoint(scalar1, scalar2, scalar3, SmartObject.UpdateOption.WithinModeling)
point1.SetVisibility(SmartObject.VisibilityOption.Visible)
point1.SetName("Beispiel")

versucht. Allerdings ohne Erfolg  

edit: programmiert in VB.Net ------ NX 8.5

[Diese Nachricht wurde von Kaichi am 19. Nov. 2013 editiert.]

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

Andreas NX
Mitglied
Student


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

Beiträge: 27
Registriert: 09.09.2013

CAD: NX 8.0.3.4
VB.Net: Visual Studio 2010 Express

erstellt am: 19. Nov. 2013 17:34    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

Hallo Kaichi,

versuch mal folgendes:

'---------------------------------------------------------
Dim pointFeature1 As NXObject = CType(nXObject1, NXObject)
pointFeature1.SetName("beispiel")
'---------------------------------------------------------

Grüße, Andreas

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: 19. Nov. 2013 18:07    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

Danke Andreas, der Punkt wird nun umbenannt in "POINT(103)"beispiel""
Ändert also schon mal den Formelementnamen, das Problem ist dadurch aber leider noch nicht gelöst  

[Diese Nachricht wurde von Kaichi am 19. Nov. 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: 20. Nov. 2013 09: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

Auch wenn ich den Punkt manuell umbenenne in "beispiel" und der Punkt nirgends mehr als "POINT(103)" zu sehen ist muss ich ihn im Journal als POINT(103) ansprechen wenn ich ihn weiter verwenden will 

Da muss es doch eine Möglichkeit geben 

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

hg-obdf
Mitglied
Konstrukteur


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

Beiträge: 78
Registriert: 30.07.2008

NX7.5
Visual Basic 2010 Express
Eclipse

erstellt am: 20. Nov. 2013 09:40    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

Hab da ein Schnippsel für dich ausgegraben->
vielleicht hilfts dir weiter.
MFG
----------------------
Imports System
Imports System.IO
Imports System.Collections
Imports System.Text
Imports System.Windows.Forms
Imports System.Collections.Generic
Imports NXOpen
Imports NXOpen.UF
Imports NXOpen.Selection
Imports NXOpen.Drawings
Imports NXOpen.Utilities
Imports NXOpen.Assemblies
Imports NXOpen.Features


Public Class Punkt

    Inherits System.Windows.Forms.Form
    Dim sess As Session = Session.GetSession
    Dim ufs As UFSession = UFSession.GetUFSession
    Dim ui As UI = ui.GetUI
    Dim lw As ListingWindow = sess.ListingWindow
    Dim wp As Part = sess.Parts.Work
    Dim dp As Part = sess.Parts.Display
    Dim nObjects As Integer = 0
    Dim typeCount As New Hashtable

    Friend WithEvents ListBox1 As System.Windows.Forms.ListBox


    Public Shared Sub Main()
        Dim punkt As New Punkt
    End Sub

    Private Sub New()
        MyBase.new()
        Me.InitializeComponent()
        If check() Then
            Me.ShowDialog()
        End If
    End Sub


    Private Function check() As Boolean
        If wp Is Nothing Then
            MessageBox.Show("Sie haben noch kein Teil geöffnet!", "Information", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
            Return False
        End If

        ''modulabfrage
        'Dim module_id As Integer = 0
        'ufs.UF.AskApplicationModule(module_id)

        ''modulabfrage
        'If module_id <> UFConstants.UF_APP_DRAFTING Then
        '    MessageBox.Show("Nicht in der Zeichnungsableitung!", "Information", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
        '    Return False

        'End If

        Return True

    End Function


    Private Sub btn_exit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_exit.Click
        Me.Close()

    End Sub


    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        Point()
    End Sub

    Private Sub Point()
   
        For Each feat As Feature In wp.Features
            If TypeOf feat Is NXOpen.Features.PointFeature Then
                ListBox1.Items.Add("Punkt gefunden")
                If feat.Name Is Nothing Then
                    feat.SetName("Beispiel")
                End If
                For Each ex As Expression In feat.GetExpressions
                    ListBox1.Items.Add(ex.Name + "=" + ex.Value.ToString)
                Next
            End If

        Next
    End Sub


    Public Function GetUnloadOption(ByVal dummy As String) As Integer

        GetUnloadOption = NXOpen.Session.LibraryUnloadOption.Immediately

    End Function

#Region "VS Designer Code"
    'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen.
    <System.Diagnostics.DebuggerNonUserCode()> _
    Protected Overrides Sub Dispose(ByVal disposing As Boolean)

        Try
            If disposing AndAlso components IsNot Nothing Then
                components.Dispose()
            End If
        Finally
            MyBase.Dispose(disposing)
        End Try
    End Sub

    'Wird vom Windows Form-Designer benötigt.
    Private components As System.ComponentModel.IContainer

    Friend WithEvents btn_exit As System.Windows.Forms.Button
    Friend WithEvents Button3 As System.Windows.Forms.Button


    'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich.
    'Das Bearbeiten ist mit dem Windows Form-Designer möglich. 
    'Das Bearbeiten mit dem Code-Editor ist nicht möglich.
    <System.Diagnostics.DebuggerStepThrough()> _
    Private Sub InitializeComponent()
        Me.btn_exit = New System.Windows.Forms.Button()
        Me.Button3 = New System.Windows.Forms.Button()
        Me.ListBox1 = New System.Windows.Forms.ListBox()
        Me.SuspendLayout()
        '
        'btn_exit
        '
        Me.btn_exit.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
        Me.btn_exit.Location = New System.Drawing.Point(55, 287)
        Me.btn_exit.Name = "btn_exit"
        Me.btn_exit.Size = New System.Drawing.Size(128, 48)
        Me.btn_exit.TabIndex = 0
        Me.btn_exit.Text = "Beenden"
        Me.btn_exit.UseVisualStyleBackColor = True
        '
        'Button3
        '
        Me.Button3.Location = New System.Drawing.Point(24, 27)
        Me.Button3.Name = "Button3"
        Me.Button3.Size = New System.Drawing.Size(239, 48)
        Me.Button3.TabIndex = 36
        Me.Button3.Text = "Features anzeigen"
        Me.Button3.UseVisualStyleBackColor = True
        '
        'ListBox1
        '
        Me.ListBox1.FormattingEnabled = True
        Me.ListBox1.Location = New System.Drawing.Point(24, 81)
        Me.ListBox1.Name = "ListBox1"
        Me.ListBox1.Size = New System.Drawing.Size(239, 160)
        Me.ListBox1.TabIndex = 37
        '
        'Punkt
        '
        Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
        Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
        Me.ClientSize = New System.Drawing.Size(279, 366)
        Me.Controls.Add(Me.ListBox1)
        Me.Controls.Add(Me.Button3)
        Me.Controls.Add(Me.btn_exit)
        Me.Location = New System.Drawing.Point(50, 50)
        Me.Name = "Punkt"
        Me.Text = "Test"
        Me.TopMost = True
        Me.ResumeLayout(False)

    End Sub
#End Region


End Class

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: 20. Nov. 2013 10:24    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

Auch Dir Danke hg-obdf aber leider liest dieses Programm nur die Koordinaten der Punkte aus kann diese aber nicht umbenennen.

Im Notfall könnte ich bei der Weiterverwendung der Punkte einfach neue deklarieren und auf die Koordinaten in den Expressions (liegen dort ja sowieso) verweisen.
dim beispiel as 3dpoint (... etc.
Problematisch wird es dann aber bei Kurven (Arc) oder Flächen 

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

hg-obdf
Mitglied
Konstrukteur


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

Beiträge: 78
Registriert: 30.07.2008

NX7.5
Visual Basic 2010 Express
Eclipse

erstellt am: 20. Nov. 2013 10: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 Kaichi 10 Unities + Antwort hilfreich

Sorry- ersetzt folgendes Sub-
Dann sollte es funktionieren.
---------------------------------
Private Sub Point()
   
        For Each feat As Feature In wp.Features
            If TypeOf feat Is NXOpen.Features.PointFeature Then
                ListBox1.Items.Add("Punkt gefunden")

                feat.SetName("Test")

                For Each ex As Expression In feat.GetExpressions
                    ListBox1.Items.Add(ex.Name + "=" + ex.Value.ToString)
                Next
            End If
        Next
    End Sub

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: 20. Nov. 2013 11:02    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

Danke, leider ändert auch dieses Journal den Namen nur von
POINT(103) zu POINT(103)"Beispiel"
Der Punkt muss weiterhin intern mit POINT(103) angesprochen werden 

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

hg-obdf
Mitglied
Konstrukteur


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

Beiträge: 78
Registriert: 30.07.2008

NX7.5
Visual Basic 2010 Express
Eclipse

erstellt am: 20. Nov. 2013 11:24    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

OK-
letzter Versuch zum Ansprechen eines internen Punktes ?!?
Über JournalIdentifier
Mit diesem Punkt kannst du weiterarbeiten.
x-y-z ändern, Namen ändern etc.

-----------------------------------------

Private Sub Point()
   
        For Each feat As Feature In wp.Features
            If TypeOf feat Is NXOpen.Features.PointFeature Then
                ListBox1.Items.Add("Punkt gefunden")

                ListBox1.Items.Add(feat.JournalIdentifier)

                For Each ex As Expression In feat.GetExpressions
                    ListBox1.Items.Add(ex.Name + "=" + ex.Value.ToString)
                Next

            End If
        Next
    End Sub

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: 20. Nov. 2013 11:58    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

Erneut Danke, allerdings benennt auch dieses Programm nichts um sondern gibt nur Koordinaten und Namen aus.

Ich würde den Vorgang ja einfach aufzeichnen und so weiter kommen allerdings gelingt es mir ja nichtmal außerhalb eines Journals den Punkt richtig umzubenennen.

Mit RMT -> Rename ändert sich ja auch nur der "angezeigte Name" von POINT(103) zu POINT(103)"Beispiel" soll ein Journal den Punkt auswählen muss es in beiden Fällen auf POINT(103) verweisen und das "Beispiel" ist völlig irrelevant.

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

Andreas NX
Mitglied
Student


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

Beiträge: 27
Registriert: 09.09.2013

CAD: NX 8.0.3.4
VB.Net: Visual Studio 2010 Express

erstellt am: 20. Nov. 2013 12: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 Nur für Kaichi 10 Unities + Antwort hilfreich

Zitat:
Mit RMT -> Rename ändert sich ja auch nur der "angezeigte Name" von POINT(103) zu POINT(103)"Beispiel"...

Ich denke, wenn es sich manuell schon nicht ändern lässt, wird es schwierig werden das ganze programmtechnisch zu lösen. Aber ich mag mich irren.

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: 20. Nov. 2013 13:07    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

Hallo zusammen,

wenn man sich klar macht, daß es sich bei einem PointFeature um zwei Objekte handelt und diese auch im Programm deutlich unterscheidet, sollte sich eine Lösung finden.
Dazu interaktiv den Cursor auf den Punkt setzen und abwarten, bis das QuickPick kommt. Dann den Punkt, nicht das Feature auswählen und die Eigenschaften aufrufen. Da lassen sich jetzt zwei Namen vergeben, einer für den Punkt, der andere für's Feature. Selbst ohne Test würd' ich mal behaupten, daß sich beide über den jeweiligen Namen wieder finden. Beim Feature könnte evtl. ein anderer Timestamp dazwischenfunken.

Gruß, Michael

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: 20. Nov. 2013 13:51    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

Danke Michael, also ich hab jetzt einfach mal zwei Punkte erzeugt und man kann tatsächlich zwei Namen für einen Punkt vergeben halt einmal für den Punkt und einmal für das Feature.
Ich hab den Punkt1 TEST1 und Punkt2 TEST2 genannt
Ich hab das PunktFeature1 aaa und PunktFeature2 bbb genannt.

Dann eine Linie zwischen beiden Punkten unter "Journal-Record" erzeugt und geschaut welche Punkte er sich sucht...

...es ist nach wie vor nur der Name POINT(103) für Punkt1 und POINT(104) für Punkt2 ansprechbar.

Habe auch versucht das ganze durch TEST1/TEST2/aaa/bbb zu ersetzen, aber nichts hilft.

edit: Im Strukturbaum heißen die Punkte auch immernoch POINT(103)"aaa" und POINT(104)"bbb"

Es muss doch eine Möglichkeit geben folgendes Exemplarisches Beispiel zu programmieren:
Eine WIndows User Form öffnet sich und fragt nach Koordinaten eines Punktes, einem Durchmesser und einer Höhe.
Nach Eingabe der Daten wird automatisch ein Punkt bei diesen Koordinaten erzeugt.
Eine Kreis-Kurve wird auf diesem Punkt erzeugt.
Eine extrudierte Fläche wird aus dieser Kreis-Kurve erzeugt.

Mein Programm tut dies alles auch aber sobald vor ausführen des Programms ein Punkt vom Benutzer erzeugt wird funktioniert es nicht mehr.
Weil dann eben der vom Programm erzeugte Punkt einen anderen Namen erhält und die Kreis-Kurve nicht mehr weiß auf welchen Punkt sie sich setzen soll/sich auf den falschen Punkt setzt.

[Diese Nachricht wurde von Kaichi am 20. Nov. 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: 21. Nov. 2013 11:08    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

Um die Kreis-Kurve auf dem Punkt zu erzeugen nutze ich momentan diesen Befehl um den Punkt auszuwählen:
Dim pointFeature1 As Features.PointFeature = CType(workPart.Features.FindObject("POINT(103)"), Features.PointFeature)

Vielleicht gibt es ja alternative Lösungen um den Punkt zu greifen und das Problem behebt sich somit?

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

Andreas NX
Mitglied
Student


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

Beiträge: 27
Registriert: 09.09.2013

CAD: NX 8.0.3.4
VB.Net: Visual Studio 2010 Express

erstellt am: 21. Nov. 2013 14:17    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

Wenn du deinen Punkt über die Koordinaten erzeugst brauchst du nicht den Weg über "workPart.Features.FindObject("POINT(103)")" zu gehen.

Stattdessen machst du folgendes:

Code:
Dim pt1(2) As Double

'Koordinaten x,y,z
pt1(0) = 0  'x-Koordinate
pt1(1) = 0  'y-Koordinate
pt1(2) = 0  'z-Koordinate

Dim ArcCenter3D As Point3d = New Point3d(pt1(0), pt1(1), pt1(2))
Dim ArcCenterP As Point = workPart.Points.CreatePoint(ArcCenter3D)

.
.
.
.

'Übergabe des Punktes an die Funktion zur Erzeugung des Kreises:
associativeArcBuilder1.MidPoint.Value = ArcCenterP


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: 21. Nov. 2013 15:33    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

Funktioniert aber nur mit double und somit nur wenn ich die Koordinaten in Zahlenform ins Journal tippe oder?

Die Eingabe der Koordinaten soll ja vom Benutzer innerhalb einer Windows Form erfolgen, sich also auch je nach Eingabe ändern können.

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

Andreas NX
Mitglied
Student


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

Beiträge: 27
Registriert: 09.09.2013

CAD: NX 8.0.3.4
VB.Net: Visual Studio 2010 Express

erstellt am: 21. Nov. 2013 15:58    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

Du willst doch die Koordinaten (x,y,z) manuell in einer WindowsForm eingeben. Dann musst du die jeweiligen Textfelder der WindowsForm mit den entsprechenden Punkt-Variablen (x,y,z) im Quellcode verknüpfen. Oder verstehe ich deine Frage falsch?

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: 21. Nov. 2013 16:39    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

Richtig,

Habe noch nicht ausprobiert ob es funktioniert wenn ich direkt mit der Textbox der WinForm verknüpfe. Also z.B.:
pt1(0)=Textbox_X_Koordinate.text

aber die Daten müssten aus Tools-Expressions ausgelesen werden da diese noch für spätere Berechnungen notwendig sind bzw. auch die Punkte auf berechnete Koordinaten gelegt werden.

ich müsste also
pt1(0)=P1_x_koordinate
machen, wobei
P1_x_koordinate ein Ausdruck ist der zum Beispiel aus zwei anderen Ausdrücken berechnet wird.

Und wenn ich das so mache gibt es nur Fehlermeldungen weil es kein double ist.

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: 22. Nov. 2013 08:36    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

Zitat:
Original erstellt von Andreas NX:

Code:

'Übergabe des Punktes an die Funktion zur Erzeugung des Kreises:
associativeArcBuilder1.MidPoint.Value = ArcCenterP




Das war der entscheidende Hinweis, die Punkteerstellung konnte bleiben wie sie ist.
NX hatte bei der Aufzeichnung einen point5 erzeugt und diesen mit POINT(103) verknüpft.
Mit einem direkten Verweis von
associativeArcBuilder1.MidPoint.Value = MeinPunkt
funktioniert es nun wunderbar .... auch an anderen Workstations

Ich danke Dir vielmals für deine Hilfe Andreas 

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: 27. Nov. 2013 16:22    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

Die Kruven-Erstellung mit Punkten funktioniert wie gesagt nun.

Doch nun sollen aus diesen Kurven, Flächen extrudiert werden. Und hier besteht das gleiche Problem.

Hier mal der Programmteil:


'Dieser Teil wählt zwei Punkte aus (point_plain_front / point_plain_rear) und erzeugt eine Linie zwischen diesen beiden.

Dim nullFeatures_AssociativeLine As Features.AssociativeLine = Nothing
Dim associativeLineBuilder1 As Features.AssociativeLineBuilder
associativeLineBuilder1 = workPart.BaseFeatures.CreateAssociativeLineBuilder(nullFeatures_AssociativeLine)
associativeLineBuilder1.StartPointOptions = Features.AssociativeLineBuilder.StartOption.Point
associativeLineBuilder1.EndPointOptions = Features.AssociativeLineBuilder.EndOption.Point
associativeLineBuilder1.Limits.StartLimit.LimitOption = GeometricUtilities.CurveExtendData.LimitOptions.AtPoint
associativeLineBuilder1.Limits.EndLimit.LimitOption = GeometricUtilities.CurveExtendData.LimitOptions.AtPoint
Dim nullXform_plane_curve As Xform = Nothing
Dim point_plane_curve_1 As Point
point_plane_curve_1 = workPart.Points.CreatePoint(point_plain_front, nullXform_plane_curve, SmartObject.UpdateOption.WithinModeling)
associativeLineBuilder1.StartPoint.Value = point_plane_curve_1
associativeLineBuilder1.StartPointOptions = Features.AssociativeLineBuilder.StartOption.Point
Dim point_plane_curve_2 As Point
point_plane_curve_2 = workPart.Points.CreatePoint(point_plane_rear, nullXform_plane_curve, SmartObject.UpdateOption.WithinModeling)
associativeLineBuilder1.EndPoint.Value = point_plane_curve_2
associativeLineBuilder1.EndPointOptions = Features.AssociativeLineBuilder.EndOption.Point
Dim nXObject3 As NXObject
nXObject3 = associativeLineBuilder1.Commit()
Dim Name_curve_plane as string = "CURVE_2D_PLANE"
nxObject3.SetName(Name_curve_plane)
associativeLineBuilder1.Destroy()

' Dieser Teil erstellt eine extrudierte Fläche aus dieser oben erstellten Kurve. Start und Ende ist jeweils (+/-) die Hälfte des Ausdrucks "Width"

Dim nullFeatures_Feature2 As Features.Feature = Nothing
Dim extrudeBuilder2 As Features.ExtrudeBuilder
extrudeBuilder2 = workPart.Features.CreateExtrudeBuilder(nullFeatures_Feature2)
Dim section2 As Section
section2 = workPart.Sections.CreateSection(0.02413, 0.0254, 0.5)
extrudeBuilder2.Section = section2
extrudeBuilder2.AllowSelfIntersectingSection(True)
extrudeBuilder2.DistanceTolerance = 0.0254
extrudeBuilder2.BooleanOperation.Type = GeometricUtilities.BooleanOperation.BooleanType.Create
extrudeBuilder2.BooleanOperation.Type = GeometricUtilities.BooleanOperation.BooleanType.Create
Dim smartVolumeProfileBuilder2 As GeometricUtilities.SmartVolumeProfileBuilder
smartVolumeProfileBuilder2 = extrudeBuilder2.SmartVolumeProfile
smartVolumeProfileBuilder2.OpenProfileSmartVolumeOption = False
smartVolumeProfileBuilder2.CloseProfileRule = GeometricUtilities.SmartVolumeProfileBuilder.CloseProfileRuleType.Fci
section2.DistanceTolerance = 0.0254
section2.ChainingTolerance = 0.02413
section2.SetAllowedEntityTypes(Section.AllowTypes.OnlyCurves)
Dim features2(0) As Features.Feature
Dim associativeLine1 As Features.AssociativeLine = CType(workPart.Features.FindObject("LINE(105)"), Features.AssociativeLine)
features2(0) = associativeLine1
Dim curveFeatureRule3 As CurveFeatureRule
curveFeatureRule3 = workPart.ScRuleFactory.CreateRuleCurveFeature(features2)
section2.AllowSelfIntersection(True)
Dim rules3(0) As SelectionIntentRule
rules3(0) = curveFeatureRule3
Dim line1 As Line = CType(associativeLine1.FindObject("CURVE 1"), Line)
Dim nullNXObject As NXObject = Nothing
Dim helpPoint3 As Point3d = New Point3d(272.641823553503, -1.4210854715202e-014, -200.0)
section2.AddToSection(rules3, line1, nullNXObject, nullNXObject, helpPoint3, Section.Mode.Create, False)
Dim unit3 As Unit
unit3 = extrudeBuilder2.Offset.StartOffset.Units
Dim origin12 As Point3d = New Point3d(0.0, 0.0, 0.0)
Dim vector12 As Vector3d = New Vector3d(0.0, 1.0, 0.0)
Dim direction12 As Direction
direction12 = workPart.Directions.CreateDirection(origin12, vector12, SmartObject.UpdateOption.WithinModeling)
extrudeBuilder2.Direction = direction12
workPart.Expressions.EditWithUnits(extrudeBuilder2.Limits.StartExtend.Value, unit3, "-width/2")
extrudeBuilder2.Limits.StartExtend.Value.RightHandSide = "-width/2"
workPart.Expressions.EditWithUnits(extrudeBuilder2.Limits.EndExtend.Value, unit3, "width/2")
extrudeBuilder2.Limits.EndExtend.Value.RightHandSide = "width/2"
extrudeBuilder2.FeatureOptions.BodyType = GeometricUtilities.FeatureOptions.BodyStyle.Sheet
extrudeBuilder2.ParentFeatureInternal = False
Dim feature2 As Features.Feature
feature2 = extrudeBuilder2.CommitFeature()
Dim Name_plane_surface as string = "PLANE"
feature2.SetName(Name_plane_surface)
extrudeBuilder2.Destroy()


Soweit funktioniert das Programm.
Sobald ich aber Line(105) gegen CURVE_2D_PLANE ersetze, funktioniert es nicht mehr.
Anscheinend heißt die Kurve also noch nicht richtig CURVE_2D_PLANE?

Wie kann ich der Kurve den Namen richtig zuweisen und bei der Flächenerzeugung darauf zugreifen?

Schonmal Danke im voraus.

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

wladlaw
Mitglied
Ingenieur


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

Beiträge: 72
Registriert: 11.01.2012

erstellt am: 28. Nov. 2013 00:05    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


Ausschnitt.txt

 
Hallo Kaichi,

Du könntest direkt die erzeugte Objekte benutzen und deren Eigenschaften. Man muss aber Objekt-Typ beachten und richtige Cast-Operation an der richtige Stelle einsetzen. Journal-Name ist vom System und passt zu diesem Zweck nicht so richtig. Objekt-Benennung, wenn es um einen Journal geht, ist nicht notwendig.  Schau mal den beigefügten und angepassten Code-Ausschnitt.

Den Code habe ich nicht getestet...

------------------
Gruß
Wladimir

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



Technischer Zeichner (m/w/d) für die Halbleiterindustrie

Innovative Produkte für namhafte Kunden in einem zukunftsorientierten, internatio­nalen Markt ? das ist SÜSS MicroTec. Die SÜSS-Gruppe mit Hauptsitz in Garching bei München entwickelt und fertigt Prozesslösungen für die Mikrostruktur­anwendungen in der Halbleiter­industrie und verwandten Märkten ? ein Bereich, in dem SÜSS MicroTec über 75 Jahre Erfahrung verfügt. Unser Portfolio umfasst ein breites ...

Anzeige ansehenTechnischer Zeichner, Bauzeichner
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: 28. Nov. 2013 08:50    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

Klasse, Danke Dir.

Funktioniert einwandfrei und der HelpPoint kann auch Problemlos 0/0/0 sein 

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