|
Lisp : Variable in Lisp aus Excel
s.wickel am 20.03.2006 um 14:34 Uhr (5)
Irgendwie kann ich nicht weiter. Zitat:(setq excel (vlax-get-object "excel.application")ExcelWorkbook (if excel (vlax-get-property excel "ActiveWorkbook"))ExcelSheet (if ExcelWorkbook(vlax-get-property ExcelWorkbook "ACTIVESHEET"))ExcelCells (if ExcelSheet(vlax-get-property ExcelSheet "CELLS")))(setq a (vlax-get-property ExcelCells "A1"))Das konnte ich ja nachvollziehen. Aber es funktioniert nicht (wie oben bereits gesagt).Was muss ich jetzt in der letzten Codezeile eingeben, damit a den Zellinhalt als Wer ...
|
| In das Form Lisp wechseln |
|
Lisp : Variable in Lisp aus Excel
s.wickel am 31.03.2006 um 08:06 Uhr (4)
Hallo Dolcetto!Das Problem, dass nur der Rahmen des Programms in Excel angezeigt wird, habe ich auch manchmal. Das ist bei mir aber auch schon früher hin und wieder mal aufgetreten. Ohne Ansteuerung von AutoCAD aus. Ich glaube der Fehler liegt in Excel (2000 ?). Bei mir hilft da immer nur den Computer komplett runterfahren und neu starten. Irgendwo habe ich gelesen, dass die Methode vlax-release-object in ACAD 2002 nicht richtig funktioniert (ich weiß aber nicht mehr wo, ich konnte es nicht wiederfinden). ...
|
| In das Form Lisp wechseln |
|
Lisp : Geschwindigkeit mit ActiveX
s.wickel am 24.04.2006 um 11:04 Uhr (0)
Hallo Rabbit!Ich habe es mal statt mit MAPCAR mit zwei Foreach-Schleifen probiert. Das zeitliche Ergebnis (diesmal mit Stoppuhr) kommt ungefähr aufs gleiche raus. Zwanzig Zeilen mit je 70 Werten = 14 Sekunden. Eindeutig zuviel.Hier mein Testcode:Code:(defun xldaten ( zeilen spalten ) (setq excel (vlax-get-object "Excel.Application")) (setq activeworkbook (vlax-get-property Excel "Activeworkbook")) (setq activesheet (vlax-get-property activeworkbook "Activesheet")) (setq cells (vlax-get-property activesheet ...
|
| In das Form Lisp wechseln |
|
Lisp : Geschwindigkeit mit ActiveX
s.wickel am 25.04.2006 um 12:22 Uhr (0)
Und noch für alle die jetzt immer noch nicht schlauer sind, die Funktion die ich zum einlesen einer KOMPLETTEN Exceltabelle erstellt habe.Code:(defun get-xldaten (/ excel activeworkbook activesheet datenfeld maxze maxspt ergeb ergebnisse zaehler zeile spalte) ;Initialisierung (setq excel (vlax-get-object "Excel.Application")) (setq activeworkbook (vlax-get-property Excel "Activeworkbook")) (setq activesheet (vlax-get-property activeworkbook "Activesheet")) (setq Datenfeld (vlax-variant-value (vlax ...
|
| In das Form Lisp wechseln |
|
Lisp : Geschwindigkeit mit ActiveX
s.wickel am 25.04.2006 um 11:07 Uhr (0)
Schnell, sehr schnell!So stelle ich mir das vor. Aber wie machst du das jetzt? Also:Objekt initialisieren: (setq excel (vlax-get-object "Excel.Application")) (setq activeworkbook (vlax-get-property Excel "Activeworkbook")) (setq activesheet (vlax-get-property activeworkbook "Activesheet")) (setq cells (vlax-get-property activesheet "Cells"))ob Activesheet oder Tabelle1 ist egal (ich habs ausprobiert).Dann habe ich eine foreach-Schleife über alle Zeilen (die als Liste übergeben wurden) und eine foreach-schl ...
|
| In das Form Lisp wechseln |
|
Lisp : Geschwindigkeit mit ActiveX
s.wickel am 21.04.2006 um 13:54 Uhr (0)
Danke für die Antworten.Ich werde es also versuchen, Excel per Lisp zu veranlassen, die Daten in eine Temporäre Datei zu schreiben.Bis dann,Stefan
|
| In das Form Lisp wechseln |
|
Lisp : Koordinatenausgabe Befehlszeile/Zwischenablage
s.wickel am 20.09.2005 um 15:58 Uhr (10)
Hallo!Danke für Antworten. Mir ging es eigentlich darum, die Koordinaten aus der Befehlszeile in die Zwischenablage zu kopieren (von Hand). Mit der Ausgabe für das ACAD-Koordinatenformat (mit Kommas getrennt) funktioniert das wunderbar. Einfach die Zwischenablage wieder in die Befehlszeile einfügen, fertig. Das Problem war, dass wenn ich eine solche Koordinaten in Excel einfüge ich erstmal den Textstring, der aus der Zwischenablage kommt bearbeiten muss und in drei Teile teilen, die ich dann auf drei Zelle ...
|
| In das Form Lisp wechseln |
|
Lisp : Geschwindigkeit mit ActiveX
s.wickel am 21.04.2006 um 13:17 Uhr (0)
Hallo!Ich habe gestern ein Programm mit der Funktion mx:get-excel-contents von CADchup (leicht angepasst) geschrieben (siehe hier). Es klappt echt super. Allerdings musste ich feststellen, dass die Geschwindigkeit nicht sonderlich berauschend ist. Ich lese 70 Spalten ein. Wenn ich 10 Zeilen (700 Werte) einlese dauert das ganze ca. 7 Sekunden (Armbanduhr) . Wenn ich 100 Zeilen (7000 Werte) einlese dauert es schon 103 Sekunden . Ich traue mich gar nicht alle 1126 Zeilen einlesen zu lassen. Und es wer ...
|
| In das Form Lisp wechseln |
|
Lisp : Aktualisierung der Anzeige während Programmausführung unterbinden
s.wickel am 22.09.2010 um 08:13 Uhr (0)
Hallo Forum,weiß jemand wie man in LISP die aktualisierung der Anzeige während das Programm läuft unterbinden kann? Ich habe ein Programm dass viele kleine Änderungen vornimmt. Wenn Pixelbilder in der Zeichnung sind, dass dauert es nach jeder Änderung ca. 1 Sek. bis es weitergeht weil die Anzeige erst aktualisiert wird. In VBA für EXCEL gibt es z. B. die Screenupdating Eigenschaft. Wenn ich die auf FALSE setze wird die Anzeige erst nach Ablauf des Programm aktualisiert. Das spart bei umfangreichen Program ...
|
| In das Form Lisp wechseln |