Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  NX Programmierung
  Daten aus Excel einlesen und Expression zuweisen

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:  Daten aus Excel einlesen und Expression zuweisen (4235 mal gelesen)
Matthias666
Mitglied
MB Student


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

Beiträge: 24
Registriert: 22.06.2011

erstellt am: 14. Sep. 2011 10:42    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,
ich arbeite mit Journals und hab schon wieder eine Frage: wie kann ich einer Variable in meinem Code einen Wert aus einer Excell Tabelle zuweisen?
Ich habe es mit:

Dim tgurt as Integer = ug_cell_read("C:\Users\wozma07\Documents\Mappe2.xlsx","A1")

versucht aber es erscheint die Fehlermeldung: der Name ug_cell_read wurde nicht deklariert? Auf die Funktion ug_cell_read bin ich über die Suche im Forum gestoßen. Vielleicht weiß jemand was dazu sollte für echte Programmierer eigentlich kein Problem sein für mich aber sehr 


LG Matthias

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: 14. Sep. 2011 12:43    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 Matthias666 10 Unities + Antwort hilfreich

Hallo Matthias,

in VS, auch Express, gibt's Beispiele, darunter auch was zu Excel.

Gruß, Michael

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

Matthias666
Mitglied
MB Student


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

Beiträge: 24
Registriert: 22.06.2011

erstellt am: 15. Sep. 2011 09:27    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,
ich habe es doch weiterhin mit einem alten Codeschnippsel von Dir versucht und es hat mittlerweile geklappt. Also falls noch jemand mal so ein Problem hat einfach unter Tools->Expression einen "zuveraendernderAusdruck" Ausdruck definieren und aus Zelle A1 einen Wert zuweisen.

LG Matthias

' NX 7.5.4.4
' Journal created by wozma07 on Wed Sep 14 10:24:10 2011 Mitteleuropäische Sommerzeit
'
Option Strict Off
Imports System
Imports NXOpen

Module NXJournal
Sub Main

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

Dim displayPart As Part = theSession.Parts.Display


Dim xls_name as String = "C:\Users\wozma07\Documents\Mappe2.xlsx"
Dim tab_name as String = "Tabelle1"
Dim cell_name as String = "A1"


' ----------------------------------------------
'  Menu: Tools->Expression...
' ----------------------------------------------
Dim markId1 As Session.UndoMarkId
markId1 = theSession.SetUndoMark(Session.MarkVisibility.Visible, "Expression")

Dim expression1 As Expression = CType(workPart.Expressions.FindObject("zuveraendernderAusdruck"), Expression)

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

workPart.Expressions.EditWithUnits(expression1, unit1, "ug_cell_read(""" & xls_name & """, """ & tab_name & "!" & cell_name & """)")


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


End Sub
End Module

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

Matthias666
Mitglied
MB Student


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

Beiträge: 24
Registriert: 22.06.2011

erstellt am: 31. Okt. 2011 11: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


DDERequest.txt

 
Hallo,
ich bins nochmal. Bezogen auf obiges Problem kann ich jetzt expressions aus dem Excel zuweisen. Ich sollte aber noch einen Wert aus dem Excel haben welchen ich nicht als Expression zuweisen will sonder anhand dessen entschieden wird ober das Skript weiterläuft oder abgebrochen wird (bzw. dieses eine Teil übersprungen wird). Mit ug_cell_read klappt es nicht.
Anschließend habe ich es mit einem DDE Request versucht klappt aber zumindest bei mir auch nicht (siege Codeschnippsel im Anhang)

Wird DDE generell nicht unterstützt oder fehlt da noch eine Bibliothek o.ä.?

Wie könnte ich sonst noch auf Excel zugreifen?

Wie kann ich eingentlich die Hilfe für NXOpen ansehen? Unter Automation -->NXOpen Programmers guide -->Open for .net kann ich ein File downloaden, öffnen aber es enthält nur Überschriften keinen Inhalt? Woher kann ich die Hilfe sonst noch bekommen?

vielen Dank für schnelle Hilfe! 

LG Matthias

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

ThomasZwatz
Ehrenmitglied V.I.P. h.c.
cadadmin



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

Beiträge: 5397
Registriert: 19.05.2000

(10-2022)
---------------------------------------------
[stable]
NX2007(2027.3701) + TC13.3.0.3, RAC +AWC6.0.3
SingleSite 4Tier, DocMgt, Client4Office, MRO, ReqMgt, SchedMgt, T4S, TcVis Mockup, TcSSO, Multi-CAD
BCT-Inspector Neutral v22R2
---------------------------------------------
[testing]
NX2007(2027.3701) + TC13.3.0.3, RAC +AWC6.0.3
BCT-Inspector Neutral v22R2
@M7720 Win10 (1909)

erstellt am: 31. Okt. 2011 14:30    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 Matthias666 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von Matthias666:
...Wie kann ich eingentlich die Hilfe für NXOpen ansehen? Unter Automation -->NXOpen Programmers guide -->Open for .net kann ich ein File downloaden, öffnen aber es enthält nur Überschriften keinen Inhalt? ....

Du sprichst von net_ref.chm ?
Wenn du da nicht alles siehst, ist das IMHOIn my humble oppinion (Meiner Meinung nach) eine (lokale) Windows- Einstellungssache.
Die NX Hilfe beschreibt das aber eh genau ....

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

ThomasZwatz
Ehrenmitglied V.I.P. h.c.
cadadmin



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

Beiträge: 5397
Registriert: 19.05.2000

erstellt am: 31. Okt. 2011 14: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 Matthias666 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von Matthias666:
.... Ich sollte aber noch einen Wert aus dem Excel haben welchen ich nicht als Expression zuweisen will sonder anhand dessen entschieden wird ober das Skript weiterläuft oder abgebrochen wird (bzw. dieses eine Teil übersprungen wird). Mit ug_cell_read klappt es nicht.
....

Was geht denn nicht ?

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

Matthias666
Mitglied
MB Student


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

Beiträge: 24
Registriert: 22.06.2011

erstellt am: 02. Nov. 2011 08: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


NXOpenAPIRef.png

 
Hallo,

ja von dieser Datei rede ich. Ich kann Sie nach dem Download zwar öffnen Sie scheint aber außer Überschriften keinen Inhalt zu haben :-(

Siehe auch anbei den Screenshot im Word.
Wenn es sich nur um eine Einstellungssache handelt werd ich Google und den Admin wohl mal konsultieren müssen.

Danke!
Gruß
Matthias

Nachtrag: Möglicherweise liegts am Firefox mein Admin konnte es mit Opera öffnen mit dem Firefox aber nicht...

[Diese Nachricht wurde von Matthias666 am 02. Nov. 2011 editiert.]

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: 02. Nov. 2011 11: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 Matthias666 10 Unities + Antwort hilfreich

Hallo Matthias,

die net-ref kannst Du direkt öffnen, dazu braucht's keinen Browser. Such' sie mal mit dem Explorer. Müsste für NX 7.5 eine Größe von ~71 MB haben.

Neben ug_cell_read gibt's m.W. noch ein ug_excel_read. Bei beiden dürfte der Datentyp der ausgelesenen Zelle entscheidend für das Ergebnis sein. Ansonsten hilft das oben schon genannte Excel- Beispiel in den VS- Samples.

Gruß, Michael

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

Matthias666
Mitglied
MB Student


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

Beiträge: 24
Registriert: 22.06.2011

erstellt am: 02. Nov. 2011 11:43    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,

ja das direkte öffnen führt zum gleichen Ergebnis. Ich sehe alle Überschriften aber sie enthalten keinen Inhalt... ev. bin ich einfach zu blöd dafür. Mhm mit ug_cell_read hat es nicht geklappt insofern hät ich gerne mal in die Doku geblickt (das hätte wohl schon öfters geholfen).

Ich möchte lediglich einen der vielen Excel Werte aus welchen mein Teil verändert und neu abgespeichert wird für eine If Entscheidung auslesen. Danke für den Tip mit ug_excel_read und dem Datentyp werde das wohl versuchen!

LG Matthias

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

Nurbs
Mitglied



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

Beiträge: 29
Registriert: 26.05.2004

erstellt am: 04. Nov. 2011 23: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 Nur für Matthias666 10 Unities + Antwort hilfreich

Hallo Matthias,
kopiere die Hilfe mal auf ein lokales Laufwerk. Dann sollte sie gehen.
Gruß
Nurbs

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

Matthias666
Mitglied
MB Student


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

Beiträge: 24
Registriert: 22.06.2011

erstellt am: 14. Nov. 2011 08:48    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,
ja das mit dem lokalen Speichern und/oder direktes Öffnen führt zu obigem Ergebnis. Ich kann die Datei öffnen aber sie enthält nur Überschriften.
Laut NX Hilfe sollte ich die Datei ins nxopen_net_ref Verzeichnis kopieren aber das konnte ich noch nicht finden. Danke soweit!

LG Matthias

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

Matthias666
Mitglied
MB Student


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

Beiträge: 24
Registriert: 22.06.2011

erstellt am: 14. Nov. 2011 09: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

Juhu jetzt gehts.

Also auch der Admin (ein anderer) konnte die Datei nicht öffnen. Wir verwenden Windows 7 64bit. Wir haben die Datei dann auf einem Stick gespeichert und am Rechner der Sekretärin (Windows XP 32bit) erfolgreich geöffnet. Die selbe Datei konnte dann vom Stick ohne verändern auch auf unseren Rechnern geöffnet werden....
tja klingt komisch war aber so (auch der Admin kann es sich nicht erklären)

LG Matthias

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

Matthias666
Mitglied
MB Student


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

Beiträge: 24
Registriert: 22.06.2011

erstellt am: 15. Nov. 2011 16:23    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 kann zwar mittlerweile die Dokumentation öffnen aber die ist nicht so nützlich ich finde z.B. nicht mal Befehle die ich bereits verwendet habe...(ug_cell_read z.B.)

Ich versuche (ich muss!) immer noch einen einzelnen Wert aus Excel auslesen und diesen dann weiterverarbeiten (If Entscheidung usw...). Hat niemand ein Codeschnippsel wie ich an einen einzel Wert kommen kann? Ich versuchte es (in starker Anlehnung an ein altes Beispiel von mseufert) folgendermaßen:

'
Option Strict Off
Imports System
Imports NXOpen

Module NXJournal
Sub Main

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


Dim expr_name As String = "read_cell_value"
Dim xls_name As String = "C:\Users\wozma07\Documents\Uebungen\Versuche\Testteil3\Mappe1.xlsx"
Dim tab_name As String = "Tabelle1"
Dim cell_name As String = "A1"

Dim expr_str As String = expr_name & " = ug_cell_read(""" &xls_name & """,""" &tab_name & "!" & cell_name &""")"
Dim expr_object As Expression = workPart.Expressions.CreateExpression("String" , expr_str)
Dim part_name As String = expr_object.StringValue
workPart.Expressions.Delete(expr_object)

Dim Zahl As Integer = CStr(part_name)
MsgBox(Zahl)

End Sub
End Module

aber das funktioniert überhaupt nicht. Ich konnte zumindest einmal ein Wort auslesen aber seit diesem einen Versuch erscheint immer The specified Expression Variable already exists. Das mit CStr() ist nur weil ich anschließend eine Zahl auslesen wollte aber es funktioniert nicht.
Weiß irgend jemand was? Ich habe eine author Lizenz aber kann keine kompilierbaren Programme schreiben (mit 64bit Version funktioniert das nicht). Die Visual Studio (VS Express 2010) hat mich auch nicht weitergebracht. DDE Requests werden wohl auch nicht unterstützt das habe ich auch schon versucht...

LG Matthias

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



Ingenieur TGA / HKLS (m/w/d)
Die besten Köpfe für die unterschiedlichsten Aufgaben zu finden sowie Menschen und Technologien zu verbinden, und zwar täglich aufs Neue - dafür schätzen unsere Kunden FERCHAU. Unterstütze uns: als ambitionierte:r Kolleg:in, der:die wie wir Technologien auf die nächste Stufe bringen möchte. Wir realisieren spannende Projekte für namhafte Kunden im Anlagenbau und überzeugen täglich mit fundierter Expertise und fachlichem Know-how....
Anzeige ansehenProjektmanagement
Matthias666
Mitglied
MB Student


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

Beiträge: 24
Registriert: 22.06.2011

erstellt am: 16. Nov. 2011 15: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

Hat sich erledigt,

LG Matthias

Option Strict Off
Imports System
Imports NXOpen

Module NXJournal
Sub Main

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


Dim expr_name As String = "Zahl"
Dim xls_name As String = "C:\Users\wozma07\Documents\Uebungen\Versuche\Testteil3\Mappe1.xlsx"
Dim tab_name As String = "Tabelle1"
Dim cell_name As String = "A1"

Dim expr_str As String = expr_name & " = ug_cell_read(""" &xls_name & """,""" &tab_name & "!" & cell_name &""")"
Dim expr_object As Expression = workPart.Expressions.CreateExpression("Integer" , expr_str)
Dim zahlenwert As Integer = expr_object.IntegerValue
workPart.Expressions.Delete(expr_object)


MsgBox(zahlenwert)

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