Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Lisp auf Funktion einer DLL warten lassen

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
Autor Thema:  Lisp auf Funktion einer DLL warten lassen (1186 mal gelesen)
Michael Brix
Mitglied



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

Beiträge: 33
Registriert: 01.11.2000

erstellt am: 06. Feb. 2004 10: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

Hallo,

bin gerade etwas am probieren mit ActiveX-DLL's und
habe das Problem, dass Lisp nicht auf das beenden der jeweiligen Funktion der DLL's wartet.
Frage: Wie veranlasse oder erreiche ich das Lisp
auf die Rückgabe der Funktion wartet????
Wäre für jede Information dankbar.

Gruß

Michael

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

CADmium
Moderator
Maschinenbaukonstrukteur




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

Beiträge: 13508
Registriert: 30.11.2003

.

erstellt am: 06. Feb. 2004 10:29    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 Michael Brix 10 Unities + Antwort hilfreich

Tja, das ist Multitasking! ... vielleicht in Lisp eine Whileschleife, die abfragt, ob das Ergebnis deines ActivX-Aufrufes schon vorliegt??

Hier hatten wir schon mal was ähnliches : http://ww3.cad.de/foren/ubb/Forum145/HTML/000107.shtml


Gruß Thomas

------------------

[Diese Nachricht wurde von CADmium am 06. Feb. 2004 editiert.]

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

Michael Brix
Mitglied



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

Beiträge: 33
Registriert: 01.11.2000

erstellt am: 06. Feb. 2004 12:02    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

Hm,
ne while-Schleife habe ich schon mal eingebaut aber die
beansprucht soviel Power, dass für andere Prozesse
nichts mehr übrig bleibt oder hat jemand ein funktionierendes Beispiel?

Gruß

Michael

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

fuchsi
Mitglied
Programmierer c#.net Datawarehouse


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

Beiträge: 1201
Registriert: 14.10.2003

AutoCad Version 2012 deu/enu
<P>Windows 7 64bit

erstellt am: 09. Feb. 2004 19: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 Michael Brix 10 Unities + Antwort hilfreich

hm
also ich kenn das anders, wenn du eine activeX dll schreibst, und diese mit
(setq dll (vlax-get-or-create-object "meinedll.meineklasse"))
startest und dann
(vlax-invoke dll "meineFunktion")

dann wartet lisp sehr wohl, biss die funktion beednet ist

hm vielleicht , wenn es eine
Public SUB ist und keine public FUNCTION muss ich mal ausprobieren.

------------------

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

Dabrunz
Mitglied



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

Beiträge: 127
Registriert: 28.05.2003

erstellt am: 10. Feb. 2004 10:56    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 Michael Brix 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von fuchsi:
hm
also ich kenn das anders, wenn du eine activeX dll schreibst, und diese [..] startest [..] dann wartet lisp sehr wohl, biss die funktion beednet ist

Eben - so ist es in allen Fällen. LISP wartet grundsätzlich auf die Rückgabe der angestoßenen Funktion, sonst würde die Sprache wohl auch nicht funktionieren. Die Betonung liegt hier allerdings auf Funktion. Startet ein eigener Prozess, dann schaut LISP nur hinterher - genau genommen nicht mal das, es setzt die Arbeit fort, denn das Starten des Prozesses hat ja geklappt.

Zitat:

hm vielleicht , wenn es eine
Public SUB ist und keine public FUNCTION muss ich mal ausprobieren.

S.o. - entscheidend ist, dass der Aufruf (Verzeihung für meine etwas ungenaue Beschreibung, aber meine Kenntnisse der ActiveX-Mechanismen sind außerordendlich begrenzt) den aufrufenden Code in "Wartestellung" versetzt. Nebenläufige Ausführung kennt unser VLISP nämlich nicht. Auch Prozeduren können in dieser Beziehung ähnlich wie Funktionen arbeiten, indem dort Referenz-Parameter geändert werden (als Beispiel möchte ich hier GetBoundingBox anführen).

Also scheint mir die Implementierung eines für's Warten zuständigen Interfaces Voraussetzung für eben dieses Verhalten zu sein.

@fuchsi: Du hast hier ja einiges an Überblick, kannst du uns mal aufklären, welches da in Frage kommt?

Achim Dabrunz

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

Michael Brix
Mitglied



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

Beiträge: 33
Registriert: 01.11.2000

erstellt am: 10. Feb. 2004 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 fuchsi,

habe deinen Vorschlag ausprobiert und
weder mit Function noch mit Sub erfolg gehabt.
In der DLL-Funktion wird ein Dialog aufgerufen, was auch durch den Lisp-Aufrug passiert aber Lisp rauscht gleich weiter und wartet nicht
bis der Dialog beendet wird. Die Function ist natürlich erst dann beendet wenn der Dialog geschlossen wird :-(

Gruß

Michael

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

fuchsi
Mitglied
Programmierer c#.net Datawarehouse


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

Beiträge: 1201
Registriert: 14.10.2003

AutoCad Version 2012 deu/enu
<P>Windows 7 64bit

erstellt am: 12. Feb. 2004 08:37    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 Michael Brix 10 Unities + Antwort hilfreich

dann liegts sicher am aufrud des dialoges

form1.show

bzw.

form1. show vbmodal

wenn du in vb modeless eine form öffnest, läuft vb weiter und wartet nicht aud die beendigung des dialoges, ööfnest du den dialog modal, wartet vb auf die beednigung des dialoges, lisp wartet auf jeden fall auf die beedndugung der aufgerufenen funktioen, nur die funktion muss auch auf die beednedigung des dialoges warten

------------------

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

fuchsi
Mitglied
Programmierer c#.net Datawarehouse


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

Beiträge: 1201
Registriert: 14.10.2003

AutoCad Version 2012 deu/enu
<P>Windows 7 64bit

erstellt am: 12. Feb. 2004 08:38    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 Michael Brix 10 Unities + Antwort hilfreich

sorry für die sch... rechtschreibfehler,
das tippesen ist mometan mit gips auf der rechten hand ein kleines problem.

------------------

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

Michael Brix
Mitglied



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

Beiträge: 33
Registriert: 01.11.2000

erstellt am: 12. Feb. 2004 09:26    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

Hai fuchsi,

tut mir leid mit deiner Hand - dein Kopf scheint aber
noch super zu funktionieren!!!!
Mit vbmodal funktioniert es einwandfrei - SUUUUUUUUUUPER!!!
Vielen Dank für deine Hilfe.

Gruß

Michael

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

fuchsi
Mitglied
Programmierer c#.net Datawarehouse


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

Beiträge: 1201
Registriert: 14.10.2003

AutoCad Version 2012 deu/enu
<P>Windows 7 64bit

erstellt am: 13. Feb. 2004 12:53    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 Michael Brix 10 Unities + Antwort hilfreich

erzähl mal, was bastelst du denn so.
verwendest du die activex.dll um in lisp ansprechendere dialoge (als das sch...ß DCL) zu bekommen.
hab ich auch probiert, bin aber wieder davon abgekommen (ich möchte mir das installieren auf den zierlrechnern sparen) und hab mir ObjectDCL gekauft.
super Möglichkeiten (z.B.: andockbare Dialoge ähnlich dem eigenschatseditor in acad) leider etwas kompliziert zum proggen (zu mindest am anfang)

------------------

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

Michael Brix
Mitglied



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

Beiträge: 33
Registriert: 01.11.2000

erstellt am: 13. Feb. 2004 13:32    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 fuchsi,

Habe ein Programm geschrieben mit dem man die geometrischen Daten aus AutoCAD heraus lesen kann und dann automatisch ein CNC-Programm
generiert wird. Funktioniert auch einwandfrei nur leider sind die Einschränkungen mit den verstaubten AutoCAD-Dialogen aufwendig und
nicht zeitgemäß. Kannst dir das Proggi unter: http://www.industrie24.com/i24/pages/mp.php?getpage=ftpfoyer&se=D
mal anschauen.
Die installation ist natürlich mit DLL's aufwendig (die DLL muss ja auch im System angemeldet sein) - aber ich dachte vielleicht mit einem Installationstool möglich es gibt ja einiges an Freeware in diesem Bereich.
Ich wünsche dir nen schönes Wochenende und vielen Dank nochmal.

Gruß

Michael

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