Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Textbreite als vorgabe für bruchbreite

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:  Textbreite als vorgabe für bruchbreite (1311 mal gelesen)
dan_rather
Mitglied
Techniker HLK


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

Beiträge: 97
Registriert: 09.12.2003

erstellt am: 04. Mai. 2005 10:53    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 zusammen,
ich habe mir eine lisp gebastelt mit der ich einen text kopiere,
auf eine Linie setze und diese Linie dann amm Basispunkt des Texttes breche.
Den bruchabstnd gebe ich per Hand vor.
Nun würde ich gerne das die Lisp die Textbreite ließt und die Bruchbreite anpaßt.
Wie komme ich den an die breite des Textes der in der Lisp bereits in einem sel.set "drin" ist"?
Lisp:
(vl-load-com)
(setq osmode_save(getvar "OSMODE"))
(setvar "OSMODE" 576)
  (while (setq OBJEKT (ssget "_:S" '((0 . "*TEXT"))))
      (setq OBJEKT (ssname OBJEKT 0))
      (command "_.copy"
              OBJEKT
              ""
      (if (= (cdr (assoc 0 (entget OBJEKT))) "MTEXT")
(cdr (assoc 10 (entget OBJEKT)))
(cdr (assoc
                      (if
                        (< 0 (cdr (assoc 72 (entget OBJEKT))))
                        11
                        10
                      ) ;_ end of if
      (entget OBJEKT)
      ) ;_ end of assoc
      ) ;_ end of cdr
) ;_end of if
              PAUSE
      ) ;_ end of command
      (command "_.ddedit" (entlast))
      (command)
;  ) ;_ end of progn

    (if abst(null item)(setq abst 100)) ; BRUCHBREITE
(textbox '((1 . OBJEKT)))
(princ OBJEKT)
  (setq t_2  (car (entsel"\nzu brechende Linie wählen")))
(setvar "OSMODE" 64)
              (setq schn(getpoint"\nPunkt wählen"))
(setvar "OSMODE" 0)
(command "_break" T_2  (vlax-curve-getPointAtDist
          (vlax-ename->vla-object t_2)
          (-
            (vlax-curve-getDistAtPoint
              (vlax-ename->vla-object t_2) schn)abst))
    (vlax-curve-getPointAtDist
        (vlax-ename->vla-object t_2)
        (+ abst
            (vlax-curve-getDistAtPoint
              (vlax-ename->vla-object t_2)schn))))
(setvar "OSMODE" 576)
)
)

(setq osmode_save nil t2 nil schn nil abst2 nil)
(setvar "OSMODE" osmode_save)

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

CADmium
Moderator
Maschinenbaukonstrukteur




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

Beiträge: 13508
Registriert: 30.11.2003

.

erstellt am: 04. Mai. 2005 11: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 Nur für dan_rather 10 Unities + Antwort hilfreich

bei (nicht M)Texten hilft dir vielleicht die Lispfunktion TEXTBOX weiter -> Siehe dazu in der  VLIDE-Hilfe

ansonsten gibt's noch den Befehl vla-get-boundingbox .. dazu mal im Forum suchen, war schon öfter ( auch die Fehlerhaftigkeit )
------------------
  - Thomas -
"Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben."

[Diese Nachricht wurde von CADmium am 04. Mai. 2005 editiert.]

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

CAD-Huebner
Ehrenmitglied V.I.P. h.c.
Verm.- Ing., ATC-Trainer



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

Beiträge: 9732
Registriert: 01.12.2003

One AutoCAD 2.5 - 2023, Civil 3D, Win10/win11

erstellt am: 04. Mai. 2005 11: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 dan_rather 10 Unities + Antwort hilfreich

Also zur Textbreitenbestimmung käme evt. vla-getboundingbox in Frage.
Siehe auch diesen Artikel http://ww3.cad.de/foren/ubb/Forum145/HTML/000078.shtml

Aber willst du wirklich die Linie Stutzen/Brechen?
Reicht nicht eine Freistellung mit Abdeckfläche (Wipeout) wie bei TEXTMASK (aus den ET)?
Oder noch einfacher ab 2005 einen undurchsichtigen Hintergrund für das Textobjekt einschalten?


------------------
Mit freundlichem Gruß

Udo Hübner

[Diese Nachricht wurde von CAD-Huebner am 04. Mai. 2005 editiert.]

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. Mai. 2005 11: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 dan_rather 10 Unities + Antwort hilfreich

Hallo dan_rather,

da gehst du am besten mit ActiveX ran. Die Methode GetBoundingBox liefert dir die Koordinaten eines virtuell um ein Objekt gezogenen Rechtecks. Aber Vorsicht, wenn das Objekt gedreht ist, wird dennoch ein orthogonales Rechteck im WKS berechnet.

Bei Fragen ...

Grüße Holger

------------------
Holger Brischke
CAD on demand GmbH                              Autodesk User Group Central Europe
Individuelle Lösungen von Heute auf Morgen.              AUGCE Manager Deutschland

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

dan_rather
Mitglied
Techniker HLK


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

Beiträge: 97
Registriert: 09.12.2003

erstellt am: 04. Mai. 2005 11: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

Zitat:
Original erstellt von CADmium:
bei (nicht M)Texten hilft dir vielleicht die Lispfunktion TEXTBOX weiter -> Siehe dazu in der  VLIDE-Hilfe


Hallo CADmium,
Habe mit die TEXTBOX funktion schon angesehen.
Aber wie bekomme ich anstelle des Texts  "Hello world." meinen Text aus der variablen ->(while (setq OBJEKT (ssget "_:S" '((0 . "*TEXT"))))<-
OBJEKT dahin?

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

CADmium
Moderator
Maschinenbaukonstrukteur




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

Beiträge: 13508
Registriert: 30.11.2003

.

erstellt am: 04. Mai. 2005 11:14    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 dan_rather 10 Unities + Antwort hilfreich

na gib mal
(textbox (entget(car(entsel))))
ein und klicke dann einen Text an

du mußt einfach (entget OBJEKTID) als Parameter übergeben

------------------
- Thomas -
"Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben."

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

dan_rather
Mitglied
Techniker HLK


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

Beiträge: 97
Registriert: 09.12.2003

erstellt am: 04. Mai. 2005 11: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 Thomas,
wenn ich (textbox (entget(car(entsel))))
in der Befehlszeile eingebe funktionierts, aber in einer Lisp datei nicht. Woran kann das liegen?

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

dan_rather
Mitglied
Techniker HLK


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

Beiträge: 97
Registriert: 09.12.2003

erstellt am: 04. Mai. 2005 11:54    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

Sorry geht doch,
...aber wie bekomme ich den angezeigten Wert in eine Variable?
sorry wegen der ganzen Fragerei. Bin nur Laie.

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: 04. Mai. 2005 12:31    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 dan_rather 10 Unities + Antwort hilfreich

Geh mal von dem Schlauch, auf dem du stehst, wieder runter:

(setq boxkoords(textbox(entget(car(entsel)))))


Gruß
CADchup

------------------
www.cadditions.de

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

CADmium
Moderator
Maschinenbaukonstrukteur




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

Beiträge: 13508
Registriert: 30.11.2003

.

erstellt am: 04. Mai. 2005 12:38    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 dan_rather 10 Unities + Antwort hilfreich

und direkt die Breite :
(setq Breite (- (car(cadr(setq a(textbox(entget(car(entsel)))))))(car(car a))))

------------------
- Thomas -
"Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben."

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

dan_rather
Mitglied
Techniker HLK


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

Beiträge: 97
Registriert: 09.12.2003

erstellt am: 04. Mai. 2005 12:42    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

Von dem Schlauch komme ich niemals runter!!
(setq boxkoords(textbox(entget(car(entsel))))) Schon klar!
Ich brauche aber nur den X-Wert.
Mit: (setq tb(textbox (entget(car(entsel)))))
(princ"\n")
(princ  (last tb)),
bekomme ich zwar x und z, aber ich will doch nur x.
Sch... Schlauch!

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

dan_rather
Mitglied
Techniker HLK


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

Beiträge: 97
Registriert: 09.12.2003

erstellt am: 04. Mai. 2005 12: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

weg ist der Schlauch s.o.
Danke Thomas

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