| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| PNY wird von NVIDIA zum Händler des Jahres gewählt – zum dritten Mal in Folge, eine Pressemitteilung
|
Autor
|
Thema: Autolisp Programmieren (2525 / mal gelesen)
|
Lolali Mitglied Verfahrenstechnik Studium
Beiträge: 9 Registriert: 22.05.2017
|
erstellt am: 23. Mai. 2017 08:19 <-- editieren / zitieren --> Unities abgeben:
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
Beiträge: 13527 Registriert: 30.11.2003 .
|
erstellt am: 23. Mai. 2017 08:51 <-- editieren / zitieren --> Unities abgeben: Nur für Lolali
|
Vino Mitglied
Beiträge: 229 Registriert: 24.05.2005 Windows 10 BricsCAD Pro V23
|
erstellt am: 23. Mai. 2017 08:55 <-- editieren / zitieren --> Unities abgeben: Nur für Lolali
|
Lolali Mitglied Verfahrenstechnik Studium
Beiträge: 9 Registriert: 22.05.2017
|
erstellt am: 23. Mai. 2017 09:00 <-- editieren / zitieren --> Unities abgeben:
|
Lolali Mitglied Verfahrenstechnik Studium
Beiträge: 9 Registriert: 22.05.2017
|
erstellt am: 23. Mai. 2017 09:02 <-- editieren / zitieren --> Unities abgeben:
|
Vino Mitglied
Beiträge: 229 Registriert: 24.05.2005 Windows 10 BricsCAD Pro V23
|
erstellt am: 23. Mai. 2017 09:05 <-- editieren / zitieren --> Unities abgeben: Nur für Lolali
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
Beiträge: 9 Registriert: 22.05.2017
|
erstellt am: 23. Mai. 2017 09:11 <-- editieren / zitieren --> Unities abgeben:
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
Beiträge: 229 Registriert: 24.05.2005 Windows 10 BricsCAD Pro V23
|
erstellt am: 23. Mai. 2017 09:32 <-- editieren / zitieren --> Unities abgeben: Nur für Lolali
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
Beiträge: 4187 Registriert: 17.05.2001 AutoCAD 20XX, defun-tools (d-tools.eu)
|
erstellt am: 23. Mai. 2017 09:35 <-- editieren / zitieren --> Unities abgeben: Nur für Lolali
|
Lolali Mitglied Verfahrenstechnik Studium
Beiträge: 9 Registriert: 22.05.2017
|
erstellt am: 23. Mai. 2017 10:49 <-- editieren / zitieren --> Unities abgeben:
|
Vino Mitglied
Beiträge: 229 Registriert: 24.05.2005 Windows 10 BricsCAD Pro V23
|
erstellt am: 23. Mai. 2017 11:07 <-- editieren / zitieren --> Unities abgeben: Nur für Lolali
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
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
Beiträge: 4187 Registriert: 17.05.2001 AutoCAD 20XX, defun-tools (d-tools.eu)
|
erstellt am: 23. Mai. 2017 11:29 <-- editieren / zitieren --> Unities abgeben: Nur für Lolali
... 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
Beiträge: 1144 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 / zitieren --> Unities abgeben: Nur für Lolali
|
Lolali Mitglied Verfahrenstechnik Studium
Beiträge: 9 Registriert: 22.05.2017
|
erstellt am: 23. Mai. 2017 17:57 <-- editieren / zitieren --> Unities abgeben:
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
Beiträge: 6052 Registriert: 16.09.2004 WINDOWS Vista Ultimate SP2 (64bit), NVIDIA Geforce 9600M GT, AutoCAD 2013.
|
erstellt am: 23. Mai. 2017 19:36 <-- editieren / zitieren --> Unities abgeben: Nur für Lolali
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
Beiträge: 9 Registriert: 22.05.2017
|
erstellt am: 23. Mai. 2017 20:22 <-- editieren / zitieren --> Unities abgeben:
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
Beiträge: 4187 Registriert: 17.05.2001 AutoCAD 20XX, defun-tools (d-tools.eu)
|
erstellt am: 23. Mai. 2017 22:41 <-- editieren / zitieren --> Unities abgeben: Nur für Lolali
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
Beiträge: 9 Registriert: 22.05.2017
|
erstellt am: 24. Mai. 2017 21:21 <-- editieren / zitieren --> Unities abgeben:
|