| |
| 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, eine Pressemitteilung
|
Autor
|
Thema: Textinhalte durchs picken in Attribut übertragen (1910 mal gelesen)
|
hallo_ch Mitglied Hochbautechniker
Beiträge: 4 Registriert: 02.12.2004 AutoCAD 3.3 (Architectural Desktop)
|
erstellt am: 02. Dez. 2004 12:02 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen hab folgendes Problem Die Raumbeschriftungen der Projektpläne hat mit einfachen Texten erfolgt.... Nun müssen die Pläne mit Raumstempeln, welche aus edditierbaren Attributen bestehen ersetzt werden. Gibt es ein Lisp oder Tool mit welchem es möglich ist einzelne Textinhalte zu picken und anschliessend diese durchs Picken in den gewünschten Attribut an der gewünschten Stelle einzusetzen? Danke an alle die sich meinem Problem anvertrauen gruss hallo_ch
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
AsSchu Ehrenmitglied Konstrukteur
Beiträge: 1632 Registriert: 27.06.2003 ACAD 2012
|
erstellt am: 02. Dez. 2004 12:31 <-- editieren / zitieren --> Unities abgeben: Nur für hallo_ch
Hier : gibt es das oder so: ;;TXT2ATTDEF.LSP TEXT TO ATTRIBUTES (defun C:TXT2ATTDEF () (setq PCMDECHO (getvar "CMDECHO")) (setvar "CMDECHO" 0) (setq TXT1 (entget (car (entsel "\nwähle Text : ")))) (setq IFTXT (cdr (assoc 0 TXT1))) (while (/= IFTXT "TEXT") (setq TXT1 (entget (car (entsel (strcat "\nSelection Error !! You selected " IFTXT "! \nPlease Select Text : " ) ;_ end of strcat ) ;_ end of entsel ) ;_ end of car ) ;_ end of entget ) ;_ end of setq (setq IFTXT (cdr (assoc 0 TXT1))) ) ;_ end of while (setq TXT1VAL (cdr (assoc 1 TXT1))) (setq TXT1IP (cdr (assoc 10 TXT1))) (setq TXT1HT (cdr (assoc 40 TXT1))) (setq TXT1ROT (cdr (assoc 50 TXT1))) (setq APRMPT (getstring T "\nAttribute -Eingabewert- : ")) (entdel (cdar TXT1)) (setq PAFLAGS (getvar "AFLAGS")) (setvar "AFLAGS" 0) (command "attdef" "" TXT1VAL APRMPT TXT1VAL TXT1IP TXT1HT (/ (* TXT1ROT 180) (/ 22.0 7.0)) ) ;_ end of command (setvar "AFLAGS" PAFLAGS) (setvar "CMDECHO" PCMDECHO) (princ) ) ;defun txt2attdef ;;End Of Routine Beim Benutzen MUSS das UCS auf Welt stehen, da sonst die Attribute im Nirvana verschwinden. :-)
[Diese Nachricht wurde von AsSchu am 02. Dez. 2004 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Brischke Ehrenmitglied V.I.P. h.c. CAD on demand GmbH
Beiträge: 4187 Registriert: 17.05.2001 AutoCAD 20XX, defun-tools
|
erstellt am: 02. Dez. 2004 12:49 <-- editieren / zitieren --> Unities abgeben: Nur für hallo_ch
Hallo hallo_ch, Herzlich Willkommen! nachfolgende Lispzeilen erledigen das. Allerdings ist kein Fehlerabfang integriert, so dass bei fehlerhafter Eingabe oder Auswahl, das Tool einen Fehler meldet. Code:
(defun c:Txt2BenAttrib (/ ZIELATTRIBBEZ txtObj raumObj) (setq ZIELATTRIBBEZ "RAUMNAME");HIER den Namen des ZIEL-Attributes einsetzen (princ"\nTextobjekt wählen") (setq txtObj (car(entsel))) (princ"\nRaumBlock wählen") (setq raumObj (car(entsel))) (if (and txtObj raumObj) (progn (setAttrib raumObj ZIELATTRIBBEZ (cdr(assoc 1 (entget txtObj)))) ) ) (princ) ) (defun setAttrib (BLK ATTBEZ VALUE / atts) (setq atts(vlax-invoke-method (setq vlB(vlax-ename->vla-object BLK)) 'GETATTRIBUTES)) (if (and (= :vlax-true(vlax-get-property vlB 'HasAttributes)) (vlax-safearray-get-l-bound (vlax-variant-value atts)(vlax-safearray-get-dim(vlax-variant-value atts))) ) (mapcar '(lambda (A) (if (=(strcase(vlax-get-property A 'TAGSTRING)) (strcase ATTBEZ)) (vlax-put-property A 'TEXTSTRING VALUE) ) ) (vlax-safearray->list(vlax-variant-value atts)) ) ) )
Wie du das anwenden kannst, lies bitte hier nach. Bei Fragen ... Grüße Holger ------------------ Holger Brischke (defun - Lisp over night! Autodesk User Group Central Europe AutoLISP-Programmierung für AutoCAD AUGCE Manager Deutschland Da weiß man, wann man's hat! [Diese Nachricht wurde von Brischke am 02. Dez. 2004 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
hallo_ch Mitglied Hochbautechniker
Beiträge: 4 Registriert: 02.12.2004 AutoCAD 3.3 (Architectural Desktop)
|
erstellt am: 02. Dez. 2004 12:57 <-- editieren / zitieren --> Unities abgeben:
...also... diese lisp erstellt aus einem Text ein Attribut.. ...ich brauche etwas anderes und zwar soll ein textwert durchs anpicken heraus gelesen werden und beim Anpicken des Attributblocks (vordefiniert), und zwar des gewünschten Attributwerts den bestehenden Attributwert ersetzen... so dass ich eben diesen Wert nicht manuell in den Attribut abschreiben muss... der jetzige Raumstempel besteht nur aus einfachen Texten. Neuer Raumstempel (edditierbarer Attributblock) muss eben noch erstellt werden. ich bin nicht gerade gut im erklären, hoffe es ist irgendwie rüber gekommen danke Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Raquel Mitglied
Beiträge: 50 Registriert: 15.09.2004 Autodesk Map 3D 2005
|
erstellt am: 02. Dez. 2004 13:17 <-- editieren / zitieren --> Unities abgeben: Nur für hallo_ch
|
AsSchu Ehrenmitglied Konstrukteur
Beiträge: 1632 Registriert: 27.06.2003 ACAD 2012
|
erstellt am: 02. Dez. 2004 14:11 <-- editieren / zitieren --> Unities abgeben: Nur für hallo_ch
|
hallo_ch Mitglied Hochbautechniker
Beiträge: 4 Registriert: 02.12.2004 AutoCAD 3.3 (Architectural Desktop)
|
erstellt am: 02. Dez. 2004 14:58 <-- editieren / zitieren --> Unities abgeben:
|
benwisch Mitglied Bautechniker, CAD-Konstrukteur
Beiträge: 375 Registriert: 01.02.2001
|
erstellt am: 02. Dez. 2004 15:44 <-- editieren / zitieren --> Unities abgeben: Nur für hallo_ch
Zitat:
ein textwert durchs anpicken heraus gelesen werden [..] bestehenden Attributwert ersetzen... so dass ich eben diesen Wert nicht manuell in den Attribut abschreiben muss
Du bist also genauso faul wie ich , mußte nämlich so was auch schon mal machen und da habe ich mir ein kleines Helferlein geschrieben.. Ich pack's mal zusammen und häng's an (Wie du das anwenden kannst, lies bitte hier nach.) Aufruf mit pick2pick (mir ist nix besseres eingefallen ) Vorgehensweise... Text picken Attributreferenz picken Textinhalt wird auf die Attributreferenz automatisch übertragen Achtung! Läuft in einer Endlosschleife, um das Programm zu verlassen, mußt du es abbrechen...hatte keine Lust, das umzuprogrammieren. Auf eine Fehlerabfangung habe ich auch verzichtet... Ach ja, dem Programm ist es egal, ob es sich beim Quellobjekt um ein Text, Mtext oder eine Attributreferenz handelt. ------------------ http://www.benwisch.de [Diese Nachricht wurde von benwisch am 27. Jan. 2005 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
hallo_ch Mitglied Hochbautechniker
Beiträge: 4 Registriert: 02.12.2004 AutoCAD 3.3 (Architectural Desktop)
|
erstellt am: 02. Dez. 2004 15:50 <-- editieren / zitieren --> Unities abgeben:
du bist ein KéNIG... ...den ganzen tag drücke ich die blöden ctrl+c und ctrl+v... ...erst ein geschoss durch.... ...jetz kommt die Erlösung....dein LISP ist auf meine bedürfnisse zugeschnitten... jetzt macht das geld verdienen wieder spas gruss hallo_ch Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadwomen Ehrenmitglied V.I.P. h.c. Mädchen für fast alles
Beiträge: 3067 Registriert: 26.08.2002 ACAD R11 - 2022 (Plant3D) AVIS ACAD LT 2013- 2021 ZWCAD 2015 Versuch "nun ja" [s]History P3D 2012/(13) SP und Hotfix([/s]<P> Windows 10 / 64 Bit Xeon CPU 3.5GHz 16GB Ram NVIDIA Quadro P2000 3x Dell TV100 88P Monitore
|
erstellt am: 20. Jan. 2020 11:27 <-- editieren / zitieren --> Unities abgeben: Nur für hallo_ch
ACHTUNG! Sie antworten auf einen Beitrag der älter als 1 Jahr ist! Hallo zusammen, ich suche und werde nur halb fündig der LISP passen soweit da ich hunderte von Texten verschiedenen Blöcken mit Attributen zuordnen soll, aber die Blöcke immer gedreht, nie derselbe Winkel und die Schrift immer 0 oder 90 und so soll sie auch im Attribut dann dargestellt werden... ich weiß es gab da was ... aber weiter wie 2004 zurück? oder ich hab es überlesen. Sollte jemand mir einen Tipp haben .. DANKE cu cw ------------------ Also ich finde Unities gut ... und andere sicher auch ------------------------------------------------ cadwomen™ Plant ist nur die Spitze des Berges der da treibt ? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |