Wykorzystanie języka AutoLISP.



Podobne dokumenty
AutoLISP w środowisku VLISP

Ćwiczenie nr 14 Zaawansowane możliwości programu.

Ćwiczenie nr 14 Zaawansowane możliwości programu

5 BvupMJTQ!!qsbluzd{oz!lvst

Ilość cyfr liczby naturalnej

INFORMATYKA TECHNICZNA Badanie możliwości wykorzystania interfejsu automatyzacji OLE w systemie CAx

Język skryptowy: Laboratorium 1. Wprowadzenie do języka Python

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat

Pascal typy danych. Typy pascalowe. Zmienna i typ. Podział typów danych:

INFORMATYKA TECHNICZNA Badanie możliwości wykorzystania języka AutoLISP i środowiska VisualLISP w systemie CAx

WYDZIAŁ ELEKTROTECHNIKI, AUTOMATYKI I INFORMATYKI INSTYTUT AUTOMATYKI I INFORMATYKI KIERUNEK AUTOMATYKA I ROBOTYKA STUDIA STACJONARNE I STOPNIA

9/!Qumf!j!lpotusvldkf!tufsvk df 22:

SPOSOBY POMIARU KĄTÓW W PROGRAMIE AutoCAD

Profile i Śruby Użytkownika Tworzenie własnych baz danych i procedur rysowania profili.

WYKORZYSTANIE PROGRAMU AUTOCAD DO GENEROWANIA PUNKTÓW WĘZŁOWYCH POLILINII

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

Politechnika Łódzka. Instytut Systemów Inżynierii Elektrycznej. Laboratorium cyfrowej techniki pomiarowej. Ćwiczenie 4

Python jest interpreterem poleceń. Mamy dwie możliwości wydawania owych poleceń:

Programowanie w języku Python. Grażyna Koba

SKRYPTY. Zadanie: Wyznaczyć wartość wyrażenia arytmetycznego

Podstawy programowania C. dr. Krystyna Łapin

Podstawy Programowania Podstawowa składnia języka C++

Epebufl!E 892. Możliwe wartości zmiennej ERRNO i ich znaczenie mogą zmienić się w przyszłych wydaniach AutoCADa. Wartość Znaczenie Funkcje AutoLISPu

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu

Ćwiczenie 1. Matlab podstawy (1) Matlab firmy MathWorks to uniwersalny pakiet do obliczeń naukowych i inżynierskich, analiz układów statycznych

Metody numeryczne Laboratorium 2

Przykład 1 -->s="hello World!" s = Hello World! -->disp(s) Hello World!

Wstęp do Programowania, laboratorium 02

System operacyjny Linux

Edytor wzorów w OpenOffice Mini podręcznik

Schematy blokowe I. 1. Dostępne bloki: 2. Prosty program drukujący tekst.

Wyszukiwanie największej spośród czterech liczb. Przykładowe rozwiązanie

Bash - wprowadzenie. Bash - wprowadzenie 1/39

Naukę zaczynamy od poznania interpretera. Interpreter uruchamiamy z konsoli poleceniem

IX. Wskaźniki.(3 godz.)

Python wprowadzenie. Warszawa, 24 marca PROGRAMOWANIE I SZKOLENIA

Podstawy programowania. 1. Operacje arytmetyczne Operacja arytmetyczna jest opisywana za pomocą znaku operacji i jednego lub dwóch wyrażeń.

1 Programowanie w matlabie - skrypty i funkcje

Temat zajęć: Tworzenie skryptów powłoki systemu operacyjnego.

Projekt 4: Programowanie w logice

Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie

2.8. Algorytmy, schematy, programy

Podstawy i języki programowania

PROGRAMOWANIE W PYTHONIE OD PIERWSZYCH KROKÓW

Programowanie: grafika w SciLab Slajd 1. Programowanie: grafika w SciLab

Warunki logiczne instrukcja if

3.4. Opis konfiguracji layoutów.

Języki skryptowe w programie Plans

Wstęp do Informatyki dla bioinformatyków

AKADEMIA MORSKA W SZCZECINIE WI-ET / IIT / ZTT. Instrukcja do zajęc laboratoryjnych nr 1 AUTOMATYZACJA I ROBOTYZACJA PROCESÓW PRODUKCYJNYCH

Dokładny opis instalacji programów RFD można znaleźć w pliku PDF udostępnionym na stronie w zakładce Downland > AutoCAD > Instalacja

JĘZYK SHELL JEST PEŁNYM JĘZYKIEM PROGRAMOWANIA

Operatory zmiany sposobu przypisania standardowych strumieni >,<,>> Jeżeli pierwsze polecenie powiodło się to wykona drugie

Zakład Systemów Rozproszonych

J ezyk AWK Kurs systemu UNIX

Wstęp do programowania

System operacyjny Linux

Przetwarzanie tekstu 2. Operacje na plikach tekstowych w systemie Linux

1 Podstawy c++ w pigułce.

Języki formalne i automaty Ćwiczenia 5

Pętle i tablice. Spotkanie 3. Pętle: for, while, do while. Tablice. Przykłady

Wstęp do systemów wielozadaniowych laboratorium 19 awk

Podstawy Programowania

Informatyka 1. Plan dzisiejszych zajęć. zajęcia nr 1. Elektrotechnika, semestr II rok akademicki 2008/2009

Program współpracuje z : Windows XP, Powerdraft 2004, v8, XM, Microstation 2004, v8, XM.

Instrukcja do programu BASIC PR-02

Praca w programie Power Draft

Podstawowe I/O Liczby

Pliki. Informacje ogólne. Obsługa plików w języku C

Programowanie komputerów

Laboratorium Programowania Kart Elektronicznych

Palindromy. Przykładowe rozwiązanie

TWORZENIE OBIEKTÓW GRAFICZNYCH

Umieszczanie kodu. kod skryptu

Podstawy MATLABA, cd.

Język C zajęcia nr 7. Uwagi dotyczące stylu programowania

Bazy danych i strony WWW

Informatyka 1. Wyrażenia i instrukcje cd., ręczna symulacja, operacje wejścia/wyjścia

Laboratorium Programowania Kart Elektronicznych

JAVAScript w dokumentach HTML (1) JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania.

Usługi Informatyczne "SZANSA" - Gabriela Ciszyńska-Matuszek ul. Świerkowa 25, Bielsko-Biała

Obliczenie azymutów ze współrzędnych punktów tablica struktur punktów, tablica struktur azymutów

do MATLABa programowanie WYKŁAD Piotr Ciskowski

Zakład Systemów Rozproszonych

Języki formalne i automaty Ćwiczenia 6

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),

Pliki. Operacje na plikach w Pascalu

Wstęp do Programowania Lista 1

1 Wprowadzenie do algorytmiki

Modelowanie rynków finansowych z wykorzystaniem pakietu R

4. Funkcje. Przykłady

Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka

Podstawy programowania, Poniedziałek , 8-10 Projekt, część 1

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main.

Spis treści WSTĘP CZĘŚĆ I. PASCAL WPROWADZENIE DO PROGRAMOWANIA STRUKTURALNEGO. Rozdział 1. Wybór i instalacja kompilatora języka Pascal

SKRYPTY w programie AUTOCAD jako ciąg poleceń. Tworzenie i odtwarzanie skryptów

Powłoka bash. Kurs systemu Unix 1

Podstawy programowania w języku C i C++

Ćwiczenie nr 14 Zaawansowane moŝliwości programu

Transkrypt:

Wykorzystanie języka AutoLISP. AutoLISP jest językiem programowania podobnie jak Basic, Pascal, C. Różni się tym, że jest zintegrowany z AutoCADem i nie można go używać oddzielnie, AutoLISP liczy w arytmetyce liczb rzeczywistych, obsługuje pliki, przetwarza zmienne tekstowe, wykonuje operacje logiczne i bitowe, przetwarza listy oraz pomaga w rysowaniu. Translator AutoLISPu jest interpreterem. Programy są tłumaczone linia po linii. Czym różni się AutoLSIP od skryptu? Dzięki programowi AutoLisp można np. wykonać rysunki parametryczne, czego nie może zrobić skrypt. AutoLISP pozwala tez na pisanie funkcji. Obiekty języka AutoLISP Typ INT liczba całkowita -32768 do 32767 Typ REAL liczba rzeczywista z dokładnością 8 cyfr znaczących Typ STR łańcuchy tekstowe, np. \n - znak przejścia do nowej linii c\acad\\lisp\prog1.lsp Typ FILE wartości sa deskryptorami plików Typ SYM symbole, np. 012abc, +, open, T Typ SUBR wbudowane funkcje programu np. (setq plus +; (+ 5 4 Typ LIST listy Np. (1 2 3 ( abc (12 2.0 Typ PICKSET zbiory wyboru AutoCADA, np. (setq zbiorwyb_okno (setq _w (0 0 (10 10 Typ ENAME nazwy entycji AutoCADa, np. linie, bloki itp. Instrukcje AutoLISPu mają strukturę (symbol_operatora argument1 argument2 Funkcje Schemat ((parametry_formalne /zmienne_lokalne (cialo_funkcji Programy Ciąg instrukcji zapisany w pliku o rozszerzeniu.lsp. Wczytanie programu (load nazwa_pliku_lsp [wyrazenie] Nazwę można pominąć jeżeli jest to rozszerzenie.lsp. Jeśli program ma inne rozszerzenie to trzeba podać pełną nazwę. Uruchomienie Wpisujemy nazwę funkcji w nawiasie lub bez nawiasu jeśli przed nazwą procedury występuje c: Program napisany w AutoLISP składa się z procedur. Przykładowy program rysowanie odcinka PQ ; Program r1.lsp

; rysowanie odcinka ; definicja funkcji r1 defun r1( ; wczytanie punktow (setq p (getpoint "\Podaj 1 punkt: " (setq q (getpoint "\Podaj 2 punkt: " ; komenda rysowania linii (command "_LINE" p q "" Wczytanie programu: (load r1.lsp lub (load : r1 albo wczytaj aplikację z menu. Uruchomienie: (r1 Jeżeli nazwa funkcji jest poprzedzona C: to uruchamiamy ją wpisując nazwę bez nawiasów. Przykładowe programy ; Rysowanie linii prostopadłych do innych linii ; This program permits you to draw lines perpendicular to ; other lines by changing the snap angle to the angle of the ; target line. Be sure to execute perpdoff.lsp after you ; draw your perpendicular lines. ; (defun c:perpdon (/ a b pnt1 pnt2 ang1 (graphscr (setq a (entsel (setq b (entget (car a (setq pnt1 (cdr (assoc 10 b (setq pnt2 (cdr (assoc 11 b (setq ang1 (angle pnt1 pnt2 (setvar "snapang" ang1 (defun c:perpdoff ( (setvar "snapang" 0 Zapis współrzędnych wskazanych punktów do pliku (defun c:xyz ( ; Zapis wspolrzednych wskazanych pktow do pliku (defun zapis ( (progn (print "Lp " (princ sp (princ i (setq p1 (getpoint " Punkt : "

(if (= n 0 (princ n plik (print n plik (princ sp plik (princ (car p1 plik (princ sp plik (princ (cadr p1 plik (princ sp plik (princ (caddr p1 plik (terpri ; progn ; zapis (graphscr (setq sp " " (setq nazwa (getstring "Nazwa pliku do zapisu wspolrzed.: " (terpri (setq plik (open nazwa "a" (if (eq plik nil (*ERROR* "Zapis: Nie moge otworzyc pliku " (setq n 1 i 0 (while (/= n 0 (progn (setq n (getint "Nr pktu lub 0 gdy koniec : " (if (/= n 0 (zapis (setq i (+ 1 i ; progn ; while (close plik ; xyz (princ "\nw celu wywolania napisz XYZ" (princ Strzałka (defun C:STR ( (setq pp (getpoint"\nstrzala - Punkt poczatkowy strzalki :" (setq pk (getpoint pp "\npunkt strzalki z grotem: " (COMMAND "_LINE" PP PK "" (setq p1 (getpoint pk "\nkoniec grotu strzalki: " (COMMAND "_LINE" PK P1 "" (setq azp (angle pk pp (setq az1 (angle pk p1 (setq alfa (- azp az1

(setq az2 (+ azp alfa (setq a (distance pk p1 (setq p2 (polar pk az2 a (command "_line" pk p2 "" (princ "\nwczytano STR.LSP - strza ka. W celu wywolania napisz STR" (princ Skarpy ; zamiana stopni na grady (defun dtr (a (* pi (/ a 180.0 ; pobranie informacji (defun gp ( (setq sp (getpoint "\npunkt pocz skarpy (kreski na prawo od linii: " (setq ep (getpoint sp "\npunkt konc skarpy : " (setq ap (getpoint sp "\n1-szy punkt boczny skarpy (kolo pktu pocz : " (setq bp (getpoint ep "\n2-gi punkt boczny skarpy (kolo pktu konc : " (setq tspac (getdist "\nprzybl. odleglosc miedzy kreskami (bedzie dopasowana: " sp (setq x (getint "\Rysowanie obrysow skarpy? 1-calosc, 2-gora i dol, 3-gora: " (setq x1 (car sp (setq y1 (cadr sp (setq x2 (car ep (setq y2 (cadr ep (setq x3 (car ap (setq y3 (cadr ap (setq A (- y2 y1 (setq B (- x1 x2 (setq C (- (- (* A x1 (* B y1 (setq d1 (/ (+ (* A x3 (* B y3 C (sqrt (+ (* A A (* B B (setq d2 (/ (+ (* A x2 (* B y2 C (sqrt (+ (* A A (* B B (setq pangle (angle sp ep (setq pang2 (angle ap bp (setq alfa (- pangle pang2 (setq plength (distance sp ep (setq angp90 (+ pangle (dtr 90 ; kat skarpy + 90 stopni (setq angm90 (- pangle (dtr 90 ; kat skarpy minus 90 stopni (setq s (distance sp ep (setq n1 (/ s tspac (setq n2 (fix n1 (setq tspac (/ s n2

; Rysowanie obrysu skarpy (defun drt ( (command "_line" sp ep ^C^C (command "_line" ep bp ^C^C (command "_line" bp ap ^C^C (command "_line" ap sp ^C^C (defun drt2 ( (command "_line" sp ep ^C^C (command "_line" ap bp ^C^C (defun drt3 ( (command "_line" sp ep ^C^C (defun drawk1 ( (setq p1 (polar sp pangle pdist (setq p2 (polar p1 angm90 y1 (command "_line" p1 p2 ^C^C (defun drawk2 ( (setq p3 (polar sp pangle pdist (setq p4 (polar p3 angm90 y1 (command "_line" p3 p4 ^C^C (defun draw1 ( (setq pdist tspac (while (< pdist plength (setq y1 (* pdist (/ (sin alfa (cos alfa (setq y1 (+ d1 y1 (drawk1 (setq pdist (+ pdist (* 2.0 tspac (defun draw2 ( (setq pdist (* 2 tspac (while (< pdist plength

(setq y1 (* pdist (/ (sin alfa (cos alfa (setq y1 (+ d1 y1 (setq y1 (/ y1 2.0 (drawk2 (setq pdist (+ pdist (* 2.0 tspac ; Wykonanie polecenia przes wywolaqnie zdefiniowanych funkcji (defun C:skarpy ( (gp (if (= x 1 (drt (if (= x 2 (drt2 (if (= x 3 (drt3 (draw1 (draw2 (princ "\nwczytano SK.LSP. W celu wywolania napisz SKARPY" (princ Czytanie danych z pliku. Rysowanie okręgów ; Program okrlnr.lsp ; Okregi, linie, numery (defun c:okrlnr ( (graphscr (prompt "\nfunkcja czyta dane z pliku (Nr X Y, rysuje okregi i numery" (terpri (setq nazplik (getstring "\nnazwa pliku z danymi: " f (open nazplik "r" r 1.0 wiersz (read-line f cr "\n" (while wiersz (setq p0 p1 na (substr wiersz 1 2 ya (substr wiersz 3 11 xa (substr wiersz 12 20 y (atof ya x (atof xa p1 (list x y

x2 (+ 6 x y2 (+ 2 y p2 (list x2 y2 ;setq (princ na (princ " " (princ ya (princ " " (princ xa (princ " " (terpri (command "_circle" p1 1.0 (setq wiersz (read-line f ; (setq p0 p1 (command "_line" p0 p1 "" (command "_text" p2 "2.5" "0" na ;while (close f