Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Eigene Zeichnungseigenschaften definieren

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:  Eigene Zeichnungseigenschaften definieren (4329 mal gelesen)
berndhock
Mitglied
Holztechniker


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

Beiträge: 35
Registriert: 07.03.2003

AutoCAD2004 und 2005
3,20 gigahertz Intel Pentium 4
1022 Megabytes Installed Memory
Matrox Parhelia 128MB

erstellt am: 27. Aug. 2004 08:51    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 Leute,

ich möchte mir in einer Zeichnung eigene Werte abspeichern. Z.B. Kundenname, Projektname, Ersteller, usw. diese Werte sollten in irgend einer Form mit der Zeichnung gespeichert werden. Wer kann mir sagen wie ich diese Werte speichere, auslese und aktualisieren kann.

Einen Dialog für diese Werte hab ich schon mit den genialen Tools von DOSLIB erstellt www.mcneel.com.

Diese Werte benötige ich z.B. für Schriftfelder.

Danke für Eure Hilfe.

Gruß
Bernd

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

Erwin Fortelny
Mitglied
Tech. Zeichner


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

Beiträge: 877
Registriert: 13.12.2001

erstellt am: 27. Aug. 2004 09:36    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 berndhock 10 Unities + Antwort hilfreich

Hallo,

Zitat:
Original erstellt von berndhock:
ich möchte mir in einer Zeichnung eigene Werte abspeichern. Z.B. Kundenname, Projektname, Ersteller, usw. diese Werte sollten in irgend einer Form mit der Zeichnung gespeichert werden. Wer kann mir sagen wie ich diese Werte speichere, auslese und aktualisieren kann.

Hmm, bei welcher Acad-Version?!

Seit - AFAIKAs far as i know = Soweit mir bekannt ist - Acad2000 gibt ja die "Zeichnungseigenschaften" (Befehl: dwgeigen)!!!

Die kann/könnte man auch sicher via LISP oder VB manipulieren ...

Ansonsten gibt's ja noch die "USER*" Systemvariablen, die ja jeweils in der Zeichnung gespeichert werden ...

------------------
Servus, Erwin
--

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

Erwin Fortelny
Mitglied
Tech. Zeichner


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

Beiträge: 877
Registriert: 13.12.2001

-Firma:
Lenovo S30 + 2x Acer B246HL, Win7 x64 Enterprise
AutoCAD 2019
ELCAD 2020

erstellt am: 27. Aug. 2004 09:42    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 berndhock 10 Unities + Antwort hilfreich

Hallo,

Zitat:
Ansonsten gibt's ja noch die "USER*" Systemvariablen, die ja jeweils in der Zeichnung gespeichert werden ...

Uih, kleiner Fehler meinerseits: Gerade die interessanten USERS1-5 werden *nicht* gespeichert ... 

------------------
Servus, Erwin
--

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

CADmium
Moderator
Maschinenbaukonstrukteur




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

Beiträge: 13508
Registriert: 30.11.2003

.

erstellt am: 27. Aug. 2004 09:43    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 berndhock 10 Unities + Antwort hilfreich

.. und dann wären noch Xdata, Dictonaries... und ein Schriftfeldblock mit Attributen!

------------------
- Thomas -

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

tunnelbauer
Ehrenmitglied V.I.P. h.c.
Bauingenieur



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

Beiträge: 7085
Registriert: 13.01.2004

ich hab eh keine Probleme damit...

erstellt am: 27. Aug. 2004 09:47    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 berndhock 10 Unities + Antwort hilfreich

...und dann gibts noch RTEXT und das Tutorial dazu von afralisp

http://www.afralisp.com/lisp/rtext.htm (englisch)

------------------
Grüsse

Thomas

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

berndhock
Mitglied
Holztechniker


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

Beiträge: 35
Registriert: 07.03.2003

AutoCAD2004 und 2005
3,20 gigahertz Intel Pentium 4
1022 Megabytes Installed Memory
Matrox Parhelia 128MB

erstellt am: 27. Aug. 2004 09: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

Hallo Erwin,

genau das möchte ich wissen...

Wie manipuliert man mit Lisp die Zeichnungseigenschaften und zwar am besten die Benutzerdefinierten.

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: 27. Aug. 2004 10:02    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 berndhock 10 Unities + Antwort hilfreich

Zu dem Thema (das leider viel zu selten genutze wird) unbedingt
PROPULATE aus den ETools ansehen !!
Ist in der ET-Hilfe beschrieben.

------------------
Bitte Systemangaben eintragen, wie & warum siehst du HIER

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

CADmium
Moderator
Maschinenbaukonstrukteur




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

Beiträge: 13508
Registriert: 30.11.2003

.

erstellt am: 27. Aug. 2004 10:06    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 berndhock 10 Unities + Antwort hilfreich

Hatte mal was angefangen ..
gucke hier
-> sonst: Siehe Cadffm

Mhmm .. sehe gerade bei 2004'er Dateien gibts kein Dictionary "DWGPROPS" mehr !??! ... muß ich die Speicherstelle erst wieder suchen..
------------------
    - Thomas -

[Diese Nachricht wurde von CADmium am 27. Aug. 2004 editiert.]

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


Ex-Mitglied

erstellt am: 27. Aug. 2004 14:23    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Zitat:
Original erstellt von CADmium:
Hatte mal was angefangen ..
gucke hier
-> sonst: Siehe Cadffm

Mhmm .. sehe gerade bei 2004'er Dateien gibts kein Dictionary "DWGPROPS" mehr !??! ... muß ich die Speicherstelle erst wieder suchen..


Warum sollte man auch sowas verwenden, wenn man mit demselben Aufwnad eigene Dictionaries anlegen udn verwalten kann? Damit macht man sich nur ein Stück weiter von Adesk abhängig.

Jeder LISP-Programmierer wird sich Bibliotheksroutinen der Art
(DICTIONARY-PUT KEY VALUE)
und
(DICTIONARY-GET KEY)
geschrieben haben, mit denen man beliebige anwender- und applikationsspezifische Daten in die DWG speichert, und vielleicht hat ja auch irgend jemand diese Routinen veröffentlicht. Von mir gibt's diese Funktionen leider nicht für lau :-)

Gruß
Tom Berger


------------------


berndhock
Mitglied
Holztechniker


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

Beiträge: 35
Registriert: 07.03.2003

AutoCAD2004 und 2005
3,20 gigahertz Intel Pentium 4
1022 Megabytes Installed Memory
Matrox Parhelia 128MB

erstellt am: 27. Aug. 2004 14:34    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 für die tolle Resonanz. Ich versteh das nicht es ist doch nicht so ganz abwägig, Informationen für Schriftfelder zu speichern und diese in jedem Schriftfeld zu verwenden bzw. in allen Schriftfelder zu aktualisieren.

Danke CADmium für deinen Code aber der funktioniert nicht so wirklich oder ich werde daraus nicht schlau.

Ich habe mir jetzt mal die Funktionen dictadd, dictsearch usw. angesehen vielleicht kann ich mir ja daraus was basteln.

Wäre aber trozdem begeistert wenn jemand schon was fertiges hat.

Gruß
Bernd

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

CADmium
Moderator
Maschinenbaukonstrukteur




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

Beiträge: 13508
Registriert: 30.11.2003

.

erstellt am: 27. Aug. 2004 17:33    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 berndhock 10 Unities + Antwort hilfreich

Betreffs Dictionaries schau auch mal hier

------------------
- Thomas -

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

FiT
Mitglied



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

Beiträge: 22
Registriert: 27.08.2004

Pentium-IV, 1GB-Ram, Matrox-Parphelia, SCSII-UW2, Win2k, acad2004, BauCaD*K+R*17.

erstellt am: 27. Aug. 2004 23:15    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 berndhock 10 Unities + Antwort hilfreich

Hallo,
wie wär's mit:
(vlax-ldata-put <dict> <key> <data> <[private]> )
und:
(vlax-ldata-get <dict> <key> <[default-data]> <[private]> )
...siehe Visual-Lisp-Hilfethemen.
Gruß aus Würzburg.

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

berndhock
Mitglied
Holztechniker


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

Beiträge: 35
Registriert: 07.03.2003

AutoCAD2004 und 2005
3,20 gigahertz Intel Pentium 4
1022 Megabytes Installed Memory
Matrox Parhelia 128MB

erstellt am: 30. Aug. 2004 08: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

Danke für die Infos, genau das was FiT mir geschickt hat habe ich gesucht super!!!

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


Ex-Mitglied

erstellt am: 30. Aug. 2004 11:04    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Zitat:
Original erstellt von berndhock:
Danke für die Infos, genau das was FiT mir geschickt hat habe ich gesucht super!!!

Vor der Verwendung von LDATA kann ich nur ganz eindringlich warnen! Google mal nach LDATA. Die sind schon immer völlig lausig implementiert (mittels persistenter Reaktoren, was Proxy-Meldungen erzeugt), aber beim Übergang von R14 zu A2K hat ein Bug in AutoCAD dafür gesorgt, dass die LDATA die Zeichnungsdateien langsam zerstörten!

Inzwischen mag der Bug behoben sein, aber die lausige Implementierung bleibt. Auch wenn's programmtechnisch erst mal ein wenig Aufwand ist: nimm' lieber Dictionaries.

Gruß
Tom Berger

------------------


berndhock
Mitglied
Holztechniker


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

Beiträge: 35
Registriert: 07.03.2003

AutoCAD2004 und 2005
3,20 gigahertz Intel Pentium 4
1022 Megabytes Installed Memory
Matrox Parhelia 128MB

erstellt am: 30. Aug. 2004 12:21    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 für die Info Tom, werde mal nachsehen.

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: 30. Aug. 2004 13:55    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 berndhock 10 Unities + Antwort hilfreich

Nachtrag zu LDATA: Es gibt auch keine ActiveX-Methoden, um sie auszulesen! In VBA kommt man also nicht dran.

(Um Irrtümern vorzubeugen: vlax-ldata-get hat mit ActiveX nichts zu tun. Das ist 'reines' Lisp, und warum der Präfix 'vlax' davorsteht, weiss nur der Mann aus Moskau.)

Gruß, Axel Strube-Zettler

------------------
(defun - Lisp over night - AutoLisp-Programmierung für AutoCad - Da weiß man, wann man's hat
Meine AutoLisp-Seiten Mein Angriff auf dein Zwerchfell Mein Lexikon der Fotografie Mein gereimtes Gesülze

[Diese Nachricht wurde von mapcar am 30. Aug. 2004 editiert.]

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

FiT
Mitglied



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

Beiträge: 22
Registriert: 27.08.2004

Pentium-IV, 1GB-Ram, Matrox-Parphelia, SCSII-UW2, Win2k, acad2004, BauCaD*K+R*17.

erstellt am: 30. Aug. 2004 19:40    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 berndhock 10 Unities + Antwort hilfreich

Nun Gut; Alternative Beispiele:

SaveData.lsp von Vladimir Nesterovsky:
http://vnestr.tripod.com/SaveData.lsp
http://xarch.tu-graz.ac.at/autocad/news/lisp_adv/store_in_dwg.html

und
dict.lsp von David Kozina und Reini Urban (std-lib):
http://xarch.tu-graz.ac.at/autocad/stdlib/DICT.LSP

oder aus den Express-Tools:
(acet-Setvar (list <varname> <value> [location]))
(acet-Getvar (list <varname> [location]))
http://augafrica.com/docs/AutoCAD_hackers_handbook_Class.pdf
; wobei mir hier unklar ist, welche Methode bei'm speichern in die dwg verwendet wird.

Gruß aus dem verregnetem Würzburg.

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: 30. Aug. 2004 21: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 Nur für berndhock 10 Unities + Antwort hilfreich

Hi Fit,

aced-setvar geht wohl über das Entity DICITIONARYVAR - auch dafür gibt's wohl keine ActiveX-Methoden. Vladimir N. und std- scheinen mir empfehlenswerter...

Egal... Schau mal auf der alten Mainbrücke vorbei und grüß Kilian und Totnan ganz lieb von mir, und das Brückenbäck - war lang nicht da;-)

Gruß, Axel Strube-Zettler

------------------
(defun - Lisp over night - AutoLisp-Programmierung für AutoCad - Da weiß man, wann man's hat
Meine AutoLisp-Seiten Mein Angriff auf dein Zwerchfell Mein Lexikon der Fotografie Mein gereimtes Gesülze

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


Ex-Mitglied

erstellt am: 31. Aug. 2004 11:51    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Zitat:
Original erstellt von FiT:

SaveData.lsp von Vladimir Nesterovsky:
http://vnestr.tripod.com/SaveData.lsp
http://xarch.tu-graz.ac.at/autocad/news/lisp_adv/store_in_dwg.html

Die beiden sind nur eins, nämlioch das Programm von Vladimir Nesterovsky. Es macht ja genau das, was ich oben erwähnte, und es scheint bis auf Kleinigkeiten sehr empfehlenswert, so weit ich das gesehen habe.

Der erste Haken: dotted pairs werden nicht gespeichert und führen zu einer Fehlermeldung. Das Programm liesse sich leicht modifizieren, so dass das auch klappt.

Der zweite Haken: Listen mit 3 Integer-Werten werden in Listen mit 3 Reals umgewandelt. Auch das liesse sich natürlich leicht korrigieren.

Gruß
Tom Berger


------------------


FiT
Mitglied



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

Beiträge: 22
Registriert: 27.08.2004

Pentium-IV, 1GB-Ram, Matrox-Parphelia, SCSII-UW2, Win2k, acad2004, BauCaD*K+R*17.

erstellt am: 31. Aug. 2004 23: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 Nur für berndhock 10 Unities + Antwort hilfreich

sorry, berndhock,
ich habe, glaube ich, das Thema etwas verfehlt.
Ging es nicht um eine EINFACHE Möglichkeit Anwenderspezifische Daten
IN der Zeichnung zu speichern?
Da fällt mir bezüglich der ersten Antwort (von Erwin Fortelny) auf Deine
Frage folgendes ein: Die Daten in den Zeichnungseigenschaften
werden wohl auch in einer Dictionary gespeichert;
(man belehre mich eines besseren):

(dictsearch (namedobjdict) "DWGPROPS")

ergibt z.B. (falls vorhanden) ansonsten nil (acad2004)

'(
(-1 . <OBJEKTNAME: 40084328>)
(0 . "XRECORD")
(5 . "15D")
(102 . "{ACAD_REACTORS")
(330 . <OBJEKTNAME: 40082C48>)
(102 . "}")
(330 . <OBJEKTNAME: 40082C48>)
(100 . "AcDbXrecord")
(280 . 1)
(1 . "DWGPROPS COOKIE")
(2 . "")
(3 . "")
(4 . "")
(6 . "")
(7 . "")
(8 . "FiT")
(9 . "")
(300 . "GEZ=FiT")
(301 . "PROJ-NR=04-08")
(302 . "PROJEKT=DICTIONARY")
(303 . "BAUHERR=FiT")
(304 . "BAUORT=Würzburg")
(305 . "INHALT=mal_seh'n")
(306 . "PLAN-NR=1")
(307 . "MASSTAB=1:50")
(308 . "LAYER=A*")
(309 . "DATUM=31.08.2004")
(40 . 0.634927)
(41 . 2.45533e+006)
(42 . 2.45425e+006)
(1 . "")
(90 . 10)
)

; also Zugriff per LISP; ?:
(dictremove (namedobjdict) "DWGPROPS")
(dictadd (namedobjdict) "DWGPROPS" (entmakex MY_LIST)) ;_ ?

> Tom Berger schrieb:
> Die beiden sind nur eins, nämlioch das Programm von Vladimir Nesterovsky. Es
> macht ja genau das, was ich oben erwähnte, und es scheint bis auf Kleinigkeiten
> sehr empfehlenswert, so weit ich das gesehen habe.
>
> Der erste Haken: dotted pairs werden nicht gespeichert und führen zu einer
> Fehlermeldung. Das Programm liesse sich leicht modifizieren, so dass das auch
> klappt.
>
> Der zweite Haken: Listen mit 3 Integer-Werten werden in Listen mit 3 Reals
> umgewandelt. Auch das liesse sich natürlich leicht korrigieren.
>

Was sind das für "Kleinigkeiten"?, und wie kann man "gepunktete paare" speichern
oder Listen in Listen: '(1 2 3 ("1" 2 3.33)) ; (cons (cons...
und wie integer-to-real?
Und noch 'ne Frage: was ist der Unterschied zwischen XRECORD und DICTIONARY ?
Und... habe noch einen Berg anderer Fragen... stelle ich erst mal zurück.

Gruß aus Würzburg.

An 'mapcar;
Ich war heute auf der alten Mainbrücke: Ganz lieber Gruß von Kolonat!

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: 31. Aug. 2004 23: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 berndhock 10 Unities + Antwort hilfreich

Danke, FiT.

Möchte noch mal, was LDATA betrifft, auf diesen Thread hinweisen:

http://ww3.cad.de/foren/ubb/Forum259/HTML/000323.shtml

Wenn das ganze 'einfach' bleiben soll, würde ich auch gar keine Anstrengungen unternehmen, Sachen wie dotted pairs usw. zu integrieren. Das mag zwar schön für den Programmierer sein, aber für den Benutzer würde ich auf die Datentypen Int32, Double, Point2d, Point3d, [optional auch Vector2d, Vector3d] und String setzen. Das hat den Vorteil, dass auch Applikationen in anderen Sprachen problemlos auf die Daten zugreifen können.

Gruß, Axel Strube-Zettler
------------------
(defun - Lisp over night - AutoLisp-Programmierung für AutoCad - Da weiß man, wann man's hat
Meine AutoLisp-Seiten Mein Angriff auf dein Zwerchfell Mein Lexikon der Fotografie Mein gereimtes Gesülze

[Diese Nachricht wurde von mapcar am 31. Aug. 2004 editiert.]

[Diese Nachricht wurde von mapcar am 31. Aug. 2004 editiert.]

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


Ex-Mitglied

erstellt am: 01. Sep. 2004 11:25    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Zitat:
Original erstellt von FiT:
Was sind das für "Kleinigkeiten"?, und wie kann man "gepunktete paare" speichern
oder Listen in Listen: '(1 2 3 ("1" 2 3.33)) ; (cons (cons...
und wie integer-to-real?

Verschachtelte Listen gehen bei Dir nicht? Dann ist aber was faul.

Aber man kann all diese Fehler beheben, selbst ohne den Quellcode von Vladimirs Programm zu kennen (das will ich mir jetzt auch nicht antun, obwohl auch ich von Vladimir noch was lernen kann). Das geht ganz einfach: Füge als erste Zeilen in der Funktion DICT-PUT das ein: 

(cond
    ;; dotted pair:
    ((and (listp val)
  (not (listp (cdr val)))
    )
    (setq val (list "$$$DOTTED-PAIR" (car val) (cdr val)))
    )
    ;; Liste mit 3 Zahlen
    ((and (listp val)
  (= 3 (length val))
  (apply 'AND (mapcar 'numberp val))
  )
    (setq val (cons "$$$3-NUMBER-LIST" val))
    )
)

Passend dazu muss die Funktion dict-get dann so aussehen:

(defun dict-get (name key / val)
    ;; name and key As strings
    (setq val (x-relist ;; decode the data!
(cddr (member '(100 . "AcDbXrecord")
      ;; new (280) code group in r15
      (dict-getrawdata name key)
      )
)
      )
    )
    (cond
      ((and (listp val)
    (= "$$$DOTTED-PAIR" (car val))
)
(cons (cadr val) (caddr val))
      )
      ((and (listp val)
    (= "$$$3-NUMBER-LIST" (car val))
)
(cdr val)
      )
      ('T val)
    )
  )

Du siehst, dass man auch mit uneleganten Mitteln schnelle Halblösungen erzielt :-) "Halblösung" ist das, weil es immer noch Probleme gibt, wenn ein dotted pair oder eine 3-Zahlen-Liste innerhalb einer Liste verschachtelt ist. Für eine saubere Lösung musst Du den Eingriff dort machen, wo Vladimir die zu speichernden Werte codiert und decodiert. Das ist auch nicht schwerer als meine obige Lösung (die kannst Du vermutlich 1:1 verwenden), ich war jetzt nur zu faul, Vladimirs Code danach zu durchsuchen.

Gruß
Tom Berger

------------------


FiT
Mitglied



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

Beiträge: 22
Registriert: 27.08.2004

Pentium-IV, 1GB-Ram, Matrox-Parphelia, SCSII-UW2, Win2k, acad2004, BauCaD*K+R*17.

erstellt am: 01. Sep. 2004 15:05    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 berndhock 10 Unities + Antwort hilfreich

Danke, das schau ich mir mal an. Hatte mich mit den Prog. von Reini Urban beschäftigt, aber auch da gehen verschachtelte Listen; hatte wohl was falsch gemacht.

------------------
Gruß
Gerald Fischer

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

FiT
Mitglied



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

Beiträge: 22
Registriert: 27.08.2004

Pentium-IV, 1GB-Ram, Matrox-Parphelia, SCSII-UW2, Win2k, acad2004, BauCaD*K+R*17.

erstellt am: 01. Sep. 2004 22:06    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 berndhock 10 Unities + Antwort hilfreich

Hallo Tom;
habe Deinen *hack* nachvollzogen und verstanden;
werde mich mit Vladimir's Quelltext ausfühlicher beschäftigen; Jo, da kann ich was lernen; Ziel ist sowas; '(("FiT" . 1.1)"(FiT" . 2.2)) ; also verschachtelte *dotted pairs* in einer Dict... ...und (Frage) LDATA braucht dann hierfür extra entities? '(sorry, ha'b gra'd kein Bei-Spiel parat).

------------------
Gruß
Gerald Fischer

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


Ex-Mitglied

erstellt am: 01. Sep. 2004 23:11    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Zitat:
Original erstellt von FiT:
Hallo Tom;
habe Deinen *hack* nachvollzogen und verstanden;
werde mich mit Vladimir's Quelltext ausfühlicher beschäftigen; Jo, da kann ich was lernen; Ziel ist sowas; '(("FiT" . 1.1)"(FiT" . 2.2)) ; also verschachtelte *dotted pairs* in einer Dict...

Dann mach's aber so: '(("FiT1" . 1.1)"(FiT2" . 2.2)) damit Du die Daten auch wieder findest :-)

Zitat:

...und (Frage) LDATA braucht dann hierfür extra entities?

Dictionaries sind ja auch Objekte. LDATA sind aber irgendwie ziemlich seltsam implementiert, mit persistenten Reaktoren und Applikationsdaten (in dem Fall ACAD, wobei der A2K-Bug zumdinest damit zusammen hing, dass auch die ACDA-versionsnummer mit gespeichert wurde, und dass in A2K mit anderer Versionsnummer die R14-LDATA dann nicht mehr gelesen werden konnten).

Da die erwünschte Funktionalität der LDATA ohne deren unliebsame Nebenerscheinungen mit den Dictionaries vollkommen erreicht wird, kann man sie also auch einfach vergessen.

Gruß
Tom Berger

------------------


FiT
Mitglied



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

Beiträge: 22
Registriert: 27.08.2004

Pentium-IV, 1GB-Ram, Matrox-Parphelia, SCSII-UW2, Win2k, acad2004, BauCaD*K+R*17.

erstellt am: 02. Sep. 2004 22: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 berndhock 10 Unities + Antwort hilfreich

OK, ich hab's jetzt eingesehen:
LDATA ist überflüssig bzw. nicht rückwärtskompatibel.
dotted pairs sind in diesem Fall auch unnötig, Liste in Liste genügt.
Habe das heute mal mit einigen Programmen von mir getestet; Dank modularen Aufbau's brauch ich nur zwei Funktionen austauschen; Statt Anwendungsspezifische Daten in 'ne Datei schreiben/lesen, eben in einer DICT. Und das funktioniert, weil in die Datei auch nur 'ne Liste geschrieben wird. Da werde ich mir in Zukunft die zusätzlichen Files schenken. Habe beobachtet, dass die Zeichnung um etwa 4 bis 5 KB groesser wird.
Eine letzte Frage:
Was ist sinnvoller? Eine DICT mit einer evtl. sehr langen Liste oder lieber einige Dict's mit kurzen Listen?

------------------
Gruß
Gerald Fischer

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

CADmium
Moderator
Maschinenbaukonstrukteur




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

Beiträge: 13508
Registriert: 30.11.2003

.

erstellt am: 07. Sep. 2004 17: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 Nur für berndhock 10 Unities + Antwort hilfreich

Nochmal zum Thema:

(vl-load-com)
(vlax-dump-object(vla-get-summaryInfo(vla-get-activeDocument(vlax-get-acad-object)))'T)

..wenn jemand auf die Standarddwgprops zurückgreifen will..

------------------
- Thomas -

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


Ex-Mitglied

erstellt am: 07. Sep. 2004 18:31    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Zitat:
Original erstellt von FiT:
Was ist sinnvoller? Eine DICT mit einer evtl. sehr langen Liste oder lieber einige Dict's mit kurzen Listen?

Das sagt Dir die Logik Deiner Anwendung - eine allgemeingültige Antwort darauf gibt's nicht. Eventuelle Performance-Unterschiede dürften in den allermeisten Fällen irrelevant sein

Gruß
Tom Berger

------------------


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