Zitat:
Original erstellt von hooki:
hallo,
ich bin auf der suche nach einem lisp, das folgendes zustande bringt. zur ausgangssituation: ich habe einen block und einen text und will nun durch anklicken des blockes und anschließendem klick auf den text dem block diesen text als attribut "x" zuweisen. dabei soll der textinhalt als attributwert übernommen werden, aber es soll sich weder die position, drehung, stil, höhe,.... ändern. soll heißen alles sieht aus wie davor, jedoch der text ist nun ein attribut des blockes. ist das überhaupt möglich?? lg
hooki
Mal ein wenig Aufklärung :
Attribute (ATTRIB) sind an Blockreferenzen gebundene Textobjekte, die nachträglich verändert werden können, ohne die Blockreferenz aufzulösen. Basis der Attribute sind die Attributdefinitionen (ATTDEF) im Blockcontainer. Das sind ebenfalls Textobjekte mit besonderen zusätzlichen Eigenschaften hinsichtlich ihrer Visualisierung. Für diese sind neben der Systemvariable ATTMODE die Eigenschaften KONSTANT und UN SICHTBAR verantwortlich. Eine Attributdefinition mit der Eigenschaft KONSTANT generiert bei der Blockeinfügung kein Attribut, sondern verhält sich wie ein Text im Block, reagiert aber auf die Einstellung von ATTMODE und die Eigenschaft UNSICHTBAR.
Nicht-KONSTANTE Attributdefinitionen werden beim Einfügen einer Blockreferenz gar nicht visualisiert. Stattdessen werden Attributobjekte von den Attributdefinitionen abgeleitet und als Unterobjekte der Blockreferenz erzeugt. Auch hier hat die Einstellung von ATTMODE und die Eigenschaft UNSICHTBAR Einfluss darauf, ob das Attribut in der Zeichnung angezeigt wird oder nicht.
Auch wenn die Attributdefinitionsobjekte im Blockcontainer dazu verwendet werden, die Attribute der Blockreferenz anzulegen, sind Attribut und Definition anschließend nicht mehr miteinander verbunden und Eigenschaften des Attributes können unabhängig ihrer Vorgaben verändert werden. Mit dem Autocad-Befehl ATTSYNC können die Attributeigenschaften jedoch wieder auf die Eigenschaften der Attributdefinition zurückgesetzt werden.
Also dein Wunsch ist in gewisser Weise schon programmierbar... wie ist das eigentlich bei mehreren Blockreferenzen eines Blockes ?
Solle die alle dieses Attribut bekommen , auch wenn da gar kein Text steht ?
Also der Weg wäre : Blockreferenz und Text wählen .. zur Blockdefinition wechseln , Attributsdefiniton anlegen , attsync aufrufen -vorher evtl. die Eigenschften der schon vorhandenen Atts merken ... die dann wieder auf die Ursprungswerte zurücksetzen ... das neue Attribut befüllen und mit den Eigenschaften des Originaltextes versehen.
Was hast du denn für Lisperfahrungen ?
------------------
- 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