Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  RText mit Field ersetzen

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
Autor Thema:   RText mit Field ersetzen (404 mal gelesen)
Gargarot
Mitglied
Student MSc Civil Engineering ETHZ, Dipl Bauzeichner


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

Beiträge: 316
Registriert: 25.06.2008

erstellt am: 10. Jun. 2009 11:16    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


Dname.dwg.txt

 
Hallo!

Da DWG TrueView keine RTexte mit Dieselausdrücken (aus den Expresstools?) anzeigen kann, habe ich nun was zusammengebastelt welche diese RTexte mit feldern in einem MTExt ersetzt. Diese befinden sich auf unseren Titelblättern mit Verweis auf den Dateinamen. Funktionieren soll dies in ACAD 2007 + 2009.

Ich hab dies zum Anlass genommen mich etwas in LISP einzuarbeiten und folgendes ist herausgekommen:

;--------------------------------------------
;HAC v1 10.06.2009

(defun c:r2f ( / echo unit rtext ref basepoint layer color high)
;Eintellungen
(setq echo (getvar "cmdecho"))
(setq unit (getvar "insunits"))
(setvar "cmdecho" 0)
(setvar "insunits" 4)

;Auswahl RTEXT
(setq rtext nil)
(while (= rtext nil)
   (setq rtext (entget(car(entsel "\nDateinamen-RTEXT anwählen"))))
     (if (= nil
           (or (= rtext nil) (= "RTEXT" (cdr (assoc 0 rtext)))
            )
          )
         (progn (setq rtext nil)(princ "\nKein RTEXT gewählt"))
          )
  )

;Eigenschaften RTEXT abgreifen
(setq ref (cdr (assoc -1 rtext)))
(setq basepoint (cdr (assoc 10 rtext)))
(setq layer (cdr (assoc 8 rtext)))
(setq color (cdr (assoc 62 rtext)))
(setq high (cdr (assoc 40 rtext)))

;Layer, Farbe setzen
;(command "_-layer" "se" layer) momentan noch "layer" -> abbruch
;(command "_-color" color) bringt nichts da block eingefügt und gesprengt wird
(command "_insunits" 4)

;Block mit Feld einfügen
(command "_-INSERT" "O:/O003/Vorlagen/CAD-Vorlagen/Dname.dwg" basepoint "" "" "")
(command "ursprung" "_l")

;RTEXT löschen
(command "_pselect" ref "" "_.erase")

;Texthöhe ok?

;Einstellungen zurück
(setvar "insunits" unit)
(setvar "cmdecho" echo)

);defun
nil
;----------------------------------------------------

Funktioniert soweit auch. Folgende Probleme habe ich noch

1.Wenn ich kein auch kein Objekt klicke bricht die Funktino ab. Es sollte aber erneut nach einem RTEXT fragen.

2.Wenn das ganze erfolgreich durchgelaufen ist sehe ich in der Befehlszeile:
Dateinamen-RTEXT anwählen0
1 gefunden

Das Null stört mich. Aber besser wäre es wenn nun "Erfolgreich" stehen würde.

3.Wie würded ihr die Farbe/Layer des eingefügten MTextes anpassen? mit Entmod?

Gibt es sonst noch irgendwas, was man anders besser machen würde? Lisp ist noch nicht ganz fertig, high wird warscheinlich gar nicht verwendet werden...

Wers ausprobieren will: Mit Express-> Text -> Remotetext kann mann einen RTEXT erstellen

Bin für jede Hilfe dankbar!

Gruss Christoph

------------------
3 kleine Weisheiten
-Man kann ein Problem nicht mit den gleichen Denkstrukturen lösen, die zu seiner Entstehung beigetragen haben.
-Bewehrt sich Beton?
-Der Horizont vieler Menschen ist ein Kreis mit Radius Null - und das nennen sie ihren Standpunkt.

[Diese Nachricht wurde von Gargarot am 10. Jun. 2009 editiert.]

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

Dorfy
Mitglied
Double-Dipl.-Ing. Bleistiftanspitzer


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

Beiträge: 893
Registriert: 21.07.2006

AutoCad2007, ProE, HiCad

erstellt am: 10. Jun. 2009 13:50    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 Gargarot 10 Unities + Antwort hilfreich

hi,
habe nur mal so überflogen...

zu 1. (setq catchit (vl-catch-.... )) und Auswertung
      oder
(while (= ents nil)
  (setq ents (entsel "\nDateinamen-RTEXT anwählen"))
  (if ents
    (progn
      (setq rtext (entget (car ents)))
      (cond
((= "RTEXT" (cdr (assoc 0 rtext)))
(princ "\nToll - RTEXT gewählt")
)
((/= "RTEXT" (cdr (assoc 0 rtext)))
(setq ents nil)
(princ "\nKein RTEXT gewählt")
)
      )
    )
  )
)

zu 2. cmdecho 1
      n-mal (princ "\n") + (princ "\Erfolgreich - Haste fein gemacht")

zu 3. vla-put-truecolor oder war es color, na halt so

mfg heiko

P.S. (vla-add-mtext space point blabla...)

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

Gargarot
Mitglied
Student MSc Civil Engineering ETHZ, Dipl Bauzeichner


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

Beiträge: 316
Registriert: 25.06.2008

erstellt am: 10. Jun. 2009 14: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

Okei
Auswahl funktioniert tiptop und in der Befehlszeile wird auch alles anzegeigt wies soll. Das mit dem Layer ändern lass ich vorerst einmal, ist zu 99% sowieso gleich. Habe anfangs auch versucht direkt einen MText zu erstellen, aber wie kann man einen Text mit "" (von den Feldern) drin mit Lisp verarbeiten?

Und diese ActiveX Dinger scheinen echt toll zu sein... eber eins nach dem andern 

Dank dir vielmals!

------------------
3 kleine Weisheiten
-Man kann ein Problem nicht mit den gleichen Denkstrukturen lösen, die zu seiner Entstehung beigetragen haben.
-Bewehrt sich Beton?
-Der Horizont vieler Menschen ist ein Kreis mit Radius Null - und das nennen sie ihren Standpunkt.

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

Dorfy
Mitglied
Double-Dipl.-Ing. Bleistiftanspitzer


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

Beiträge: 893
Registriert: 21.07.2006

AutoCad2007, ProE, HiCad

erstellt am: 10. Jun. 2009 15:12    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 Gargarot 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von Gargarot:
... aber wie kann man einen Text mit "" (von den Feldern) drin mit Lisp verarbeiten?...

In der Hilfe unter strings (sofern du diese mit "" meinst) steht so einiges
und vlisp bietet dir dann auch noch diverse Möglichkeiten...
Beispiele siehe Forum.

mfg heiko

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

Gargarot
Mitglied
Student MSc Civil Engineering ETHZ, Dipl Bauzeichner


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

Beiträge: 316
Registriert: 25.06.2008

erstellt am: 10. Jun. 2009 16:01    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

Diese Backslashes wieder...
So hätte es warscheinlich Funktioniert:
(command "text" '(0 0) "" "" "%<\\AcVar Filename \\f
\"%fn1\">%")

Gut Danke!

------------------
3 kleine Weisheiten
-Man kann ein Problem nicht mit den gleichen Denkstrukturen lösen, die zu seiner Entstehung beigetragen haben.
-Bewehrt sich Beton?
-Der Horizont vieler Menschen ist ein Kreis mit Radius Null - und das nennen sie ihren Standpunkt.

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)2020 CAD.de | Impressum | Datenschutz