Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  AutoCAD ObjectARX und .NET
  LISP in C# integrieren

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 in C# integrieren (1804 mal gelesen)
cadplayer
Ehrenmitglied
CADniker


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

Beiträge: 1832
Registriert: 28.04.2009

erstellt am: 11. Aug. 2014 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

Hallo!
Als begeisteter LISP programmierer würde ich mir wünschen LISP in C# code integrieren zu können. Bisher ist mir nur die Möglichkeit gekommen: mittels
Code:

using AcAp = Autodesk.AutoCAD.ApplicationServices.Application;
Document doc = AcAp.DocumentManager.MdiActiveDocument;
            doc.SendStringToExecute("....");


ein LispCode aufzurufen.
Gibt es nicht vielleicht eine andere Möglichkeit (bspw. fertige dll-Bibliothek)

------------------
Gruss Dirk
http://cadplayerlounge.blogspot.se

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

Brischke
Moderator
CAD on demand GmbH




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

Beiträge: 4171
Registriert: 17.05.2001

AutoCAD 20XX, defun-tools

erstellt am: 11. Aug. 2014 12:10    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 cadplayer 10 Unities + Antwort hilfreich

Hallo Dirk,

wenn du so begeistert von Lisp bist, dann geh doch anders herum an die Sache.
Programmiere dir in c# die Funktionen, die du in Lisp vermisst.

Ich bin aber der Meinung, dass du alles das, was du in Lisp machen kannst, ohnehin auch in c# möglich ist. Oder was fehlt dir genau?

Grüße!
Holger

------------------
Holger Brischke
CAD on demand GmbH
Individuelle Lösungen von Heute auf Morgen.


defun-tools Das Download-Portal für AutoCAD-Zusatzprogramme!


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

cadplayer
Ehrenmitglied
CADniker


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

Beiträge: 1832
Registriert: 28.04.2009

erstellt am: 11. Aug. 2014 12: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

Hallo Holger!
Naja da ich nun mal mit LISP angefangen habe, müsste ich die Funktionen in C# umschreiben.
Angenommen ich erstelle eine C#applikation, die auf LISP zugreifen soll.
Klingt umständlich, soll nur eine vorübergehende Lösung sein oder würdest du mir davon abraten.

------------------
Gruss Dirk
http://cadplayerlounge.blogspot.se

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

Brischke
Moderator
CAD on demand GmbH




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

Beiträge: 4171
Registriert: 17.05.2001

AutoCAD 20XX, defun-tools

erstellt am: 11. Aug. 2014 12:21    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 cadplayer 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von cadplayer:
... oder würdest du mir davon abraten.

Ja.

Grüße!
Holger

------------------
Holger Brischke
CAD on demand GmbH
Individuelle Lösungen von Heute auf Morgen.


defun-tools Das Download-Portal für AutoCAD-Zusatzprogramme!


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

cadplayer
Ehrenmitglied
CADniker


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

Beiträge: 1832
Registriert: 28.04.2009

erstellt am: 11. Aug. 2014 12: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

Contra
Sind manche Dinge in LISP nicht schneller geschrieben als in .NET

------------------
Gruss Dirk
http://cadplayerlounge.blogspot.se

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

Brischke
Moderator
CAD on demand GmbH




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

Beiträge: 4171
Registriert: 17.05.2001

AutoCAD 20XX, defun-tools

erstellt am: 11. Aug. 2014 12:33    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 cadplayer 10 Unities + Antwort hilfreich

grundsätzlich mag das sein, da man bekanntlich in Lisp die Variablen ohne Typdeklaration definieren kann.
Sicher kann man auch in Lisp mal schnell eine Datei aufmachen und lostippen. Das geht in .Net nicht.
ABER: Es kommt darauf an, wie du dich organisierst. Ich bin mit meiner Projektvorlage soweit, dass ich für alle AutoCAD-Versionen und Bricscad auch gleich lostippen kann. Die Funktionsbibliotheken sind immer eingebunden usw ... .

Der anfänglich gespürte Geschwindigkeitsverlust beim Programmieren muss also nicht bleiben.
Zu bedenken ist auch, dass dir auf .Net-Seite sehr viele Möglichkeiten anhand gegeben werden, die du in Lisp gar nicht oder nur mit einem Riesenaufwand zu realisieren wäre. Da ist der Geschwindigkeitsvorteil ganz klar auf der c#-Seite.

Grüße!
Holger

------------------
Holger Brischke
CAD on demand GmbH
Individuelle Lösungen von Heute auf Morgen.


defun-tools Das Download-Portal für AutoCAD-Zusatzprogramme!


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

cadplayer
Ehrenmitglied
CADniker


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

Beiträge: 1832
Registriert: 28.04.2009

erstellt am: 11. Aug. 2014 12:40    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 Holger!
Geht jetzt zwar an der ursprünglichen Frage vorbei (ist beantwortet)
Ist in .NET das Objektmodell einfach umfangreicher oder gibt es eine breitere Funktionalität in C#.
Bin schon dabei eine ganze Weile in C# zu tüfteln, das macht auch Spass.
Erschreckend find ich nur die unüberschaubare Bibliothek von Autodesk. Du kennst keinen Autoren, der sich schon mal eingehend in Buchform damit beschäftigt hat ?!

------------------
Gruss Dirk
http://cadplayerlounge.blogspot.se

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

Brischke
Moderator
CAD on demand GmbH




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

Beiträge: 4171
Registriert: 17.05.2001

AutoCAD 20XX, defun-tools

erstellt am: 11. Aug. 2014 12:47    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 cadplayer 10 Unities + Antwort hilfreich

... nein, kenne ich nicht.

Zum theoretisch durchackern mit einem Buch wäre es wohl auch zu viel.

Das Objektmodell solltest du doch aber kennen, wenn du in Lisp unterwegs bist.
Ansonsten hilft ja auch der Objektexplorer aus dem VS weiter - da kannst du ja auch suchen und in aller Regel wird man dort dann auch fündig.

Grüße!
Holger

------------------
Holger Brischke
CAD on demand GmbH
Individuelle Lösungen von Heute auf Morgen.


defun-tools Das Download-Portal für AutoCAD-Zusatzprogramme!


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

cadplayer
Ehrenmitglied
CADniker


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

Beiträge: 1832
Registriert: 28.04.2009

erstellt am: 11. Aug. 2014 12:52    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

Die Antwort hatte ich befürchtet.
Is mir klar, das man in Visual LISP vom gleichen Objektmodell spricht (in der verkürzten Version) wie in .NET .
Hängt das damit zusammen, das VLIDE nicht wirklich weiter entwickelt wird von Autodesk?!

------------------
Gruss Dirk
http://cadplayerlounge.blogspot.se

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

Brischke
Moderator
CAD on demand GmbH




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

Beiträge: 4171
Registriert: 17.05.2001

AutoCAD 20XX, defun-tools

erstellt am: 11. Aug. 2014 13:03    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 cadplayer 10 Unities + Antwort hilfreich

... mag sein.
Es ist aber so, dass ja die Struktur von AutoCAD seit Jahren unverändert ist. Die ganzen neuen Funktionalitäten werden (meistens) in irgendwelchen Dictionaries gespeichert. In Lisp musst du dich da durchhangeln. Die VLIDE muss folglich nicht erweitert werden.
In .Net übernimmt die API das durchhangeln, so dass du die eigentlich in Dictionaries gespeicherte Informationen direkt als Objekteigenschaft im Zugriff hast. (nur mal als Beispiel).

Grüße!
Holger

------------------
Holger Brischke
CAD on demand GmbH
Individuelle Lösungen von Heute auf Morgen.


defun-tools Das Download-Portal für AutoCAD-Zusatzprogramme!


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

archtools
Mitglied



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

Beiträge: 823
Registriert: 09.10.2004

Entwickler für AutoCAD, BricsCAD u.a., alle Systeme

erstellt am: 12. Aug. 2014 15:07    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 cadplayer 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von Brischke:
Hallo Dirk,

wenn du so begeistert von Lisp bist, dann geh doch anders herum an die Sache.
Programmiere dir in c# die Funktionen, die du in Lisp vermisst.

Ich bin aber der Meinung, dass du alles das, was du in Lisp machen kannst, ohnehin auch in c# möglich ist. Oder was fehlt dir genau?


Ich würde darauf antworten: ja, was fehlt, ist meistens die Zeit.

Wer gleichermaßen Lisp wie C# beherrscht und dabei insbesondere die Programmierschnittstellen zu AutoCAD, der löst ein Problem in Lisp in höchstens 1/3 der Zeit, die er in C# dafür benötigt. Bei C++ würde ich sogar von mindestens dem 5fachen Zeitaufwand gegenüber Lisp ausgehen.

Allerdings gibt es viele Dinge, die man in Lisp eben nicht programmieren kann, insbesondere Programme mit einem modernen GUI, Systemprogramme und solche, die Funktionen aus dem Windows Framework oder aus anderen Programmen nutzen müssen.

Vieles davon kann man in C# programmieren und als Lisp-Funktionen bereitstellen, aber bei weitem nicht alles.

Wg des deutlich geringeren Zeitaufwands für die Entwicklung ist Lisp aber auch als Rapid Prototyping Sprache für aufwändige Programme sinnvoll, die nach erfolgreicher Prototyping-Phase erst in C# realisiert werden.

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

archtools
Mitglied



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

Beiträge: 823
Registriert: 09.10.2004

Entwickler für AutoCAD, BricsCAD u.a., alle Systeme

erstellt am: 12. Aug. 2014 15:18    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 cadplayer 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von Brischke:
... mag sein.
Es ist aber so, dass ja die Struktur von AutoCAD seit Jahren unverändert ist. Die ganzen neuen Funktionalitäten werden (meistens) in irgendwelchen Dictionaries gespeichert. In Lisp musst du dich da durchhangeln. Die VLIDE muss folglich nicht erweitert werden.

Naja, von "müssen" ist hier nicht die Rede. Aber die VLIDE wird nun mal nicht mehr weiter entwickelt, und das nun schon seit anderthalb Jahrzehnten. Ich erinnere da nur mal daran, dass Ivan Petrov, der Entwickler von Vital Lisp, immerhin schon eine Betaversion heraus gebracht hat, in der man aus Lisp heraus Custom Defined Entities erzeugen konnte. Autodesk hat, als es Vital Lisp aufgekauft hat, lediglich das Programm und einige Funktionsnamen umbenannt, hat eine relevante Funktion entfernt, und hat ansonsten nicht nur Ivan Petrovs Hilfe für die Weiterentwicklung abgelehznt, sondern ihm sogar untersagt, jemals wieder ein vergleichbares Programm zu entwickeln.

Das alles ist ein klares Statement: Autodesk wird Visual Lisp nicht weiter entwickeln. Insbesondere wird die vor vielen Jahren großspurige Ankündigung, man werde VisualLisp Richtung Common Lisp weiter entwickeln, nicht verwirklicht. Da kamen einige Pippifaxfunktionen wie LAST u.ä. dazu, aber nicht die eigentlich relevanten Dinge wie Makros.

Wenn man sich ansieht, wofür Autodesk seine Entwicklerkapazitäten tatsächlich einsetzt, so stellt man schnell fest, dass AutoCAD seit der Version 2000 keine nennenswerten Neuerungen mehr erfahren hat. Natürlich gab's da die eine oder andere neue nutzerfreundliche Funktion, die man sich aus den vielen Zusatzprogrammen abgeguckt und übernommen hat. Aber nichts wirklich Neues. AutoCAD wird von Autodesk nur noch als Melkkuh verwendet. Gefüttert wird nur noch das Nötigste ...

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

cadplayer
Ehrenmitglied
CADniker


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

Beiträge: 1832
Registriert: 28.04.2009

erstellt am: 12. Aug. 2014 15:18    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 für deinen Beitrag
Genau der Knackbund - Zeit. Der meiner Meinung unötige Aufwand, wenn man nunmal auf .NET umschwenken will alle LISPs umzuprogrammieren.
Beispielw. habe ich eben eine Nachricht erhalten, dass Common Lisp bei LispWorks (http://www.lispworks.com/support/contact.html) sich in .NET integrieren lässt, quasi eigene dll-Referenz.
Den Punkt GUI, find ich in .NET eh besser als das das mit DCL umzusetzen ginge.
Als in allem unter einem Hut (.NET), aber mit wenig Aufwand der Umschreiberei. Würde mich gern über weitere Beiträge freuen.

------------------
Gruss Dirk
http://cadplayerlounge.blogspot.se

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

archtools
Mitglied



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

Beiträge: 823
Registriert: 09.10.2004

Entwickler für AutoCAD, BricsCAD u.a., alle Systeme

erstellt am: 12. Aug. 2014 15:31    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 cadplayer 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von cadplayer:
Danke für deinen Beitrag
Genau der Knackbund - Zeit. Der meiner Meinung unötige Aufwand, wenn man nunmal auf .NET umschwenken will alle LISPs umzuprogrammieren.
Beispielw. habe ich eben eine Nachricht erhalten, dass Common Lisp bei LispWorks (http://www.lispworks.com/support/contact.html) sich in .NET integrieren lässt, quasi eigene dll-Referenz.
Den Punkt GUI, find ich in .NET eh besser als das das mit DCL umzusetzen ginge.
Als in allem unter einem Hut (.NET), aber mit wenig Aufwand der Umschreiberei. Würde mich gern über weitere Beiträge freuen.


Naja, ich hab' schon etliche Versuche gesehen, Lisp-Varianten in die CL-Umgebung von .Net zu integrieren. Die sind allesamt gescheitert. Common Lisp hat ein so fundamental anderes Objektmodell, dass das IMO nicht realisierbar ist. Sieh' Dir da lieber mal F# an, das wird von MS ziemlich stark gehyped. Mit F# kannst Du AutoCAD direkt programmieren.

Der große Haken ist: Du kannst AutoCAD mit F# genau so gut und genau so schnell programmieren wie mit C#. Der große Zeitvorteil bei der Entwicklung mit VisualLisp ist ja der, dass es sich bei VisualLisp um eine echte Interpretersprache handelt, deren Interpreter direkt in AutoCAD integriert ist. Du hast hier keinen zeitaufwändigen Umlauf aus Editierung, Compilierung, AutoCAD Starten, Programm Laden, Testen, Absturz beim Debuggen, sondern editierst und testest sofort, und crashst auch bei schweren Programmfehlern AutoCAD praktisch nie. Hier liegt der Zeitvorteil bei der Entwicklung in Lisp, und nicht, wie Holger meint, bei den Programmbibliotheken. Diese entwickelst Du Dir im Lauf der Zeit für jedes von Dir genutzte System.

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

Brischke
Moderator
CAD on demand GmbH




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

Beiträge: 4171
Registriert: 17.05.2001

AutoCAD 20XX, defun-tools

erstellt am: 12. Aug. 2014 15: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 cadplayer 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von archtools:
... Du hast hier keinen zeitaufwändigen Umlauf aus Editierung, Compilierung, AutoCAD Starten, Programm Laden, Testen, Absturz beim Debuggen, sondern editierst und testest sofort, und crashst auch bei schweren Programmfehlern AutoCAD praktisch nie. Hier liegt der Zeitvorteil bei der Entwicklung in Lisp, und nicht, wie Holger meint, bei den Programmbibliotheken. Diese entwickelst Du Dir im Lauf der Zeit für jedes von Dir genutzte System.

Klar, der Zeitaufwand ist da.
Mit dem VS2013 kann da einiges kompensiert werden, da man dort eben auch beim Debuggen Codeänderungen vornehmen kann.
Ein Zeitvorteil mit c# resultiert aus dem besseren Laufzeitverhalten von c#-Programmen. Gerade wenn große Datenmengen geschaufelt oder eine Menge neuer Zeichnungsobjekte erzeugt werden müssen, ist das schon relevant.

Wenn ich ganz schnell mal was schauen möchte, wie was zusammenhängt, greife ich (so ehrlich bin ich) auch schnell mal auf Lisp zurück. Aber wirklich programmieren mache ich nur noch in c#.Net.

Der Zugriff auf die Bibliotheken bzw. das Handling der eigenen Bibliotheken in Lisp ist deutlich schwieriger, bzw. man muss schon recht ordentlich strukturiert vorgehen. Da mir beim programmieren in c# meine Bibliotheksfunktionen immer in der SensitiveHilfe inkl. Kommentare und Dateitypen gleich mit angezeigt werden, ist die Suche nach Funktionen inzwischen Geschichte. Insbesondere das Nachlesen, welche Parameter ,welche Funktion nun benötigt, entfällt nun völlig. Die Möglichkeit des Überladens von Funktionen führt zudem dazu, dass die Vielzahl der Funktionen stark abgenommen - die Anzahl der Varianten stark zugenommen hat. Hier sehe ich wahrhaft Vorteile mit c# und dem Visual Studio zu arbeiten.

Jede Sprache hat seine Vor-und Nachteile. Für mich überwiegen die Vorteile von c# - ohne dass ich Lisp verteufeln oder nur c# gelten lassen möchte.

Grüße!
Holger

------------------
Holger Brischke
CAD on demand GmbH
Individuelle Lösungen von Heute auf Morgen.


defun-tools Das Download-Portal für AutoCAD-Zusatzprogramme!


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

archtools
Mitglied



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

Beiträge: 823
Registriert: 09.10.2004

Entwickler für AutoCAD, BricsCAD u.a., alle Systeme

erstellt am: 12. Aug. 2014 16: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 cadplayer 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von Brischke:

Klar, der Zeitaufwand ist da.
Mit dem VS2013 kann da einiges kompensiert werden


Natürlich, aber eben nicht alles. Das ist bei meinen groben Faktoren der Entwicklungszeit schon mit drin.

Dadurch, dass der Interpreter in AutoCAD voll integriert ist, entwickelt oder degugged man ein Programm auch ganz anders als in Visual Studio. IMO ist der Entwicklungsprozess mit Lisp (das würde auch für die meisten anderen Interpretersprachen gelten, wenn sie wie Lisp in AutoCAD integriert wären) eher vergleichbar der Arbeit eines Dichters, während das Schreiben eines C#-Programms eher der Arbeit eines Autoren für Betriebshandbücher ähnelt. Das erklärt - zumindest für mich - den großen Spaß, den das Progammieren in Lisp bringen kann. Dass man beispielsweise nur das halbe Programm ausführen lassen kann, um dann mittendrin problemlos via Copy&Paste dutzende verschiedener Varianten einer Programmzeile oder eines Funktionsaufrufs auszuprobieren, ist durch nichts´, was Visual Studio bietet, zu ersetzen.

Meine Schätzung des Zeitfaktors 3 für den Programmieraufwand zwischen Lisp und C# bzw 5 für C++ halte ich nach meiner Erfahrung für eher konservativ. Ich habe schon große Programmieraufträge erhalten, bei denen die in C++ programmierenden Wettbewerber Angebote abgegeben haben, die preislich beim 10fachen von meinem Angebot lagen. Ich hatte da mehrfach Mühe, meine niedrigen Preise zu rechtfertigen.

Vielleicht gibt mir ein wenig der Umstand recht, dass ich diesen ganzen Sommer auf dem Boot in Frankreich verbringe, während meine damaligen Wettbewerber allesamt in stickigen Büros schuften müssen. Lisp rulez! :-)

Herzliche Grüße vom Canal de la Meuse. Heute liege ich in Verdun :-)

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

archtools
Mitglied



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

Beiträge: 823
Registriert: 09.10.2004

Entwickler für AutoCAD, BricsCAD u.a., alle Systeme

erstellt am: 12. Aug. 2014 16:46    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 cadplayer 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von Brischke:

Jede Sprache hat seine Vor-und Nachteile. Für mich überwiegen die Vorteile von c# - ohne dass ich Lisp verteufeln oder nur c# gelten lassen möchte.

Darum geht's gar nicht. AutoCAD könnte ja auch einen CLR Interpreter anstelle von Lisp oder parallel dazu in AutoCAD einbauen. Dann hättest Du alle Vorteile, die heute Lisp immer noch bietet, gleichermaßen mit C# und allen anderen CLR Sprachen.

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

archtools
Mitglied



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

Beiträge: 823
Registriert: 09.10.2004

Entwickler für AutoCAD, BricsCAD u.a., alle Systeme

erstellt am: 12. Aug. 2014 16:49    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 cadplayer 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von Brischke:

Der Zugriff auf die Bibliotheken bzw. das Handling der eigenen Bibliotheken in Lisp ist deutlich schwieriger, bzw. man muss schon recht ordentlich strukturiert vorgehen. Da mir beim programmieren in c# meine Bibliotheksfunktionen immer in der SensitiveHilfe inkl. Kommentare und Dateitypen gleich mit angezeigt werden, ist die Suche nach Funktionen inzwischen Geschichte.

Richtig. Nur hat das mit C# exakt gar nichts zu tun. Das ist eine Sache der Entwicklungsumgebung. Das, was Visual Studio hier macht, könnte VLIDE exakt genau so leisten. Aber daran wird ja nichts mehr weiter entwickelt.

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

Brischke
Moderator
CAD on demand GmbH




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

Beiträge: 4171
Registriert: 17.05.2001

AutoCAD 20XX, defun-tools

erstellt am: 12. Aug. 2014 16:55    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 cadplayer 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von archtools:
... Richtig. Nur hat das mit C# exakt gar nichts zu tun. Das ist eine Sache der Entwicklungsumgebung. Das, was Visual Studio hier macht, könnte VLIDE exakt genau so leisten. Aber daran wird ja nichts mehr weiter entwickelt.

stimmt - da habe ich mich wohl blöd ausgedrückt.

Grüße!
Holger

------------------
Holger Brischke
CAD on demand GmbH
Individuelle Lösungen von Heute auf Morgen.


defun-tools Das Download-Portal für AutoCAD-Zusatzprogramme!


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

cadplayer
Ehrenmitglied
CADniker


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

Beiträge: 1832
Registriert: 28.04.2009

erstellt am: 13. Aug. 2014 20:15    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

archtools
Zitat:
Naja, ich hab' schon etliche Versuche gesehen, Lisp-Varianten in die CL-Umgebung von .Net zu integrieren. Die sind allesamt gescheitert. Common Lisp hat ein so fundamental anderes Objektmodell, dass das IMO nicht realisierbar ist.

Ja welche denn ?
Die von LispWorks erzählen mir ja viel. Aber ich finde die Idee gar nicht soo schlecht mit CommonLisp auf .NET zu schreiben. Allerdings frage ich mich nur, ob es da einen CLR interpreter in .NET zur Verfügung gestellt wird, der es zulässt Common in .NET anzuwenden.

Klingt für einen Profi wie Euch sicherlich alles verworen, ich will halt LISP die Chance beibehalten.

Gibt es in Common wiederum unterschiedliche Dialekte oder ist das einheitlich gehalten (rein - nicht wie bei Autolisp, wo mit Visuallisp noch reingewuselt wurde)

------------------
Gruss Dirk
http://cadplayerlounge.blogspot.se

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

archtools
Mitglied



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

Beiträge: 823
Registriert: 09.10.2004

Entwickler für AutoCAD, BricsCAD u.a., alle Systeme

erstellt am: 13. Aug. 2014 21:19    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 cadplayer 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von cadplayer:
archtools

Ja welche denn ?
Die von LispWorks erzählen mir ja viel. Aber ich finde die Idee gar nicht soo schlecht mit CommonLisp auf .NET zu schreiben.


Was könnte an so einer Idee auch schlecht sein? Es geht nicht darum, ob das eine gute Idee ist, sondern darum, ob diese mit vertretbarem Aufwand realisierbar ist. Und dazu habe ich meine Meinung schon gesagt und diese auch begründet.

Ein wohl gescheiterter Versuch, Lisp in eine .Net-Umgebung zu integrieren, war - der Name ist Programm - LispSharp: http://sourceforge.net/projects/lispsharp/. Ein anderes gescheitertes Projekt war IronLisp (http://ironlisp.codeplex.com/, Namensgebung analog zu IronPython). Der Initiator hat dann wohl mit etwas mehr Erfolg die neuere funktionale Sprache Scheme auf .Net gebracht. IronScheme lebt und kann von hier heruntergeladen werden: https://ironscheme.codeplex.com/. Ich denke, dass Du mit IronScheme problemlos Programme für AutoCAD schreiben kannst. Hier ein erster Ansatz: http://www.theswamp.org/index.php?topic=25581.5;wap2

Verusche, Common Lisp auf .Net zu bringen, gab's mehrere. Ein erfolgreicher Versuch ist mir nicht bekannt.

Zitat:
Gibt es in Common wiederum unterschiedliche Dialekte oder ist das einheitlich gehalten (rein - nicht wie bei Autolisp, wo mit Visuallisp noch reingewuselt wurde)
[/i]

OK, Du weisst also auch nicht, was Common Lisp ist. Das bedeutet aber eigentlich, dass Du auch nicht wirklich weisst, was Lisp überhaupt ist. Common Lisp ist hochstandardisiert (ANSI), die diversen Implementierungen werden sogar von einem ANSI Kommitee kontrolliert, dem auch die Weiterentwicklung obliegt. Mehr hier: http://de.wikipedia.org/wiki/Common_Lisp

AutoLisp entstand übrigens einfach durch Übernahme des sehr simplen Freeware XLisp Interpreters von David Betz. Da der damals noch sehr junge David Betz den Nutzern seiner Freeware alle Rechte einräumte, brauchte Autodesk noch nicht mal bei ihm nachfragen, um seinen Code zu übernehmen. David Betz war niemals bei Autodesk involviert.

VisualLisp wurde nicht in AutoLisp "reingewuselt". AutoLISP und VisualLisp sind fast identische Implementierungen von XLisp, wobei VL eben nur ein paar zusätzliche vordefinierte Funktionen hat. Syntax und eigentlicher Sprachumfang sind völlig gleich. Seit AutoCAD 2000 gibt es in AutoCAD nur noch VisualLisp. AutoLisp war nur bis AutoCAD 14 drin, und in der 14er Version konnte man zusätzlich VitalLisp und dann VisualLisp dazu laden. Man hatte dann zwei voneinander unabhängige Lisp Interpreter in AutoCAD laufen.

Ich kam übrigens Mitte der 1980er über die KI-Forschung zu Lisp. Damals kostete selbst für den Einsatz in der Forschung eine Lizenz von Allegro Common Lisp um die 20.000 DM. Das war viel Geld für unser Institut. Wir kriegten deshalb damals mit dem Kauf unserer Workstations von SUN sogar eine Raubkopie von Allegro vorinstalliert. Aber dann kam einer und sagte, dass es ein auch auf unseren SUN Rechnern lauffähiges CAD System namens AutoCAD gibt, das einen Lisp Interpreter mit enthielt, und das uns nur etwa 1000 DM pro Lizenz kosten sollte. Dieses AutoLISP war zwar nicht wirklich echtes Lisp, aber es war gut genug für uns, und wir kriegten dazu immerhin noch kostenfreí ein CAD Programm mitgeliefert.

Meine eigentliche Frage an Dich ist: was treibt Dich? Ich habe den Verdacht, dass es Dir nur darum geht, Deine hart erarbeiteten Kenntnisse von AutoLISP weiter verwenden zu können, und zusätzliche Möglichkeiten, die .Net bietet, möglichst umfassend mitverwenden zu können. Ich konnte nicht erkennen, dass es Dir um das Programmparadigma von Lisp oder um funktionale Programmierung überhaupt geht. Ich sehe auch nicht, dass Du überhaupt weisst, was das bedeutet, und inwiefern dieses Paradigma bei AutoLisp unzureichend implementiert ist. Warum verlangst Du nach Common Lisp, obwohl Du nicht weisst, was das überhaupt ist?

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

archtools
Mitglied



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

Beiträge: 823
Registriert: 09.10.2004

Entwickler für AutoCAD, BricsCAD u.a., alle Systeme

erstellt am: 13. Aug. 2014 21: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 cadplayer 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von cadplayer:
archtools

Ja welche denn ?


Ich kam wg Deiner Fragen gerade ins Stöbern und bin auf das gestoßen: http://de.wikipedia.org/wiki/Clojure.

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