Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Rund um AutoCAD
  Blocknamen anzeigen

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:  Blocknamen anzeigen (167 mal gelesen)
milizeus
Mitglied
Layout - Zeichner bei Anlagenplanung


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

Beiträge: 27
Registriert: 29.11.2001

ACAD2002-DEU, etv1-9, WIN2k

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

Hi!

ist es irgendwie möglich bei blöcken den blocknamen als attribut anzeigen zu lassen

ich möchte nämlich, dass bei den blöcken immer dabeisteht wie er heisst.

danke im voraus!

mfG milizeus

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

m-troeger
Mitglied
gel. Bauzeichner; Vermessungszeichner, Vermesser im Außendienst, GIS-Erfassung in PARIS


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

Beiträge: 295
Registriert: ..

ACAD14 und 2005;
MAP4; GeoCAD; PARIS;
( Vermessung )

erstellt am: 11. Jun. 2002 19:09    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 milizeus 10 Unities + Antwort hilfreich

Hallo,

Wenn Du bereits jeweils ein Attribut in Deinen Blöcken mit definiert hast, so dürfte es kein Problem ( mittels LISP ) sein, den Blocknamen an den Attributwert zu übergeben. Nach möglichkeit solltes Du das Attribut jeweils auf einen Eigenen Layer definieren, um sie eventuell ausschalten zu können.

Zu Attributen, nutze doch mal die Suchfunktion in CAD.de, hierzu ist schon sehr viel Interessantes geschrieben worden.

Servus Mario

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

milizeus
Mitglied
Layout - Zeichner bei Anlagenplanung


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

Beiträge: 27
Registriert: 29.11.2001

ACAD2002-DEU, etv1-9, WIN2k

erstellt am: 12. Jun. 2002 08:20    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

danke, aber so weit bin ich auch schon gekommen, das problem stellt eben dieses lisp dar!

mfG milizeus

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

mapcar
Mitglied
CADmin



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

Beiträge: 1250
Registriert: 20.05.2002

Time flies like an arrow, fruit flies like a banana (Groucho Marx)

erstellt am: 12. Jun. 2002 10:18    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 milizeus 10 Unities + Antwort hilfreich

Hi Milizeus,

ich habe das Gefühl, dass da was nicht so ganz zu Ende gedacht wurde: Solange der Block nicht umbenannt wird oder anonym ist, würde doch eigentlich ein KONSTANTES Attribut genügen, das gleich bei der Blockdefinition den Blocknamen als Wert erhält. Das liesse sich auch ohne ATTREDEF usw. nachträglich realisieren - jeden Block einfach von Hand neu definieren und das konstante Attribut hinzufügen - schon steht an allen Inserts der Blockname dran. Alle anderen Attribute bleiben dabei erhalten!

Aber ich hab auch das Lisp-Programm für dich. In eine Datei kopieren, laden ... und du hast den neuen AutoCAD-Befehl 'blockname>attribut'. Es werden alle Inserts in der Zeichnung gesucht, die ein Attribut namens 'blockname' haben, in dieses wird der aktuelle Blockname eingetragen. Soll das Attribut anders heissen, musst du den Namen an zwei Stellen im Programm ändern.

Auf meiner Seite autolisp.mapcar.net kannst du im Kapitel 'Durch die Brust' Einzelheiten nachlesen - z.B. wie man die Funktion nur auf ganz bestimmte Blöcke anwenden kann. Hinweis: Die Funktion hat keinerlei Errorhandling, und das Ergebnis sieht man erst nach einem Regen.

***********************************
(defun ss-foreach(ss expr / i)
  (if ss
    (repeat(setq i(sslength ss))
      ((eval expr)(ssname ss(setq i(1- i))))
    )
  )
)

(defun insert-getattdata(ent / retl)
  (setq ent(entget(entnext(cdr(assoc -1(entget ent))))))
  (while(= "ATTRIB"(cdr(assoc 0 ent)))
    (setq retl(cons ent retl))
    (setq ent(entget(entnext(cdr(assoc -1 ent)))))
  )
  (reverse retl)
)

(defun test-attributes(insert namepat l-expr / atts result)
  (setq atts(insert-getattdata insert))
  (while atts
    (if
      (and
        (wcmatch
          (strcase(cdr(assoc 2(car atts))))
          (strcase namepat)
        )
        (apply l-expr(list(cdr(assoc 1(car atts)))))
      )
      (progn
        (setq result(car atts))
        (setq atts nil)
      )
      (setq atts(cdr atts))
    )
  )
  result
)

(defun sel-inserts
  (blnamepat attnamepat lambda-expr / tmp retlist)
  (ss-foreach
    (ssget "X"
      (list
      '(0 . "insert")
        (cons 2 blnamepat)
      )
    )
  '(lambda(ins / )
      (if(test-attributes ins attnamepat lambda-expr)
        (setq retlist(append retlist(list ins)))
      )
    )
  )
  retlist
)

(defun where(liste expr / )
  (while
    (and liste
      (not((eval expr)(car liste)))
    )
    (setq liste(cdr liste))
  )
  (car liste)
)


(defun c:blockname>attribut( / attrib)
  (foreach insert (sel-inserts "*" "Blockname" '(lambda(ist-egal / )'T))
    (setq attrib
      (where
        (insert-getattdata insert)
        '(lambda(att / )
          (= "BLOCKNAME"(strcase(cdr(assoc 2 att))))
        )
      )
    )
    (entmod
      (subst
        (cons 1(cdr(assoc 2(entget insert))))
        (assoc 1 attrib)
        attrib
      )
    )
  )
)
***********************************
Auch wenn's ein nettes Programm ist, würde ich dir doch eher zu der Möglichkeit mit dem konstanten Attribut raten!

Gruss, Axel


------------------
http://www.autolisp.mapcar.net

http://www.autolisp-tutorial.mapcar.net

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