| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für NX |
Autor
|
Thema: Parameter mit Journal ändern (2002 mal gelesen)
|
bhmrbt Mitglied Ingenieur
Beiträge: 14 Registriert: 31.03.2008
|
erstellt am: 31. Mrz. 2008 12:26 <-- editieren / zitieren --> Unities abgeben:
Hallo Zusammen, ich möchte einem Parameter (Expression) mit Hilfe eines Journal Programms, neuen Wert zuweisen, am bestem mehrere Werte hintereinander, so dass man sehen kann wie das Teil "wächst". Leider mit dem Journal Record funktioniert es nicht. Es werden alle Schritte aufgezeichnet nur nicht die Wertzuweisung an die Parameter. Mit dem Makro funktioniert es, aber die kann man schlecht editieren. Vom Journal verspreche ich mir mehr. Kann mir jemand da helfen. Danke im Voraus
------------------ MfG Robert Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mseufert Moderator Freiberuflicher CAD/CAM Ingenieur
Beiträge: 2624 Registriert: 18.10.2005 HP Z420 WIN7 64 Win 10 UG NX6-1980 3D Printer Prusa MK2 S
|
erstellt am: 31. Mrz. 2008 14:09 <-- editieren / zitieren --> Unities abgeben: Nur für bhmrbt
Hallo Robert, zunächst mal herzlich willkommen im Forum. Und gleich die erste Gegenfrage: Welche NX- Version hast Du ? In NX5 geht das Ändern von Expressions mit Workpart.expressions.edit(). Anschliessend braucht's noch einen Update: Session.updatemanager.doupdate(). "Workpart" und "Session" müssen zuvor definiert sein, wie das geht, siehst Du im Kopf des aufgezeichneten Journals. Gruß, Michael Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bhmrbt Mitglied Ingenieur
Beiträge: 14 Registriert: 31.03.2008
|
erstellt am: 31. Mrz. 2008 14:47 <-- editieren / zitieren --> Unities abgeben:
Hallo Michael, Ich arbeite noch mit NX3 aber habe auch NX5 zum Testen. NX5 funktioniert der Record vom Journal, aber das Ausführen klappt nicht. Es fehlen irgendwelche Dateien zum Ausführen des Journalfiles. Ich habe mit NX5 aufgezeichnet und mit NX3 laufen lassen. Es funktioniert. Mal sehen wie ich weiter komme. Vielen Dank ------------------ MfG Robert Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mseufert Moderator Freiberuflicher CAD/CAM Ingenieur
Beiträge: 2624 Registriert: 18.10.2005 HP Z420 WIN7 64 Win 10 UG NX6-1980 3D Printer Prusa MK2 S
|
erstellt am: 31. Mrz. 2008 18:37 <-- editieren / zitieren --> Unities abgeben: Nur für bhmrbt
|
andras Mitglied Student
Beiträge: 6 Registriert: 18.03.2008
|
erstellt am: 01. Apr. 2008 17:19 <-- editieren / zitieren --> Unities abgeben: Nur für bhmrbt
Hmmm, also wenn ich ihn richtig verstehe geht nur das ausführen in NX5 nicht? in NX3 funktioniert das aufgezeichnete Journal kenne mich selbst nicht so aus aber hört sich nach einer dotnet_licenz sache an hier mal ein Beispiel wie ich ein Expression ändern würde(nutze NX4): Imports NXOpen Module MAIN Public Class MainForm Public Shared Sub Main ChangeAusdruck("test","20") End Sub End Class Sub ChangeAusdruck(ByVal AusdruckNameChange As String, ByVal AusdruckWertChange As String) Dim theSession As Session = Session.GetSession() Dim workPart As Part = theSession.Parts.Work Dim ExpressionName As Expression = workPart.Expressions.FindObject(AusdruckNameChange) Dim unit1 As Unit = CType(workPart.UnitCollection.FindObject("MilliMeter"), Unit) workPart.Expressions.EditWithUnits(ExpressionName, unit1, AusdruckWertChange) Dim nErrs1 As Integer nErrs1 = theSession.UpdateManager.DoUpdate(0) End Sub End Module Wobei ich nicht ganz verstehe wie du das mit wachsen meist? Soll dein Teil sich nur Stück für Stück den Angegebenen WErt nähern?
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bhmrbt Mitglied Ingenieur
Beiträge: 14 Registriert: 31.03.2008 NX 7.5 Windows 7 HP 8570w,
|
erstellt am: 09. Apr. 2008 09:02 <-- editieren / zitieren --> Unities abgeben:
Hallo Michael, noch mal vielen Dank für die Hilfe. Sorry für späte Rückmeldung, habe erst heute in den Forum reingeschaut. Für NX 5 fehlte mir tatsächlich .Net Framework. Aber wie gesagt unter NX3 läuft es. Mit freundlichen Grüßen Robert
------------------ MfG Robert Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Testingenieur (m/w/d) | Unter der Devise ?Taking action for future generations? haben wir bei Big Dutchman seit über 80 Jahren unsere Ideen in mehr als 100 Länder transportiert ? denn die Ernährung der Welt ist unsere Profession. Unsere Hightech-Lösungen für Proteine und Pflanzen machen unsere Kunden erfolgreich und befähigen Landwirte auf der ganzen Welt zu nachhaltigerem Handeln. Kein Wunder, denn egal, ob an unserem Hauptsitz in Vechta (Niedersachsen) oder den Niederlassungen auf fünf Kontinenten: Über 3.... | Anzeige ansehen | Prozessmanagement |
|
bhmrbt Mitglied Ingenieur
Beiträge: 14 Registriert: 31.03.2008
|
erstellt am: 09. Apr. 2008 09:22 <-- editieren / zitieren --> Unities abgeben:
Hallo andras, Zitat: Wobei ich nicht ganz verstehe wie du das mit wachsen meist? Soll dein Teil sich nur Stück für Stück den Angegebenen WErt nähern?
Ja, genau das Teil soll sich Stück für Stück verändern. Ich habe alle Parameter von einer Variable abhängig gemacht. Für den Test ob die Abhängigkeiten richtig gesetzt sind muss ich die führende Variable stetig verändern können. Ich hab schon mal mit VB für BASIC programmiert. In VB.Net bin ich noch Anfänger. Also lasse ich Journal von NX automatisch aufzeichnen und versuche es an meine Anforderungen anzupassen. Zu meinem Problem habe ich folgendes erstellt. Code: Option Strict Off Imports System Imports NXOpenModule NXJournal Sub Main Dim theSession As Session = Session.GetSession() Dim workPart As Part = theSession.Parts.Work Dim displayPart As Part = theSession.Parts.Display Dim markId1 As Session.UndoMarkId markId1 = theSession.SetUndoMark(Session.MarkVisibility.Visible, "Expression") Dim expression1 As Expression = CType(workPart.Expressions.FindObject("P"), Expression) Dim markId2 As Session.UndoMarkId Dim nErrs1 As Integer Dim pWert as Single For pWert=1 To 100 Step 10 workPart.Expressions.Edit(expression1, pWert) nErrs1 = theSession.UpdateManager.DoUpdate(markId2) Next theSession.DeleteUndoMark(markId2, "Update Expression Data") End Sub End Module
Ich bin nicht sicher ob es programmtechnisch alles Ok ist, aber es funktioniert wie ich es mir vorstelle. Viele Grüße Robert
------------------ MfG Robert Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |