Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  rtext zu mtext innerhalb eines Block / Schriftfeld

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:  rtext zu mtext innerhalb eines Block / Schriftfeld (852 mal gelesen)
Peter
Mitglied
Ing

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

Beiträge: 1
Registriert: 23.10.2000

erstellt am: 11. Jul. 2006 20:35    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,

ich möchte in einem Block (Schriftfeld) einen rtext in Mtext wandeln.
Der Blockname ist immer gleich (Title) auch der rtext-Inhalt ist immer gleich ($getvar ctab).
Mit Hilfe der Suche konnte ich das innerhalb der Zeichnung umsetzen mit:
(command "_explode" (ssget "_x" '((0 . "RTEXT")(1 . "$(getvar,ctab)"))) "")

das kommt dem Problem nahe, allerdings konnte ich auch mit der Hilfe nicht umsetzen wie der Block angesprochen wird.
Vermute daß das mit (ssget "x" '((2 . "Title")) ) geht.

Kann mir wer helfen den Rtext im Block zu bearbeiten?

Gruß
Peter


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

cadffm
Moderator
良い精神




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

Beiträge: 21533
Registriert: 03.06.2002

Alles

erstellt am: 12. Jul. 2006 08:00    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 Peter 10 Unities + Antwort hilfreich

hmm, was möchtest du denn nun wirklich ?
In deiner Ausführung und Beschreibung mit den Lispzeilen
deutet rein garnichts auf einen Block hin, oder
war das nur der Text wie man einen RText zu einem MText
in einer DWG "wandelt" ?

Bitte erkläre das mal ausführlich IST-->SOLL .

Wenn du in DWG´s eine Blockreferenz hast "Title" und der
Block "Title" immer der gleiche ist so würde ich dir
eher mal einen Nicht-Lisp-Variante empfehlen, es sei denn
du hast besonderes Interesse an dem Lisp-Weg.
(nur so einfach wie "explode meinen RText" wird es nicht,
sie auch jüngstes Thema "Schraffur filtrieren in Blöcke",
nur das dein Thema wohl noch aufwendiger wäre.)

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

CADwiesel
Moderator
CAD4FM UG




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

Beiträge: 1968
Registriert: 05.09.2000

AutoCAD, Bricscad
Wir machen das Mögliche unmöglich

erstellt am: 12. Jul. 2006 08: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 Peter 10 Unities + Antwort hilfreich

der RText, den du auflösen willst befindet sich ersteinmal in Blockreferenzen, diese leiten sich von der einen Blockdefinition aus der Blocktabelle ab 
um alle Blockreferenzen aufzulösen, nimmst du DIESES
Code:
(if (setq AUSWAHL(ssget "_x" (list '(0 . "INSERT")(2 . "NAME")(cons 410 (getvar "CTAB"))))) 
(repeat(sslength AUSWAHL)
  (command "_explode" (ssname AUSWAHL 0))
  (ssdel (ssname AUSWAHL 0) AUSWAHL)
  ) 
)

hier.

Alle Blockreferenzen zerfallen in ihre Einzelteile.
Dann brauchst du was um die RTexte aufzulösen

Code:
(if (setq AUSWAHL(ssget "_x" (list '(0 . "RTEXT")(cons 410 (getvar "CTAB"))))) 
(repeat(sslength AUSWAHL)
  (command "_explode" (ssname AUSWAHL 0))
  (ssdel (ssname AUSWAHL 0) AUSWAHL)
  ) 
)

Das wars dann

------------------
Gruß
CADwiesel
Besucht uns im CHAT

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

Peter
Mitglied
Ing

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

Beiträge: 1
Registriert: 23.10.2000

erstellt am: 12. Jul. 2006 10:08    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,
danke, daß Ihr euch reingedacht habt.

@cadffm

ich möchte automatisierbar den Rtext im Block exploden ohne die Werte im Schriftfeld zu verlieren. Als Ergebnis soll das Schriftfeld auch auf Nicht-ET-Systemen die ursprünglichen Rtext-Inhalte darstellen können.

IST:
Schriftfeld (Blockname=TITLE) mit

    -Werten in den Attributen
    -Rtext mit $(getvar,ctab)

Soll:
Schriftfeld (Blockname=TITLE) mit

    -Werten in den Attributen gleich wie IST
    -Mtext mit Layoutname aus dem Rtext

Lisp-Weg ist nicht notwendig, war mein erster Gedanke das zu automatisieren, weil Ich das "RText2Mtext" über ein paar Zeichnungen
laufen lassen möchte.

Welche Nicht-Lisp-Variante könntest Du mir empfehlen? (c)

Von Hand kriege ich das gewünschte Ergebniss so hin:
1.Title kopieren, 2.Title ursprungen, 3.Rtext ursprungen, den geursprungte Objekthaufen mit 4.Block wieder als Title neudefinieren mit Objekte löschen. 

@CADwiesel

wenn ich Deinen Code richtig verstehe ist nach dessen Ausführung der Block und der Rtext aufgelöst, ich möchte jedoch den Block mit den Werten erhalten.
Ist es möglich (a) den Rtext im Block zu exploden oder (b) muß zum exploden des Rtextes auch der Block aufgelöst werden?
Mit Block-auflösen (b) habe ich das wie oben beschrieben von Hand gelöst, diese meine Lösung bekomme ich aber automatisiert nur für Schritt 2 und 3 hin mit:

Code:
(setq Auswahl (ssget "_X" '((0 . "INSERT") ( 2 . "TITLE")))) ; finded alle Blöcke namens TITLE
(if Auswahl (command "_explode" (ssname AUSWAHL 0))) ; 2. ursprungt diese Blöcke
(command "_explode" (ssget "_x" '((0 . "RTEXT")(1 . "$(getvar,ctab)"))) "") ; 3. ursprungt den Rtext

gibt es einen verhältnissmäßigen Lösungsweg für (a), (b) oder (c)?


Gruß
Peter

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