AutoLISP - LinkFang.de





AutoLISP


AutoLISP [ˈɑːtoʊˌlɪsp] 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. 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


Kategorien: Lisp | Skriptsprache

Quelle: Wikipedia - http://de.wikipedia.org/wiki/AutoLISP (Vollständige Liste der Autoren des Textes [Versionsgeschichte])    Lizenz: CC-by-sa-3.0

Änderungen: Alle Bilder mit den meisten Bildunterschriften wurden entfernt. Ebenso alle zu nicht-existierenden Artikeln/Kategorien gehenden internen Wikipedia-Links (Bsp. Portal-Links, Redlinks, Bearbeiten-Links). Entfernung von Navigationsframes, Geo & Normdaten, Mediadateien, gesprochene Versionen, z.T. ID&Class-Namen, Style von Div-Containern, Metadaten, Vorlagen, wie lesenwerte Artikel. Ansonsten sind keine Inhaltsänderungen vorgenommen worden. Weiterhin kann es durch die maschinelle Bearbeitung des Inhalts zu Fehlern gerade in der Darstellung kommen. Darum würden wir jeden Besucher unserer Seite darum bitten uns diese Fehler über den Support mittels einer Nachricht mit Link zu melden. Vielen Dank!

Stand der Informationen: August 201& - Wichtiger Hinweis: Da die Inhalte maschinell von Wikipedia übernommen wurden, ist eine manuelle Überprüfung nicht möglich. Somit garantiert LinkFang.de nicht die Richtigkeit und Aktualität der übernommenen Inhalte. Sollten die Informationen mittlerweile fehlerhaft sein, bitten wir Sie darum uns per Support oder E-Mail zu kontaktieren. Wir werden uns dann innerhalb von spätestens 10 Tagen um Ihr Anliegen kümmern. Auch ohne Anliegen erfolgt mindestens alle drei Monate ein Update der gesamten Inhalte.