Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Nichts für Logiker!? Oder doch?

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
  
PNY bietet das umfangreichste Ökosystem von B2B als auch B2C-Lösungen für IT-Akteure auf dem Markt, eine Pressemitteilung
Autor Thema:  Nichts für Logiker!? Oder doch? (1194 mal gelesen)
snoopyonline
Mitglied
Architekt


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

Beiträge: 192
Registriert: 17.05.2003

erstellt am: 12. Jun. 2004 18:39    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

Also gleich mal vorweg... Ich bin mal wieder auf ein rätselhaftes Lisp-Problem gestoßen, aber diesmal hängt nicht ganz soviel von der Lösung dieses Problemchens ab... Deshalb ist diese Frage eher an die "Bastler" unter den Forenmitgliedern gerichtet, die gerade etwas Zeit übrig haben....

Auf alle Fälle habe ich für meine Diplom-Entwurfsbearbeitung jetzt schon mehrere kleine Hilfstools geschrieben (deshalb bitte nicht über den "Anfänger-Code" und die fehlenden Absicherungen/Benutzeranpassungen wundern) und habe bei einer Funktion ein Problem, welches völlig entgegen meiner Logik auftritt.

Mit der Funktion TW wollte ich eigentlich aus einem (mit 90° gedrehtem BKS) senkrecht stehenden Bogen einen Drei-Gurt-Binder erzeugen lassen, welcher aus 3 Rohren à 30cm besteht, eine Breite von 60cm und Höhe von 80cm hat (jeweils auf die Rohrmittelpunkte bezogen).
Seltsamerweise funktioniert die Lisp perfekt, wenn ich mich ganz nah an den Bogen heranzoome und nur einen kleinen Teil davon sehen kann. Wenn ich etwas "weiter weg" gehe und beispielsweise den ganzen Bogen im Ansichtsfenster habe, entstehen dagegen die verrücktesten Formen mit Rohren, die irgendwo im Raum platziert werden...

Vielleicht hat ja jemand ne Idee, warum AutoCAD so sehr durcheinanderkommt...
Hier nun die Funktion:

(defun c:tw( / radius pfad kreis spoint stpt el)
  (setq radius 0.8)
  (setq layer1 "_tw-hilf2")
  (setq layer2 "_tw")
  (repeat 1000
(command "_ucs" "w")
(setq el (car(entsel "\Objekt auswählen:")))
(command "_.ucs" "n" "ob" el)
(command "versetz" radius el "0,0,0" "")
(setq b1 (entlast))
(command "_copy" el "" "0,0,0" "@0,0,.3")
(setq b2 (entlast))
(command "_copy" el "" "0,0,0" "@0,0,-.3")
(setq b3 (entlast))
(command "-layer" "se" layer1 "")
(setq el b1)
(command "_.ucs" "n" "x" 90)
(vl-load-com)
(setq el (vlax-ename->vla-object el)
      stpt (vlax-curve-getStartPoint el))
(setq spoint(trans stpt 0 1))
(command "_.circle" spoint 0.15)
(setq kreis1(entlast))
   
(setq el b2)
(vl-load-com)
(setq el (vlax-ename->vla-object el)
      stpt (vlax-curve-getStartPoint el))
(setq spoint(trans stpt 0 1))
(command "_.circle" spoint 0.15)
(setq kreis2(entlast))
   
(setq el b3)
(vl-load-com)
(setq el (vlax-ename->vla-object el)
      stpt (vlax-curve-getStartPoint el))
(setq spoint(trans stpt 0 1))
(command "_.circle" spoint 0.15)
(setq kreis3(entlast))

(command "_matchprop" kreis1 b1 b2 b3 "")     
   
(command "-layer" "se" layer2 "")
(COMMAND "_.EXTRUDE" kreis1 "" "_PATH" b1) 
(COMMAND "_.EXTRUDE" kreis2 "" "_PATH" b2) 
(COMMAND "_.EXTRUDE" kreis3 "" "_PATH" b3) 
)
)

------------------
http://www.die-seite-der-schilder.de/ddcad/

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


Ex-Mitglied

erstellt am: 12. Jun. 2004 19:41    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Zitat:
Original erstellt von snoopyonline:
Wenn ich etwas "weiter weg" gehe und beispielsweise den ganzen Bogen im Ansichtsfenster habe, entstehen dagegen die verrücktesten Formen mit Rohren, die irgendwo im Raum platziert werden...

Um Dein Beispiel nachzuspielen, würde man ja auch die Zeichnung mit dem Bogen benötigen. Hast Du vielleicht einen Objektfang aktiv und "falsche" Objektfangeinstellungen in den Systemeinstellungen ("Priorität für Koordinateneingabe")?

Es ist natürlich schon so, dass manche AutoCAD-Befehle bildschirmorientiert ablaufen, aber das scheint mir hier eher nicht der Fall zu sein. Ich habe in meinen Programmen schon ähnliche Funktionen verwendet, bei denen diese Probleme nicht auftauchten.

Und nur, um meinem Ruf eines nörgeligen Meckerers gerecht zu werden: Du hast da ein Makro mit LISP-Syntax geschrieben. LISP ist das aber noch lange nicht :-)

Trotzdem: mach weiter so :-))

Gruß
Tom Berger

------------------
Architekturwerkzeuge für AutoCAD: http://www.archtools.de

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: 4187
Registriert: 17.05.2001

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

erstellt am: 13. Jun. 2004 10: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 snoopyonline 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von tom.berger:
...Und nur, um meinem Ruf eines nörgeligen Meckerers gerecht zu werden: ...

Tom,
das ist ein Fachforum, indem es nicht darum geht irgendwelche Erwartungen zu erfüllen. Ich habe auch kein Interesse daran, dass über diese Plattform irgendein persönlicher Kleinkrieg ausgetragen wird.
Deine Fachkompetenz wird hier auch weiterhin geschätzt und mit Sicherheit auch gern gelesen - alles andere behalte bitte für dich!

Holger
PS: Ich schreibe dies ungern offiziell hier rein, aber das Medium der PM scheinst du nicht nutzen zu wollen, denn anders kann ich mir deine Reaktionen hier im Forum und keine Reaktionen auf meine PM's erklären.

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

snoopyonline
Mitglied
Architekt


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

Beiträge: 192
Registriert: 17.05.2003

erstellt am: 13. Jun. 2004 12: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

@TOM:

Erstmal vielen Dank für die Antwort... Ich habe mich gleich mal drangesetzt und wollte eine Vorführ-Datei erzeugen die drei solcher Bögen enthält, da mein Original allein schon wegen der Größe für so ein Online-Forum eher ungeeignet ist und siehe da: in der Vorführ-Datei tritt der Vorführ-Effekt auf, sodass es schon erheblich schwerer war den Fehler künstlich zu erzeugen...
Wenn ich dann den OFANG abschalte hats auch in meiner Originaldatei erheblich besser funktioniert.... Vielleicht hats also tatsächlich an den Fang-Einstellungen gelegen (obwohl mir nach wie vor unerklärlich ist, inwieweit diese auf die verwendeten Funktionen Einfluß haben konnten).

So nun noch was zum "Nörgler" ;-) :
Das mit dem "Ruf verteidigen" hin oder her (ich hab die Zeile sowieso irgendwie überlesen) muß ich zugeben, dass ich bei AutoCAD sowieso nicht so ganz durchsehe, was genau Lisp, Makros und VBA sind und worin diese sich genau voneinander abgrenzen...
Ich werde es also in Zukunft so formulieren: "ich habe mir ein Makro zusammengelispelt" ;-) und darauf warten, dass mir jemand erklärt worin eigentlich die konkreten Unterschiede bestehen...
Bis dahin läufts bei mir unter dem Motto: solange ES funktioniert darf ES sich nennen, wie ES will ;-)

------------------
http://www.die-seite-der-schilder.de/ddcad/

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

startrek
Mitglied
Architekt


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

Beiträge: 1361
Registriert: 13.02.2003

.

erstellt am: 13. Jun. 2004 13: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 snoopyonline 10 Unities + Antwort hilfreich

Hi Snoopy,

dieses:
LISP ist das aber noch lange nicht :-)

das hab' ich mich auch gefragt ...
da kann ich als LispOberDau auch nur raten, ich reime mir das so zusammen:

Das ewige 'Command' da drinne,
ist das nicht wie eigentlich nur die Befehlszeile simulieren?

Ich würde das mal mit dem VBA-Makrorekorder zB in Excel vergleichen,
der schreibt [fast] hinter jede Zeile ein select und in der
nächsten eingangs Selection.
Das braucht kein Mensch, ist ne absolute Stolperfalle, bläht den Code auf,
das Prog läuft unruhig & länger und und und ...

Bis dahin läufts bei mir unter dem Motto: solange ES funktioniert darf ES sich nennen, wie ES will ;-)

... und genau das ist dann das gefährliche daran und das Mühsame bei der Fehlersuche.

Möglicherweise hinkt der Vergleich aber gewaltig oder ist auch falsch oder so,
aber wie gesagt, ich hab von Lisp keine Ahnung und grübel noch
ob ich auf 'Antwort speichern' drücke 

Gruss Nancy
   

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


Ex-Mitglied

erstellt am: 13. Jun. 2004 15:00    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Zitat:
Original erstellt von startrek:
Hi Snoopy,
dieses:
[b]LISP ist das aber noch lange nicht :-)

Das ewige 'Command' da drinne,
ist das nicht wie eigentlich nur die Befehlszeile simulieren?
[/B]


Ja, das war der Grund für meinen Hinweis.

Wobei natürlich so ein Makro absolut zulässig ist, wie alles andere, was genau den gewünschten Zweck erfüllt. "Sprache" - auch im Sinne von "Programmiersprache" - ist aber eben mehr. Ein wesentliches Merkmal von Sprache (hier im Unterschied zu einem Makro) ist eine über die blosse Reihenfolge hinaus weisende Struktur, die im obigen Beispiel völlig fehlt. So ein Makro ist deshalb genau so wenig LISP wie beispielsweise ein Einkaufszettel deutsche Prosa ist :-)

Zitat:

[b]Bis dahin läufts bei mir unter dem Motto: solange ES funktioniert darf ES sich nennen, wie ES will ;-)

... und genau das ist dann das gefährliche daran und das Mühsame bei der Fehlersuche.
[/B]

Naja, in dem Fall ist das eher kein Problem :-)

Mein Einwand kam wirklich nur aus reinem Sarkasmus, weil mich einige Leute an anderer Stelle schräg anmachten, weil ich in ebenso freundlicher wie konstruktiver Weise Ratschläge zur Verbesserung ihres LISP-Codes gegeben habe.

LISP ist eine außerordentlich schöne Sprache, die v.a. durch ihre Eleganz und ihre Nähe zum menschlichen Denken lebt. Ich selbst kam nicht über AutoCAD zu LISP, sondern umgekehrt über LISP zu AutoCAD. Leider hat Autodesk entgegen früherer offizieller Ankündigungen schon seit längerer Zeit die Weiterentwicklung von AutoLISP/VisualLISP aufgegeben zugunsten einer furchtbaren "Sprache" namens VisualBasic. Ich versuche dem ein klein wenig entgegen zu treten, indem ich auf die Schönheit und Eleganz von LISP hinweise, wann immer sich die Gelegenheit dazu bietet.

Tom Berger

------------------
Architekturwerkzeuge für AutoCAD: http://www.archtools.de

startrek
Mitglied
Architekt


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

Beiträge: 1361
Registriert: 13.02.2003

.

erstellt am: 13. Jun. 2004 16:43    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 snoopyonline 10 Unities + Antwort hilfreich

Hi Tom,

aha, dass sowas in dem Fall kein Problem darstellt wusste ich nicht,
denne hinkt sozusagen mein Vergleich gewaltig.
However, war halt geraten ..., aber gut zu wissen.

Wenn ein 'Command' prinzipiell kein Prob ist, sollte ich vielleicht irgendwann auch mal versuchen
mir den einen oder anderen kleinen Einkaufszettel zu tippsen -nicht schreiben, schreiben kann ich nicht-,
da die 'Command'Lines die einzig für mich lesbaren/nachvollziehbaren Zeilen in dieser wunderhübschen Sprache sind. 

Nochwas @Snoopy:
dass ich bei AutoCAD sowieso nicht so ganz durchsehe, was genau Lisp, Makros und VBA sind
und worin diese sich genau voneinander abgrenzen...

Da wir ja hier im Lisp-Forum sind, sag' ich es mal so in Anlehnung an weiter oben:
LISP ist eine eigenständige Programmiersprache und VBA ebenfalls.
Aaaber, LISP ist eine außerordentlich schöne Sprache und VBA eine ganz furchtbare. ;;;-))))
Ein Makro/Script/wieauchimmer ist ganz grob gesagt ein ausführbarer Code, ob nun in Lisp- oder VBA-Syntax geschrieben.

Gruss
Nancy

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


Ex-Mitglied

erstellt am: 13. Jun. 2004 17:04    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Zitat:
Original erstellt von startrek:
Wenn ein 'Command' prinzipiell kein Prob ist, sollte ich vielleicht irgendwann auch mal versuchen
mir den einen oder anderen kleinen Einkaufszettel zu tippsen -nicht schreiben, schreiben kann ich nicht-,
da die 'Command'Lines die einzig für mich lesbaren/nachvollziehbaren Zeilen in dieser wunderhübschen Sprache sind. 

Ich würde Dir dann aber unbedingt empfehlen, Dir mal ein LISP-Tutorial durchzuarbeiten. Wirklich empfehlenswert ist das von Axel (der hier auch liest und schreibt) unter http://www.autolisp-tutorial.mapcar.net/. Nicht nur, dass Axels Tutorial lustig gemacht und didaktisch hervorragend aufgebaut ist, Axel ist auch einer, der gut gebauten LISP Code zu schätzen weiss.

LISP unterscheidet sich sehr deutlich von allen anderen Programmiersprachen, und es fördert funktionales Denken statt algorithmischem und liegt damit dem menschlichen Denken sehr viel näher als andere Programmiersprachen. Mit einiger Übung kann man deshalb gut geschriebene LISP Programme genau so leicht lesen wie Prosa einer menschlichen Sprache.

Tom Berger

------------------
Architekturwerkzeuge für AutoCAD: http://www.archtools.de

snoopyonline
Mitglied
Architekt


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

Beiträge: 192
Registriert: 17.05.2003

Rechner: i5-2500@3.3 GHz, 16GB RAM, Windows7 64bit
Software: ACA2013, BDS Premium 2015/2016

erstellt am: 13. Jun. 2004 17:30    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

Wahrscheinlich liegt genau darin mein Problem....
Ich habe mir das Tutorial von Axel bereits angesehen, allerdings nicht die Zeit gefunden dieses tatsächlich von Anfang an durchzuarbeiten. Dies hat einfach den Grund, dass in meiner derzeitigen Lage (Diplomendwurf-Endphase) schnelle Lösungen her müssen... Und (ohne jetzt Axel oder das Tutorial anzuzweifeln) für Quereinsteiger auf der Suche nach einer Lösung für ein konkretes Problem bietet das Tutorium keine große Hilfe, da es halt mehr auf "den schönen, optimierten Quellcode" bzw. das "richtige" Erlernen von Lisp ausgerichtet ist...

Und so kommt es dann, dass ich die gebotenen Funktionen etwas vergewaltige und in das Schema presse welches ich von Pascal/Delphi gewohnt bin (also eher Schritt-für-Schritt-Abarbeitung in Prozeduren gepackt)und glaube, dass das irgendwas mit Lisp zu tun haben könnte...

------------------
http://www.die-seite-der-schilder.de/ddcad/

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

mapcar
Mitglied
CADmin



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

Beiträge: 1250
Registriert: 20.05.2002

Time flies like an arrow, fruit flies like a banana (Groucho Marx)

erstellt am: 14. Jun. 2004 03: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 Nur für snoopyonline 10 Unities + Antwort hilfreich

marc.scherer
Ehrenmitglied V.I.P. h.c.
CAD-Administrator



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

Beiträge: 2494
Registriert: 02.11.2001

Windows 10 64bit
AutoCAD Architecture 2018/2019 (deu/eng)
AEC-Collection 2019 (Revit und Zeugs)
Wenn sich's nicht vermeiden läßt:
D-A-CH Erweiterung (mies implementierter Schrott)

erstellt am: 14. Jun. 2004 09:04    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 snoopyonline 10 Unities + Antwort hilfreich

Edit: Wegen unlustikkeit gelöscht...
------------------
Ciao,
Marc

[Diese Nachricht wurde von marc.scherer am 14. Jun. 2004 editiert.]

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


Ex-Mitglied

erstellt am: 14. Jun. 2004 11:44    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Zitat:
Original erstellt von mapcar:
Prosa???  --- Lyrik!!!

Nicht gleich zu viel verlangen! Für's Erste reicht ja, wenn man überhaupt versteht, was gemeint ist.

T:-)m Berger

------------------

ArchTools: AutoCAD-Werkzeuge für Architektur, Bauplanung und Immobilienverwaltung


  • architekturgerechte Bemaßung, beliebige Einheiten, hochgestellte Millimeter, Öffnungsmaße uvm ...
  • "doppelt" assoziative Höhenkoten für Schnittdarstellung und Grundriss
  • assoziative Flächenermittlung nach DIN 277 und II.BVO
  • Textautomatisierung, Plotstempel uvm ...

Hier geht's zum ArchTools Forum, und hier zu weiteren Infos und zur kostenlosen Demoversion

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)2024 CAD.de | Impressum | Datenschutz