Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Inventor
  ilogic Excel Datei speichern und Regel aufrufen

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 Autodesk Produkte
  
PNY wird von NVIDIA zum Händler des Jahres gewählt – zum dritten Mal in Folge, eine Pressemitteilung
Autor Thema:  ilogic Excel Datei speichern und Regel aufrufen (2420 / mal gelesen)
rene7878
Mitglied



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

Beiträge: 27
Registriert: 23.05.2006

EPlan P8 2.7,
EPlan 5.70 SP1 Professional,
EPlan 5.50 SP1 Professional,
----------------------------
AutoCAD Mechanical 2018
Inventor 2018
Tenado CAD 3D 15<P>AutoCAD LT 2000
AutoCAD LT 98
----------------------------
WinXp

erstellt am: 15. Jun. 2018 10: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

Hallo Code-Junkies,

ich verzweifle ein wenig, vielleicht könnt Ihr helfen.

Ich habe ein Probleme mit ILogic 
(Im Betreff steht noch was von Regel aufrufen, man sollte den Namen auch richtig schreiben, dann Funktioniert das auch. Kann den Betreff hier nicht mehr ändern, Schade, Dann halt so).

Funktion:
*********
Ich rufe ein Datei-Öffnen-Dialog auf, Wähle eine Excel-Datei aus, Speichere diese in einer Variable (mit Pfad).
Diese Variable verknüpfe ich mit Inventor.
Rufe eine weitere Regel auf, wo ich Berechnungen und Parameterverknüpfungen festlege.

Problem:
*********
Eigentlich möchte ich, das wenn in Excel vergessen worden ist zu Speichern, das iLogic meine Excel-Datei speichert.
Damit die Importierung der Daten immer aktuell ist.
Leider macht mein Code das nicht.

****************************************
Code:
****************************************


'NAME DER REGEL: 1_Verlinkte_Exceltabelle_Ändern.iam
'BESCHREIBUNG: Code zum Austauschen der Verlinkten Excel-Tabelle in Inventor für Parameterübergabe
'Erstellt:         05.06.2018                   xxxx
'REVISION 05.06.2018 Erstausgabe  xxxx
'***************************************************


'INITIALISIERUNG STEUERDATEN
'****************************************************
Dim Abbruch_Var = 0

Dim StartVerzeichnisDatei = "P:\Inventor"
Dim ExcelSheetName = "3D-Berechnung"

'****************************************************

'DIALOG ZUM DATEI ÖFFNEN UND SPEICHERN DES PFADES IN EINER VARIABLE
'****************************************************
Dim oFileDlg As inventor.FileDialog = Nothing
InventorVb.Application.CreateFileDialog(oFileDlg)
oFileDlg.Filter = "Excel Files (*.xls;*.xlsx;*.xlsm)|*.xls;*.xlsx;*.xlsm|All Files (*.*)|*.*"
oFileDlg.DialogTitle = "Bitte Import-Datei_Auswählen"
oFileDlg.InitialDirectory = StartVerzeichnisDatei
oFileDlg.CancelError = True
On Error Resume Next
oFileDlg.ShowOpen()

If Err.Number <> 0 Then
MessageBox.Show("Abgebrochen", "Fehler")
Abbruch_Var = 1
ElseIf oFileDlg.FileName <> "" Then
selectedfile = oFileDlg.FileName
'selectedfile = Replace ( selectedfile, "\", "\\")
End If

'****************************************************


'**** H I E R **** I S T ****  D A S **** P R O B L E M

'VERKNÜFUNG EXCEL MIT PARAMETER IN INVENTOR
'****************************************************
changeOK = GoExcel.ChangeSourceOfLinked("", selectedfile)
GoExcel.Open(selectedfile, ExcelSheetName)
GoExcel.Save
GoExcel.Close
GoExcel.DisplayAlerts = False


'****************************************************

'Aktualisieren der Baugruppe mit Bauteilen
'****************************************************
RuleParametersOutput()
iLogicVb.UpdateWhenDone = True

'Messagebox über Aktualisierungsroutine erfolgreich abgeschlossen
'****************************************************
If Abbruch_Var = 0 Then
MessageBox.Show("File " & selectedfile & " Eingelesen","Status")
End If

iLogicVb.RunRule("2_Verknüpfung Parameter")

'****************************************************
'ENDE
'****************************************************

------------------
Gruß
René

[Diese Nachricht wurde von rene7878 am 15. Jun. 2018 editiert.]

[Diese Nachricht wurde von rene7878 am 18. Jun. 2018 editiert.]

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

Tacker
Mitglied
TZ, Tech. MB, Softwareentwickler


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

Beiträge: 175
Registriert: 23.09.2010

IV 2017 Pro
i7-7700K 4x4.2GHz
32GB DDR4-2400
GTX 1060 6GB DDR5

erstellt am: 18. Jun. 2018 09:45    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 rene7878 10 Unities + Antwort hilfreich

Moin  ,

Vorweg, iLogic ist nicht so meins und was du da machst hab ich noch nie getan. Dennoch versuch ich´s mal.

Wozu der Replace bei der Variablen selectedfile?
Das würde ja aus einem Pfad wie: "C:\Program Files (x86)\Autodesk"
Diesen String machen: "C:\\Program Files (x86)\\Autodesk"
Ich bezweifle dass die Syntax des Befehls GoExcel.Open(selectedfile, ExcelSheetName) den Pfad so formatiert haben will.

Hoffe das ist bereits der Fehler.

Gruß

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

rene7878
Mitglied



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

Beiträge: 27
Registriert: 23.05.2006

EPlan P8 2.7,
EPlan 5.70 SP1 Professional,
EPlan 5.50 SP1 Professional,
----------------------------
AutoCAD Mechanical 2018
Inventor 2018
Tenado CAD 3D 15<P>AutoCAD LT 2000
AutoCAD LT 98
----------------------------
WinXp

erstellt am: 18. Jun. 2018 10:44    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

Moin Moin,

da es mit einem \ nicht funktioniert hat, habe ich zwei \ verwendet.

Kenne ich so aus C#, der erkennt einen \ als Steuerzeichen, dort müssen für Pfadangeben immer \\ stehen.
Hab es einfach mal analog zu VB angenommen.

Egal beide Varianten funktionieren nicht.
Ich bekomme einfach nicht iLogic beigebracht die Excel-Tabelle zu speichern.

------------------
Gruß
René

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

rene7878
Mitglied



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

Beiträge: 27
Registriert: 23.05.2006

EPlan P8 2.7,
EPlan 5.70 SP1 Professional,
EPlan 5.50 SP1 Professional,
----------------------------
AutoCAD Mechanical 2018
Inventor 2018
Tenado CAD 3D 15<P>AutoCAD LT 2000
AutoCAD LT 98
----------------------------
WinXp

erstellt am: 18. Jun. 2018 11: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

OK,
hab den Fehler, aber keine Lösung.

1.) VB akzeptiert ein \, Replace-Routine habe ich rausgenommen.
2.) Ich blende die Meldungen von Excel aus, sehe somit nicht was er von mir will (GoExcel.DisplayAlerts = False)
3.) Ich habe die Excel-Datei geöffnet und er will unter einem anderen Name Speichern (Kopie von Excel-Datei)
4.) Da ich Meldungen ausblende (Punkt 2) wird der Speichervorgang abgebrochen.

------------------
Gruß
René

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

rode.damode
Mitglied
Maschinenbauingenieur


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

Beiträge: 457
Registriert: 15.07.2011

Inventor 2025
ZBook15, i7
Quadro M2200
32GB

erstellt am: 18. Jun. 2018 13:09    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 rene7878 10 Unities + Antwort hilfreich

Hallo René

Bin auch kein Held in iLogic.

In Delphi mache ich das Wegschreiben ohne Rücksprache, indem ich zusätzlich saveChanges:=TRUE setze.
Eventuell klappt das so ähnlich in iLogic.

Viele Grüße
Roger

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

rode.damode
Mitglied
Maschinenbauingenieur


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

Beiträge: 457
Registriert: 15.07.2011

Inventor 2025
ZBook15, i7
Quadro M2200
32GB

erstellt am: 18. Jun. 2018 13: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 Nur für rene7878 10 Unities + Antwort hilfreich

hab noch mal nachgeschaut.

saveChanges müßtest Du als Parameter der Routine GoExcel.Close mitgeben.
Eventuell auch gleich den Dateinamen dazu.

Viele Grüße
Roger

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

KraBBy
Mitglied
Maschinenbau-Ingenieur


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

Beiträge: 721
Registriert: 19.09.2007

Inventor Professional 2020
WinX

erstellt am: 19. Jun. 2018 09: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 rene7878 10 Unities + Antwort hilfreich

mE liegt das Problem darin, dass ein Exceldokument in einer neuen Excel-Instanz geöffnet wird. Das ist dann der Stand, wie er eben auf der Festplatte gespeichert ist. Da bringt dann auch speichern nichts. Wenn der User das Dokument auch vorher geöffnet hat, ist das eine andere Excel-Instanz. Man müsste also prüfen, ob Excel bereits gestartet ist und sich ggf. darauf Zugriff verschaffen. Das sollte möglich sein, erscheint mir aber für diesen Anwendungsfall übertrieben. mE reicht es, den User (per MsgBox) zu informieren, dass nur der gespeicherte Dokumentstand verarbeitet wird. Dann muss er eben auf Speichern drücken und die Regel erneut ausführen.

nur noch zur Info: das "GoExcel.DisplayAlerts = False" kommt auch zu spät, hier ist ja das Dokument schon wieder geschlossen.

zur Info2: der Ablauf, im Fall dass kein Dokument gewählt wurde, scheint mir nicht zu passen. Wird dann Excel mit einem leeren Pfad-Paramter gestartet?

(auch ich halte mich für keinen Experten, deshalb sind meine Aussagen mit gewisser Vorsicht zu behandeln)

------------------
Gruß KraBBy

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

rode.damode
Mitglied
Maschinenbauingenieur


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

Beiträge: 457
Registriert: 15.07.2011

Inventor 2025
ZBook15, i7
Quadro M2200
32GB

erstellt am: 19. Jun. 2018 10:06    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 rene7878 10 Unities + Antwort hilfreich

Hier hab ich ein Codeschnipsel aus Delphi:
Es genügt, die Datei einfach zu schließen. Excel.Save ist dabei nicht nötig.

Excel.DisplayAlerts := False;
saveChanges:=TRUE;
Excel.Close(saveChanges,Dateiname);  // Dateiname incl. Pfad

Beim Testen ist aber zu beachten, dass bei Programmfehler Excel-Instanzen im Speicher bleiben können, wenn die Close-Routine nicht sauber durchläuft. Je länger man herumprobiert, desto mehr läuft der Speicher voll.
Eventuell läuft dann gar nichts mehr. Da hilft nur ein Abschießen der Excel-Instanzen im Taskmanager.

Viele Grüße
Roger

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)2024 CAD.de | Impressum | Datenschutz