| |
| 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: Region untere und obere Begrenzung (1529 mal gelesen)
|
cad-bonn Mitglied
Beiträge: 17 Registriert: 28.01.2011 Intel Core 2 6320@1.86GHz ATI FireGL 5200
|
erstellt am: 09. Mai. 2011 14:11 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich würde gerne die Grenzen von mehreren Polylinien auslesen. Was ich gefunden habe: Polylinie in Region umwandeln und dann mit dem Befehl Liste die Daten der Region anzeigen. Da werden die Koordinaten der linken unteren sowie der rechten oberen Ecke angezeigt: Befehl: liste Objekte wählen: 1 gefunden REGION Begrenzungsrahmen: Untere Begrenzung X = 137.2860 , Y = 134.5110 , Z = 0.0000 Obere Begrenzung X = 408.4518 , Y = 311.6538 , Z = 0.0000 Zuerst wollte ich diese Werte über die Datenextraktion (_EATTEXT) auslesen, aber sie werden nicht ausgegeben. Könnte man über LISP eine Liste mit den Koordinaten der Begrenzung machen? Mit freundlchen Grüßen cad-bonn Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
wronzky Ehrenmitglied V.I.P. h.c. CAD-Dienstleistungen für Architekten
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: 09. Mai. 2011 14:34 <-- editieren / zitieren --> Unities abgeben: Nur für cad-bonn
|
cad-bonn Mitglied
Beiträge: 17 Registriert: 28.01.2011 Intel Core 2 6320@1.86GHz ATI FireGL 5200
|
erstellt am: 25. Mai. 2011 09:34 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von cad-lisp:die Größe kannst du mit der Funktion vla-getboundingbox ermitteln. Hier ein keines Beispiel. (defun c:ufr ( / ELE LL P0 P1 UR ) ;Funktion gibt Punkte für umfassendes Rechteck zurück (vl-load-com) (setq ele(entsel "\nBitte Element wählen:")) (vla-getboundingbox (vlax-ename->vla-object (car ele)) 'll 'ur)
(setq p0 (vlax-safearray->list ll));Punkt links unten (setq p1 (vlax-safearray->list ur));Punkt rechts oben (list p0 p1) ) hoffe es hilft dir weiter Gruß cad-lisp
Hallo Henning, danke für den Tipp! Ich habe das LISP von cad-lisp etwas ergänzt. Ich würde nämlich gerne noch das umfassende Rechteck zeichnen lassen, aber gleichzeitig die Koordinaten anzeigen. Ich habe also etwas angehängt (siehe fetter Teil unten). Nun wird das Rechteck gezeichnet, jedoch werden die Koordinaten nicht mehr angezeigt. (defun c:box ( / ELE LL P0 P1 UR ) ;Funktion gibt Punkte für umfassendes Rechteck zurück (vl-load-com) (setq ele(entsel "\nBitte Element wählen:")) (vla-getboundingbox (vlax-ename->vla-object (car ele)) 'll 'ur)
(setq p0 (vlax-safearray->list ll));Punkt links unten (setq p1 (vlax-safearray->list ur));Punkt rechts oben (list p0 p1) (command "_rectang" p0 p1)) ) MfG cad-bonn
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 .
|
erstellt am: 25. Mai. 2011 09:42 <-- editieren / zitieren --> Unities abgeben: Nur für cad-bonn
|
cad-bonn Mitglied
Beiträge: 17 Registriert: 28.01.2011 Intel Core 2 6320@1.86GHz ATI FireGL 5200
|
erstellt am: 25. Mai. 2011 10:02 <-- editieren / zitieren --> Unities abgeben:
|
cad-bonn Mitglied
Beiträge: 17 Registriert: 28.01.2011 Intel Core 2 6320@1.86GHz ATI FireGL 5200
|
erstellt am: 25. Mai. 2011 10:25 <-- editieren / zitieren --> Unities abgeben:
Hallo Thomas, nochmal Danke! jetzt versuche ich noch einen Text (Befundnummer) zu wählen, und dieser Text soll in der Befehlszeile aufgelistet werden. Mein Versuch sieht so aus: (defun c:box ( / ELE LL P0 P1 UR BFNR) ;Funktion gibt Punkte für umfassendes Rechteck zurück (vl-load-com) (setq ele(entsel "\nBitte Element wählen:")) (vla-getboundingbox (vlax-ename->vla-object (car ele)) 'll 'ur) (setq p0 (vlax-safearray->list ll));Punkt links unten (setq p1 (vlax-safearray->list ur));Punkt rechts oben (list p0 p1) (command "_rectang" p0 p1) (list p0 p1) (setq bfnr(entsel "\nBitte Befundnummer wählen:")) ) Es wird die Koordinate und Objektname angezeigt (siehe Screenshot), aber wie könnte ich stattdessen den Textinhalt (hier die 212) anzeigen lassen? Die rot umrandeten Meldung würde ich gerne weglassen. Bin leider noch nichtmal LISP-Anfänger. Gruß cad-bonn Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Dorfy Mitglied Double-Dipl.-Ing. Bleistiftanspitzer
Beiträge: 900 Registriert: 21.07.2006 AutoCad2007, ProE, HiCad
|
erstellt am: 25. Mai. 2011 10:50 <-- editieren / zitieren --> Unities abgeben: Nur für cad-bonn
(vla-get-textstring (vlax-ename->vla-object (car (entsel "\nBitte Befundnummer wählen:")))) ? ------------------ 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 |
cad-bonn Mitglied
Beiträge: 17 Registriert: 28.01.2011 Intel Core 2 6320@1.86GHz ATI FireGL 5200
|
erstellt am: 25. Mai. 2011 10:54 <-- editieren / zitieren --> Unities abgeben:
|
cad-bonn Mitglied
Beiträge: 17 Registriert: 28.01.2011 Intel Core 2 6320@1.86GHz ATI FireGL 5200
|
erstellt am: 01. Jun. 2011 09:07 <-- editieren / zitieren --> Unities abgeben:
Guten Morgen, noch eine Frage zur Befehlszeile. Hab ich dort die Möglichkeit mir auch die waren Koordinaten anzeigen zu lassen? Im obigen Srceenshot werden die Koordinaten mit 2.5149e+006 und 5.63116e+006 ausgegeben, anstatt mit 2514952.123 und 5631623.563. MfG cad-bonn [Diese Nachricht wurde von cad-bonn am 01. Jun. 2011 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 .
|
erstellt am: 01. Jun. 2011 09:20 <-- editieren / zitieren --> Unities abgeben: Nur für cad-bonn
|
cad-bonn Mitglied
Beiträge: 17 Registriert: 28.01.2011 Intel Core 2 6320@1.86GHz ATI FireGL 5200
|
erstellt am: 01. Jun. 2011 09:40 <-- editieren / zitieren --> Unities abgeben:
Danke für die Antwort! Ich hab es mal ausprobiert. Ergebnis: Befehl: (rtos 2.51489e+006 2 3) "2514890" Leider werden die Kommastellen nicht ausgegeben. Liegt das Problem vielleicht an meinem LISP-Programm, da es zu "große" Koordinaten sind? Ich hab mal meine Zeichnung näher an den Ursprung verschoben, da hat es auch dann mit den Nachkommastellen geklappt. Jetzt muß ich halt die Verschiebung wieder auf die Koordinaten addieren, dass find ich etwas umständlich. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% (defun c:box ( / BFNR ELE LL P0 P1 UR) ;Funktion gibt Punkte für umfassendes Rechteck zurück (vl-load-com) (setvar "cmdecho" 0) (setq bfnr(vla-get-textstring (vlax-ename->vla-object (car (entsel "\nBefundnummer wählen:"))))) (setq ele(entsel "\nBefund wählen:")) (vla-getboundingbox (vlax-ename->vla-object (car ele)) 'll 'ur) (setq p0 (vlax-safearray->list ll));Punkt links unten (setq p1 (vlax-safearray->list ur));Punkt rechts oben (list p0 p1) (command "_rectang" p0 p1) (setvar "cmdecho" 1) (list bfnr p0 p1) ) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 .
|
erstellt am: 01. Jun. 2011 10:15 <-- editieren / zitieren --> Unities abgeben: Nur für cad-bonn
|
Dorfy Mitglied Double-Dipl.-Ing. Bleistiftanspitzer
Beiträge: 900 Registriert: 21.07.2006 AutoCad2007, ProE, HiCad
|
erstellt am: 01. Jun. 2011 10:18 <-- editieren / zitieren --> Unities abgeben: Nur für cad-bonn
DIMZIN = 0 LUPREC = 4 (Edit: Nachkommastellen) ------------------ 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 01. Jun. 2011 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cad-bonn Mitglied
Beiträge: 17 Registriert: 28.01.2011 Intel Core 2 6320@1.86GHz ATI FireGL 5200
|
erstellt am: 01. Jun. 2011 12:13 <-- editieren / zitieren --> Unities abgeben:
Hallo, Hbe es mit den Systemvariablen probiert. Ich schaff es immer noch nicht mir die genauen Koordinaten mit drei Nachkommastellen (z.b. 2534567.345) in der Befehlszeile anzeigen zu lassen. Über den Umweg _id wird die korrekte Koordinate angezeigt: X = 2514905.652 Y = 5631162.610 Z = 0.000 Ich scheiter aber daran den Befehl _id in mein LISP einzubauen! mfg cad-bonn Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CAD-Huebner Ehrenmitglied V.I.P. h.c. Verm.- Ing., ATC-Trainer
Beiträge: 9803 Registriert: 01.12.2003 One AutoCAD 2.5 - 2024, AutoCAD, Civil 3D, Win10/Win11
|
erstellt am: 01. Jun. 2011 12:20 <-- editieren / zitieren --> Unities abgeben: Nur für cad-bonn
|
cad-bonn Mitglied
Beiträge: 17 Registriert: 28.01.2011 Intel Core 2 6320@1.86GHz ATI FireGL 5200
|
erstellt am: 01. Jun. 2011 12:33 <-- editieren / zitieren --> Unities abgeben:
Mit dem Befehl rtos kann ich nicht auf ein Koordinatenpaar (x und y-Wert) zugreifen. Befehl: ( rtos 2.51489e+006 5.63116e+006 2 3) ; Fehler: Zu viele Argumente Im Lisp wäre das bei mir die Variable p0, welche in einer Liste gespeichert wird. Hab ich die Möglichkeit nur auf ein Element der Variablen zuzugreifen (z.b. x-Wert), um dann rtos anzuwenden? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Dorfy Mitglied Double-Dipl.-Ing. Bleistiftanspitzer
Beiträge: 900 Registriert: 21.07.2006 AutoCad2007, ProE, HiCad
|
erstellt am: 01. Jun. 2011 12:35 <-- editieren / zitieren --> Unities abgeben: Nur für cad-bonn
du hast deine Koordinaten als Liste (einmal p0 und p1), an die einzelnen Werte kommst du mit zBsp.: car und Co..... Die Einzelwerte kannst du mit rtos in einen String umwandeln und zBsp mit princ + eingeschobene Texte wieder ausgeben. edit: (princ (rtos p1x...) (rtos p1y...) "lala" (rtos p0x... (rtos p0y) "lalülala" p1x = (car p1) usw...
------------------ 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 01. Jun. 2011 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cad-bonn Mitglied
Beiträge: 17 Registriert: 28.01.2011 Intel Core 2 6320@1.86GHz ATI FireGL 5200
|
erstellt am: 01. Jun. 2011 13:58 <-- editieren / zitieren --> Unities abgeben:
Vielen, vielen Dank für eure Bemühungen und Tipps. Bin endlich am Ziel! rtos und car und co waren die richtigen Hinweise! MfG cad-bonn [Diese Nachricht wurde von cad-bonn am 01. Jun. 2011 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |