AutoLISP
AutoLISP [.mw-parser-output .IPA a{text-decoration:none}ˈɑːtoʊˌlɪsp] ist ein Dialekt der Programmiersprache LISP und Bestandteil des verbreiteten CAD-Prog…
AutoLISP [] ist ein Dialekt der Programmiersprache LISP und Bestandteil des verbreiteten CAD-Programmes AutoCAD.
Mit Hilfe von AutoLisp können Funktionen in einem AutoCAD-System hinzugefügt, gelöscht und geändert werden. Um dies zu gewährleisten, gibt es spezielle AutoLisp-Routinen, die direkt auf die AutoCAD-Datenbasis zugreifen können. Das sind im Wesentlichen Funktionen zur Behandlung von Koordinateneingaben, deren zeichnerische Umsetzung in CAD-Elemente, wie Linie, Kreis usw. möglich ist. Mit Hilfe von AutoLISP lassen sich komplexe Umgebungen zur Handhabung von AutoCAD, beispielsweise hinsichtlich der Anwendung von Normteilen, erstellen.
Hello World
(defun c:HelloWorld()
(princ "\nHello World")
)
Beispiel: zum Zeichnen eines Rechtecks
(defun c:recht2 ( / p1 laenge breite w p2 p3 p4)
(setq p1 (getpoint "\nEinfügepunkt: "))
(setq laenge (getdist p1 "\nLänge: "))
(setq breite (getdist p1 "\nBreite: "))
(setq w (getangle p1 "\nEinfügewinkel: "))
(setq p2 (polar p1 w laenge))
(setq p3 (polar p2 (+(/ pi 2)w) breite))
(setq p4 (polar p3 (+ pi w) laenge))
(command "linie" p1 p2 p3 p4 "s")
(princ)
)
Beispiel: Ermittlung eines Abstandes in Autolisp
(defun c:Distanz()
(setq old_osmode (getvar "osmode"))
(setvar "osmode" 1)
(setq P01 (getpoint "\nErster Punkt:"))
(setq Distanz (getdist P01 "\nZweiter Punkt:" ))
(princ "\nDistanzwert: ")
(princ Distanz)
(princ "\n , zugreifen in AutoCAD mit !DISTANZ ")
(setvar "osmode" old_osmode)
)
Beispiel: Drehen von Objekten in Autolisp
(defun c:verdreh (/ Drehpunkt Radius Auswahl Erster_Punkt)
(setq Drehpunkt (getpoint "\nDrehen mit dem Kreis <Zentrum des Bezugskreis>: "))
(if Drehpunkt
(progn
(setq Radius (abs (getdist Drehpunkt "\nRadius für den <Bezugskreis>:")))
(if Radius
(command "Kreis" Drehpunkt Radius )
);end if Radius
);end progn Drehpunkt
);end if Drehpunkt
(if Radius
(setq Auswahl (ssget ) ) ;Wählen der Elemente zum Drehen
);end if Radius
(if Auswahl
(progn
(setq Erster_Punkt (getpoint Drehpunkt "\nAusgangspunkt der Drehung [Schnittpunkt] mit dem <Bezugskreis>:"))
(if Erster_Punkt
(progn
(command "drehen" (ssget "V") "" Drehpunkt "B" Drehpunkt Erster_Punkt pause nil)
(command "Löschen" "L" "" )
);end progn Erster_Punkt
);end if Erster_Punkt
);end progn Auswahl
); end if Auswahl
); Ende der Funktion verdreh
(princ "\nVERDREH.LSP wurde geladen.." )
(princ "\nStarten mit verdreh \n")
(princ)
Beispiel: setzt Objekte auf den aktuellen Layer in AutoLisp
; Setzt gewählte Objekte auf den aktuellen Layer
(defun c:selayer(/ ak_layer)
(setq ak_layer (getvar "clayer"))
(princ "\nObjekte setzen auf: <")
(princ ak_layer)
(princ "> alle Eigenschaften des Layers werden übernommen.")
(command "_change" (ssget) "" "_p" "_LA" ak_layer "_LT" "_bylayer" "_C" "_bylayer" "_S" "1" "")
)
Weblinks
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.