Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Länge und breite von einem gerade gezeichneten Rechteck auswerten

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:  Länge und breite von einem gerade gezeichneten Rechteck auswerten (2260 mal gelesen)
udouk
Mitglied



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

Beiträge: 13
Registriert: 26.08.2009

Win XP SP3
ACAD 2007

erstellt am: 22. Mrz. 2011 11: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

Hallo CAD.DE-ler

Ich hab ein Problem.

ich möchte in innerhalb einer lisp-funktion die länge und breite eines gerade mit COMAND (siehe unten) gezeichneten Rechteckes in 2 variablen eintragen. Probiere schon länger rum, komme aber nicht weiter.

also soweit bin ich

  (progn
    (setq RTP1 (getpoint "\n1. Taschenecke wählen:"))
    (command "_rectang" "ob" TASCHTIEF "_non" RTP1 pause)

MFG
UDOUK

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

neurosis
Mitglied
dipl.ing.


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

Beiträge: 222
Registriert: 22.08.2006

erstellt am: 22. Mrz. 2011 12: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 udouk 10 Unities + Antwort hilfreich

hallo udok,
folgendes setzt die laenge und breite eines rechtecks in 2 variablen (das zuletzt gezeichnete element muss ein rechteck sein):

Code:

(setq lst (apply 'append
            (mapcar
              '(lambda (x)
                (if (= 10 (car x))
                  (list (cdr x))
                )
              )
              (entget (entlast))
            )
          )
)
(setq var1 (distance (car lst) (cadr lst))
      var2 (distance (cadr lst) (caddr lst)))


gruss
marco

------------------
Marco Heuer
www.arc-aachen.de
Airport Office

[Diese Nachricht wurde von neurosis am 22. Mrz. 2011 editiert.]

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: 22. Mrz. 2011 12: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 udouk 10 Unities + Antwort hilfreich

mach mal den Erklärbär - Schritt für Schritt was du machst (Eingabe)
und was das Lisp machen soll ;-)

mit entlast kommst du ans letzte Objekt, im GC10 Stecken die Stützpunkte (Ecken) den Rest kann man dann ausrechnen (lassen)?!
Du kannst aber auch beim Zeichnen des Rechtecks über getpoint bzw bei Eingabe von Werten diese "abfangen" und in Variablen packen.

Also nochmal BITTE Schritt für Schritt erklären...


Edit: da war wohl einer schneller... und dann die simple Methode gewählt...

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

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

[Diese Nachricht wurde von Dorfy am 22. Mrz. 2011 editiert.]

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

wronzky
Ehrenmitglied V.I.P. h.c.
CAD-Dienstleistungen für Architekten



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

Beiträge: 2154
Registriert: 02.05.2005

CAD:
AutoCAD 2.6 bis 2014
ADT 2005 - 2014
Arcibem
System:
Windows 2000, XP, NO VISTA
Internet-Startseite:
http://www.archi.de

erstellt am: 22. Mrz. 2011 12:40    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 udouk 10 Unities + Antwort hilfreich

oder einfach mit getcorner?
Code:
(progn
    (setq RTP1 (getpoint "\n1. Taschenecke wählen:"))
    (setq RTP2 (getcorner RTP1 "\n2. Taschenecke wählen:"))
    (command "_rectang" "ob" TASCHTIEF "_non" RTP1 RTP2)
    (setq l (abs (- (car rtp1) (car rpt2))))
....

Grüsse, Henning

------------------
Henning Jesse
VoxelManufaktur
Computer-Dienstleistungen für Architekten und Ingenieure

  http://www.voxelman.de

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

udouk
Mitglied



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

Beiträge: 13
Registriert: 26.08.2009

Win XP SP3
ACAD 2007

erstellt am: 22. Mrz. 2011 13:28    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

@marco: SUPER!!! - genau das was ich wollte.

Damit ich aber nicht dumm sterbe, könntest Du mir kurz in Stichworten erklären, was diese Zeilen machen?
Ich hatte es auch schon mit entget, entlast & assoc probiert - bei einem Kreis klappt das Radius auslesen wunderbar, aber bei dem Rechteck kam da ne wirre Liste raus.

Allen anderen, die mir helfen wollten - VIELEN DANK

@Henning: Das mit der 2.Punktvariable hatte ich mir schon als Übergangslösung überlegt, aber es ist doch schöner wenn man mit COMMAND ein Rechteck wirklich zeichnet - sieht bei der Punktauswahl besser aus, da man das Rechteck angedeutet sieht.

[Diese Nachricht wurde von udouk am 22. Mrz. 2011 editiert.]

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: 22. Mrz. 2011 13: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 udouk 10 Unities + Antwort hilfreich

Hallo udouk,

gib mal (entget (ssname (ssget) 0)) in die Befehlszeile ein und wähle dann Dein Rechteck aus.
Die Klammerblöcke mit einer 10 vorn (= 10 (car x)) in der "wirren Liste"   enthalten die Eckpunkte des Rechtecks (Stützpunkte der Polylinie). Daraus lassen sich dann die Abmessungen errechnen.

Gruß
Thomas

[edit] buhcstabneverwrustler [/edit]

[Diese Nachricht wurde von spider_dd am 22. Mrz. 2011 editiert.]

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

neurosis
Mitglied
dipl.ing.


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

Beiträge: 222
Registriert: 22.08.2006

erstellt am: 22. Mrz. 2011 13: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 Nur für udouk 10 Unities + Antwort hilfreich

- mit "(entget (entlast))" kommst du an die elementdaten des zuletzt erstellten elements ran.
- mit "(mapcar '(lambda(x) (if (= 10 (car x)) (list (cdr x)))))" wird in den elementdaten nach den koordinaten aller stuetzpunkte der lwpolyline gesucht und diese als sublisten in einer liste zurueckgegeben.
- mit "(apply '(append" werden alle nil-werte der liste entfernt
- in der liste stehen jetzt 4 koordinatenlisten (bei einem rechteck-element)

wirf mal den debugger an ...

gruss
marco

------------------
Marco Heuer
www.arc-aachen.de
Airport Office

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

wronzky
Ehrenmitglied V.I.P. h.c.
CAD-Dienstleistungen für Architekten



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

Beiträge: 2154
Registriert: 02.05.2005

CAD:
AutoCAD 2.6 bis 2014
ADT 2005 - 2014
Arcibem
System:
Windows 2000, XP, NO VISTA
Internet-Startseite:
http://www.archi.de

erstellt am: 22. Mrz. 2011 14: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 Nur für udouk 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von udouk:
...sieht bei der Punktauswahl besser aus, da man das Rechteck angedeutet sieht.

Genau das geschieht auch bei GETCORNER

Grüsse, Henning

------------------
Henning Jesse
VoxelManufaktur
Computer-Dienstleistungen für Architekten und Ingenieure

  http://www.voxelman.de

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

udouk
Mitglied



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

Beiträge: 13
Registriert: 26.08.2009

Win XP SP3
ACAD 2007

erstellt am: 22. Mrz. 2011 14: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

GETCORNER! Das hab ich nicht richtig gelesen - hatte bisher immer mit getpoint gearbeitet - man lernt nie aus!! Danke

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

udouk
Mitglied



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

Beiträge: 13
Registriert: 26.08.2009

Win XP SP3
ACAD 2007

erstellt am: 22. Mrz. 2011 14:45    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

Danke an alle, die mir hier geholfen haben!!!

Jetzt noch mal eine eventuell doofe Frage - DEBUGGER?? Wie werfe ich den denn an???

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: 22. Mrz. 2011 21: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 udouk 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von udouk:
DEBUGGER?? Wie werfe ich den denn an???

Setze im VL-Editor im Quelltext an der Dich interessierenden Stelle einen Haltepunkt (RMT Haltepunkt ein oder "Hand-Symbol" in der unteren Symbolleiste). Nach dem Laden und Starten des Lisp-Progs stoppt der Ablauf und Du kommst in den VL-Editor. Dort hast Du dann in der Symbolleiste die Optionen für Einzelschritt, Prozedurschritt ... usw. und auch die Möglichkeit den Inhalt von Variablen und Funktionen zu prüfen.

HTHHope this helps (Hoffe, es hilft weiter)
Gruß
Thomas

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

wronzky
Ehrenmitglied V.I.P. h.c.
CAD-Dienstleistungen für Architekten



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

Beiträge: 2154
Registriert: 02.05.2005

CAD:
AutoCAD 2.6 bis 2014
ADT 2005 - 2014
Arcibem
System:
Windows 2000, XP, NO VISTA
Internet-Startseite:
http://www.archi.de

erstellt am: 22. Mrz. 2011 22:26    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 udouk 10 Unities + Antwort hilfreich

Hallo,
Jörn hatte HIER mal ein Skript bereitgestellt, wie der Vlisp-Editor verwendet wird. Da ist auch das "debuggen" beschrieben.

Grüsse, Henning

------------------
Henning Jesse
VoxelManufaktur
Computer-Dienstleistungen für Architekten und Ingenieure

  http://www.voxelman.de

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