| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| PNY wird von NVIDIA zum Händler des Jahres gewählt – zum dritten Mal in Folge, eine Pressemitteilung
|
Autor
|
Thema: Texteinfügepunkt nach bestehendem Text wählen (1274 mal gelesen)
|
RSt-Stahl Mitglied
Beiträge: 79 Registriert: 08.07.2005 ACAD 2006 AMD Athlon XP +4800 X2 1,5 GB Ram 500 GB HD ATI Radeon XT1900
|
erstellt am: 28. Jul. 2005 08:57 <-- editieren / zitieren --> Unities abgeben:
Hallo Forum, ich habe folgendes Problem ich würde gern den Texteinfügepunkt (in Lisp) so wählen das der neue Text (Positionsnummern) auf gleicher Höhe und rechts neben den bestehenden Text beginnt also Ausgangstext ist ein 3,5mm hoher Text und ich würde gerne einen 7 mm hohen text neben dran einfügen.... (nach "anpicken" des bestehenden Textes) Danke im voraus Gruß Thomas
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: 28. Jul. 2005 09:14 <-- editieren / zitieren --> Unities abgeben: Nur für RSt-Stahl
|
RSt-Stahl Mitglied
Beiträge: 79 Registriert: 08.07.2005 ACAD 2006 AMD Athlon XP +4800 X2 1,5 GB Ram 500 GB HD ATI Radeon XT1900
|
erstellt am: 28. Jul. 2005 09:44 <-- editieren / zitieren --> Unities abgeben:
Danke für deine schnelle Antwort. Also es soll ein neues Objekt neben einen bestehenden Text eingefügt werden. Dieses Objekt erhöht seinen Zahlenwert jeweils um 1. das funktioniert schon Prima... Muss nur noch eine abfrage reinbauen das keine doppelten Zahlen zulässt... Wird aber wohl schwierig denn es kann ja auch sein das ein Maß auf der Zeichnung denselben wert hat wie die Positionsnummer... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
marc.scherer Ehrenmitglied V.I.P. h.c. CAD-Administrator
Beiträge: 2494 Registriert: 02.11.2001 Windows 10 64bit AutoCAD Architecture 2018/2019 (deu/eng) AEC-Collection 2019 (Revit und Zeugs) Wenn sich's nicht vermeiden läßt: D-A-CH Erweiterung (mies implementierter Schrott)
|
erstellt am: 28. Jul. 2005 09:47 <-- editieren / zitieren --> Unities abgeben: Nur für RSt-Stahl
|
RSt-Stahl Mitglied
Beiträge: 79 Registriert: 08.07.2005 ACAD 2006 AMD Athlon XP +4800 X2 1,5 GB Ram 500 GB HD ATI Radeon XT1900
|
erstellt am: 28. Jul. 2005 11:11 <-- editieren / zitieren --> Unities abgeben:
|
RSt-Stahl Mitglied
Beiträge: 79 Registriert: 08.07.2005 ACAD 2006 AMD Athlon XP +4800 X2 1,5 GB Ram 500 GB HD ATI Radeon XT1900
|
erstellt am: 02. Aug. 2005 11:01 <-- 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: 02. Aug. 2005 12:41 <-- editieren / zitieren --> Unities abgeben: Nur für RSt-Stahl
|
RSt-Stahl Mitglied
Beiträge: 79 Registriert: 08.07.2005 ACAD 2006 AMD Athlon XP +4800 X2 1,5 GB Ram 500 GB HD ATI Radeon XT1900
|
erstellt am: 09. Aug. 2005 12:12 <-- editieren / zitieren --> Unities abgeben:
|
joern bosse Ehrenmitglied Dipl.-Ing. Vermessung
Beiträge: 1763 Registriert: 11.10.2004 Window 11 ACAD 2021 CIVIL 2021 BricsCAD ab V14 11th Gen Intel(R) Core(TM) i7-1165G7 @ 2.80GHz 2.80 GHz 32.0GB RAM NVIDIA GeForce MX450<P>
|
erstellt am: 09. Aug. 2005 14:03 <-- editieren / zitieren --> Unities abgeben: Nur für RSt-Stahl
Hallo Thomas, teste mal folgendes, da habe ich die Funktion textbox verwendet, vielleicht kannst Du das ja verwenden. (defun test (string / text box) (if (setq text (car (entsel "\Bitte Text anpicken:"))) (progn (setq box (textbox (entget text))) (command "text" (mapcar '+ (cdr (assoc 10 (entget text))) (list (+ (car (cadr box)) 0.3);;Abstand, kann geändert werden 0.0 0.0)) "" string "") ;;;Texthöhe ändern (entmod (subst (cons 40 (* (cdr (assoc 40 (entget text))) 2.0)) (assoc 40 (entget (entlast))) (entget (entlast))))) (alert "kein text gewählt."))) ------------------ viele Grüße Jörn Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
RSt-Stahl Mitglied
Beiträge: 79 Registriert: 08.07.2005 ACAD 2006 AMD Athlon XP +4800 X2 1,5 GB Ram 500 GB HD ATI Radeon XT1900
|
erstellt am: 09. Aug. 2005 14:49 <-- editieren / zitieren --> Unities abgeben:
Hallo Joern Bosse, habe deinen Lisp Code getestet und 3 Varianten erhalten! Version 1: Ich habe einen Text geschrieben und eine Führung eingefügt danach den Text angeklickt (mit dem Lisp) und er zeigt mir den Text Einfügepunkt am ende der Führungslinie (zuletzt eingefügte Linie) Version 2: Auf der gleichen Zeichnung einen Text erstellt und direkt via Lisp angewählt und er hat mir wohl das gewünschte Ergebnis gebracht! Einfügepunkt rechts neben dem bestehenden Text, aber beim wiederholen des Befehles hat er es nicht mehr gemacht! Version 3: Auf einer neuen Zeichnung (leeres Blatt) einfach einen Text geschrieben und dann via Lisp versucht einen 2ten anzuhängen, doch diesmal hat er mir "nur" den Ursprungstext vergrößert! Trotzdem vielen dank für deinen Lösungsansatz... werde es weiter versuchen vielleicht komme ich noch drauf und poste dann die Lösung hier. Gruß Thomas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
joern bosse Ehrenmitglied Dipl.-Ing. Vermessung
Beiträge: 1763 Registriert: 11.10.2004 Window 11 ACAD 2021 CIVIL 2021 BricsCAD ab V14 11th Gen Intel(R) Core(TM) i7-1165G7 @ 2.80GHz 2.80 GHz 32.0GB RAM NVIDIA GeForce MX450<P>
|
erstellt am: 09. Aug. 2005 15:03 <-- editieren / zitieren --> Unities abgeben: Nur für RSt-Stahl
Hallo Thomas, ich denke das waren zwei Anführungszeichen zuviel innerhalb des Befehlsaufrufes "text", eigentlich sollte es so gehen. (defun test (string / text box) (if (setq text (car (entsel "\Bitte Text anpicken:"))) (progn (setq box (textbox (entget text))) (command "text" (mapcar '+ (cdr (assoc 10 (entget text))) (list (+ (car (cadr box)) 0.3);;Abstand, kann geändert werden 0.0 0.0)) "" string ) (entmod (subst (cons 40 (* (cdr (assoc 40 (entget text))) 2.0)) (assoc 40 (entget (entlast))) (entget (entlast))))) (alert "kein text gewählt."))) ------------------ viele Grüße Jörn Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
RSt-Stahl Mitglied
Beiträge: 79 Registriert: 08.07.2005 ACAD 2006 AMD Athlon XP +4800 X2 1,5 GB Ram 500 GB HD ATI Radeon XT1900
|
erstellt am: 09. Aug. 2005 15:17 <-- editieren / zitieren --> Unities abgeben:
|
joern bosse Ehrenmitglied Dipl.-Ing. Vermessung
Beiträge: 1763 Registriert: 11.10.2004 Window 11 ACAD 2021 CIVIL 2021 BricsCAD ab V14 11th Gen Intel(R) Core(TM) i7-1165G7 @ 2.80GHz 2.80 GHz 32.0GB RAM NVIDIA GeForce MX450<P>
|
erstellt am: 09. Aug. 2005 15:29 <-- editieren / zitieren --> Unities abgeben: Nur für RSt-Stahl
Bei mir auch, aber nur wenn ich der Funktion test einen Leerstring übergebe, wenn ich wirkliche Werte habe, wird nur der neue Text vergrößert. (test "") ==> vergrößert den Ursprungstext (test "7") => vergrößert den neuen Text "7" Wenn das noch nicht klappt mußt Du mal Deinen Ausgangstext als wblock posten und beschreiben, wie Du die Funktion aufgerufen hast. ------------------ viele Grüße Jörn Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 .
|
erstellt am: 09. Aug. 2005 15:33 <-- editieren / zitieren --> Unities abgeben: Nur für RSt-Stahl
Versuch das: (defun TEXT2 (STRING / TEXT DATA BOX ABSTAND) (if(and(setq TEXT(ssget "_:S" '((0 . "TEXT")))) (setq TEXT(ssname TEXT 0)) (setq DATA(entget TEXT)) (=(type STRING)'STR) ) (progn (setq UNTENRECHTS (mapcar '+ (cdr(assoc 10 DATA)) (list (+(car (cadr(textbox DATA))) 1.0) 0.0 0.0 ) ) ) (entmake (LIST (cons 0 "TEXT") (cons 8 (getvar "CLAYER")) ; LAYER (cons 10 UNTENRECHTS) (cons 40 (getvar "TEXTSIZE")) ;TEXTgröße (cons 50 (getvar "ANGDIR")) (cons 1 STRING) ;TEXTINHALT ) ) ) ) ) aufruf dann z.B. mit (TEXT2 "NUMMER") ------------------ - 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 |
RSt-Stahl Mitglied
Beiträge: 79 Registriert: 08.07.2005 ACAD 2006 AMD Athlon XP +4800 X2 1,5 GB Ram 500 GB HD ATI Radeon XT1900
|
erstellt am: 09. Aug. 2005 16:11 <-- editieren / zitieren --> Unities abgeben:
Hallo Jörn, nochmals vielen dank für dein Lisp! also jetzt klappt es zum teil! also ich schreibe einen Text ich nenne ihn zum Beispiel "TEST1". Danach schreibe ich einen 2ten Text den nenne ich "TEST2" nun benutze ich das Lisp um bei "TEST1" einen Text hintendran zu hängen. Jetzt vergrößert er mir automatisch ohne das ich ihn wähle "TEST2" und verlangt den Text den ich bei "TEST1" einfügen wollte den schreibe ich dann hin und er schreibt ihn "gleichgroß" neben den vorher gewählten "TEST1" also das klappt schon mal gut (wobei er auch nicht ganz genau den selben unteren punkt zu wählen scheint aber das könnte ich verschmerzen) ich nehme an das mit dem zuletzt geschrieben Text vergrößern hängt damit zusammen das "entlast" verwendet wird. Das wäre auch nicht schlimm dann würde ich nach dem Texte schreiben einfach eine Linie zeichnen und wieder löschen dann würde es funktionieren! nur wenn ich jetzt eine 2te Position an einen Text schreiben will vergrößert er mir die zuerst eingefügte Position! also müsste ich zwischen jeder Position die ich anbringe irgendeinen nicht text Befehl ausführen! Kann ich das Irgendwie umgehen? Aber im Großen und Ganzen ist das Lisp schon auf dem richtigen weg! Vielen Dank dafür! 10 Unities sind auf dem Weg! Thomas
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
joern bosse Ehrenmitglied Dipl.-Ing. Vermessung
Beiträge: 1763 Registriert: 11.10.2004 Window 11 ACAD 2021 CIVIL 2021 BricsCAD ab V14 11th Gen Intel(R) Core(TM) i7-1165G7 @ 2.80GHz 2.80 GHz 32.0GB RAM NVIDIA GeForce MX450<P>
|
erstellt am: 09. Aug. 2005 16:39 <-- editieren / zitieren --> Unities abgeben: Nur für RSt-Stahl
Hallo Thomas, also, ich habe Dein Beispiel mal versucht nachzuvollziehen: Ich erstelle einen Text mit dem Wert "TEST1" und einen mit dem Wert "TEST2". Dann Starte ich die Funktion (test "7") und wähle als Text "TEST1" aus. Die "7" wird hinter "TEST1" mit der doppelten Größe eingefügt. Mit "TEST2" ist es genau das gleiche, keine Probleme. Also letzter Versuch, ich habe jetzt anstelle des Command-Befehls "text" wie CADmium (hast Du das schon ausprobiert?) "entmake" verwendet. Bei mir läuft beides, such Dir was aus. (defun test (string / text box) (if (setq text (car (entsel "\Bitte Text anpicken:"))) (progn (setq box (textbox (entget text))) (entmake (LIST (cons 0 "TEXT") (assoc 7 (entget text)) (cons 8 (getvar "CLAYER")) ; LAYER (cons 10 (mapcar '+ (cdr (assoc 10 (entget text))) (list (+ (car (cadr box)) 0.3);;Abstand, kann geändert werden 0.0 0.0))) (cons 40(* 2.0(cdr(assoc 40 (entget text))))) ;TEXTgröße (assoc 50 (entget text)) (cons 1 string) ;TEXTINHALT ) ) ) (alert "kein text gewählt.")))
------------------ viele Grüße Jörn Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
RSt-Stahl Mitglied
Beiträge: 79 Registriert: 08.07.2005 ACAD 2006 AMD Athlon XP +4800 X2 1,5 GB Ram 500 GB HD ATI Radeon XT1900
|
erstellt am: 09. Aug. 2005 16:43 <-- editieren / zitieren --> Unities abgeben:
Hallo CADmium! vielen dank für deinen Lösungsvorschlag! klappt auch super! jetzt muss ich nur noch schauen wie ich das mit der Textart hinbekomme! Also der eingefügte Text hat die Schriftart "Romans 8" ich würde gerne eine andere benutzen aber das liegt wohl an den DXF Codes nehme ich an... Muss ich noch ein wenig Probieren! Nochmals dank an alle die geholfen haben und vor allem die die Geduld mit einem blutigen Anfänger hatten... 10 Unities für CADmium sind unterwegs! Gruß Thomas
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
RSt-Stahl Mitglied
Beiträge: 79 Registriert: 08.07.2005 ACAD 2006 AMD Athlon XP +4800 X2 1,5 GB Ram 500 GB HD ATI Radeon XT1900
|
erstellt am: 10. Aug. 2005 10:36 <-- editieren / zitieren --> Unities abgeben:
Guten Morgen an alle, noch mal danke für die beiden Lösungen... habe es jetzt so angepasst das er die Schriftart und Größe, bzw. den Layer verwendet den ich ihm vorgebe! Echt Genial! Gruß Thomas
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |