Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  NX Programmierung
  Parameter/expression mit Journal erstellen

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:  Parameter/expression mit Journal erstellen (1631 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: 07. Nov. 2013 09: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 Zusammen,

ich möchte ein Journal schreiben das folgendes können soll:

Eine InputBox öffnet sich und fragt nach dem Durchmesser.
Ich gebe den Wert für den Durchmesser ein.
NX erstellt einen Parameter (Tools/Expressions) mit dem Namen "Diameter" und dem Wert den ich vorher in der InputBox eingegeben habe.

Momentan habe ich das hier:

Das problem liegt denke ich an der fett und kursiv markierten Stelle.

' NX 8.5.1.3

Option Strict Off
Imports System
Imports NXOpen

Module NXJournal
Sub Main (ByVal args() As String)

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

Dim displayPart As Part = theSession.Parts.Display

' ----------------------------------------------
'  Menu: Tools->Expression...
' ----------------------------------------------

Dim message, title, defaultValue, myValue As String

message = "Dateneingabe"
title = "Durchmesser angeben"
defaultValue = "20"
myValue = InputboX(message, title, defaultValue)
If myValue is "" Then myValue = defaultValue

Dim markId1 As Session.UndoMarkId
markId1 = theSession.SetUndoMark(Session.MarkVisibility.Visible, "Expression")

Dim unit1 As Unit = CType(workPart.UnitCollection.FindObject("MilliMeter"), Unit)

Dim expression1 As Expression
expression1 = workPart.Expressions.CreateWithUnits("diameter=myValue", unit1)

Dim markId2 As Session.UndoMarkId
markId2 = theSession.SetUndoMark(Session.MarkVisibility.Invisible, "Update Expression Data")

Dim nErrs1 As Integer
nErrs1 = theSession.UpdateManager.DoUpdate(markId2)

theSession.DeleteUndoMark(markId2, "Update Expression Data")

Dim markId3 As Session.UndoMarkId
markId3 = theSession.SetUndoMark(Session.MarkVisibility.Invisible, "Update Expression Data")

Dim nErrs2 As Integer
nErrs2 = theSession.UpdateManager.DoUpdate(markId3)

theSession.DeleteUndoMark(markId3, "Update Expression Data")

' ----------------------------------------------
'  Menu: Tools->Journal->Stop Recording
' ----------------------------------------------

End Sub
End Module

setze ich an der fett kursiven Stelle statt diameter=myValue ein diameter=50 ein erstellt er den Parameter aber eben immer mit konstant 50mm 

Jemand eine Idee?

PS: Entwicklungsumgebung folgt erst in ein paar Tagen.

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: 07. Nov. 2013 10:28    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

Nachtrag:

So wie ich das sehe versucht er einen Parameter zu erstellen der "Diameter" heißt und dessen Formel "myValue" (wortwörtlich) ist.
Da die Einheit in [mm] ist gehts dann nicht da der Wert des Parameters "myValue mm" ist.

Die eigentliche Kernfrage ist also denke ich:
Wie bekomme ich es hin dass nicht "myValue" eingetragen wird sondern der Inhalt der variablen myValue?

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

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



Consultant (m/w/d) Warehouse Planning & Development

Job ID 1191 / Vollzeit/ Teilzeit: Vollzeit / Job Kategorie: Kontraktlogistik / Supply Chain Management / Befristet/Unbefristet: Unbefristet

?Logistics is people business" - dieser Leitsatz macht deutlich, dass die Mitarbeitenden für DACHSER der Schlüsselfaktor für den Unternehmenserfolg sind. Gemeinsam mit rund 33....

Anzeige ansehenProzessmanagement
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: 07. Nov. 2013 11: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

Habe einen Weg gefunden. Fürs Archiv:

' NX 8.5.1.3

Option Strict Off
Imports System
Imports NXOpen

Module NXJournal
Sub Main (ByVal args() As String)

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

Dim displayPart As Part = theSession.Parts.Display

' ----------------------------------------------
'  Menu: Tools->Expression...
' ----------------------------------------------

Dim message, title, defaultValue, myValue As String
Dim diameter1 As string = "diameter"

message = "Dateneingabe"
title = "Durchmesser angeben"
defaultValue = "20"
myValue = InputboX(message, title, defaultValue)
If myValue is "" Then myValue = defaultValue

Dim markId1 As Session.UndoMarkId
markId1 = theSession.SetUndoMark(Session.MarkVisibility.Visible, "Expression")

Dim unit1 As Unit = CType(workPart.UnitCollection.FindObject("MilliMeter"), Unit)

Dim expression1 As Expression
expression1 = workPart.Expressions.CreateWithUnits(diameter1 & "=" & myValue, unit1)

Dim markId2 As Session.UndoMarkId
markId2 = theSession.SetUndoMark(Session.MarkVisibility.Invisible, "Update Expression Data")

Dim nErrs1 As Integer
nErrs1 = theSession.UpdateManager.DoUpdate(markId2)

theSession.DeleteUndoMark(markId2, "Update Expression Data")

Dim markId3 As Session.UndoMarkId
markId3 = theSession.SetUndoMark(Session.MarkVisibility.Invisible, "Update Expression Data")

Dim nErrs2 As Integer
nErrs2 = theSession.UpdateManager.DoUpdate(markId3)

theSession.DeleteUndoMark(markId3, "Update Expression Data")

' ----------------------------------------------
'  Menu: Tools->Journal->Stop Recording
' ----------------------------------------------

End Sub
End Module

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