Hallo,
die neue CADCAL Version inkl CALScript ist praktisch fertig. Alle vorgesehenen Funktionen sind implementiert und funktionieren in den bisherigen Tests tadellos. Deshalb beginnt jetzt auch schon die Versionierung mit "Version 1.0 Beta". Noch ein paar Wochen weitere Tests, die ich für ein Manual und den Aufbau einer Website nutzen werde.
CADCAL ist kostenfrei, es liegt diesem Beitrag als ZIP Datei bei, oder kann von www.cadcal.de/cadcal.zip herunter geladen werden. Die Installation ist im Grunde so einfach geblieben wie bisher: einfach die ZIP Datei in ein Verzeichnis entpacken, und dieses in den Suchpfad für Supportdateien von AutoCAD oder BricsCAD aufnehmen. Nur eine Sache ist jetzt dazu gekommen: mit den in der ZIP enthaltenen Dateien acaddoc.lsp (AutoCAD) bzw on_doc_load.lsp (BricsCAD) wird CADCAl automatisch in jedes geöffnete Dokument geladen. Das ist notwendig, weil ein Editor-Reaktor die CALScript Objekte überwachen muss. Wer schon eine acaddoc.lsp bzw on_doc_load.lsp im Einsatz hat, muss den Inhalt der CADCAL-Datei per Copy&Paste ans Ende der vorhandenen Datei setzen. Ob man eine solche Datei im Einsatz hat, erfährt man vor dem Entpacken der ZIP auf dem Befehlsprompt durch:
(findfile "acaddoc.lsp")
bzw
(findfile "on_doc_load.lsp")
Die meisten AutoCAD/BricsCAD Anwender werden sicher viele kleine Lisp-Tools wie z.B. dieses simple Beispiel nutzen:
Code:
(defun simple (p1 wd dp ht / p1 p2 p3 p4 txtpt)
(setq p2 (list (+ (car p1) wd) (cadr p1))
p3 (list (car p2) (+ (cadr p2) dp))
p4 (list (car p1) (+ (cadr p1) dp))
txtpt (list (+ (car p1) 10) (+ (cadr p1) 10))
)
(command "._pline" p1 p2 p3 p4 "_cl")
(command "._line" p1 p3 "")
(command "._line" p2 p4 "")
(command "._text" txtpt 50 0 (vl-prin1-to-string ht))
)
Dieses Beispiel zeichnet die 2D-Darstellung eines Schranks oder Bücherregals. Mit
(simple (getpoint "\nEFP: ") 800 320 2020)
erzeugt man so eine Darstellung.
Und nun kann man mit CALScript dieses kleine Beispiel wirklich schlau machen. Dazu ruft man dieses Lisp-Programm einfach in einem Skript auf, und für CALScript importiert man dazu auch die Vorgabewerte der Argumente der Funktion. Das Skript sieht im allereinfachsten Fall so aus:
Code:
cc-import breite,800,tiefe,320,hoehe,2020
(simple origin width depth height)
Im Grunde kann man jede beliebige Lisp-Funktion, die Argumente übernimmt und daraus Zeichnungsinhalte erzeugt, in so einem Skrtipt aufrufen. Im ./demo Unterordner der CADCAL Installation findet man die Lisp-Datei (simple.lsp) und das Skript (simplesample.scr)
Wenn man dieses Skript nun mit dem Befehl CALSCRIPT aufruft, dann wird man aber vorher nach Einfügepunkt, Drehung und den Argumentwerten gefragt, und die Zeichnung wird entsprechend erzeugt.
Und nun kann man die erzeugte Zeichnung des Regals auch nachträglich editieren. Einfach den Befehl CC-MODIFY aufrufen, und man kann die Parameter nach Belieben abändern. Man kann das Regal schieben, drehen, spiegeln, skalieren und kopieren, und es wird immer editierbar bleiben, und die Kopien ebenfalls. Man kann eine DWG an andere geben, umd die können die Objekte auch editieren, und benötigen nur CADCAL dazu (und in diesem Fall die Lisp-Datei mit dem SIMPLE, aber kein Skript.
Aber es geht noch mehr: diese Regalobjekte können auch miteinander kommunizieren. Dazu am besten die im Demo-Unterordner der CADCAL-Installation stehenden DWGs switch-and-lamp.dwg und nickshouse-comm.dwg öffnen und mit den CADCAL-Funktionen herumspielen.
Viel Spaß
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP