| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| Request a special discount on NVIDIA RTX 5000 Ada Generation GPU !, eine Pressemitteilung
|
Autor
|
Thema: Textbreite als vorgabe für bruchbreite (1426 mal gelesen)
|
dan_rather Mitglied Techniker HLK
Beiträge: 97 Registriert: 09.12.2003
|
erstellt am: 04. Mai. 2005 10:53 <-- editieren / zitieren --> Unities abgeben:
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
Beiträge: 13527 Registriert: 30.11.2003 .
|
erstellt am: 04. Mai. 2005 11:02 <-- editieren / zitieren --> Unities abgeben: Nur für dan_rather
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
Beiträge: 9803 Registriert: 01.12.2003 One AutoCAD 2.5 - 2024, AutoCAD, Civil 3D, Win10/Win11
|
erstellt am: 04. Mai. 2005 11:03 <-- editieren / zitieren --> Unities abgeben: Nur für dan_rather
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
Beiträge: 4187 Registriert: 17.05.2001 AutoCAD 20XX, defun-tools (d-tools.eu)
|
erstellt am: 04. Mai. 2005 11:03 <-- editieren / zitieren --> Unities abgeben: Nur für dan_rather
|
dan_rather Mitglied Techniker HLK
Beiträge: 97 Registriert: 09.12.2003
|
erstellt am: 04. Mai. 2005 11:07 <-- editieren / zitieren --> Unities abgeben:
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
Beiträge: 13527 Registriert: 30.11.2003 .
|
erstellt am: 04. Mai. 2005 11:14 <-- editieren / zitieren --> Unities abgeben: Nur für dan_rather
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
Beiträge: 97 Registriert: 09.12.2003
|
erstellt am: 04. Mai. 2005 11:49 <-- editieren / zitieren --> Unities abgeben:
|
dan_rather Mitglied Techniker HLK
Beiträge: 97 Registriert: 09.12.2003
|
erstellt am: 04. Mai. 2005 11:54 <-- editieren / zitieren --> Unities abgeben:
|
CADchup Ehrenmitglied V.I.P. h.c.
Beiträge: 3336 Registriert: 14.03.2001 Sicher ist, dass nichts sicher ist. Selbst das nicht. Joachim Ringelnatz
|
erstellt am: 04. Mai. 2005 12:31 <-- editieren / zitieren --> Unities abgeben: Nur für dan_rather
|
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 .
|
erstellt am: 04. Mai. 2005 12:38 <-- editieren / zitieren --> Unities abgeben: Nur für dan_rather
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
Beiträge: 97 Registriert: 09.12.2003
|
erstellt am: 04. Mai. 2005 12:42 <-- editieren / zitieren --> Unities abgeben:
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
Beiträge: 97 Registriert: 09.12.2003
|
erstellt am: 04. Mai. 2005 12:45 <-- editieren / zitieren --> Unities abgeben:
|