| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: Zu wenig Speicher in Default.ivb (2497 mal gelesen)
|
RODER Mitglied Maschineningenieur
Beiträge: 494 Registriert: 04.01.2003 Inventor 2023 Pro Win10 64Bit i9-10900K 3.7GHz 64GB RAM Nividia Quadro P2200 SpaceMouse
|
erstellt am: 27. Jun. 2007 11:16 <-- editieren / zitieren --> Unities abgeben:
Hallo, Ich habe endlich nach längerem suchen meine ersten Makros hingekriegt Nun habe ich sie aus dem "Versuchsprojekt" exportiert und wollte das ganze in Default.ivb importieren, dann motzt das System zu wenig Speicher (Fehler 7). Die Hilfe dazu gibt auch nicht viel her. Selbst bei einer einfachsten function wie: Public Function Wait(MilliSekunden As Double) Dim I As Double, Ende As Double Ende = Timer + (MilliSekunden / 1000) Do While I < Ende DoEvents I = Timer Loop End Function Kennt jemand das Problem, und hat ev. ne Lösung? Gruss Toni
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
daywa1k3r Moderator Softwareentwickler
Beiträge: 3497 Registriert: 01.08.2002 Alienware m17x, Win7, Inventor2012
|
erstellt am: 27. Jun. 2007 19:36 <-- editieren / zitieren --> Unities abgeben: Nur für RODER
|
RODER Mitglied Maschineningenieur
Beiträge: 494 Registriert: 04.01.2003
|
erstellt am: 28. Jun. 2007 20:06 <-- editieren / zitieren --> Unities abgeben:
Ich hab ein Makro geschrieben, das mir ein PDF auf A3 oder A4 erstellt. Vorher wird das aktuelle Datum als Plotdatum in die iProps geschrieben, da die Zeichnung aber erst beim Speichern aktualisiert wird, hab ich über send Keys gespeichert. Das ganze läuft aber zu schnell ab, so dass der Druck vor dem Speichern erfolgt, womit das Datum auf dem PDF nicht oder falsch erscheint, nun habe ich mit dieser Schlafe eine Verzögerung eingebaut. Lasse mich gerne zu einer besseren Lösung überreden, bin blutiger Anfänger im VBA... Aber so funktionnierts wenigstens Habe aber so ne Vorahnung, dass es an den EInstellungen in der Registry liegen könnte. Bei den anderen Abeitsstationen wurden dort angeblich Änderungen bei der Installation vorgenommen. (IV9 --> IV11) Meine war neu und wurde ohne Hilfe installiert. Gruss Toni Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
daywa1k3r Moderator Softwareentwickler
Beiträge: 3497 Registriert: 01.08.2002 Alienware m17x, Win7, Inventor2012
|
erstellt am: 28. Jun. 2007 21:14 <-- editieren / zitieren --> Unities abgeben: Nur für RODER
Es liegt nicht an der Registry. Und wenn du mir die Frage „Was ist Timer?“ beantwortet hättest, hätten wir jetzt vielleicht schon mal eine Lösung. Das solltest du es mit der Funktion Sleep machen. Deklaration: Private Declare Sub Sleep Lib "kernel32" (ByVal dwMS As Long) Aufruf: Sleep X Wobei X die Anzahl von Millisekunden für den "Schlaf" ist. Und da dein nächster Beitrag in etwa so aussehen wird: Zitat:
Das geht bei mir nicht. Bringt immer die Fehlermeldung: Fehler beim Kompilieren: Nach End Sub, End Function oder End Property können nur Kommentare stehen
sag ich dir gleich woran es liegt. Du sollst die Deklaration von der Sleep Funktion außerhalb deiner Funktion machen (z.B. die erste Zeile in dem Modul). ------------------ Grüße Igor
FX64 Software Solutions Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
RODER Mitglied Maschineningenieur
Beiträge: 494 Registriert: 04.01.2003
|
erstellt am: 29. Jun. 2007 10:42 <-- editieren / zitieren --> Unities abgeben:
Ich hab den Code so in nem Forum gefunden, weis nicht mehr ob hier oder sonst in nem VBA Forum.... Aber besten Dank für deinen Lösungsvorschlag! Das Speicherproblem löst der Experte von unserem Händler der DIVA . Also mal ein guter Abschluss einer Woche in aussicht In diesem Sinne danke nochmals und ein geruhsames Wochenende Gruss Toni Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
daywa1k3r Moderator Softwareentwickler
Beiträge: 3497 Registriert: 01.08.2002 Alienware m17x, Win7, Inventor2012
|
erstellt am: 29. Jun. 2007 10:57 <-- editieren / zitieren --> Unities abgeben: Nur für RODER
Zitat: Original erstellt von RODER: Das Speicherproblem löst der Experte von unserem Händler der DIVA.
Beratungsresistent? Zu viel Geld? Da gibt es kein Speicherproblem. Dein Makro beinhaltet eine Endlosschleife. Aber wenn du damit leben kannst, ist alles bestens Schönes WE. ------------------ Grüße Igor FX64 Software Solutions Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
RODER Mitglied Maschineningenieur
Beiträge: 494 Registriert: 04.01.2003
|
erstellt am: 29. Jun. 2007 14:28 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von daywa1k3r: Beratungsresistent? Zu viel Geld?
Ne weder noch, wer hat schon zuviel Geld Das mit der Endlosschlaufe hab ich kapiert und werde auf deinen Vorschlag umstellen. Dank du habest Das Problem scheint sehr komisch, auf dem Rechner des Kollegen nebenan funktionnierts... Aber egal, speichere alles bei Ihm ins Default.ivb und schmeisse das auf den Server. Gruss Toni Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
SEHER Mitglied Systemanalytiker
Beiträge: 1203 Registriert: 13.03.2001 Inventor 2 bis 2022 häufig wechselnder Rechnerverkehr
|
erstellt am: 29. Jun. 2007 15:25 <-- editieren / zitieren --> Unities abgeben: Nur für RODER
|
daywa1k3r Moderator Softwareentwickler
Beiträge: 3497 Registriert: 01.08.2002 Alienware m17x, Win7, Inventor2012
|
erstellt am: 29. Jun. 2007 15:42 <-- editieren / zitieren --> Unities abgeben: Nur für RODER
|
Torsten Niemeier Ehrenmitglied V.I.P. h.c. Maschinenbau Ingenieur
Beiträge: 3543 Registriert: 21.06.2001
|
erstellt am: 29. Jun. 2007 16:03 <-- editieren / zitieren --> Unities abgeben: Nur für RODER
|
daywa1k3r Moderator Softwareentwickler
Beiträge: 3497 Registriert: 01.08.2002 Alienware m17x, Win7, Inventor2012
|
erstellt am: 29. Jun. 2007 16:09 <-- editieren / zitieren --> Unities abgeben: Nur für RODER
Zitat: Original erstellt von Torsten Niemeier: Hüstl!Äh, Timer ist eine VBA-Funktion. Das Makro entspricht in etwa dem Beispiel aus der Hilfe zu dieser Funktion. Gruß, Torsten
Ja, kann man dann die Funktion Timer mal sehen? Oder ist das wohl das Timer Steuerelement? Welches Beispiel? Welche Hilfe? Sorry, aber ich komm da nicht mit. ------------------ Grüße Igor FX64 Software Solutions Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Torsten Niemeier Ehrenmitglied V.I.P. h.c. Maschinenbau Ingenieur
Beiträge: 3543 Registriert: 21.06.2001
|
erstellt am: 29. Jun. 2007 16:30 <-- editieren / zitieren --> Unities abgeben: Nur für RODER
|
daywa1k3r Moderator Softwareentwickler
Beiträge: 3497 Registriert: 01.08.2002 Alienware m17x, Win7, Inventor2012
|
erstellt am: 29. Jun. 2007 16:58 <-- editieren / zitieren --> Unities abgeben: Nur für RODER
Ah, ok, danke (ich mache nicht viel mit VBA / VB, daher war mir die Funktion nicht geläufig). Jetzt verstehe ich endlich auch diese Schleife. Scheint aber zu funktionieren hier. @RODER Du kannst mal versuchen die Funktion zu debugen (mit Breakpoints), und zu sehen wo der Fehler auf deinem Rechner kommt. Schau dir mal die Werte an, bevor die while anläuft. Und sonst, einfach die Sleep benutzen.
------------------ Grüße Igor FX64 Software Solutions Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Torsten Niemeier Ehrenmitglied V.I.P. h.c. Maschinenbau Ingenieur
Beiträge: 3543 Registriert: 21.06.2001
|
erstellt am: 29. Jun. 2007 17:04 <-- editieren / zitieren --> Unities abgeben: Nur für RODER
Hallo Igor, den F1-Spruch bei einem "beratungsresistenten (:-))" Moderator anbringen zu dürfen, hat mir den Tag gerettet. Und Du bist auch so schön in die Falle gelaufen. Nix für ungut, Torsten Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
daywa1k3r Moderator Softwareentwickler
Beiträge: 3497 Registriert: 01.08.2002 Alienware m17x, Win7, Inventor2012
|
erstellt am: 29. Jun. 2007 17:08 <-- editieren / zitieren --> Unities abgeben: Nur für RODER
|
Torsten Niemeier Ehrenmitglied V.I.P. h.c. Maschinenbau Ingenieur
Beiträge: 3543 Registriert: 21.06.2001
|
erstellt am: 29. Jun. 2007 17:10 <-- editieren / zitieren --> Unities abgeben: Nur für RODER
|
RODER Mitglied Maschineningenieur
Beiträge: 494 Registriert: 04.01.2003 Inventor 2023 Pro Win10 64Bit i9-10900K 3.7GHz 64GB RAM Nividia Quadro P2200 SpaceMouse
|
erstellt am: 02. Jul. 2007 07:32 <-- editieren / zitieren --> Unities abgeben:
Erst mal einen guten Morgen und Sorry dass nicht eher eine Antwort kam Also hab die Funktion Wait mit Sleep ersetzt. Nun funktionniert die Verzögerung nicht mehr wie gewünscht, da das ganze System schlafen geschickt wird... Ich möchte nur den Vortschritt des Makros ein wenig verzögern, also etwas warten bis die nächste Anweisung ausgeführt wird. Zu dem ominösen Timer, ich hab das ganze im Einzelschritt angeschaut. Der Timer ist offensichtlich eine Variable vom System und wird zeitlich vom System erhöht. Die Abbruchbedingung Ende ist also der Stand des Timers zu Beginn + die gewünschte Zeit, und I wird in der Schlaufe immer wider mit dem Wert des Timers "gefüllt", somit wird die Schlaufe nach der angegebenen Zeit verlassen und mein Makro weiter abgearbeitet. Das jedenfalls ist meine Interpretation des Ganzen. Gruss Toni Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
daywa1k3r Moderator Softwareentwickler
Beiträge: 3497 Registriert: 01.08.2002 Alienware m17x, Win7, Inventor2012
|
erstellt am: 02. Jul. 2007 08:11 <-- editieren / zitieren --> Unities abgeben: Nur für RODER
Hallo Toni, ja, das ist auch schon richtig. Zitat:
Gibt einen Wert vom Typ Single zurück, der die Anzahl der seit Mitternacht vergangenen Sekunden angibt.
Die Frage wäre eben wie hoch der Timer ist bevor deine while rein läuft (und wie hoch z.B. I). Und vor allem, wie weit kommst du, wenn dein Programm im Einzelschritt (F8) laufen lässt? Schaffst du es in die Schleife rein?
------------------ Grüße Igor FX64 Software Solutions Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
RODER Mitglied Maschineningenieur
Beiträge: 494 Registriert: 04.01.2003
|
erstellt am: 02. Jul. 2007 08:30 <-- editieren / zitieren --> Unities abgeben:
Ja das mit den Sekunden seit Mitternacht kommt in etwa hin der Timer hat einen Wert von 30430.88 wahrscheinlich Sekunden. und ja ich schaffe es in die Schlaufe rein, dann läuft sie bis die angegebene Zeit um ist. Anschliessen läuft das Makro ganz normal weiter und beide Variablen sowohl I als auch der Timer werden als Empty angezeigt. Gruss Toni Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
daywa1k3r Moderator Softwareentwickler
Beiträge: 3497 Registriert: 01.08.2002 Alienware m17x, Win7, Inventor2012
|
erstellt am: 02. Jul. 2007 08:34 <-- editieren / zitieren --> Unities abgeben: Nur für RODER
|
RODER Mitglied Maschineningenieur
Beiträge: 494 Registriert: 04.01.2003
|
erstellt am: 02. Jul. 2007 12:06 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von daywa1k3r: Dann kommt ja da keine Fehlermeldung? Du hast oben geschrieben, dass in der Schleife die Speichermeldung kommt?!
Nein da haben wir uns wohl nicht ganz richtig verstanden. Die Fehlermeldung kommt beim Importieren ins Default.ivb... Aber das konnte ich mittlerweile umgehen. Habs auf dem Rechner eines Kollegen in sein Default.ivb importiert und dann dieses Projekt auf den Server gelegt. Aber nun ein neues Problem, wie kann ich ein Befehlsbutton selber erstellen, dar mir mein Makro (PDF erstellen mit div. Zusätzen) startet? Gruss Toni Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |