Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Massstab vom Ansichtsfenster auslesen

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:  Massstab vom Ansichtsfenster auslesen (1395 mal gelesen)
Bauvermesser
Mitglied
Vermesser


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

Beiträge: 460
Registriert: 18.03.2006

AMD 2600, 2024RAM ,WIN XP PROF-SP3, ACAD 2005, Firmenrechner,

erstellt am: 23. Nov. 2010 22: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

hallo, habe folgende lsp Schnipsel zusammenbekommen
(defun c:FEmasst()
(setq ele(car(entsel "\nAnsichtsfenster wählen: ")))
(setq AFMA (vla-get-customscale(vlax-ename->vla-object ele)))
(setq fac (/ 1000.000 AFMA))
)
(princ)
Frage:
Wie kann ich erreiche das der ausgelesene Masssab als Text an der Maus hängt und auf dem Layout abgelegt werden kann und auch aktualisiert wird?
Ich bitte um Hilfe oder Hinweis auf bestehende Anfragen.

------------------
Gruß vom Bauvermesser;

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

CADchup
Ehrenmitglied V.I.P. h.c.




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

Beiträge: 3329
Registriert: 14.03.2001

Sicher ist, dass nichts sicher ist. Selbst das nicht.
Joachim Ringelnatz

erstellt am: 23. Nov. 2010 23:03    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 Bauvermesser 10 Unities + Antwort hilfreich

Hi,
Zitat:
Original erstellt von Bauvermesser:
Wie kann ich erreiche das der ausgelesene Masssab als Text an der Maus hängt und auf dem Layout abgelegt werden kann und auch aktualisiert wird?

"Aber das sind ja gleich 3 Wünsche auf einmal! Das geht nun wirklich nicht!"  

Vorschlag: Du liest die Object-ID des Fensters aus und bastelst daraus und der Eigenschaft CustomScale einen Schriftfeldcode. Etwa so:
(strcat "%<\\AcObjProp Object(%<\\_ObjId " (vl-princ-to-string (vlax-get-property obj 'ObjectID)) ">%).CustomScale \\f \"1:%lu2\">%")
Dann fügst du einen Block mit Attribut ein (wenn du wirklich was am Cursor hängen haben willst) und füllst das Attribut mit dem Schriftfeldcode.

Gab's mal im AutoCAD-Magazin vor ca. 2 Jahren. Nur anders. 

Gruß
CADchup

------------------
CADmaro.de

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

Bauvermesser
Mitglied
Vermesser


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

Beiträge: 460
Registriert: 18.03.2006

AMD 2600, 2024RAM ,WIN XP PROF-SP3, ACAD 2005, Firmenrechner,

erstellt am: 26. Nov. 2010 20:05    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 für die Antwort, aber ach wie dumm von mir mich nicht nur auf einen Wunsch zu beschränken, ja das hat man eben davon wenn man den Hals nicht voll bekommen kann
Mit dem Schriftfeldvariablen habe ich vorher schon einiges probiert, bin aber mit dem Ergebniss über Attribut und Block nicht zufrieden da:
der Massstab immer nur in 1:2 und nicht 1:500 angezeigt wird
und ich beim Block einfügen in die Zeichnung auch gleich das Fenster mit einfügen muss, da sonst die erknüpfung fehlt. Desshab hat mir ja mein LSP-schnipsel so gefallen.
Mit dem
(strcat "%<\\AcObjProp Object(%<\\_ObjId " (vl-princ-to-string (vlax-get-property obj 'ObjectID)) ">%).CustomScale \\f \"1:%lu2\">%")
komme ich nicht klar. Werde mal im Forum suchen ob zu dem Beitrag noch ältere Beiträge bestehen.

------------------
Gruß vom Bauvermesser;

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

CADchup
Ehrenmitglied V.I.P. h.c.




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

Beiträge: 3329
Registriert: 14.03.2001

Sicher ist, dass nichts sicher ist. Selbst das nicht.
Joachim Ringelnatz

erstellt am: 28. Nov. 2010 16:12    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 Bauvermesser 10 Unities + Antwort hilfreich

Hi,
Zitat:
Original erstellt von Bauvermesser:
Danke für die Antwort, aber ach wie dumm von mir mich nicht nur auf einen Wunsch zu beschränken, ja das hat man eben davon wenn man den Hals nicht voll bekommen kann.

Hm, das haben die Kinder aus der Ü-Ei-Werbung damals aber nicht geantwortet...

Also, ein Ansichtsfenster wählen kannst du, es in ein VLA-Objekt wandeln hast du auch. Für ein Schriftfeld brauchst du jetzt die Object-ID dieses Objekts für den Schriftfeldcode und den Umrechnungsfaktor, damit der "CustomScale" auch so angezeigt wird, wie du ihn gerne hättest. Um dieses und mehr rauszufinden, gehst du in den Schriftfelddialog, stellst alles so ein, wie du es brauchst, und kopierst dir dann die Zeile, die unten im Dialogfeld angezeigt wird, in die Zwischenablage. Diese Zeile muss du in Lisp nachbauen. Das sieht dann zum Beispiel wie oben schon geschrieben so aus:

Code:

(strcat
  "%<\\AcObjProp Object(%<\\_ObjId "; Standard, wenn es um Objekteigenschaften geht
  (vl-princ-to-string (vlax-get-property obj 'ObjectID)); Auslesen der Object-ID
  ">%).CustomScale \\f \"1:%lu2%ct1%qf2816\">%"; "CustomScale" auslesen + formatieren
  )

Welche Formatierung du verwenden musst, kriegst du durch Ausprobieren heraus. Zeichne z.Bsp. eine Linie und bau ein Schriftfeld, das ihre Länge ausgibt. Im Schriftfeldialog kannst du den Umrechnungsfaktor bestimmen. Kopier dir die Format-Anweisungen nach dem \f, du kannst sie auch für den Maßstab eines Ansichtsfensters verwenden! Wahrscheinlich steht da irgendwo sowas wie %ct8[1000].

Ein paar Regeln sind natürlich zu beachten: Es werden nur Strings verwendet. Deshalb das vl-princ-to-string für die Object-ID.
Ein Backslash markiert in Lisp ein Steuerzeichen, deshalb steht vor jedem Backslash und Anführungszeichen im String ein weiterer Backslash.

Wenn du den Schriftfeldcode zusammengebastelt hast, übergibst du ihn einfach einem Text. Bemaßungstext, Attribut, usw.

Code:
(command "_text" BASISPUNKT HÖHE WINKEL SCHRIFTFELDCODE)

Gruß
CADchup

------------------
CADmaro.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