Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Koordinatentext vom Punkt verschieben

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:  Koordinatentext vom Punkt verschieben (1868 mal gelesen)
Madler
Mitglied
Technischer Zeichner


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

Beiträge: 30
Registriert: 13.07.2011

AutoCAD 2010
Autodesk MEP 2012

erstellt am: 03. Okt. 2011 20: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

Hallo allerseits,

ich versuch mich gerade ein wenig in AutoLisp einzuarbeiten. Ich hangel mich an einm Tutorial ("Tailoring AutoCAD") entlang und hab da einen kleinen Hänger.
Ich bin gerade dabei mir den Beispielcode der Website ein wenig anzupassen. Nun möchte ich den Text vom "Punkt" ein wenig in X und Y verschieben. Sagen wir mal in X+100, in Y+100 und in Z+0.
Wie stell ich das an?
Meine Überlegung war: (setq xyz2(+ ptx 100)(+ pty 100)(ptz)) --> wie bekomm ich ptx/pty/ptz jetzt im Format x,y,z in die neue Variable "xyz2"?

Hier ist noch der Beispielcode der auch nach meinen Änderungen bis jetzt noch funktioniert

    (defun c unktid ( / xyz xyz1 uprec ptx pty ptz)

          (command "-layer" "machen" "Punkt-ID" "farbe" "rot" "" "")

          (setq uprec (getint "Nachkommastellen: "))

        (setq lname (getstring "Layername: ")) (setvar "CLAYER" lname)

        (setq xyz (getpoint "Punkt wählen: "))

        (setq ptx (car xyz)

            pty (cadr xyz)

            ptz (caddr xyz)

        )

        ; Format the x,y,z coordinates:

        (setq ptx (rtos ptx 2 uprec)

            pty (rtos pty 2 uprec)

            ptz (rtos ptz 2 uprec)

        )
        ; Kommas und "X=,Y=,Z=" für die Textausgabe hinzufügen:

        (setq xyz1 (strcat "X=" ptx ", " "Y=" pty ", " "Z=" ptz))
       
        ; Koordinaten als Text in die Zeichnung schreiben:

        (command "text" xyz2 200 0 xyz1)

        ;Koordinatenpunkt zeichnen
        (command "ring" 0 20 xyz "")
       
        ; .txt-file für Extraction öffnen:

        (setq fil (open "xyzdata.txt" "a"))

        ; Variable XYZ1 in Datei schreiben:

        (write-line xyz1 fil)

        ; Datei schließen: (close fil)

        (close fil)
    )

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

Theodor Schoenwald
Ehrenmitglied



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

Beiträge: 1672
Registriert: 16.04.2002

erstellt am: 03. Okt. 2011 20: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 Nur für Madler 10 Unities + Antwort hilfreich

Hallo,

wenn Du zu den X-, und Y-Werten einen bestimmten Betrag addieren möchtes, kannst Du "mapcar" verwenden.

Gruß
Theodor

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

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

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

erstellt am: 04. Okt. 2011 05:59    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 Madler 10 Unities + Antwort hilfreich

Hallo Madler,

nachfolgend dein Code, den ich mal ein wenig erweitert habe. 2 Wege der Addition von Koordinaten sind darin aufgezeigt.

Code:
(defun c unktid ( / xyz xyz1 uprec ptx pty ptz lname PunktNeu PunktMoved MoveVector fil)
  (command "-layer" "machen" "Punkt-ID" "farbe" "rot" "" "")
  (setq uprec (progn (initget 5)(getint "Nachkommastellen: "))
lname "?"
)
  ;;-> Layer abfragen und sicher stellen, dass der NAme gültig ist. Layer erzeugen(wenn nicht vorhanden)
  (while (not (snvalid lname))
    (initget 1)
    (setq lname (getstring "Layername: "))
    )
  (command "-layer" "_m" lname "")
  ;;<-
  (setq xyz (progn (initget 1)(getpoint "Punkt wählen: "))
ptx (car xyz)
pty (cadr xyz)
ptz (caddr xyz)
)
  ;;-> Punkt verschieben um einen Vector
  (setq MoveVector (list 100.0 200.0 0.0)
PunktMoved (mapcar '+ xyz MoveVector)
)
  ;;<-
  ;;-> Alternativ Koordinaten des Punktes neu setzen
  (setq PunktNeu (list
    (+ ptx 300.0)
    (+ pty -100.0)
    (+ ptz 0.0)
    )
)
  ;;<-
  ;;-> Punktze als Punktobjekt ausgeben
  (setvar "PDMODE" 35)
  (command "_.POINT" PunktMoved)
  (command "_.POINT" PunktNeu)
  ;;
  ; Format the x,y,z coordinates:
  (setq ptx (rtos ptx 2 uprec)
pty (rtos pty 2 uprec)
ptz (rtos ptz 2 uprec)
)
  ; Kommas und "X=,Y=,Z=" für die Textausgabe hinzufügen:
  (setq xyz1 (strcat "X=" ptx ", " "Y=" pty ", " "Z=" ptz))
  ; Koordinaten als Text in die Zeichnung schreiben:
  (command "text" xyz2 200 0 xyz1)
  ;Koordinatenpunkt zeichnen
  (command "ring" 0 20 xyz "")
  ; .txt-file für Extraction öffnen:
  (setq fil (open "xyzdata.txt" "a"))
  ; Variable XYZ1 in Datei schreiben:
  (write-line xyz1 fil)
  ; Datei schließen: (close fil)
  (close fil)
  )

Bei Fragen ...

Grüße !
Holger

------------------
Holger Brischke
CAD on demand GmbH
Individuelle Lösungen von Heute auf Morgen.


defun-tools Das Download-Portal für AutoCAD-Zusatzprogramme!

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

Madler
Mitglied
Technischer Zeichner


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

Beiträge: 30
Registriert: 13.07.2011

AutoCAD 2010
Autodesk MEP 2012

erstellt am: 04. Okt. 2011 16:13    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

Genau so sollte es sein. Vielen euch beiden.

Gruß Markus

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