Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Attribute verschwinden beim Füllen mit LISP

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:  Attribute verschwinden beim Füllen mit LISP (1489 mal gelesen)
mapla
Mitglied
CAD Administrator


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

Beiträge: 93
Registriert: 20.06.2007

120 CAD-Arbeitsplätze
Win7x64
HPNB Elite 8760W - 16GB
2011(2006)
ACADOEM-CAD+T 2011
Impression2de / 3En
AutoLisp
T1100 T1120 T770 / T1200 /OCE9400

erstellt am: 02. Nov. 2011 10:30    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


POS.zip

 
Hallo zusammen,
Folgendes Phänomän habe ich beobachtet(ACAD2011 / ADT2011 / ADT 2012 - XP32)
In eine leere Zeichnung wird ein Block ( InsertPosTTF.dwg - Siehe Anahng eingefügt) besteht aus nur einem
Attribut Name POS vorbelegt mit WERT POS  auf dem TextStil POS WeltronUrban.ttf  "weltu.ttf"!
Anschließend kann man den Block Ordnungsgemäß mit DDATTE oder Lisp das Attribut bearbeiten - Kein Problem!

Löscht man nun den Block - bereinigt den Block und dann den Textstil POS und fügt dann wiederum den Block ein,
wird Ordnungsgemäß der Textstil(POS WeltronUrban.ttf  "weltu.ttf") angelegt!
Das manuelle ändern des Attributswert über z.Bsp DDATTE funktioniert!
Setzt man dann aber das Attribut via Lisp (POS.lSP im Anhang via DragAndDrop reinladen - oder eigene Funktion)
dann verschwindet das  bisher korrekt angezeigt Attribut!
Mit DDATTE - l (letztes) kann man es  abrufen und der Wert steht korrekt wie mit Lisp gesetzt drin!
Schaut man Sich die DXF Werte vorher nachher an,
so fällt einem auf das die DXFCodes  7/71/72/11/210 zur Beschreibung des Textstils des Attrib nach dem Lisp Setzen nicht mehr existieren

Dert Wert wurde von Ursprünglich über ddatte eingegeben Wert "BBB" mit Lisp auf "ZZZ" gesetzt!

;vorher
((-1 . <Objektname: 7e538710> ) (0 . "ATTRIB") (330 . <Objektname: 7e538708> ) (5
. "3B82") (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 .
"AA_$ALLG_TXT_025_1-1") (62 . 7) (100 . "AcDbText") (10 15.5541 17.0849 0.0)
(40 . 0.005) (1 . "bbb") (50 . 0.0) (41 . 0.7) (51 . 0.0)

(7 . "POS") (71 . 0) (72 . 1) (11 15.5574 17.0874 0.0) (210 0.0 0.0 1.0)

(100 . "AcDbAttribute") (280 . 0) (2 . "POS") (70 . 0) (73 . 0) (74 . 2) (280 . 0))

nachher
((-1 . <Objektname: 7e538710> ) (0 . "ATTRIB") (330 . <Objektname: 7e538708> ) (5
. "3B82") (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 .
"AA_$ALLG_TXT_025_1-1") (62 . 7) (100 . "AcDbText") (10 15.5541 17.0849 0.0)
(40 . 0.005) (1 . "ZZZ") (50 . 0.0) (41 . 0.7) (51 . 0.0) 

ab hier fehlt die DXFCODE DxfCode 7/71/72/11/210

(100 . "AcDbAttribute") (280 . 0) (2 . "POS") (70 . 0) (73 . 0) (74 . 2) (280 . 0))


Im Anhang die MusterDWG InertPosTTF.dwg wie auch das für den Block Reduzierte LISP funktion,
Nach dem DragAndDrop wird das zu ändernde Objekt abgefragt und das Attrbut auf den WERT ZZZ gesetzt!

Warum das ganze Theater!
Bekommt man Fremdzeichnungen sind unsere User angehalten, die Zeichnung zu bereinigen, um den oftmals großen Datenmüll
zu entsorgen den Architekten so mitliefern! Nun kann es sein, daß dort der TextStil bereits definiert aber nicht referenziert ist,
sadaß der benötigte Textstil durchs bereinigen rausfliegt und erst durch den Block wieder nachgeladen wird!

Abhilfe -
1) Zeichnung speichern - schliessen - öffnen!
2) einen Block mit einem leeren konstanten Attribut mit selbigen textstil in die Zeichnung einfügen
  alelrdings macht Adesk schon genug Datenmüll in die Zeichnung , muss doch nicht auch noch sein!

Auch das manuelle oder automatsiche Anlegen des Textstils vor dem Block laden bringt keine Verbesserung!
(command "_style" "POS"    "weltu.ttf"  ...)

Übrigens in 2002 bestand das Problem nicht! - Verschlimmbesserung pur die mich nun 8 Stunden arbeit gekostet hat,
hinter das Problem zu kommen- und bereits etliche Stunden die unsere User Zeichnungen Speichern - schliessen und öffnen mussten!
Gibt es für solche neuen Bugs Gutscheine von Adesk?

Vielleicht verhält sich das System anders qenn man VLA Funktionen verwendet!
Allerdings kann ich die wegen OEM nicht verwenden!

Bin gespannt ob jemand noch andere Möglichkleiten findet den Bug zu umgehen

Gruss Karsten 


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

joern bosse
Ehrenmitglied
Dipl.-Ing. Vermessung


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

Beiträge: 1734
Registriert: 11.10.2004

Window 10
ACAD 2021
CIVIL 2021
BricsCAD V14-V22
Intel(R) Core(TM)i5-8250U CPU @ 1.60GHz 1.80 GHz
16.0GB RAM
NVIDIA GeForce GTX 1050<P>

erstellt am: 02. Nov. 2011 11:07    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 mapla 10 Unities + Antwort hilfreich

Hallo Karsten,
konnte ich nachvollziehen, warum das so ist, keine Ahnung.

Aber bei mir hat ein Würgaround funktioniert, wenn das entmod ein zweites Mal ausgeführt wird, dann hat es geklappt.

Code:
(defun SetPos (/ sNewVal ent attr)
(Setq sNewVal "zzz")
(setq ent (car(entsel)))
(if (setq attr (entnext ent))
(progn
  (setq lOldVal (assoc 1 (entget attr)))
  (entmod (subst (cons 1 sNewVal ) lOldVal (entget attr)))
(entmod (entget attr))
  (entupd attr)
  )

);defun
(SetPos)

Warum das so ist weiß ich aber auch nicht

------------------
viele Grüße

Jörn
http://www.bosse-engineering.com

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

mapla
Mitglied
CAD Administrator


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

Beiträge: 93
Registriert: 20.06.2007

120 CAD-Arbeitsplätze
Win7x64
HPNB Elite 8760W - 16GB
2011(2006)
ACADOEM-CAD+T 2011
Impression2de / 3En
AutoLisp
T1100 T1120 T770 / T1200 /OCE9400

erstellt am: 02. Nov. 2011 11:39    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 Jörn,
ja die Anzeige kommt- aber im falschen textstil - zumindest bei mir! Nachwie vorher Fehlen die ursprünglichen AttributsTextStilEigenschaften!
Sieht so aus als ob Acad nun den Standard Textstil verwendet!
Übringens in ACAD2006 hat noh alles wie in 2002 gefunzt! In 2008 ist selbiges verhalten anzutreffen!

gruss Karsten

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

joern bosse
Ehrenmitglied
Dipl.-Ing. Vermessung


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

Beiträge: 1734
Registriert: 11.10.2004

Window 10
ACAD 2021
CIVIL 2021
BricsCAD V14-V22
Intel(R) Core(TM)i5-8250U CPU @ 1.60GHz 1.80 GHz
16.0GB RAM
NVIDIA GeForce GTX 1050<P>

erstellt am: 02. Nov. 2011 11:49    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 mapla 10 Unities + Antwort hilfreich

Hallo Karsten,
ups, da habe ich gar nicht drauf geachtet, habe mich nur gefreut, daß der Text wieder sichtbar war.

Aber mit folgender Variante sollte es funktionieren:

Code:

(defun SetPos (/ sNewVal ent attr)
  (vl-load-com)
(Setq sNewVal "zzz")
(setq ent (car(entsel)))
(if (setq attr (entnext ent))
  (vla-put-TextString
    (vlax-ename->vla-object attr)
    sNewVal))

);defun
(SetPos)


------------------
viele Grüße

Jörn
http://www.bosse-engineering.com

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

mapla
Mitglied
CAD Administrator


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

Beiträge: 93
Registriert: 20.06.2007

120 CAD-Arbeitsplätze
Win7x64
HPNB Elite 8760W - 16GB
2011(2006)
ACADOEM-CAD+T 2011
Impression2de / 3En
AutoLisp
T1100 T1120 T770 / T1200 /OCE9400

erstellt am: 02. Nov. 2011 12:03    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 Jörn,
ja kann ich bestätigen und funzt in unsere Vollversion!
Leider darf ich keine VLA Funktionen in unserer OEM einsetzen!

Aber dennoch vielen Dank - siehe Unities!

gruss Karsten

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