Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Rotieren einer Linie als Kopie

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:  Rotieren einer Linie als Kopie (688 mal gelesen)
alterHausmeister
Mitglied
Hausmeister


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

Beiträge: 470
Registriert: 02.02.2009

erstellt am: 26. Aug. 2010 10: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


AnfrageCADDE.dwg.txt


Konuswickeln.lsp.txt

 
Liebe LISPler,

im Anhang meine kläglicher Versuch und eine Beispieldatei.

Ich möchte einen "normalen", geraden Konus abwickeln. Die Werte kommen aus einer 2D-Zeichnung und dort sind alle erforderlichen Maße greifbar. Die Rechnung ist auch nicht wirklich kompliziert, aber dann will ich mit diesen Werten Zeichnen. Abgesehen davon, daß ich es mit "entmake" erst einmal aufgebe (für den ersten Wurf reichen die Commands ...), aber der Befehl _.rotate ist mir dabei suspekt.

Es soll ein Objekt (Schnittlinie), welches ich vorher gezeichnet habe ( und über entlast auf einer Variablen deponiere) als Kopie gedreht werden. Leider scheint der Befehl von LISP aus anders zu reagieren, als wenn er über Tastatur eingegeben wird.

Über VLIDE habe ich die rechnerischen Werte geprüft, die stimmen schon alle.


Vielleicht kann mal wer einen Blick darauf werden ...


------------------
lg, der Hausmeister
_______________________________________

46 + 1 = ein Lächeln

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

CADwiesel
Moderator
CAD4FM UG




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

Beiträge: 1968
Registriert: 05.09.2000

AutoCAD, Bricscad
Wir machen das Mögliche unmöglich

erstellt am: 26. Aug. 2010 11:15    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 alterHausmeister 10 Unities + Antwort hilfreich

du hast eine Klammer am Ende zu viel
für was stehen die Anführungszeichen im Befehl _rotate nach dem "k" ?

------------------
Gruß
CADwiesel
Besucht uns im CHAT

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

archtools
Mitglied



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

Beiträge: 823
Registriert: 09.10.2004

Entwickler für AutoCAD, BricsCAD u.a., alle Systeme

erstellt am: 26. Aug. 2010 11:25    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 alterHausmeister 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von alterHausmeister:
Liebe LISPler,

im Anhang meine kläglicher Versuch und eine Beispieldatei.


(setq Schnittlinie (entlast))

Das gibt Dir einen Entitynamen.

(command "_.rotate" Schnittlinie "" Point_S "k" "" Winkel)          ;

ROTATE verlangt, wie die meisten AutoCAD-Befehle, keinen Entitynamen, sondern ein PICKSET (Auswahlsatz). Was soll das "k" und das "" da drin?

So wird's eventuell was:
(command "_.rotate" (ssadd Schnittlinie) "" Point_S Winkel)

Und dazu:
(entmake '((0 . "CIRCLE") (10 Point_S) (40 . MassC)))

Erstens quotest Du die ganze DXF-Liste, und was quoten bedeutet, liest Du am besten in Mapcars Lisp-Kurs durch: http://www.autolisp-tutorial.mapcar.net/.  Da werden also die Variablen Point_S und MassC nicht ausgewertet.

Zweitens fängst Du da eine Liste mit (10 ...) an, einer andere mit (40 ...). Grundregel von Lisp ist aber, dass das erste Element einer zu evaluierenden Liste immer ein Funktionsname sein muss. Da muss also stehen: (cons 10 Point_S) bzw (cons 40 MassC)

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

alterHausmeister
Mitglied
Hausmeister


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

Beiträge: 470
Registriert: 02.02.2009

erstellt am: 26. Aug. 2010 11:53    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

Zitat:
Original erstellt von CADwiesel:
du hast eine Klammer am Ende zu viel
für was stehen die Anführungszeichen im Befehl _rotate nach dem "k" ?

... ja, die Klammern, die treiben mich noch in den Wahnsinn ...

Mit dem "k" wollte ich die originale Linie stehen lassen und eine Kopie derselben drehen. Normalerweise steht noch (Kopie/Bezug) als Möglichkeit zur Verfügung und diese Eingabe wird mit >Enter< bestätigt. Soweit mein Gedanke ...

Zitat:
Original erstellt von archtools:
So wird's eventuell was:
(command "_.rotate" (ssadd Schnittlinie) "" Point_S Winkel)

Danke, zumindest dreht er die Linie nun auf den gewünschten Wert. Dann ziehe ich die originale Linie einfach noch einmal. Es ist nur nervig, wenn man"n" diesen Ablauf 20x am Tage macht. Das erleichtert nun schon einiges. Das mit "entmake" muß ich aber irgendwann mal begreifen ...

------------------
lg, der Hausmeister
_______________________________________

46 + 1 = ein Lächeln

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

Dorfy
Mitglied
Double-Dipl.-Ing. Bleistiftanspitzer


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

Beiträge: 900
Registriert: 21.07.2006

AutoCad2007, ProE, HiCad

erstellt am: 26. Aug. 2010 12: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 Nur für alterHausmeister 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von alterHausmeister:
Danke, zumindest dreht er die Linie nun auf den gewünschten Wert. Dann ziehe ich die originale Linie einfach noch einmal.

Acad verarbeitet sowohl
(command "_.rotate" Schnittlinie "" Point_S "k" Winkel )
als auch
(command "_.rotate" (ssadd Schnittlinie) "" Point_S "_c" Winkel)
bzw
(command "_.rotate" (ssadd Schnittlinie) "" Point_S "k" Winkel)

besser ist
(entmake (list (cons 0 "LINE") (cons 10 p1) (cons 11 p2))))
den Punkt p2 kannst u.a. mittels polar berechnen

------------------
Mfg Heiko

Elefantenjagd in Afrika
"... LISP-Programmierer bauen einen Irrgarten aus Klammern und hoffen, dass sich der Elefant darin verirrt..."

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