Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Autolisp Programmieren

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte
Autor Thema:  Autolisp Programmieren (2495 mal gelesen)
Lolali
Mitglied
Verfahrenstechnik Studium

Sehen Sie sich das Profil von Lolali an!   Senden Sie eine Private Message an Lolali  Schreiben Sie einen Gästebucheintrag für Lolali

Beiträge: 9
Registriert: 22.05.2017

erstellt am: 23. Mai. 2017 08:19    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo!

Ich brauche dringend Hilfe für eine Autolisp Programmierung. Ich habe kaum Kenntnisse und erst eine Vorlesung dazu gehabt. Jetzt soll ich eine Aufgabe bis morgen lösen und zwar soll ich eine Funktion angeben, bei der zwei vorhanden Punkte (getpoint) ausgewählt werden und den Abstand dieser mir in einem Anzeigefenster anzeigt (alert).
Wie lauten dafür die Befehle? Brauche dringend Hilfe!

Liebe Grüße

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

CADmium
Moderator
Maschinenbaukonstrukteur




Sehen Sie sich das Profil von CADmium an!   Senden Sie eine Private Message an CADmium  Schreiben Sie einen Gästebucheintrag für CADmium

Beiträge: 13508
Registriert: 30.11.2003

.

erstellt am: 23. Mai. 2017 08:51    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Lolali 10 Unities + Antwort hilfreich

na du hast doch schon die Hälfte in deiner Frage genannt...  einfach mal in der ACAD-Hilfe sich die erwarteten Funktionsparameter und Funktionsrückgaben ansehen ... evtl ein paar Beispiele angucken ... dann läßt die die Aufgabe mit einer LispZeile  lösen.
Unter Strich solltest du mit den Funktionen

alert strcat  rtos  distance getpoint

auskommen.

(in der Reihenfolge mit ein paar Klammern und evtl. Aufhübsch-Eingabepromptstrings Drumherum  )

------------------
Also ich finde Unities gut ... und andere sicher auch
---------------------------------------
  - Thomas -          
"Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben."

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Vino
Mitglied



Sehen Sie sich das Profil von Vino an!   Senden Sie eine Private Message an Vino  Schreiben Sie einen Gästebucheintrag für Vino

Beiträge: 207
Registriert: 24.05.2005

Windows 10
BricsCAD V20-22

erstellt am: 23. Mai. 2017 08:55    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Lolali 10 Unities + Antwort hilfreich

Hallo,

Schau dir mal die folgenden Funktionen etwas genauer an:

  • setq
  • getpoint
  • distance
  • rtos
  • strcat
  • alert

Damit sollte das lösbar sein.

Gruß
Stefan

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Lolali
Mitglied
Verfahrenstechnik Studium

Sehen Sie sich das Profil von Lolali an!   Senden Sie eine Private Message an Lolali  Schreiben Sie einen Gästebucheintrag für Lolali

Beiträge: 9
Registriert: 22.05.2017

erstellt am: 23. Mai. 2017 09:00    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Das habe ich ja bereits gemacht, aber leider bekomm ich es einfach nicht hin
Keine Ahnung wie ich vorgehen soll, da ich null Erfahrung damit habe und schnell eine Lösung dazu brauche 

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Lolali
Mitglied
Verfahrenstechnik Studium

Sehen Sie sich das Profil von Lolali an!   Senden Sie eine Private Message an Lolali  Schreiben Sie einen Gästebucheintrag für Lolali

Beiträge: 9
Registriert: 22.05.2017

erstellt am: 23. Mai. 2017 09:02    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Mhh ja das Problem liegt einfach darin dass ich mit den Befehlen auch nicht so viel anfangen kann wenn man null Kenntnisse hat

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Vino
Mitglied



Sehen Sie sich das Profil von Vino an!   Senden Sie eine Private Message an Vino  Schreiben Sie einen Gästebucheintrag für Vino

Beiträge: 207
Registriert: 24.05.2005

Windows 10
BricsCAD V20-22

erstellt am: 23. Mai. 2017 09:05    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Lolali 10 Unities + Antwort hilfreich

Zum kennenlernen der einzelnen Funktionen einfach "autolisp [FUNKTIONSNAME]" in google eingeben und lesen...

Wie weit bist du denn?
Poste doch mal, was du schon gemacht hast, vielleicht bekommst du dann Tipps, wo was falsch ist.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Lolali
Mitglied
Verfahrenstechnik Studium

Sehen Sie sich das Profil von Lolali an!   Senden Sie eine Private Message an Lolali  Schreiben Sie einen Gästebucheintrag für Lolali

Beiträge: 9
Registriert: 22.05.2017

erstellt am: 23. Mai. 2017 09:11    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Naja wirklich viel hab ich noch nicht...

(defun c: l_punkt()

              (setq p1 (getpoint "Erster Punkt auswählen")
              (setq p2 (getpoint "Zweiter Punkt auswählen")
)

Wie gesagt ich hab kein Plan davon und kann mit den Befwhlwn noch nicht viel anfangen auch wenn ich weis welche ich anwenden müsste...

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Vino
Mitglied



Sehen Sie sich das Profil von Vino an!   Senden Sie eine Private Message an Vino  Schreiben Sie einen Gästebucheintrag für Vino

Beiträge: 207
Registriert: 24.05.2005

Windows 10
BricsCAD V20-22

erstellt am: 23. Mai. 2017 09:32    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Lolali 10 Unities + Antwort hilfreich

ok...

als erstes solltest du deine Klammern überprüfen.
Es müssen immer gleich viele öffnende wie schließende Klammern vorhanden sein, sonst läuft gar nichts...

Und dann hat dir CADmium ja sogar schon einen Tipp mit der Reihenfolge der benötigten Funktionen gegeben.
Nur ging CADmium davon aus, dass das ganze ein Einzeiler wird. Zum Einstieg würde ich dir empfehlen, das ganze Schritt für Schritt anzugehen, und dann wäre die Reihenfolge genau umgekehrt zu CADmiums ersten Posting und in der Reihenfolge wie ich sie geschrieben habe.

Nach SETQ und GETPOINT, die du schon hast, kommt also DISTANCE.

Wenn du wie ich geschrieben habe "autolisp distance" googelst, kommst du recht schnell zu z.B. Dieser Seite
Hier findest du raus, was du der Funktion mitgeben musst, und was dann zurück kommt.

Und so hangelst du dich von einer Funktion zur nächsten.

Noch ein Tipp:
Mit (princ [VARIABLENNAME]) kannst du dir zwischendurch den Wert von Variablen an der Befehlszeile ausgeben lassen, um zu überprüfen, was das Programm bisher so macht.

Gruß

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Brischke
Moderator
CAD on demand GmbH




Sehen Sie sich das Profil von Brischke an!   Senden Sie eine Private Message an Brischke  Schreiben Sie einen Gästebucheintrag für Brischke

Beiträge: 4171
Registriert: 17.05.2001

AutoCAD 20XX, defun-tools (d-tools.eu)

erstellt am: 23. Mai. 2017 09:35    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Lolali 10 Unities + Antwort hilfreich

... das sieht doch gut aus! Es fehlen lediglich die schließenden Klammern der setq- Funktionen.
Grüße!
Holger

------------------
Holger Brischke
CAD on demand GmbH
Individuelle Lösungen von Heute auf Morgen.


defun-tools Das Download-Portal für AutoCAD-Zusatzprogramme!


Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Lolali
Mitglied
Verfahrenstechnik Studium

Sehen Sie sich das Profil von Lolali an!   Senden Sie eine Private Message an Lolali  Schreiben Sie einen Gästebucheintrag für Lolali

Beiträge: 9
Registriert: 22.05.2017

erstellt am: 23. Mai. 2017 10:49    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Ich habe grad nochmal mit dem Dozenten geredet und ich soll das iwie über Koordinaten machen und dann berechnend?!?!

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Vino
Mitglied



Sehen Sie sich das Profil von Vino an!   Senden Sie eine Private Message an Vino  Schreiben Sie einen Gästebucheintrag für Vino

Beiträge: 207
Registriert: 24.05.2005

Windows 10
BricsCAD V20-22

erstellt am: 23. Mai. 2017 11:07    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Lolali 10 Unities + Antwort hilfreich

Kann es sein, dass du ein paar Vorlesungen ausgelassen hast?
Zumindest hättest du wohl die Aufgabe besser abstimmen und dich etwas früher damit beschäftigen sollen.

Prinzipiell hast du durch GETPOINT bereits Koordinaten und berechnest aus diesen mit DISTANCE den Abstand...

Ich glaube nach deinem letzten Post aber fast, dass dein Dozent gerne die Berechnung ohne DISTANCE sehen will?
Wenn das so ist, dann kannst du aus deiner Funktionsliste DISTANCE streichen und dafür kommen

  • car
  • cadr
  • -
  • *
  • sqrt

dazu und das Ganze wird etwas komplizierter.
Stichwort: Pythargoras

Gruß
Stefan

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Brischke
Moderator
CAD on demand GmbH




Sehen Sie sich das Profil von Brischke an!   Senden Sie eine Private Message an Brischke  Schreiben Sie einen Gästebucheintrag für Brischke

Beiträge: 4171
Registriert: 17.05.2001

AutoCAD 20XX, defun-tools (d-tools.eu)

erstellt am: 23. Mai. 2017 11:29    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Lolali 10 Unities + Antwort hilfreich

... nun, dann geht's in die Vektorrechnung.
- Berechnen eines Vektors zwischen 2 Punkten
- Berechnen der Länge eines Vektors
Ich denke, das ist sogar noch Abi-Mathestoff.
Hier in Lisp ist dann nur das Neue, dass man gezielt auf Listenelemente (ein Punkt ist eine Liste aus 3 Koordinaten) zugreift.
car cadr caddr

Grüße!
Holger
PS: es wäre sicher ein Leichtes, die fertige Lösung zu posten. Da ein Forum allerdings zum Austausch zur Selbsthilfe gedacht ist, tue ich genau das nicht.

------------------
Holger Brischke
CAD on demand GmbH
Individuelle Lösungen von Heute auf Morgen.


defun-tools Das Download-Portal für AutoCAD-Zusatzprogramme!


Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

spider_dd
Mitglied



Sehen Sie sich das Profil von spider_dd an!   Senden Sie eine Private Message an spider_dd  Schreiben Sie einen Gästebucheintrag für spider_dd

Beiträge: 1111
Registriert: 27.11.2003

Win 10Pro
Intel(R) Core(TM) i7-7700
NVIDIA Quadro P1000
ACAD, Civil-3D 2018

erstellt am: 23. Mai. 2017 13:21    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Lolali 10 Unities + Antwort hilfreich

Und als Einsteig in die Lisp-Programmierung ist natürlich auch diese Seite hier immer wärmstens zu empfehlen.

Gruß
Thomas

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Lolali
Mitglied
Verfahrenstechnik Studium

Sehen Sie sich das Profil von Lolali an!   Senden Sie eine Private Message an Lolali  Schreiben Sie einen Gästebucheintrag für Lolali

Beiträge: 9
Registriert: 22.05.2017

erstellt am: 23. Mai. 2017 17:57    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Naja ich glaube das bringt mir hier alles nichts... ich hatte bisher 2 Vorlesungen dazu!! 
Ich soll weder Distance verwenden noch car oder cadr... keine Ahnung was der will. Die Aufgabe habe ich gestern bekommen also konnte ich mich natürlich nicht drauf vorbereiten, unser Prof ist auch nicht wirklich der beste. Wenn man das gut kann hat man auch leicht reden
Trotzdem vielen Dank für die Mühe

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

jupa
Ehrenmitglied V.I.P. h.c.
Ruheständler


Sehen Sie sich das Profil von jupa an!   Senden Sie eine Private Message an jupa  Schreiben Sie einen Gästebucheintrag für jupa

Beiträge: 6050
Registriert: 16.09.2004

WINDOWS Vista Ultimate SP2 (64bit), NVIDIA Geforce 9600M GT, AutoCAD 2013.

erstellt am: 23. Mai. 2017 19:36    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Lolali 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von Lolali:

Ich soll weder Distance verwenden noch car oder cadr...

Das hat er also ausdrücklich ausgeschlossen?
Dann laß uns doch mal die komplette Aufgabenstellung wissen, die Du / wie Du sie bekommen hast.

Jürgen

------------------
Bildung kommt nicht vom Lesen, sondern vom Nachdenken über das Gelesene. (Carl Hilty)

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Lolali
Mitglied
Verfahrenstechnik Studium

Sehen Sie sich das Profil von Lolali an!   Senden Sie eine Private Message an Lolali  Schreiben Sie einen Gästebucheintrag für Lolali

Beiträge: 9
Registriert: 22.05.2017

erstellt am: 23. Mai. 2017 20:22    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities


IMG_2726.JPG

 
Ja... ich wollte es damit mal probieren und mir wurde gesagt ich soll es ohne machen. Also nur mit getpoint, den Koordinaten, und einer Berechnung. Habe ich versucht aber es funktioniert nicht. Die Aufgabe habe ich bereits oben geschrieben, das ist die komplette^^

Ich hänge mal ein Bild davon an was ich habe...

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Brischke
Moderator
CAD on demand GmbH




Sehen Sie sich das Profil von Brischke an!   Senden Sie eine Private Message an Brischke  Schreiben Sie einen Gästebucheintrag für Brischke

Beiträge: 4171
Registriert: 17.05.2001

AutoCAD 20XX, defun-tools (d-tools.eu)

erstellt am: 23. Mai. 2017 22:41    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Lolali 10 Unities + Antwort hilfreich

Erstmal: das sieht gut aus!
Das (alert ... ) verlangt nach einem String.
(alert (rtos l 2 2))
Ansonsten ist aus meiner Sicht nur noch ein Klammerfehler drinn. Das sllltest du noch mal genau prüfen. (Wenn ich nicht am Handy tippen würde, hätte ich das schnell korrigiert).

Nur wegen der Vollständigkeit und Fehlervermeidung von Begin an: In der Funktion selbst sollten die Variablen in ihrer Gültigkeit noch eingeschränkt werden, also als lokale, nur für diese Funktion gültig deklariert sein.
(defun NAME (PARAMETER / LOKALEVARIABLEN)
...)
(defun c:Aufgabe30 ( / p1 p2 x1 y1 ...)
...

Grüße!
Holger

------------------
Holger Brischke
CAD on demand GmbH
Individuelle Lösungen von Heute auf Morgen.


defun-tools Das Download-Portal für AutoCAD-Zusatzprogramme!


Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Lolali
Mitglied
Verfahrenstechnik Studium

Sehen Sie sich das Profil von Lolali an!   Senden Sie eine Private Message an Lolali  Schreiben Sie einen Gästebucheintrag für Lolali

Beiträge: 9
Registriert: 22.05.2017

erstellt am: 24. Mai. 2017 21:21    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Okay vielen Dank denk das bekomm ich hin

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz