Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  CADCAL, GeomCAL und Lisp

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
Autor(16196) Thema:  CADCAL, GeomCAL und Lisp (431 / mal gelesen)
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: 927
Registriert: 09.10.2004

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

erstellt am: 24. Dez. 2023 11:25    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

Aus mir unerfindlichen Gründen verwenden nur wenige CAD-Anwender GeomCAL oder CADCAL, obwohl die Produktivität damit enorm gesteigert werden kann. Man spart sich damit jede Menge aufwendige Hilfskonstruktionen. Nur wenige Anwender wissen deshalb auch, dass man GeomCAL und CADCAL auch in Lisp verwenden kann, beispielsweise wie hier, um einen Punkt zu finden, der auf 1/3 der Verbindung zwischen zwei Punkten PT1 und PT2 liegt:

Code:
(cal "PLT(PT1,PT2,1/3)")

PLT ist eine in GeomCAL und CADCAL vordefinierte Funktion. Man kann das auch mathematisch ausführlicher so schreiben:

Code:
(cal "PT1+(PT2-PT1)/3")

In Worten: zum Punkt PT1 wird ein Drittel des Vektors von PT1 nach PT2 addiert.

Mit CADCAL und GeomCAL können also auch viele Lisp-Anwender mathematische Ausdrücke berechnen lassen, auch wenn sie von Mathematik eher wenig Ahnung haben. Das Fehlen von Mathematikkenntnissen dürfte einer der Gründe dafür sein, warum viele CAD-Anwender vor Lisp zurückschrecken. GeomCAL und CADCAL könnten das vielleicht ändern.

Ein kleines Problem dabei ist der Performanceverlust, der dadurch entsteht, dass jeder mathematische Ausdruck in einer (CAL <Ausdruck>) Funktion immer erst mal durch einen Parser laufen muss, der diesen Ausdruck in eine für Computer nutzbare Form übersetzt. Sowas wie "1+2" ist für den Computer eben erst mal nur eine sinnfreie Zeichenkette. Insbesondere wenn CAL-Aufrufe in Schleifen stehen und eventuell tausende Male aufgerufen werden, stellt sich doch ein spürbarer Performanceverlust ein.

Nun ist CADCAL anders als GeomCAL vollständig in Lisp geschrieben, und es übersetzt die in Zeichenketten stehenden mathematischen Ausdrücke erst mal in Lisp-Ausdrücke, die es dann auswertet. Und diese Übersetzungsfunktion CC-STR->LISP steht auch dem CADCAL Anwender zur Verfügung.

Mit dem Lisp-Aufruf

Code:
(CC-STR->LISP "PLT(PT1,PT2,1.0/3.0)")

erhält man dann den Funktionsaufruf in Lisp:
Code:
(§§PLT (LIST PT1 PT2 (§§/ 1.0 3.0)))

Analog erhält man für

Code:
(CC-STR->LISP "PT1+(PT2-PT1)/3.0")

als Ergebnis den Lisp-Ausdruck
Code:
[(§§+ (LIST PT1 (§§/ (§§- (LIST PT2 PT1)) 3.0)))

Die hierfür notwendigen Funktionen wie §§+ usw sind in CADCAL enthalten. Anders als mit dem in Lisp eingebauten + kann §§+ auch Vektoren addieren.

Man kann diese von CC-STR->LISP zurückgegebenen Lisp-Ausdrücke dann anstelle der CAL-Aufrufe in seinem eigenen Lisp-Code vewenden, und damit erhebliche Performancegewinne erzielen.


GeomCAL liegt der AutoCAD Distribution bei, CADCAL ist für BricsCAD von http://www.archtools.de/cadcal.zip frei downloadbar. Eine Kurzanleitung für CADCAL ist enthalten, aber auch direkt unter http://www.archtools.de/cadcal.html zugänglich. Wer CADCAL für andere Lisp-basierte CAD-Programme benötigt, kann mir gerne eine private Nachricht senden.


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

Peter2
Ehrenmitglied V.I.P. h.c.




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

Beiträge: 3822
Registriert: 15.10.2003

Win 10/64 Pro
AutoCAD MAP 3D 2023
BricsCAD 23

erstellt am: 14. Mrz. 2024 08: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 archtools 10 Unities + Antwort hilfreich

Ich habe das jetzt geladen und die Befehle, die ich in Acad habe, laufen auch hier.
Vielen Dank!

Aber was will mir das sagen?

Code:

Befehl: (load      "cadcal")
Es wurde kein integrierter Befehl mit diesem Namen gefunden. Bitte versuchen Sie es erneut.
**********************************************************************
CADCAL loaded. Current version: 2024 FEB 08
please see http://archtools.de/cadcal.html for more info
  (c) 2024 Tom Berger, berger@archtools.de
  free license expires at 2024 DEC 31,. You need to
  renew your free license before that date at support@archtools.de
**********************************************************************

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: 927
Registriert: 09.10.2004

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

erstellt am: 14. Mrz. 2024 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

Zitat:
Original erstellt von Peter2:
Aber was will mir das sagen?
Code:

Befehl: (load       "cadcal")
Es wurde kein integrierter Befehl mit diesem Namen gefunden. Bitte versuchen Sie es erneut.


Hallo,

diese Meldung kenne ich nicht aus BricsCAD oder AutoCAD, und andere CAD-Programme habe ich nicht zum Testen. Die Meldung deutet darauf hin, dass beim Laden von CADCAL ein Befehl ausgeführt wird, den Dein CAD-Programm nicht kennt. Ich kann mir nicht vorstellen, welcher Befehl das sein soll, und leider wird der ja nicht in der Fehlermeldung benannt.

Mit welchem CAD-Programm benutzt Du CADCAL denn?

In BricsCAD wird beispielsweise der Befehl "_UNDEFINE" ausgeführt, um die internen Befehle CAL und _CAL zu deaktivieren und durch das CCAL von CADCAL zu ersetzen. Da sieht der Ladevorgang dann so aus:

Code:

: (load "cadcal")
: _undefine
Command to undefine: cal
: _undefine
Command to undefine: _cal
**********************************************************************
CADCAL loaded. Current version: 2024 FEB 08
please see http://archtools.de/cadcal.html for more info
  (c) 2024 Tom Berger, berger@archtools.de
  free license expires at 2024 DEC 31,. You need to
  renew your free license before that date at support@archtools.de
**********************************************************************


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

Peter2
Ehrenmitglied V.I.P. h.c.




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

Beiträge: 3822
Registriert: 15.10.2003

Win 10/64 Pro
AutoCAD MAP 3D 2023
BricsCAD 23

erstellt am: 14. Mrz. 2024 10:24    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 archtools 10 Unities + Antwort hilfreich

Ich habe das in Bricscad Pro V23, und da passiert im Standardprofil das:

Wenn ich vorher "cal" aufrufe habe ich einen anderen Befehl:

Code:
: BSCALE
Objekte wählen:
Abbrechen* Function cancelled

Code:
: (LOAD "cadcal.des")
: _undefine
Befehl zum Entfernen: cal
Es wurde kein integrierter Befehl mit diesem Namen gefunden. Bitte versuchen Sie es erneut.
: _undefine
Befehl zum Entfernen: _cal
**********************************************************************
CADCAL loaded. Current version: 2024 FEB 08
please see http://archtools.de/cadcal.html for more info
  (c) 2024 Tom Berger, berger@archtools.de
  free license expires at 2024 DEC 31,. You need to
  renew your free license before that date at support@archtools.de
**********************************************************************

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: 927
Registriert: 09.10.2004

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

erstellt am: 15. Mrz. 2024 10: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

Zitat:
Original erstellt von Peter2:
Ich habe das in Bricscad Pro V23, und da passiert im Standardprofil das:

Wenn ich vorher "cal" aufrufe habe ich einen anderen Befehl:

Code:
: BSCALE
Objekte wählen:
Abbrechen* Function cancelled

Code:
: (LOAD "cadcal.des")
: _undefine
Befehl zum Entfernen: cal
Es wurde kein integrierter Befehl mit diesem Namen gefunden. Bitte versuchen Sie es erneut.
: _undefine
Befehl zum Entfernen: _cal
**********************************************************************
CADCAL loaded. Current version: 2024 FEB 08
please see http://archtools.de/cadcal.html for more info
   (c) 2024 Tom Berger, berger@archtools.de
   free license expires at 2024 DEC 31,. You need to
   renew your free license before that date at support@archtools.de
**********************************************************************


Danke, ist gelöst. Im deutschen BricsCAD gibt es anders als im deutschen AutoCAD keinen CAL Befehl, da gibt es nur KAL. Die Fehlermeldung ist unproblematisch, aber in der aktuell downloadbaren Version http://www.archtools.de/cadcal.zip ist dieser Fehler behoben.

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

Peter2
Ehrenmitglied V.I.P. h.c.




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

Beiträge: 3822
Registriert: 15.10.2003

Win 10/64 Pro
AutoCAD MAP 3D 2023
BricsCAD 23

erstellt am: 15. Mrz. 2024 15: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 Nur für archtools 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von archtools:
....ist dieser Fehler behoben.

Danke, und weiterhin erfolgreiches Schaffen!

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