Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Linie mit Kreisen

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:  Linie mit Kreisen (352 mal gelesen)
Sue21
Mitglied
Studentin

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

Beiträge: 5
Registriert: 10.12.2005

erstellt am: 31. Dez. 2005 14:52    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,

folgende Aufgabe ist im Rahmen meines Studiums als Übungsaufgabe gedacht:

Implementieren Sie das Programm LIKREIS, welches folgendes leistet:

Zeichnen einer vom Nutzer definierten Linie. Auf dieser Linie soll eine einzugebende Anzahl gleich großer Kreise, die sich berühren, so gezeichnet werden, dass die gesamte Linienlänge ausgenutzt wird. Alle Kreismittelpunkte sollen auf der Linie liegen.

Meine Lösung:

Code:

(defun c:likreis ()
(setq p1 (getpoint "\nAnfangspunkt der Linie: ")
      p2 (getpoint p1 "\nEndpunkt der Linie: ")
)
(command "linie" p1 p2 " ")
(initget (+ 1 2 4))      ; nicht gestattet: Leer-, Nulleingabe, negative Werte
(setq anz (getint "\nAnzahl der Kreise: "))
(setq laenge (distance p1 p2)
      winkel (angle p1 p2)
      durchm (/ laenge anz)
)
(repeat anz
  (setq p3 (polar p1 winkel durchm))
  (command "kreis" "2p" p1 p3)
  (setq p1 p3)  ; hier bin ich mir nicht sicher, ob p1 den Wert von p3 oder das SYMBOL p3 erhält
)
)

Vielen Dank im Voraus! 

MfG Sue

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

danielboukreev
Mitglied



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

Beiträge: 27
Registriert: 10.03.2005

erstellt am: 31. Dez. 2005 16: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 Nur für Sue21 10 Unities + Antwort hilfreich

Hallo

Soweit ganz gut, ein kleiner Fehler: Leereingaben bei (command...) Befehlen werden mit "" geschrieben - bei " " meckert die Routine, daß ein Punkt verlangt wird (" " ist ja quasi ein Leerzeichen). Zudem würde ich noch die verwendeten Variablen lokalisieren - wer weiß, was sonst noch an Programmen "rumflieget", die evtl eine Zeile (if p1 ...) verwenden.
Zu der Erzeugung des Kreises: ich gehe mal davon aus, daß es nicht allzuviele Kreise sind, die erzeugt werden müssen - somit geht das mit dem (command "kreis"...) auch in Ordnung-  wenns allerdings mal 10000000 Kreise sein sollen, wäre das mit entmake evtl schneller.
Hier nun ein (leicht) korrigierter Code:

Code:
(defun c:likreis
(
  /
  p1
  p2
  anz
  winkel
  durchm)
(command "_line"
  (setq p1 (getpoint "\nAnfangspunkt der Linie: "))
  (setq p2  (getpoint p1 "\nEndpunkt der Linie: "))
  ""
)
(initget (+ 1 2 4))      ; nicht gestattet: Leer-, Nulleingabe, negative Werte
(setq anz (getint "\nAnzahl der Kreise: "))
(setq
      winkel (angle p1 p2)
      durchm (/ (distance p1 p2) anz)
)
(repeat anz
  (setq p3 (polar p1 winkel durchm))
  (command "_circle" "_2p" p1 p3)
  (setq p1 p3)  ; hier bin ich mir nicht sicher, ob p1 den Wert von p3 oder das SYMBOL p3 erhält
)
(princ)
)

Zu deiner Frage mit dem Symbol oder dem Wert - ich empfehle hier vlisp als Debugger zu verwenden...

Gruß
daniel

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

Sue21
Mitglied
Studentin

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

Beiträge: 5
Registriert: 10.12.2005

erstellt am: 31. Dez. 2005 18: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

Dankeschön! 
Ach ja: Und "(princ)" am Ende hatte ich auch noch vergessen...

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