Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  BricsCAD
  Es werde Licht - neue CADCAL Beta mit Objektkommunikation

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 BricsCAD
Autor Thema:  Es werde Licht - neue CADCAL Beta mit Objektkommunikation (35 / 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: 951
Registriert: 09.10.2004

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

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

 
Eine neue Betaversion von CADCAL ist verfügbar. Sie hängt diesem Beitrag an, kann aber auch von www.archtools.de/cadcal.zip kostenfrei herunter geladen werden. Diese Version ist schon sehr nahe am geplanten Zustand eines ersten "offiziellen" Releases.

CADCAL wurde schon vor längerer Zeit als möglichst vollständiger Ersatz für AutoCADs GeomCal entwickelt, und hat im Lauf der Zeit etliche über GeomCals Funktionsumfang hinausgehende Erweiterungen erhalten. Nun kommt auch ein DCL-Frontend für den CAL Befehl dazu, in dem auch eine History der letzten 30 CAL Aufrufe gespeichert ist. Die History bleibt auch nach Speichern, Schließen und Wiederöffnen der DWG erhalten, und man kann alle CAL Aufrufe und die jeweiligen Rechenergebnisse wieder abrufen und erneut verwenden.

Weil diese History ziemlich viel Ähnlichkeit mit einem Stndard-Skript von AutoCAD/BricsCAD hat, wurde auch die Möglichkeit eingebaut, die History in eine Skript-Datei zu exportieren. Diese kann dann in jedem Texteditor beliebig editiert und ergänzt werden.

Und diese Skripte kann man dann sowohl mit dem Standard-Skript-Befehl ausführen lassen, oder besser mit dem CADCAL Befehl CALSCRIPT. In letzterem Fall werden die von den Skripten erzeugten Zeichnungsinhalte als ein eigenes Zeichnungsobjekt erzeugt, das auch nachträglich editiert werden kann. Dazu lädt man am besten CADCAL in eine leere Zeichnung, ruft den Befehl CALSCRIPT auf, und wählt das Skript ./demo/nickshouse.scr aus. Es wird dann das Haus vom Nikolaus gezeichnet, wie es im Skript definiert ist. Dieses CALSCRIPT Objekt kann man beliebig verschieben, kopieren usw. und v.a. kann man mit dem Befehl CC-MODIFY seine Eigenschaften (WIDTH und HEIGHT) jederzeit nachträglich editieren. Dafür, dass ein Skript solche editierbaren Eigenschaften hat, muss lediglich die Zeile
CC-IMPORT WIDTH,100,HEIGHT,100
möglichst am Anfang des Skripts stehen. Da stehen durch Komma getrennte Paare aus Variablennamen, Komma und Defaultwert. Mehr braucht es wirklich nicht!

Aber es kommt noch mehr: diese CALSCRIPT-Objekte können auch miteinander kommunizieren, so dass man als Anwender ohne tiefere Programmierkenntnisse auch Modellsimulationen erstellen kann. Im NICKSHOUSE.SCR steht dazu nach der CC-IMPORT Deklaration die CC-OVERWRITE Deklaration "cc-overwrite layer,color". Damit werden dann die Variablen SELF.LAYER und SELF.COLOR der Objektinstanz auf die Werte MASTER.LAYER und MASTER.COLOR geändert, die von einer anderen kommunizierenden Objektinstanz kommen. Man kann aber auf die MASTER-Werte zugreifen, auch ohne die eigenen Werte zu überschreiben, wie man weiter unten in NICKSHOUSE.SCR sehen kann.

Am besten sieht man den Effekt der Objektkommunikation in der DWG ./demo/switch-and-lamp.dwg. Darin kann man sich Schalter und Lampen als CALSCRIPT-Objekte erzeugen, und kann diese mit CC-CONNECT verbinden. Und dann nimmt eben die Lampe immer den POWER-Zustand vom Schalter an, und es leuchtet das Licht oder nicht. Dabei kann man auch längere Kommunikationsketten aufbauen. Aber Vorsicht: es ist bisher noch kein Schutz vor der Erzeugung von Endlos-Kreisen implementiert. Man sollte also nicht den Empfänger einer Nachricht vom Absender durch CC-CONNECT zum Absender zurück verbinden, sonst hängt man in einer Endlosschleife fest.

Zuletzt: Man kann die Lisp-Funktion, die CADCAL intern aus einem Skrtipt erzeugt, auch selbst erzeugen lassen und in eigene Lisp-Anwendungen einbauen. Dazu kann man einfach mit (setq myfun (c:calscript->lisp)) die Funktion erzeugen und an die Variable myfun binden. Und wenn man dann besipielsweise ein NICKSHOUSE Objekt mit (setq en (car (entsel))) an die Variabkle EN bindet, dann kann man mit (apply myfun (list 40 80 en)) die Objektinstanz EN auf die Werte WIDTH=40 und HEIGHT=80 ändern. Wenn man das mit den kommunizierenden Objekten in der DWG ./demo/nickshouse-comm.dwg macht, sieht man, dass dabei auch die Objektkommunikation ausgeführt wird.

Wie man aus solchen von C:CALSCRIPT-LISP erzeugten LAMBDA Funktionen eigene Applikationen baut, sieht man in der Datei NICKSHOUSE.LSP. Da wurde nur das "LAMBDA" in "DEFUN NCIKSHOUSE" geändert, und es wurde eine Befehslfunktion C:NICKSHOUSE definiert, die den Anwender nach den Daten fragt, und damit dann (nickshouse width height selfdata) aufruft.

Übrigens: CADCAL gibt es als kostenfreie Lizenz, und das wird so bleiben. Die Laufzeit der jeweiligen kostenfreien Lizenz ist bis zum Ende eines Kalenderjahres befristet, und man muss sich dann kostenfrei eine neue, für ein weiteres Kalenderjahr befristete Version holen. Daneben wird es sehr preiswerte unbefristet lauffähige Versionen geben (unter 50 € je Lizenz) und Quellcode-Lizenzen für Entwickler, die diese in kompilierter Form zusammen mit ihren Anwendungen weiter geben dürfen.

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