Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Distanz in Attribut schreiben

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:  Distanz in Attribut schreiben (915 mal gelesen)
bugcad
Mitglied


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

Beiträge: 2
Registriert: 31.08.2015

Autocad Map 2013
Bricscad

erstellt am: 31. Aug. 2015 23: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

Hallo!
Mit einem alten Lisp unserer Firma kann ich einen Text in ein Attribut schreiben.
Wie könnte das mit einem Abstand bzw. mit dem Wert aus einer Bemassung funktionieren ?
Nachdem ich die Bemassung mit einem command Befehl starte und die beiden Punkte
die abgegriffen werden, als pkt1 und pkt2 schon erfasst sind, könnte man es auch mit dist lösen ?
Kurz gesagt, der Wert der letzten Bemassung soll in den nächsten neu einzufügenden Block in den tag "BREITE" geschrieben werden. Hat jemand eine Idee wie das klappen könnte?

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: 01. Sep. 2015 08: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 bugcad 10 Unities + Antwort hilfreich

Hallo bugcad,

erst einmal herzlich willkommen im WBF

Wenn du pkt1 und pkt2 schon hast, sollte folgendes klappen

Code:

(setq dein_att_text (rtos (distance pkt1 pkt2) 2 2))

Die Parameter für (rtos ...) musst Du Dir noch entsprechend Deinen Wünschen anpassen.
dein_att_text dann in eurem list ins Attribut schreiben.

HTH

Gruß
Thomas

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

joern bosse
Ehrenmitglied
Dipl.-Ing. Vermessung


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

Beiträge: 1734
Registriert: 11.10.2004

Window 10
ACAD 2021
CIVIL 2021
BricsCAD V14-V22
Intel(R) Core(TM)i5-8250U CPU @ 1.60GHz 1.80 GHz
16.0GB RAM
NVIDIA GeForce GTX 1050<P>

erstellt am: 01. Sep. 2015 08:33    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 bugcad 10 Unities + Antwort hilfreich

Hallo BugCAD,
nur eine Idee, wenn grundsätzlich immer erst die Bemassung erstellt wird kann man auch mit folgendem Code auf die Länge zugreifen:
Code:

(defun c:test ( / )
  (if (=(cdr(assoc 0 (entget(entlast))))
        "DIMENSION")
    (vla-get-measurement
      (vlax-ename->vla-object
        (entlast)))))

Vom Grundgedanken würde ich eventuell dann beim Block einfügen einen Command-Reactor verwenden, der nach dem Einfügen des Blockes automatisch das Attribut mit der Länge des Textes füllt.

------------------
viele Grüße

Jörn
http://www.bosse-engineering.com

Liniensignaturen Youtube

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

cadffm
Moderator
良い精神




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

Beiträge: 21533
Registriert: 03.06.2002

Alles

erstellt am: 01. Sep. 2015 08:33    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 bugcad 10 Unities + Antwort hilfreich

Weniger haltbar, dafür dynamisch: Mit der SCHRIFTFELDfunktion den Abstand auslesen und im Attribut anzeigen lassen:
Schriftfelder nutzen, Beispiel: http://ww3.cad.de/foren/ubb/Forum145/HTML/002059.shtml

------------------
CAD on demand GmbH - Beratung und Programmierung rund um AutoCAD

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

bugcad
Mitglied


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

Beiträge: 2
Registriert: 31.08.2015

Autocad Map 2013
Bricscad

erstellt am: 01. Sep. 2015 10:00    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

Vielen Dank Thomas! Funktioniert!
Ich hatte befürchtet, dass der Abstand auch negativ werden kann,
was aber nicht der Fall ist. Es wird anscheinend der Betrag ermittelt.
Einziger Nachteil, wenn nicht beide Punkte den X oder Y Wert gemein haben wird der Wert ermittelt wie bei dimaligned und nicht wie bei dimlinear, was ja logisch ist.

(defun c:dist2blo ( / pkt1 pkt2 pkt3 breite)
(setq pkt1 (getpoint "\nStartpunkt der Bemassung: "))
(setq pkt2 (getpoint "\nEndpunkt der Bemassung: "))
  (command "_dimlinear" pkt1 pkt2 pause)
  (command "_draworder" "L" "" "U")
(setq pkt3 (getpoint "\nEinfügepunkt Block: "))
(setq breite (rtos (distance pkt1 pkt2) 2 2))
  (command "_insert" "BLOCK"  pkt3 "1" "1" "" "" breite pause)
)

VIELEN DANK NOCHMAL

P.S: Hallo Jörn, Danke auch für deinen Vorschlag aber das mit dem reactor ist mir zu steil.

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