|
|
topWebHamster |
AutoLISP ist die integrierte hohe Programmiersprache von AutoCAD. LISP ist eine Sprache der künstlichen Intelligenz, was sehr einfach ausgedrückt bedeutet, daß sich die Sprache selbst Dinge beibringen kann.
Die (echte) Übersetzung von LISP ist "Listenverarbeitung".
Frei übersetzt heißt es "sinnlose Anordnung unnützer Klammern".
folgende Eigenschaften sind in LISP integriert:
- keine Unterscheidung zwischen Programmen und Daten
- keine Deklaration von Datentypen
- Datenstrukturen beliebiger Größe
- Objektorientierung und/oder prozedureale Programmierung
- lauffähig mit Interpreter oder kompiliert
All diese Eigenschaften hat LISP seit seiner Entstehung 1961 !!!
Anhand des folgenden Beispiels kann die Struktur gut nachvollzogen werden. Einige Module - wie die Winkelfunktionen - benutzt man in fast allen Programmen.
|
| Bogenbemaßung in AutoCAD |
Dieser Bemaßungsstil wurde schlicht vergessen - und nie nachgereicht...
Es ist noch ein ganz kleiner Fehler eingebaut! Dieses Programm zur Bogenbemaßung ist seit Sommer 2001 Bestandteil von CADKON - dort natürlich ohne Fehler ;-)
(SETQ BLIALT NIL CMDALT NIL OSMALT NIL LALT NIL
frage NIL CMD NIL ARC NIL ENT NIL OBJ NIL
BogLen NIL flag NIL pt1 NIL cen NIL pt2 NIL
a1 NIL a2 NIL ad NIL radius NIL)
(defun settings ()
(defun INI6 () (initget (+ 2 4)))
(defun GRD (w) (* 180.0 (/ w pi)))
(defun BOG (w) (* pi (/ w 180.0)))
(defun TAN (w) (/ (SIN (BOG w)) (COS (BOG w))))
(defun COT (w) (/ (COS (bog w)) (SIN (bog w)))))
(defun altvar ()
(setq BLIALT (getvar "blipmode"))
(setq CMDALT (getvar "cmdecho"))
(setq OSMALT (getvar "osmode"))
(setq LALT (getvar "clayer")))
(defun neuvar ()
(setvar "blipmode" 0)
(setvar "cmdecho" 0)
(setvar "osmode" 0)
(command "_.layer" "_make" "ckbb" "_color" "150" "ckbb" ""))
(defun wiedervar ()
(setvar "blipmode" BLIALT)
(setvar "cmdecho" CMDALT)
(setvar "OSMODE" OSMALT)
(setvar "clayer" LALT) (princ))
(defun abfrage ()
(ini6) (initget 1 "G T")
(setq frage (getkword "\nWelche Bogenbemassung?\n<T>eil eines bogens / <G>anzer bogen")))
(defun bbg (/ ARC ENT OBJ BogLen)
(setq flag T) (while (= flag T)
(setq CMD (getvar "CMDECHO")
ARC (entsel "\nBogen wählen: ")
ENT (entget (CAR ARC))
OBJ (CDR (ASSOC 0 ENT)))
(if (= OBJ "ARC") (progn (setvar "CMDECHO" 1)
(setq BogLen (* (CDR (ASSOC 40 ENT)) (IF (MINUSP (SETQ BogLen (- (CDR (ASSOC 51 ENT))
(CDR (ASSOC 50 ENT))))) (+ PI PI BogLen) BogLen)))
(terpri)
(command "_.DIMANGULAR" ARC "_T" (rtos BogLen))
(while (= (logand (getvar "CMDACTIVE") 1) 1)
(command PAUSE))
(setvar "CMDECHO" CMD)
(setq flag F))
(alert "Das war kein Bogen... nochmal! ")))
(alert (strcat "\nBogenlaenge : " (rtos BogLen)))
(princ))
(defun bbt ( / pt1 pt2 cen a1 a2 D1 D2 p r)
(setvar "CMDECHO" 0)
(setvar "OSMODE" 513)
(while (not cen)
(setq pt1 (getpoint "\n1. Punkt")
cen (osnap pt1 "_CEN"))
(if (not cen) (alert "Das war kein Bogen... nochmal! ")
(setq pt2 (getpoint cen " - 2. Punkt"))))
(setvar "OSMODE" 0)
(setq a1 (angle cen pt1) a2 (angle cen pt2)
ad (abs (- a2 a1))
radius (distance pt1 cen)
BogLen (* radius ad))
(command "_.DIMANGULAR" "" cen pt1 pt2 "_T"
(rtos BogLen) pause)
(alert (strcat "\nBogenlaenge : " (rtos BogLen)))
(prin1)
(setq cen nil))
(settings)
(altvar)
(neuvar)
(abfrage)
(if (or (equal frage "G") (equal frage "g"))
(bbg) (bbt))
(wiedervar)
|
| |
| Layerfilter löschen |
Layer Filters Delete - LFD
;lfd-löscht alle Layerfilter bis auf die 3 fest definierten
(defun C:LayerFiltersDelete ()
(vl-Load-Com)
(vl-Catch-All-Apply
'(lambda ()
(vla-Remove (vla-GetExtensionDictionary
(vla-Get-Layers
(vla-Get-ActiveDocument
(vlax-Get-Acad-Object))))
"ACAD_LAYERFILTERS")))
(princ "\nalle überflüssigen Layer entfernt.")
(princ)
)
(defun C:LFD () (C:LayerFiltersDelete))
|
|
|
CAD |
|
Packer |
|
Suche |
|
Grafik |
|
| Typografie |
|
| Tools |
|
|
Kostenloses |
|
|
|
|